因为工作需要,最近开始折腾全志方案。手上的开发板式FriendlyARM的nanopi-M1-plus,友善之臂的板子做的还是可以滴,板子尺寸非常小,该有的接口都有,以后扩展的接口也基本预留出来了。
言归正传,这个板子的相关使用说明都需要从Wiki上查找,Wiki上虽然也提供相关代码下载(百度云盘),但是主要是工具类软件和已编译过的固件,没有相关源码。
如果是需要重新移植、编译uboot,kernel的需要到https://github.com/friendlyarm下载,仓库里的源码基本能满足使用,全志原厂的BSP的文件夹(h3_lichee)。
h3_lichee文件夹下主要包含了uboot、Linux kernel和文件系统。
step 1 下载BSP文件
国内下载github上的代码主要问题就是速度慢,还有一个问题就是这个文件在仓库中的时间太久了,下载的时候会出现下载失败的现象(我就是每次到50%的时候就失败,真是折腾死了~~)
后来在clone命令后加了depth=1,差不多半个小时就把文件给搬下来了。具体命令如下:
git clone --depth=1 https://github.com/friendlyarm/h3_lichee.git <target dir>
上面命令执行完后可以再执行
git fetch --unshallow
这样就把完整的h3_lichee文件下载下来了
step 2 准备编译环境
虚拟机(版本无所谓)+Ubuntu(14.04 LTS)
注意,一定要用14.4这个版本,否则到时候编译的时候会遇到巨大的坑(自己一开始用了16.4的版本,折腾了2天没搞定,后来发现是版本问题)
Ubuntu准备好后,接下来就要安装交叉编译工具和编译依赖包,交叉编译工具直接从Wiki提供的百度云盘上下载,把压缩文件放到 lichee/brandy/toolchain/目录下就好了,不需要解压缩。
编译依赖包的安装就比较麻烦了,因为涉及到Ubuntu版本的问题,下面所有的操作只能保证在Ubuntu 14.04 LTS下能成功
1)备份/etc/apt/sources.list
2)修改/etc/apt/sources.list内的更新源,把原有的内容删掉,添加新的源(这里推荐使用清华大学维护源,亲测了其他很多源都不行),https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/ 这个地址直接里面选择对应版本号
3)sources.list 文件更新完后,在终端执行 apt-get update
4)在终端执行下面命令(最好逐条执行,因为有些依赖包安装会出现其他附属依赖包的安装)
sudo apt-get install gawk git gnupg flex bison gperf build-essential
sudo apt-get install zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libg11-mesa-glx:i386 其中libg11-mesa-glx:i386依赖包安装会碰到些麻烦,不过只要依据系统提示来补充安装所需依赖包就能搞定
sudo apt-get install libg11-mesa-dev g++-multilib mingw32 tofrodos
sudo apt-get install python-markdown libxm12-utils xsltproc zliblg-dev:i386
上面的依赖包一定要保证安装完,否则后续的lichee文件编译会出问题
step 3 编译lichee
安装交叉编译器 编译器下载地址:http://download.friendlyarm.com/nanopim1plus,在toolchain文件里面,下载gcc-linaro-arm.tar.xz,将该压缩包放置在lichee/brandy/toochain/目录下即可,无需解压,无需手动安装编译器。 首先要把整个lichee文件夹编译下,才能再单独编译uboot和内核 cd lichee/fa_tools ./build.sh -b nanopi-m1-plus -p linux -t all
执行上述命令就能成功编译整个lichee文件,这之后就可以根据需要单独编译uboot, kernel等文件