硬件平台:野火IMX6ULL
软件:ubuntu18.04
一. 将SD卡创建分区
$ sudo fdisk /dev/sdb
(p:打印分区表,d:删除分区,n:添加新分区)
通过p 指令查看SD卡本身有几个分区,大多数情况都是一个分区,根据分区数量,输入d 命令来删除分区,如两个分区进行删除,则输入两次d 命令,过程如下:
d 删除分区
输出:
命令(输入 m 获取帮助): d 分区号 (1,2, 默认 2): 分区 2 已删除。
命令(输入 m 获取帮助): d 已选择分区 1 分区 1 已删除。
n 添加新分区
输出:
命令(输入 m 获取帮助): n 分区类型 p 主分区 (0 个主分区,0 个扩展分区,4 空闲) e 扩展分区 (逻辑分区容器)选择 (默认 p): p 分区号 (1-4, 默认 1): 1 第一个扇区 (2048-15728639, 默认2048): 20480 上个扇区,+sectors 或, +size{K,M,G,T,P} (20480-15728639, 默认 15728639): 1024000
创建了一个新分区 1,类型为"Linux",大小为 490 MiB。
再创建第二个分区
命令(输入 m 获取帮助): n 分区类型 p 主分区 (1 个主分区,0 个扩展分区,3 空闲) e 扩展分区 (逻辑分区容器)选择 (默认 p): p 分区号 (2-4, 默认 2): 2 第一个扇区 (2048-15728639, 默认2048): 1228800 上个扇区,+sectors 或, +size{K,M,G,T,P} (1228800-15728639, 默认 15728639): (默认)创建了一个新分区 2,类型为"Linux",大小为 6.9 GiB。
w 将分区表写入磁盘并退出
输出:
命令(输入 m 获取帮助): w 分区表已调整。正在同步磁盘。
最后,在终端中使用以下命令确认 SD 卡分区更改完成,当输出有 sdb1 与 sdb2 则表示完成,可以进行后续操作。
命令:
ls /dev/ | grep sdb
输出:
sdb
sdb1
sdb2
二. 制作SD卡启动介质
使用野火提供的boot2sdcard.sh 脚本工具,一键烧录
1、使用读卡器把 SD 卡连接到 Ubuntu 上,执行 fdisk -l 查看所有系统设备,可以看到 SD 卡已经被为/dev/sd*设备,后面的 * 具体表示 SD 卡的驱动编号。
2、把系统组件和烧录脚本放在同一个文件夹下,在 Ubuntu 中运行 SD 卡镜像制作脚本:
#./boot2sdcard.sh uboot kernel devicetree rootfs
# 这里的 uboot、kernel、devicetree、rootfs 分别泛指具体组件的文件名,示例:
./boot2sdcard.sh u-boot-sd-2016.03-r0.imx zImage imx6ull-14x14-evk.dtb debian9-desktop-rootfs.tar.bz2
3、脚本执行后,系统提示输入 SD 卡编号。比如上面示例识别 sd 卡设备为/dev/sdb1、/dev/sdb2,直接输
入编号"b"即可。注意:sd 卡编号一定不要输错!!!
4、等待系统烧录完毕后,调整开发板启动方式为 SD 卡启动,插入 SD 卡,上电即可启动IMX6ULL开发板。