ubuntu制作SD启动卡
嵌入式开发过程中,尤其是调试过程中,经常需要制作SD卡,作为启动卡。不同的开发板,制作过程大同小异。这就涉及到ubuntu系统对SD卡的分区、格式化等等操作,本文就详细说明一下实现步骤,提供参考。
当我们使用 SD 卡引导 linux 系统启动时, 一般需要在 SD 卡上有 2 个分区。一个分区使用FAT32 文件系统, 用于放置启动烧录文件(如 BOOT.BIN, linux,bit流文件等), 另一分区使用EXT4 文件系统, 用于存放根文件系统。
这里介绍一下基本步骤
第一步:解挂
将U盘插入ubuntu系统,单击如下图所示
我的SD卡已经做过分区,会主动挂载到ubuntu系统,查看挂载情况
可以输入如下指令
mount
如下图所示,mount信息出来的太多了,这里只是截取一少部分,可以看到U盘已经分两个区了,并且都挂载到/media/ltt/路径下
输入指令解挂
sudo umount /dev/sdb*
再次查看挂载情况
mount
如下图所示发现,U盘节点/dev/sdb已经没有任何挂载了
第二步:分区
输入命令
sudo fdisk /dev/sdb
输入
m
可以看到fdisk所有的操作指令提示,如下图所示
输入p
查看当前U盘的分区情况,如下图所示
输入d删除分区
这里的U盘有两个分区,第一次键入d,会提示删除哪一个分区,第二次键入d,直接删除最后一个分区,如下图所示,这里提醒键入d前需要,将SD卡有用数据保存
再次输入p查询分区情况,如下图所示,两个分区都被删除了
新建分区1,如下图所示依次输入
n
p
1
2048
409600
p
可以清晰的查看到分区1的大小为199M
设置分区类型,输入“ t”,输入l 查看所有分区类型,然后输入“ c”,设置为“ W95 FAT32 (LBA)” ,如下图所示
输入“ a” , 设为引导分区,如下图所示:
新建分区2,如下图所示,基本上都是默认输入了
如果现在键入p查看刚才新建分区是否正确
键入w保存(write table to disk and exit),提醒一下,这里必须要解挂,不然写不进去。
保存完毕后,格式化分区,输入如下指令
sudo mkfs.vfat -F 32 -n BOOT /dev/sdb1
sudo mkfs.ext4 -L rootfs /dev/sdb2
格式化完毕后,两个分区主动挂载进来了,如果没有主动挂载,可以拔掉SD卡再次插入试试,如果还是没有主动挂载就手动命令挂载吧
可以使用mount命令查看是否挂载,挂载的节点位置。
第三步:拷贝启动文件到分区1
这里使用的zynq开发的启动文件,根据不同的开发板使用不同的启动文件,一般都是boot,kernel,设备树的烧录文件
第四步:解压跟文件系统到分区2
找到使用根文件系统,输入如下命令,解压到SD卡分区2
sudo tar -xzf rootfs.tar.gz -C /media/ltt/rootfs
sync
完成以上四部就制作完成了,弹出SD卡,插入开发板,就可以使用了。
问题:
针对制作SD启动卡,上述文档清楚的阐述了各个步骤,但是如果量产产品有1000或者10000个SD卡需要制作,你每个SD卡要重复上述文档过程,那不是要累死人,还容易出错,这种情况该怎么办呢?