当前位置: 首页 > news >正文

IMX6ULL ARM Linux开发板SD卡启动,SD卡的分区与分区格式化创建

一、确定TF卡挂载到ubuntu上的设备名称及分区情况
  • 1. 在ubuntu不接入TF卡的情况下, 使用df -lh /dev/sd*命令查看当前"/dev/sd开头"的设备。
##输入df -lh /dev/sd*命令,敲回车键
~$ df -lh /dev/sd*

  • 2.将TF卡接入到ubuntu,再次使用df命令,进行查看,多出来的设备即是TF卡挂载到ubuntu的设备名称

如图所示,多出来的/dev/sdb1 /dev/sdb2即为TF卡的挂载分区,TF设备名称为/dev/sdb

注:因为我之前已经对SD卡进行过分区,分出两个区,sdb1为分区1(存放Linux内核及设备树文件),sdb2为分区2(存放根文件系统) uboot存放在默认sdb。如果你的SD卡未分过区,仅显示/dev/sdb 或者sd* (*为b c d....)

  • 可以使用cat  /proc/partitions命令,查看设备的分区情况

如图所示,SD卡sdb分出sdb1 sdb2两个分区。

二、删除SD卡原分区,对SD卡进行重新分区

1.取消SD卡挂载,准备进行分区操作

~$ sudo umount /dev/sdb

2.使用fdisk对SD卡进行格式化,输入sudo fdisk /dev/sdb命令,按m查看fdisk帮助信息

qhw@qhw:~$ sudo fdisk /dev/sdb欢迎使用 fdisk (util-linux 2.31.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。命令(输入 m 获取帮助): m帮助:DOS (MBR)a   开关 可启动 标志b   编辑嵌套的 BSD 磁盘标签c   开关 dos 兼容性标志常规d   删除分区F   列出未分区的空闲区l   列出已知分区类型n   添加新分区p   打印分区表t   更改分区类型v   检查分区表i   打印某个分区的相关信息杂项m   打印此菜单u   更改 显示/记录 单位x   更多功能(仅限专业人员)脚本I   从 sfdisk 脚本文件加载磁盘布局O   将磁盘布局转储为 sfdisk 脚本文件保存并退出w   将分区表写入磁盘并退出q   退出而不保存更改新建空磁盘标签g   新建一份 GPT 分区表G   新建一份空 GPT (IRIX) 分区表o   新建一份的空 DOS 分区表s   新建一份空 Sun 分区表命令(输入 m 获取帮助): 

3.按照显示信息,一直按d及对应分区序号,删除sdb设备下所有分区,至到提示“还没有定义分区”为止。

4.按n进行重新分区,

分区大小根据个人实际需要进行定义,

本文分区如下:

  • 前面10MB空间留给uboot (SD卡一个扇区为512字节,2048个扇区容量为1MB
  • uboot空间之后建立分区1给内核和设备树,给100MB
  • 分区1之后建立分区2给根文件系统,剩余全部空间
命令(输入 m 获取帮助): n
分区类型p   主分区 (0个主分区,0个扩展分区,4空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (1-4, 默认  1): 1
第一个扇区 (2048-122152959, 默认 2048): 20480    #SD卡一个扇区512字节,2048个扇区为1MB;
上个扇区,+sectors 或 +size{K,M,G,T,P} (20480-122152959, 默认 122152959): +204800  #加100M空间创建了一个新分区 1,类型为“Linux”,大小为 100 MiB。命令(输入 m 获取帮助): n 
分区类型p   主分区 (1个主分区,0个扩展分区,3空闲)e   扩展分区 (逻辑分区容器)
选择 (默认 p): p
分区号 (2-4, 默认  2): 2
第一个扇区 (2048-122152959, 默认 2048): 225281         
上个扇区,+sectors 或 +size{K,M,G,T,P} (225281-122152959, 默认 122152959): 创建了一个新分区 2,类型为“Linux”,大小为 58.1 GiB。

分区完成后,按p打印分区表,查看是否修改成功。

命令(输入 m 获取帮助): p
Disk /dev/sdb:58.3 GiB,62542315520 字节,122152960 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x2d530f15设备       启动   起点      末尾      扇区  大小 Id 类型
/dev/sdb1        20480    225280    204801  100M 83 Linux
/dev/sdb2       225281 122152959 121927679 58.1G 83 Linux

确认修改成功后,按w进行保存 

命令(输入 m 获取帮助): w
分区表已调整。
正在同步磁盘。
三、格式化/dev/sdb1分区为vfat格式,用来存放内核与设备树文件

使用mkfs.vfat命令,格式化/dev/sdb1分区为vfat格式

  • 1.取消SD卡分区1挂载,准备进行格式化操作
~$ sudo umount /dev/sdb1
  • 2.格式化/dev/sdb1分区
qhw@qhw:~$ sudo mkfs.vfat /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
四、格式化/dev/sdb2分区为ext4格式,用来存放根文件系统
  • 1.取消SD卡分区2挂载,准备进行格式化操作
~$ sudo umount /dev/sdb2
  • 2.格式化/dev/sdb2分区
qhw@qhw:~$ sudo mkfs.ext4 /dev/sdb2
mke2fs 1.44.1 (24-Mar-2018)
创建含有 15240959 个块(每块 4k)和 3817472 个inode的文件系统
文件系统UUID:55a36819-e9fd-45d5-9bd4-22dad621be41
超级块的备份存储于下列块: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(65536 个块) 完成
写入超级块和文件系统账户统计信息: 已完成 

至此,SD卡分区及分区格式化操作完成。

五、将uboot写入SD卡
sudo dd if=u-boot-dtb.imx of=/dev/sdb bs=1K seek=1 && sync

具体操作待补充。。。

六、将内核、设备树文件写入SD卡
##创建内核与设备树挂载目录
mkdir kernel_dtb##挂载/dev/sdb1到kernel_dtb目录
sudo mount /dev/sdb1 kernel_dtb##复制zImage文件到挂载目录
sudo cp zImage kernel_dtb/##复制.dtb设备树文件到挂载目录  拷贝自己实际设备树名称
sudo cp imx6ull-14x14-evk.dtb kernel_dtb/##取消挂载
sudo umount kernel_dtb
七、将根文件系统写入SD卡
##创建内核与设备树挂载目录
mkdir mount_rootfs##挂载/dev/sdb2到mount_rootfs目录
sudo mount /dev/sdb2 mount_rootfs##复制根文件系统目录下所有文件到挂载目录:nfs/rootfs目录下为创建编译好的具体根文件系统
sudo cp nfs/rootfs/* mount_rootfs/ -drf##取消挂载
sudo umount mount_rootfs
八、设置uboot启动环境变量

设置bootcmd,从SD卡启动内核与设备树文件

setenv bootcmd 'mmc dev 0;fatload mmc 0:1 80800000 zImage;fatload mmc 0:1 83000000 imx6ull-14x14-evk.dtb;bootz 80800000 - 83000000'

 设置bootargs,从SD卡启动根文件系统

setenv bootargs 'consoe=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw'

保存设置并重启

saveenv

reset

附:uboot启动错误解决,设置网卡mac、IP、服务器等地址

进入调试界面对EHT mac地址进行设置

=> setenv ipaddr 192.168.1.128         ##设置开发板IP地址
=> setenv gatewayip 192.168.1.2        ##设置网关
=> setenv netmask 255.255.255.0        ##设置子网掩码
=> setenv ethaddr ca:38:29:c3:28:30    ##设置eth0地址
=> setenv eth1addr 76:7d:33:a8:f0:e7   ##设置eth1地址
=> setenv serverip 192.168.1.17        ##设置服务器IP,也就是与开发板连接的ubuntu IP地址
=> saveenv      ##保存
Saving Environment to MMC... Writing to MMC(0)... OK
=> reset        ##重启

 

相关文章:

IMX6ULL ARM Linux开发板SD卡启动,SD卡的分区与分区格式化创建

一、确定TF卡挂载到ubuntu上的设备名称及分区情况 1. 在ubuntu不接入TF卡的情况下, 使用df -lh /dev/sd*命令查看当前"/dev/sd开头"的设备。 ##输入df -lh /dev/sd*命令,敲回车键 ~$ df -lh /dev/sd* 2.将TF卡接入到ubuntu,再次使…...

去哪里找图标?

2023年9月27日,周三下午 为了准备软件工程的期末项目,我需要找给项目找一些图标 目录 1、iconfont 2、material-design-icons 3、Font-Awesome 4、feather 5、Bootstrap 官方图标库 1、iconfont iconfont-阿里巴巴矢量图标库 这个需要注册&…...

Js数组去重都有哪些方法?

1. indexOf 定义: indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回 -1。注意:iindexOf() 方法区分大小写。语法: string.indexOf(searchvalue,start)//;searchvalue必需。searchvalue可选…...

Vue简单使用

1.Vue使用环境 安装nodejs,新版nodejs集成npm;使用node -v和npm -v验证是否安装成功 修改npm镜像为淘宝npm镜像,然后使用cnpm指令代替npm npm install -g cnpm --registryhttp://registry.npm.taobao.org插件安装 Vetur Vue智能提示...

2309C++nlohmann数格示例2

JSON指针和JSON补丁 该库支持JSON指针(RFC6901)来处理结构化值.而,JSONPatch(RFC6902)允许描述两个JSON值之间的差异,有效地允许Unix已知的补丁和差异操作. //一个JSON值 json j_original R"({"baz": ["one", "two", "three"]…...

企业沟通平台私有部署,让沟通更高效数据更安全

在现代企业中,高效的内部沟通对于保持团队合作、提升工作效率至关重要。而企业沟通平台私有部署则成为了越来越多企业的选择,以满足数据安全性、合规性以及定制化需求。WorkPlus 作为领先品牌,提供高质量的企业沟通平台私有部署解决方案&…...

Java流的体系结构(一)

文章目录 一、文件读写操作FileReader和FileWriter1.main()2.FileReader1.说明:2.代码案例 3.对read()操作升级:使用read的重载方法4.FileWriter的使用1.说明2.代码 4.FileReader和FileWriter综合使用 二、使用步骤1.引入库 二、测试FileInputStream和Fi…...

什么是Redux?它的核心概念有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是Redux?⭐ 它的核心概念有哪些?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发…...

细胞机器人系统中的群体智能

摘要 细胞机器人系统具有“智能”行为能力。本文分析了这种智能的含义。本文根据上述不可思议智能行为的不可预测性来定义机器人智能和机器人系统智能。对不可预测性概念的分析与(1)统计不可预测、(2)不可访问、(3&am…...

【办公自动化】用Python将PDF文件转存为图片(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…...

不容易解的题9.26

想编写这一版,是因为之前复习字符串或者双指针等其他栏目时候没有写文章,但是现在回过头来刷,所以想着写一篇,我在leetcode的收藏夹里收藏了一些我自认为需要多加练习的题目,它们并非是很难的,极不易理解的…...

易点易动固定资产管理系统:精准管理与科学采购,降本增效的利器

在现代企业管理中,固定资产的精准管理和科学采购已成为提升企业效率和降低成本的重要环节。为了满足企业管理的需求,我们自豪地介绍易点易动固定资产管理系统,这是一款功能强大的软件解决方案,旨在帮助企业实现固定资产的精准管理…...

人大金仓分析型数据库外部表(二)

外部表错误数据 默认情况下,如果外部表数据中包含有一个错误,命令就会失败并且不会有数据被载入到目标数据库表中。gpfdist 文件服务器使用 HTTP 协议。使用 LIMIT的外部表查询会在检索到所需的 行后结束连接,导致一个HTTP 套接字错误。 如…...

rtp流广播吸顶喇叭网络有源吸顶喇叭

SIP-7043 rtp流广播吸顶喇叭网络有源吸顶喇叭 一、描述 SIP-7043是我司的一款SIP网络有源吸顶喇叭,具有10/100M以太网接口,内置有一个高品质扬声器,将网络音源通过自带的功放和喇叭输出播放,可达到功率20W。SIP-7043作为SIP系统的…...

Spring学习笔记12 面向切面编程AOP

Spring学习笔记11 GoF代理模式_biubiubiu0706的博客-CSDN博客 AOP(Aspect Oriented Programming):面向切面编程,面向方面编程. AOP是对OOP的补充延申.底层使用动态代理实现. Spring的AOP使用的动态代理是:JDK动态代理_CGLIB动态代理技术.Spring在这两种动态代理中灵活切换.如…...

【0225】源码分析postgres磁盘块(disk block)定义

相关阅读: 【0040】 PostgreSQL数据库表文件底层结构布局分析 1. postgres磁盘块定义 在学习本文之前,需要对关系表的结构原理有一定的理解。如果不清楚PG磁盘数据表文件的布局,可阅读:...

第九章 动态规划 part11 123. 买卖股票的最佳时机III 188. 买卖股票的最佳时机IV

第五十天| 第九章 动态规划 part11 123. 买卖股票的最佳时机III 188. 买卖股票的最佳时机IV 一、123. 买卖股票的最佳时机III(难难难难难) 题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-iii/ 题目介绍&#xff…...

阿里云服务器共享型和企业级独享有什么区别?

阿里云ECS云服务器共享型和企业级有什么区别?企业级就是独享型,共享型和企业级云的主要区别CPU调度模式,共享型是非绑定CPU调度模式,企业级是固定CPU调度模式,共享型云服务器在高负载时计算性能可能出现波动不稳定&…...

Vue.js基本语法上

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《springMvc使用》 ⛺️ 生活的理想,为了不断更新自己 ! 目录 1.插值 1.1 文本 1.2 v-v-html 1.3 数据双向绑定数据(v-model) 1.4 属性&#xff…...

【1333. 餐厅过滤器】

来源:力扣(LeetCode) 描述: 给你一个餐馆信息数组 restaurants,其中 restaurants[i] [idi, ratingi, veganFriendlyi, pricei, distancei]。你必须使用以下三个过滤器来过滤这些餐馆信息。 其中素食者友好过滤器 v…...

7.4.分块查找

一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

微信小程序云开发平台MySQL的连接方式

注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...

ip子接口配置及删除

配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...