0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Firefly-PX3-SE编译根文件系统简介

firefly 来源:firefly 作者:firefly 2019-12-04 08:32 次阅读
编译根文件系统
准备工作
编译 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
  • 目前Buildroot默认支持的Qt版本为Qt5.9.1,此版本要求主机的编译工具GCC和G++的版本必须为4.8以上,所以如果当前编译环境的GCC和G++版本小于4.8,请先更新GCC和G++版本,再进行编译。
下载 SDK

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

  • Firefly-PX3-SE_Buildroot_git_180421.7z

下载完成后先验证一下 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

更新remote地址,解决更新仓库时的权限问题:

git remote set-url gitlab https://gitlab.com/TeeFirefly/px3se-buildroot.git

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

git pull gitlab firefly-px3se:firefly-px3se

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

编译uboot

编译内核:

cd ~/proj/Firefly-PX3-SE/u-boot make px3se_linux_defconfig make -j8
编译内核

编译内核:

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/下即可。

  • 开源软件包:dl.7z
firefly脚本编译

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

  • 编译uboot:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -u
  • 编译内核:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -k -d px3se-fireprime

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

  • 编译根文件系统:
cd ~/proj/Firefly-PX3-SE ./FFTools/make.sh -a
  • 以上全部编译:
cd ~/proj/Firefly-PX3-SE ./FFTools/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 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34614
  • 安卓
    +关注

    关注

    5

    文章

    2081

    浏览量

    54507
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6757
收藏 人收藏

    评论

    相关推荐

    文件系统的制作

    ,mv等。  文件系统的制作就是生成包含上述各种文件文件系统的过程,可通过直接拷贝宿主机上交叉编译器处的
    发表于 04-29 21:32

    【OK210试用体验】构建文件系统

    下的console设备节点。编译linux内核使之支持initramfs,此处为了测试,内核关闭看门狗,以免不能喂狗造成系统复位。在General setup下打开支持initramfs以及相应的
    发表于 01-10 16:01

    文件系统挂载错误

    ,会出现如下情况,感觉是死掉了一样,控制台敲什么都没有反应。如下所示。内核是我自己编译的: linux-3.4.2 ,打patch 文件linux-3.4.2_100ask.patch文件系
    发表于 03-11 04:32

    常用文件系统构建工具有哪些

    11、/mnt目录12、/tmp目录二、常用文件系统构建工具简介1、BusyBox工具2、Buildroot工具3、Yocto工具一、简介
    发表于 11-05 07:28

    如何使用Ubuntu 16.04编译文件系统

    如何使用Ubuntu 16.04编译文件系统
    发表于 03-09 07:57

    [Firefly-RK3399] 网络启动Kernel与Buildroot文件系统

    网络启动,是用 TFTP 在服务器下载内核、dtb 文件到目标机的内存中,同时可以用 NFS 挂载网络文件系统到目标机上,实现目标机的无盘启动。准备工作:Firefly-RK3399
    发表于 04-07 15:16

    Firefly Debian文件系统使用手册指南

    Debian 是一个文件系统,所以只需要将 Firefly 官方提供的固件的 rootfs.img 文件系统替换成 Debian
    发表于 07-12 17:56

    使用Buildroot构建文件系统的方法简析

    1、怎么使用Buildroot构建文件系统?  制作文件系统有归多种方法:  使用Busybox手工制作  Busybox本身包含了很了Linux命令,但是要
    发表于 11-04 15:41

    Linux根文件系统简介

    Linux根文件系统简介 什么是根文件   根文件系统首先是一种文件系统,但是相对于普通的文件系统
    发表于 04-21 17:01 5027次阅读

    Firefly-PX3-SE主板FAQ方案

    FAQ 开机异常卡死或重启 可能是电源电流不够,请使用电压为 5V,电流为 2.5A~3A 的电源 系统用户名和密码 用户:root 密码:123 多U盘挂载问题 目前Firefly-PX3-SE
    的头像 发表于 11-29 09:29 962次阅读
    <b class='flag-5'>Firefly-PX3-SE</b>主板FAQ方案

    Firefly关于PX3-SE系统Qt介绍

    Firefly-PX3-SE的Buildroot系统,目前支持三种Qt版本
    的头像 发表于 11-29 09:49 2134次阅读
    <b class='flag-5'>Firefly</b>关于<b class='flag-5'>PX3-SE</b><b class='flag-5'>系统</b>Qt介绍

    Firefly-PX3-SE主板音频输入输出介绍

    Firefly-PX3-SE有三路音频输出、两路音频输入。
    的头像 发表于 12-02 15:15 1575次阅读

    Firefly-PX3-SE--WIFI模块及以太网简介

    关于Firefly-PX3-SE网络的使用,目前在设置app里面只能使用WiFi以及WIFI热点功能,以太网功能暂时还没添加。
    的头像 发表于 12-02 16:56 1222次阅读

    Firefly-PX3-SE主板启动介绍

    Firefly-PX3-SE 有灵活的启动方式。
    的头像 发表于 12-04 08:36 1222次阅读

    Firefly-PX3-SE主板串口介绍

    Firefly-PX3-SE 开发板的调试串口与 TF 卡接口有信号引脚复用,因此无法同时使用。
    的头像 发表于 12-04 08:49 1317次阅读
    <b class='flag-5'>Firefly-PX3-SE</b>主板串口介绍