arm linux制作启动TF卡

6 篇文章 1 订阅
5 篇文章 0 订阅

作为一个linux初学者,这会总命令行的方式很不习惯,特别是制作启动盘,确实花费了很多时间去学习。这里把制作启动盘的过程简单写一下。可能过程有一些重复的,以后有经验了再优化吧。

硬件环境:orangepi3;芯片:全志H6;源代码:linux4.9

首先看一下好用的tf卡的格式。其中前20m未分区的空间用来放boot0和uboot。分区1用来放kernal、intird和一些配置文件。分区2是放rootfs。

这里需要注意的是分区1的标识是lba(逻辑块寻址模式),因为这个问题开始折腾了很久。

下面开始正式制作启动盘。

1、格式化TF卡

  使用fdsik /dev/sdb,查看tf卡。然后按m,查看支持的命令。可以先按p,查看现在的分区状态。

然后按d,把两个分区都删了。

注意:完了事别忘了按w,保存。

2、分区

分区的话可以使用fdisk去新建分区,但是需要计算sector的起始位置,然后一步到位。也可以使用类似于gparted这种分区软件,操作比较简单。如图所示

这里需要注意的是:前面剩余空间按需要留20m,新分区大小50m,文件系统为fat16或者fat32。

剩余的可以全部划分为ext4分区。划分完,tf卡分区如图。

这是用fdisk看磁盘的信息如图。

会发现第一个分区的公式是w95 fat32,并没有lba。这里就需要更改一下这个分区的模式。先用l命令查看已知的模式,然后按t,讲磁盘模式更改为w95 fat32(lba)。

这是磁盘信息就变成w95 fat32 (LBA)

至此,格式化已完成。

3、制作boot0和uboot

这里直接使用dd指令,将做好的boot0和uboot拷贝到tf卡的指定位置可以。

指令分别是:

dd bs=1k seek=8 count=20000 if=/dev/zero of=/dev/sdb (清除数据);

dd if=xxx.bin of=/dev/sdb conv=notrunc bs=1k seek=8(写入boot0,这里seek=8,即从8k位置开始写);

dd if=xxx.bin of=/dev/sdb conv=notrunc bs=1k seek=16400(写入uboot,这里seek位置需要自己计算);

到这里,boot0和uboot已经烧写到tf卡里了。把tf卡拿到开发板上启动,已经可以进到uboot了。最后会停在加载kernal那一步。

4、拷贝kernal和rootfs

这一步就比较简单了,将uImage,initrd.img,x.dtb和uEnv.txt几个文件拷贝到boot这个分区就可以。

然后将buildroot生成的rootfs.tar拷贝到rootfs分区,并解压。

这了还有一点需要注意,那就是解压完最好sync一下。我遇到过好几次,不知道什么原因丢文件。

现在整个制作过程就完成了。

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值