2)TF启动卡制作全过程

我是参考以下的帖子完成TF卡的制作的,非常感谢!

https://blog.csdn.net/Code_MoMo/article/details/104623584?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

http://www.xn--bnq31s.xn--fiqs8s/?id=100
第一步 准备工作
首先下载制作荔枝派zero TF卡需要用的文件。

1、u-boot:https://github.com/Lichee-Pi/u-boot/archive/v3s-current.zip
2、Linux kernel:https://github.com/Lichee-Pi/linux/archive/zero-4.10.y.zip
3、Buildroot:https://buildroot.org/downloads/buildroot-2017.08.1.tar.gz
还有一些编译器gcc、g++、arm-linux-gnueabihf-gcc之类的,都需要apt-get安装。

第二步 编译u-boot、Linux kernel和Buildroot源码
一、u-boot编译
1、在解压好的u-boot文件夹下输入以下命令(这个是默认设置):

现修改u-boot的一些配置,让他能够从TF卡启动:

修改u-boot源码文件夹下的 include/configs/sun8i.h:

添加如下代码:

#define CONFIG_BOOTCOMMAND "setenv bootm_boot_mode sec; " \
"load mmc 0:1 0x41000000 zImage; " \
"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " \
"bootz 0x41000000 - 0x41800000;"

#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"


然后准备编译,添加配置:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig


如果要使用通用4.3寸屏请输入:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig
群主网店5寸屏:

ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig
2、输入以下命令,进行menuconfig
ARCH=arm make menuconfig
会弹出配置页面:


不动它,直接退出。
当然,向自己修改修改配置也是可以的。
3、开始编译
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make


注意:生成了u-boot文件:u-boot-sunxi-with-spl.bin
这个文件我们之后要烧写进TF卡中。
二、Linux kernel编译
输入以下命令,这是默认配置:

CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
开始编译内核( j4的意思是用四个CPU核心去多线程编译 ):

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4

编译好的内核镜像在/arch/arm/boot下,文件名叫zImage

这个zImage就是内核镜像,我们之后要烧写到TF卡中。
下一步是设备树的编译:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs

编译好的设备树文件在/arch/arm/boot/dts文件夹下: 

我们把这个sun8i-v3s-licheepi-zero-dock.dtb文件考出来,这个是设备树文件,等下也要烧到TF卡中。
三、Buildroot编译
执行以下命令:

make menuconfig
然后照着官网:https://licheezero.readthedocs.io/zh/latest/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/buildroot.html

一步一步配置。

官网的看不懂,乱七八糟的看不懂,我去晕哥的whycan上找了个帖子,里面有个配制好的文件:

https://whycan.cn/files/members/4/buildroot-v3s-20171122.zip

具体使用方法我一步一步讲,因为帖子上有的小白也看不懂。

先复制到虚拟机里面,然后解压,得到文件 buildroot-v3s-20171122.config

然后这里注意了啊,使用mv命令把这个文件移动到buildroot-2017.08这个源码文件夹下,并把这个文件名字改成.config

具体命令如下(我目前的路径就在这个配置文件的地方):

mv buildroot-v3s-20171122.config buildroot-2017.08/.config

然后这个配置文件就挪到了buildroot里面,里面的配置就会按照这个文件进行编译。

然后make它:

期间会下载很多软件包,下载速度非常慢,有一个方法是在控制台上复制他们的下载链接,用迅雷等下载器下载,然后复制到buildroot文件夹下的dl文件夹中,要是dl文件夹没有,那就先make一下,在ctrl+C取消掉,就会生成了。

然后再重新make,就会在/output/images下生成roofs.tar这个文件。

这个文件就是我们的文件系统,要烧录到TF卡中。

至此,需要的镜像全部编译完,拿到需要的四个文件:

 

三、开始烧写TF卡


那个这种读卡器,怼到USB口上。

先装个ubuntu上的分区软件:

sudo apt-get install gparted

右上角选择自己的TF卡,然后把这个TF分区全都卸载删除,点这个绿色的√,确定。我们接下来分区。

1、创建放zImage和dtb设备树文件的分区:
新建这个boot这个分区,32M大小,fat16格式

 

新建rootfs这个分区,剩余空间都给了,ex4格式。

点确定:

拔插一下U盘:

会识别出两个盘符,分区完成:

2、开始烧录
首先使用命令将u-boot烧写到TF卡8k偏移处:

注意,我是root权限下!
dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8


这个/dev/sdb 指的是TF卡,你的可能是sdb也有可能是sdc,主要还是用命令 fdisk -l 来查看:

 

接着把zImage和dtb文件直接拷贝到boot这个分区下:

 

然后把rootfs.tar这个文件直接解压到rootfs这个分区下:

tar xvf rootfs.tar -C /media/momo/rootfs/


你的U盘自动挂载在/media这个文件夹下。

 

然后弹出TF卡,TF制作完成!

四、插上TF卡,上电测试启动

 


成功启动!

登录账号:root

密码:无密码

posted @ 2020-08-07 14:50  Tankiii  阅读(1498)  评论(0编辑  收藏  举报