【写在前面】
两种情况:
第一,直接在本机安装Linux Ubuntu16.04,那么按照网上的教程安装配置即可,此处提醒最好把硬盘配置大一些,便于之后的其他模块内核驱动的编译和移植,40G以上,越大越好。
第二,在VMware Workstation 工具中安装 Linux Ubuntu16.04 ,可以按照下方给出链接进行百度云盘下载 VMware Workstation 12版本 和 ubuntu-16.04.4-desktop-amd64.iso 镜像。
链接:https://pan.baidu.com/s/159k9A9E14gZGitRzE0Yifg 密码:wqj2 【长期有效】
【安装环境】
【第一步,初始化编译环境】
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip tar curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 cmake tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 lzop
其中这几个软件尤为重要
sudo apt-get install build-essential lzop libncurses5-dev libssl-dev libc6:i386
为了方便,大家可以直接用 root 超级用户操作所有步骤。
【敲黑板】 安装上述软件中,libgl1-mesa-glx:i386 可能会爆错,显示需要依赖文件
libgl1-mesa-glx:i386 : 依赖: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.6)
推荐: libgl1-mesa-dri:i386 (>= 7.2)
这种情况,可以换成安装 libgl1-mesa-dri:i386 安装包。
类似于这样的问题,大家可以使用 sudo apt-get install aptitude 安装 aptitude
使用aptitude安装软件命令:sudo aptitude install xxx
aptitude与 apt-get 是互相补充的,有一些功能对方没有。
aptitude了解和搜索的安装信息比apt-get 全面一些,具体优势如下:
reinstall, show, search, hold, unhold【apt-get 没上这五个功能】
apt-get: source【aptitude没有】, build-dep【低版本的aptitude没有】
apt-get与aptitude共有的功能:update, upgrade (apt-get upgrade=aptitude safe-upgrade, apt-get dist-upgrade=aptitude full-upgrgade)
【第二步,创建软链接】
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
【第三步,安装编译工具链】
sudo apt-get install gcc-arm-linux-gnueabihf \ gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev \ libssl1.0.0 libssl-dev
如果一次性安装出现错误,请逐个安装即可。或者可以使用 aptitude install xxx
【获取内核源码kernel】
git clone -b firefly https://github.com/FireflyTeam/kernel.git ( 2.2G )
【配置环境变量】
【敲黑板】这里是我遇到最大的坑,由于官文网站rk3399这个部分改版,小编居然把环境变量给写错了,之后的兄弟不要被坑了
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu- 这是正确的
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- 这是错误的
如果大家误用官网给的上述错误的命令,一定会出现 没有规则生成 rk3399-firefly-linux.dtb文件,而且会一直重复出现该问题,哪怕你重装环境无数遍,这个问题一直不能解决,因为编译工具链官方给错啦,可能是小编改版的时候贴错了吧。
【开始编译 rk3399】
make firefly_linux_defconfig //配置环境变量 和make menuconfig 效果是一样的 make rk3399-firefly-linux.img -j4 //make img 文件
编译成功会出现:
并且在kernel 目录下,会生成 kernel.img resource.img
关于 kernel.img 和 resource.img 以及如何找到loder.img启动文件在下一篇内容中 , 其中会有量产工具的介绍和烧入方式。