整个流程主要参考了晕哥的帖子,非常棒的帖子,少走很多弯路,同时感谢群里大佬们的指点,很顺利就编译完成了。但是对于初次尝试编译系统的人来说,还是有些蒙的,记录一下,希望对你有帮助。
荔枝派Zero V3s开发板入坑记录 (TF/SD卡启动)(主线Linux,主线u-boot)
系统安装后的软件安装
1. sudo apt-get install gcc-arm-linux-gnueabihf 安装arm linux 硬件浮点数工具链, 因为V3s支持VFPv4 浮点单元
2. sudo apt-get install git 安装git
3. Sudo apt-get install make
4. Sudo apt-get install gcc
5. sudo apt-get install libncurses5-dev
6. sudo apt-get install device-tree-compiler
7. sudo apt-get install python
8. sudo apt-get install flex
9. sudo apt-get install bison
10. sudo apt-get install libssl-dev
11. sudo apt-get install vim
12. sudo apt-get install g++
13. sudo apt install gparted 分区工具,创建SD卡系统时用
14. u-boot
首先获取u-boot源码:
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-current
如果你需要支持spi flash:
git clone https://github.com/Lichee-Pi/u-boot.git -b v3s-spi-experimental
15. 修改 include/configs/sun8i.h, 使u-boot可以直接从tf卡启动:
#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"
有必要单独说说gcc的安装,卡了一阵子
16. 安装gcc
env sudo -E bash 改成root用户
vim /etc/bash.bashrc 修改配置文件,并按i进入编辑
添加这一句 PATH="$PATH:/home/yyl/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf/bin"
然后按esc 输入:wq!回车强制保存并退出
source /etc/bash.bashrc 使配置文件生效
arm-linux-gnueabihf-gcc -v 查看是否安装成功
17. 编译Uboot
cd u-boot
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig (群主网店5寸屏)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig (通用4.3寸屏)
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig (默认)
ARCH=arm make menuconfig
执行编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
多核编译,避免cpu其他内核打酱油, J后的参数是参与编译的cpu个数:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j3
u-boot-sunxi-with-spl.bin
18. 编译设备树
此部分在u-boot目录执行
生成荔枝派Zero 默认配置文件: CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
设备树文件(默认不需要修改):
arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
编译内核:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
编译设备树:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
19. kernel的编译
20. 获取Linux源码(zero-5.2.y分支对网卡支持比较好): git clone https://github.com/Lichee-Pi/linux.git -b zero-5.2.y
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
21. 进入buildroot目录, #make menuconfig进入配置修改
这里我跟晕哥的配置是不一样的是使用外部编译器,添加目录为gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabihf实际目录,这样做的原因是gcc下载很慢,我选择了手工下载,然后单独安装
22. make
编译完成后,在output/images/文件夹下的rootfs.tar就是根文件系统
烧录部分就看晕哥的帖子吧
离线
离线