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
密码:无密码