对于lichee zero本来是想用BSP-3.4内核,但是其g++是4.6版本,不能支持c++11,因此废弃。官方说4.10版本的linux目前对摄像头支持不好,可以考虑用usb接口的。
编译参考官网:https://licheezero.readthedocs.io/zh/latest/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/type.html
荔枝派 zero(全志V3S)-编译及SD烧录_Yfw&武的博客-CSDN博客_全志v3s
这里说一下过程遇到的问题:
1、uboot引导需要添加启动方式:
setenv bootcmd "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;"
setenv bootargs "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"
saveenv
reset
如果要默认参数,可以在文件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"
烧录参考:
1、配置
make menuconfig
a.target option
b.交叉编译环境 toolchain
其中根据自身交叉编译器的情况配置,
参考:buildroot根文件系统 — Lichee zero 文档
-
在本机上外部工具链配置为: /opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/
-
工具链前缀是: arm-linux-gnueabihf
-
外部工具链gcc版本:我们使用的是最新的6.3版本
-
外部工具链内核头文件:是在 arm-linux-gnueabi/libc/usr/include/linux/version.h 里读取内核版本信息。本机的版本是4.6
-
C库还是选择传统的glibc。需要小体积可以选uclibc(需要自行编译安装)。
-
再在system 设置下主机名,root密码等。
-
最后就是配置自己需要的软件包,在menuconfig中选中即可。
-
有时候下载速度慢,可以复制下载链接,使用迅雷等下载好后,拷贝到dl目录下,会自动识别。
3.配置名字和密码
问题:
1.LD_LIBRARY_PATH environment variable. This doesn't work.
使用sudo make
2. ./../misc/create_inode.c:399:18: error: conflicting types for ‘copy_file_range’
sudo vi output/build/host-e2fsprogs-1.43.3/misc/create_inode.c
===>#include "config.h"
#include <time.h>
#include <sys/types.h>
//#include <unistd.h>注释掉
#include <limits.h> /* for PATH_MAX */
#ifdef HAVE_ATTR_XATTR_H
3.Please port gnulib freadahead.c to your platform!
参考网上处理:
进入目录
sudo chmod 777 lib/stdio-impl.h
sudo sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' lib/*.c
sudo echo "#define _IO_IN_BACKUP 0x100" >> lib/stdio-impl.h
4.正在连接 cdn.kernel.org (cdn.kernel.org)|151.101.109.176|:443..
下载失败,可以直接下载:https://cdn.kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.43.4/e2fsprogs-1.43.4.tar.xz然后拷贝到dl目录下重新编译
5.启动kernel后打印:[ 11.623609] Starting init: /bin/sh exists but couldn't execute it (error -8)
rootfs没有编译好,重新编译一下
我这里写了一个直接烧录的脚本:
#!/bin/bash
echo uboot down
sudo dd if=u-boot-3s-current/u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
echo cp kernel
sudo mount /dev/sdb1 /mnt/
sudo rm -rf /mnt/*
sudo sync
echo rm kernel finish
sudo cp linux-zero-5.2.y/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dtb /mnt/
sudo cp linux-zero-5.2.y/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb /mnt/
sudo cp linux-zero-5.2.y/arch/arm/boot/dts/sun8i-v3s-licheepi-zero-with-800x480-lcd.dtb /mnt/
sudo cp linux-zero-5.2.y/arch/arm/boot/zImage /mnt/
#sudo cp u-boot/tools/boot.scr /mnt/
ls /mnt
sudo sync
sudo umount /mnt/
echo cp rootfs
sudo mount /dev/sdb2 /mnt/
sudo rm -rf /mnt/*
sudo sync
echo rm rootfs finish
sudo tar xvf buildroot-2017.08/output/images/rootfs.tar -C /mnt/ > /dev/null
sudo chmod 777 -R /mnt/*
ls /mnt/
#备注:一定要用sync来同步一下,否则导致拷贝不成功,而导致启动错误:出现devtmpfs: error mounting -2错误
sudo sync
sudo umount /mnt/
6.我挂在nfs服务器失败:配置内核支持nfs
Networking support
----->Networking options
----->[*]IP:kernel level autoconfiguralion
[*]DHCP support
File systems
---->[*]Network file system
--->[*]NFS client support
[*]NFS client support for NFS vision3
[*]NFS client support for the NFSv3 ACL protocol extension|
[*] NFS client support for NFS version 4
[*] NFS client support for NFSv4.1 (EXPERIMENTAL)
--->[*]Root file system on NFS
7.QT运行出错:
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".
Available platform plugins are: linuxfb, minimal, offscreen, vnc.
Reinstalling the application may fix this problem.
参考:
QT:could not find or load the Qt platform plugin "linuxfb"_天已青色等烟雨来的博客-CSDN博客_-platform linuxfb
export QT_DEBUG_LUGINS=1 ####用来打开调试
export QTDIR=/usr
export QT_QPA_FONTDIR=$QTDIR/lib/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins/
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0:size=800x480:mmSize=800x480:offset=0x0
export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event0
按键用不了:
1.dts添加按键设备数
2.我编译QT的时候,带了-no-libudev。重新编译,添加export QT_QPA_EVDEV_KEYBOARD_PARAMETERS=/dev/input/event0即可
8.QT中文字体参考:
https://github.com/adobe-fonts/source-han-sans/
https://github.com/googlei18n/noto-cjk