编译全志V3S(荔枝派zero)整个系统流程及后续故障答疑使⽤技巧等
全志V3S(荔枝派zero)学习
购买到的硬件
全志V3S(荔枝派zero)
官⽅5⼨液晶屏
声明⼀下⽤的主线Uboot + 主线linux,如果你是⼩⽩不幸买到了本产品建议弃坑既浪费时间,⼜浪费⽣命,⾹橙派树莓派是你更好的选择
如果想使⽤主线的特性,可以使⽤主线Uboot + 主线linux 开发环境。系统配置为dts设备树配置。
主线uboot: github/Lichee-Pi/u-boot
主线linux: github/Lichee-Pi/linux
官⽹教程 zero.lichee.pro/
全志官⽅移植wiki /Main_Page
板⼦资料 cn.dl.sipeed/shareURL/LICHEE/Zero
如何制作rootfs的基础说明debootstrap
/EmDebian/CrossDebootstrap
/Debootstrap
/Debootstrap
USB Guest configuration
/docs/guide-user/hardware/usb_gadget
trac.gateworks/wiki/linux/OTG
linux官⽅⽂档
github/Lichee-Pi//tree/zero-5.2.y/Documentation
Uboot 编译与烧录
安装交叉编译器
wget /components/toolchain/binaries/latest-7/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_ tar xvf gcc-linaro-7.5.0-2019.12-x86_64_
mv gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf /opt/
vim /etc/bash.bashrc
# add: PATH="$PATH:/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin"
source /etc/bash.bashrc
arm-linux-gnueabihf-gcc -v
sudo apt-get install device-tree-compiler
烧录TF卡之前需要分区,安装GParted后如下分区
全志sunxi-tools烧录⼯具安装(fex⽂件转为⼆进制bin⽂件,主线版本可以跳过这⼀步)
//安装依赖包(不安装会报错)
sudo apt-get install pkg-config pkgconf zlib1g-dev libusb-1.0-0-dev
//获取源码
//v3s 分⽀
git clone -b v3s github/Icenowy/sunxi-tools.git
//f1c100s-spiflash 分⽀
git clone -b f1c100s-spiflash github/Icenowy/sunxi-tools.git
//进⼊源码⽂件夹
cd sunxi-tools
//编译和安装
make && sudo make install
下载编译Uboot
git clone github/Lichee-Pi/u-boot.git -b v3s-current
#or git clone github/Lichee-Pi/u-boot.git -b v3s-spi-experimental
cd u-boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_800x480LCD_defconfig
#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_480x272LCD_defconfig
#or make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LicheePi_Zero_defconfig
make ARCH=arm menuconfig
time make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- 2>&1 | tee build.log
编译完成后当前⽬录下会⽣成boot引导⽂件 u-boot-sunxi-with-spl.bin
可以添加以太⽹补丁
Device Drivers > Network device support
添加 Allwinner Sun8i Ethernet MAC support (NEW)
烧录u-boot到TF卡
将u-boot-sunxi-with-spl.bin烧录到TF卡中
//插⼊TF卡前后查询,确认设备名称
ls /dev/sd*
//删除TF/SD的分区信息
sudo dd if=/dev/zero of=/dev/sdb bs=512K count=1
//烧录到TF卡(`u-boot-sunxi-with-spl.bin`在uboot根⽬录下)
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
/dev/sdb 名称不固定根据⾃⼰的u盘名字改
写⼊并编译bootargs引导参数
在uboot根⽬录下新建 d
d
# 写⼊以下内容
linux下gcc编译的四个步骤
setenv bootargs console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0
load mmc 0:1 0x41000000 zImage
load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero.dtb
bootz 0x41000000 - 0x41800000
第⼀⾏setenv命令,设定了变量bootargs(启动参数)为:通过tty0和ttyS0串⼝输出启动信息;启动失败延迟5秒重启,根⽂件在TF卡的第⼆分区,可读写;
第⼆⾏指定了从TF中将设备树的dtb⽂件加载到0x80C00000的位置(地址参考⾃官⽅SDK)
第三⾏指定了将压缩后的内核zImage加载到0x80008000的位置
第四⾏为从加载地址启动内核的命令
#console=ttyS[,options] 使⽤特定的串⼝
# mmcblk0p2
# mmc TF卡
# blk(block,块设备)
# 0(第⼀个块设备,也就是第⼀张sd卡)
# p(partition,分区)
# 通过设置early_printk选项,可以在内核串⼝设备初始化之前,看到打印输出
mkimage⼯具在uboot/tools⽂件夹下
sudo cp ./tools/mkimage /usr/local/bin/mkimage # 拷贝到⽤户⽂件夹下,⽅便以后可以直接使⽤
mkimage -C none -A arm -T script -d boot.scr # ⽣成`boot.scr`,然后将其放⼊第⼀分区
编译Linux内核
sudo apt-get install module-init-tools
使⽤最新的内核:
git clone -b zero-5.2.y github/Lichee-Pi/linux.git
cd linux
make ARCH=arm licheepi_zero_defconfig
make ARCH=arm menuconfig  #add bluethooth, etc.
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make modules_install INSTALL_MOD_PATH=`pwd`/output/
ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make modules_install INSTALL_MOD_PATH=/media/zzt/d1d3824d-62b2-417d-81ee-4a6e2750bc601
编译完成后,zImage在arch/arm/boot/下,驱动模块在out/下
设备树⽂件 linux内核编译中arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dtb 5⼨显⽰屏请选择sun8i-v3s-licheepi-zero-with-800x480-lcd.dtb
emdebian根⽂件系统构建,使⽤ debootstrap/multistrap 交叉安装 Debian
debootstrap是debian/ubuntu下的⼀个⼯具,⽤来构建⼀套基本的系统以上经博主测试功能均正常成功进⼊系统
Debian buster (10) rootfs 制作
1. debootstrap
sudo apt install qemu-user-static -y
sudo apt install debootstrap -y
mkdir rootfs
wget /keys/release-10.asc -qO- | gpg --import --no-default-keyring --keyring ./debian-release-10.gpg
#debootstrap --keyring=./debian-release-10.gpg --variant=minbase buster buster /debian/
debootstrap --keyring=./debian-release-10.gpg --foreign --verbose --arch=armhf  stretch rootfs /debian #debootstrap --foreign --verbose --arch=armhf  stretch rootfs /debian //Debian 9.9 (stretch)
2.
cd rootfs
mount --bind /dev dev/
mount --bind /sys sys/
mount --bind /proc proc/
mount --bind /dev/pts dev/pts/
cd ..
3.
cp /usr/bin/qemu-arm-static rootfs/usr/bin/
chmod +x rootfs/usr/bin/qemu-arm-static
4. 解压
LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
可以在这个时候
LC_ALL=C LANGUAGE=C LANG=C chroot rootfs
安装任何东西
5.
passwd ###设置roofs root密码
apt-cache clean #删除安装包
exit
rm rootfs/usr/bin/qemu-arm-static
6. 在rootfs下⾯运⾏ tar fs.gz .
可以⽣成包,任意解压到⽂件系统即可
modify /etc/apt/sourc.list
deb /debian stretch main
modify /etc/ssh/sshd_config
PermitRootLogin yes
Buildroot 根⽂件系统构建
wget /downloads/buildroot-2021.
tar xvf buildroot-2021.
cd buildroot-2021.02
make menuconfig
查询编译⼯具链所在位置:
which arm-linux-gnueabihf-gcc
读取编译⼯具链⾥的内核版本:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。