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

    文章

    6085

    浏览量

    35199
  • 安卓
    +关注

    关注

    5

    文章

    2120

    浏览量

    57001
  • Firefly
    +关注

    关注

    2

    文章

    538

    浏览量

    6983
收藏 人收藏

    评论

    相关推荐

    roofs文件系统简介制作(下)

    文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在文件系统中,而
    的头像 发表于 09-18 09:26 1818次阅读
    roofs<b class='flag-5'>根</b><b class='flag-5'>文件系统</b><b class='flag-5'>简介</b>制作(下)

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

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

    Linux文件系统简介

    Linux文件系统简介 什么是文件   文件系统
    发表于 04-21 17:01 5101次阅读

    Firefly-RK3399文件系统介绍

    创建 Ubuntu 文件系统 准备工作 安装qemu
    的头像 发表于 11-23 10:55 2051次阅读
    <b class='flag-5'>Firefly</b>-RK3399<b class='flag-5'>根</b><b class='flag-5'>文件系统</b>介绍

    Firefly-PX3-SE主板FAQ方案

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

    Firefly关于PX3-SE系统Qt介绍

    Firefly-PX3-SE的Buildroot系统,目前支持三种Qt版本
    的头像 发表于 11-29 09:49 2505次阅读
    <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 1912次阅读

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

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

    Firefly-PX3-SE主板启动介绍

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

    Firefly-PX3-SE主板串口介绍

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

    fireflyROC-RK3328-PC编译Ubuntu 文件系统简介

    编译 Ubuntu 文件系统
    的头像 发表于 12-21 09:45 1426次阅读

    如何制作一个自启动的Linux文件系统

    (制作编译控制 mtd 分区及 jffs2 文件系统工具)(4) squashfs3.3.tar (制作 squashfs 文件系统工具)(5) cramfs-1.1.tar (制作 cramfs
    发表于 04-22 08:00 1次下载
    如何制作一个自启动的Linux<b class='flag-5'>根</b><b class='flag-5'>文件系统</b>

    嵌入式Linux--文件系统(一)简介

    、/mnt目录12、/tmp目录二、常用文件系统构建工具简介1、BusyBox工具2、Buildroot工具3、Yocto工具一、简介
    发表于 11-01 17:59 1次下载
    嵌入式Linux--<b class='flag-5'>根</b><b class='flag-5'>文件系统</b>(一)<b class='flag-5'>简介</b>

    rootfs文件系统制作

    本文记录了文件系统的一些知识点,Busybox 工具的使用和 最小文件系统的制作。
    发表于 10-31 11:56 2次下载

    Linux文件系统的挂载过程

    Linux文件系统(rootfs)是Linux系统中所有其他文件系统和目录的起点,它是内核启动时挂载的第一个文件系统
    的头像 发表于 10-05 16:50 264次阅读