制作sd启动卡

首先要了解开发板是否支持sd启动,如果系统不支持sd卡启动就放弃这种方法

首先,插入sd卡到Linux虚拟机中,打开命令行,输入ls /dev/sd*来打印出你的sd卡路径。

这里我的为sdb

 然后fdisk /dev/sdb 来对sd卡进行操作,按照提示输入相关选项进行操作。

使用n创建一个分区,然后按p,这里选择将第一个分区作为u-boot的分区,给u-boot镜像留1M的空间,所以新创建的分区用来放zImage和dtb,这里给他们留10M空间,操作方式如下,下图为创建一个分区并设置分区大小为1M。

 同理,在创建一个新的分区用来放文件系统,这里文件系统分区大小为zImage分区地址+1 -- sd卡最大地址范围。

分配完空间后,设置p1为u-boot分区

 

 这里选择c W95 FAT32 (LBA),把分区system id类型设置为fat。然后使用a,选择第一个分区为boot类型。

最后出现的效果如下:

 创建完分区之后,还需要对分区进行格式化。把p1的fstype格式化为fat,p2的fstype格式化为ext3分区。mke2fs可以用-t选项指定为ext3或者ext4。

mkfs.vfat -F 32 -n "boot" /dev/sdb1
mke2fs -t ext4 -F -L "rootfs" /dev/sdb2

烧录u-boot镜像

dd if=u-boot.imx of=/dev/mmcblk0 bs=1024 seek=1 conv=fsync

通过dd命令烧录uboot.imx到SD卡。这里需要使用seek跳过前1K,这个跟这款芯片有关。

 到这里就可以用sd卡启动u-boot了

烧录内核镜像,这里使用挂载的方式进行烧录,其实也可以直接粘贴到对应的盘里。烧录内核镜像时要注意内核支持ext4文件系统

mkdir -p /tmp/kernel
mount /dev/mmcblk0p1 /tmp/kernel
cp -r /mnt/dfos.dtb /tmp/kernel
cp -r /mnt/zImage /tmp/kernel
umount /tmp/kernel

烧录文件系统,同理

mkdir -p /tmp/rootfs
mount /dev/mmcblk0p2 /tmp/rootfs
tar -vxf /mnt/rootfs.tar.bz2 -C /tmp/rootfs/
umount /tmp/rootfs
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值