【全志V3S开发】(四)-系统烧录

一、检查烧录文件夹下的文件

前期已经建立好烧录文件夹,路径为/home/daemonchen/linux/V3S/mysys_kernel_5.2.y,经过前期的移植,烧录文件夹下应该包含以下四个文件:

文件名作用
rootfs根文件系统
sun8i-v3s-licheepi-zero-dock.dtb设备树
u-boot-sunxi-with-spl.binuboot
zImagelinux内核镜像

具体文件如下图所示:

二、格式化SD卡 

1. 在windows主机端利用SD Card Formatter软件格式化SD卡(确保SD卡中无重要文件):

2. 依次选择自己SD卡对应的盘符(我的是G盘),选择快速格式化(可以直接删除inode,速度块),然后Format,进度条结束即格式化完成。 

三、制作SD卡分区

1. 在主机弹出SD卡挂载,将SD卡重新挂载到虚拟机ubuntu端。

虚拟机上的Super Top Mass Storage Device大容量存储设备显示“断开连接(连接主机)”,则已将SD卡挂载到虚拟机ubuntu端。

2. 在Ubuntu下找到用于设置SD卡分区的GParted软件。

3. 双击打开(需要输密码),右上角选择/dev/sdb(即SD卡盘符)

4. 将已创建的/dev/sdb1分区 右键 卸载并删除。 

5. 点击左上角的 对勾 同步一下

6. 点击左上角加号创建新分区,之前剩余空间输入2MB(主要用来存放uboot),新大小输入20MB,文件系选择fat16,点击添加

7. 再次点击左上角加号创建新分区,之前的空余空间填0,这次将剩余的空间全部分配,文件系统是ext4

8. 分配完成的SD卡分区如下图所示,再次点击左上角对勾同步一下。

9. 在终端输入以下命令查看刚才创建的分区: 

sudo su
fdisk -l

创建好的分区如下图所示:

至此,SD卡分区创建完成。

 四、开始烧录

1. 进入烧录文件夹下的并打开终端

2. 将uboot写入到sd卡8k偏移处。

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

烧录完成:

3. 在烧录文件夹下创建mnt文件夹(用来挂载SD卡分区)。将内核文件,启动参数文件,dtb写入到sd卡的第一分区sdb1。 

sudo mkdir mnt
sudo mount /dev/sdb1 mnt
sudo cp zImage mnt/
sudo cp sun8i-v3s-licheepi-zero-dock.dtb mnt/
sync
sudo umount /dev/sdb1

4. 进入rootfs目录下,打包所有文件,名称为rootfs.tar.gz,并将其移动到烧录文件夹下,最后要回到烧录文件夹下。

cd rootfs
tar -czvf rootfs.tar.gz *
mv rootfs.tar.gz ../ -f
cd ../

5.将根文件系统内容写入到sd卡的第二分区sdb2。(之前不压缩rootfs直接写入的话会报错)。

sudo mount /dev/sdb2 mnt/
sudo rm -rf mnt/*
sudo tar xzvf rootfs.tar.gz -C mnt/
sudo dd if=/dev/zero of=mnt/swap bs=1M count=128
sudo mkswap mnt/swap
sudo echo "/swap swap swap defaults 0 0" >> mnt/etc/fstab
sync
sudo umount /dev/sdb2
sudo rm -rf mnt

五、启动测试 

1. ubuntu端取消SD卡挂载(尽量别直接拔,会丢文件),将SD卡插入licheepi,上电启动,利用SecureCRT查看串口输出(串口0,用USB转串口接电脑)。但此时上电会有如下问题:

原因是没有设置bootcmd和bootargs

2. 复位电路板,在uboot倒计时结束前按回车键,进入设置界面。如下图所示:

设置bootcmd和bootargs:

setenv bootargs 'console=tty0 console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw  vt.global_cursor_default=0'
setenv bootcmd 'mmc dev 1; fatload mmc 0:1 0x41000000 zImage; fatload mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; bootz 0x41000000 - 0x41800000'
saveenv

3.  重启以后,可以实现开机倒计时结束自启动,版本号正确。

4. 进入根文件系统正常。

至此移植完毕!!! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值