Firefly-PX3-SE

采用PX3-SE四核处理器,主频高达1.3GHz,工业级的稳定性,工作温度-20℃ ~ 80℃。Firefly-PX3-SE采用底板和核心板组合方式,核心板具有多种配置可选,轻松控制成本,极低的成本与优秀的性能让产品极具性价比。

编译根文件系统

更新时间:2018-04-21 阅读:5657

目录

准备工作

编译 Buildroot 对机器的配置的要求:

  • 64 位 CPU

  • 8GB 物理内存+交换内存

  • 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 10GB

建议使用 Ubuntu 64ibt 系统开发,如 Ubuntu 14.04 64ibt、Ubuntu 16.04 64ibt等,避免出现环境问题。

编译环境的初始化:

您需要一个 64 位版本的 Ubuntu 。注意:使用老版本 Ubuntu 可能会有兼容性问题。

  • Ubuntu 14.04 软件包安装:

$ 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 ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gn
u/libGL.so


  • 安装 ARM 交叉编译工具链和编译内核相关软件包

$ sudo apt-get install gcc-arm-linux-gnueabihf \
gcc-aarch64-linux-gnu device-tree-compiler lzop libncurses5-dev \
libssl1.0.0 libssl-dev

下载 SDK

由于 SDK 比较大,我们提供了一个打包好的.git以供下载

下载完成后先验证一下 MD5 码:

$ md5sum Firefly-PX3-SE_Buildroot_git_180421.7z
21b8c26d61731ce7bacc9000d39f33ed  Firefly-PX3-SE_Buildroot_git_180421.7z

确认无误后,就可以解压:

mkdir -p ~/proj/Firefly-PX3-SE
cd ~/proj/Firefly-PX3-SE
7zr x Firefly-PX3-SE_Buildroot_git_180421.7z
git reset --hard
git remote add gitlab git@gitlab.com:TeeFirefly/px3se-buildroot.git

以后就可以直接从 gitlab 处更新:

git pull gitlab firefly-px3se:firefly-px3se

也可以到 https://gitlab.com/TeeFirefly/px3se-buildroot 在线浏览源码。

编译内核

编译内核:

cd ~/proj/Firefly-PX3-SE/kernel
make ARCH=arm px3se_linux_defconfig
make ARCH=arm px3se-fireprime.img -j8

编译 rootfs

编译 rootfs:

cd ~/proj/Firefly-PX3-SE
. envsetup.sh
cd ~/proj/Firefly-PX3-SE/buildroot/
make rockchip_px3se_defconfig && cd ..
./build_all.sh && ./mkfirmware.sh

其中,envsetup.sh 是终端环境变量设置脚本。有些模块可通过rk_make.sh单独编译,此时需要设置终端环境变量。

注意:Buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。buildroot/dl/目录存在从官网上下载的开源软件包,第一次下载后,下次就不会再去从官网下载了,而是从dl/目录下拿开源包。因此由于国内网络限制,第一次编译会很漫长。为了节省时间,我们提供了基本上会用到的软件包,下载解压,将dl目录拷贝到buildroot/下即可。

firefly脚本编译

firefly提供了便捷的编译脚本工具。

编译uboot:

cd ~/proj/Firefly-PX3-SE
./make.sh -u

编译内核:

cd ~/proj/Firefly-PX3-SE
./make.sh -k -d px3se-fireprime

注意:-d dts_file_name,dts默认使用px3se-fireprime.dts

编译根文件系统:

cd ~/proj/Firefly-PX3-SE
./make.sh -a

全部编译:

cd ~/proj/Firefly-PX3-SE
./make.sh

烧写分区映像

上一步骤的 ./mkimage.sh 会重新打包 rootfs.img。 并将其它相关的映像文件拷贝到目录 rockimg/中。以下列出一般固件用到的映像文件:

  • kernel.img :内核映像。

  • recovery.img :急救模式映像。

  • resource.img :资源映像,内含开机图片和内核的设备树信息。

  • rootfs.img:根文件系统,ext4 文件系统格式。

请参照 如何升级固件 一文来烧写分区映像文件。

如果使用的是 Windows 系统,将上述映像文件拷贝到 AndroidTool (Windows 下的固件升级工具)的 rockdev\Image 目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。

打包成统一固件

  • 在ubuntu下打包统一固件,编译好SDK后,在SDK根目录执行./FFTools/mkupdate/mkupdate.sh。即可生成统一固件Firefly-PX3SE_Buildroot_DEFAULT_xxxxxx.img

  • 在 Windows 下打包统一固件 update.img 很简单,按上一步骤将文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。

update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。