写在前面:新手V3S入坑,为了记录Lichee Zero主线编译,TF卡烧录过程
开发板:Lichee Zero 二代一体开发板
开发环境:Ubuntu18.04
TF卡:闪迪16GTF卡
U-boot:v3s-current
Linux:linux-zero-5.2.y
buildroot:buildroot-2019.11-rc2
一、搭建环境
1、下载安装交叉编译器
wget https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
tar xvf xxxx.tar.xz
mv xxx /opt
2、修改环境变量
sudo vim /etc/bash.bashrc
添加
PATH="$PATH:/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin"
3、使环境变量生效:
source /etc/bash.bashrc
4、查看设置是否生效
arm-linux-gnueabihf-gcc -v
二、u-boot
1、下载u-boot,https://github.com/Lichee-Pi/u-boot/ 注意不同分支版本不一样
https://github.com/Lichee-Pi/u-boot/tree/v3s-current
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
#or git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental
2、修改配置,以及编译
①修改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.dtb; " \
"bootz 0x41000000 - 0x41800000;"
#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"
注: load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero.dtb,需要跟kernel下的dts对应
②编译
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log
编译完成后,在当前目录下生成了u-boot-sunxi-with-spl.bin,可以烧录到TF卡8K偏移处启动
三、Kernel
1、下载,编译源码:https://github.com/Lichee-Pi/linux
git clone https://github.com/Lichee-Pi/linux.git
cd linux
make ARCH=arm licheepi_zero_defconfig
make ARCH=arm menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 INSTALL_MOD_PATH=out modules(可省略)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 INSTALL_MOD_PATH=out modules_install(可省略)
2、编译完成后,zImage在arch/arm/boot/下,dtb在arch/arm/boot/dts/下
编译完成后,zImage在arch/arm/boot/下,驱动模块在out/下,dtb文件在arch/arm/boot/dts/下,(sun8i-v3s-licheepi-zero-block.dtb)
四、buildroot
1、下载buildroot:https://buildroot.org/downloads/
wget https://buildroot.org/downloads/buildroot-2017.08.tar.gz
tar xvf buildroot-2017.08.tar.gz
cd buildroot-2017.08/
2、配置和编译
make menuconfig
①target options配置
②Toolchain配置
dl下的包需要下载下载可能很慢,可以先下载好放入DL目录下
③System configuretion配置
④编译:make ,#
有时候构建会出现莫名其妙的错误,make clean下
bulidroot编译完成后, 会生成 output/images/rootfs.tar, 此即所需的根文件系统
五、制作TF卡以及写入文件
1、卸载盘符,删除文件,重新分区
32M Fat16 kernel
xxx ext4 rootfs
2、磁盘管理工具重新挂载,df 查看,设备在/dev/sdc
/media/lrz/kernel
/media/lrz/rootfs
3、写TF卡
①进入v3s-current目录
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdc bs=1024 seek=8
②进入linux-zero-5.2.y内核目录
cp arch/arm/boot/zImage /media/lrz/BOOT
cp arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb /media/lrz/BOOT
sudo umount /dev/sdc1
③进入buildroot-2019.11-rc2目录
sudo tar xvf output/images/rootfs.tar -C /media/lrz/rootfs
sudo umount /dev/sdc2
六、上电启动:
可登陆串口终端查看启动log:
默认使用的是UART0
波特率:115200
登录账号root,无密码
离线