【鲁班猫2】构建buildroot系统

1,准备工作

下载必备软件包,此处我用的为如下包

前置软件包:sudo apt install -y sed make binutils build-essential gcc g++ patch gzip bzip2 perl tar cpio unzip rsync file bc wget
buildroot版本:https://buildroot.org/downloads/buildroot-2022.05.1.tar.gz
交叉编译器版本:https://mirrors.aliyun.com/armbian-releases/_toolchain/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz?spm=a2c6h.25603864.0.0.6e933441kRP7sW

2,配置buildroot

2.1 配置芯片相关内容

Target options配置
  1. Target Architecture (AArch64):指定目标体系结构为AArch64(也称为ARM64),这是适用于64位ARM处理器的架构,此处配置为小端模式。
  2. Target Binary Format (ELF): 选择目标二进制文件的格式,ELF(Executable and Linkable
    Format)是常见的目标文件格式。
  3. Target Architecture Variant (Cortex-A55):选择特定的处理器型号,这里是Cortex-A55,适用于rk3568,它是ARM的一个节能处理器内核,适用于移动设备和嵌入式系统。
  4. Floating point strategy (FP-ARMv8):指定浮点运算的策略,FP-ARMv8代表使用ARMv8架构的浮点单元。
    在这里插入图片描述
Build options

默认配置即可

Toolchain
  1. Toolchain type (External toolchain): 选择工具链类型,外部工具链表示使用已经存在的工具链。
  2. Toolchain origin (Pre-installed toolchain): 选择预装的工具链路径。
  3. Toolchain prefix: 设置工具链的前缀,指定目标架构工具链的前缀名称。
  4. External toolchain gcc version: 选择外部工具链的 GCC 版本。
  5. External toolchain kernel headers series: 选择内核头文件的版本。
  6. External toolchain C library: 选择使用的 C 库版本,如 glibc。

在这里插入图片描述

System configuration
  1. 在 Buildroot 的 System configuration 中,/dev management 配置为 Dynamic
    using devtmpfs + mdev 意味着设备文件管理将采用动态方法。

    • devtmpfs: 是一个内核提供的临时文件系统,它会自动在 /dev 目录中创建基本的设备文件。
    • mdev: 是 busybox 提供的一个轻量级设备管理工具,负责在系统启动时及设备热插拔时动态管理 /dev 中的设备节点。

    这种组合适用于轻量级嵌入式系统,减少了对更复杂的设备管理守护程序(如 udev)的依赖。

在这里插入图片描述

到此全部配置完成。

2.2 编译

进行编译

make -j8

编译到一定过程中会提示报错,是因为我们RK3568 使用的内核镜像版本为4.19.232版本(查看版本可在开发板输入,uname -r查看),在buildroot中要配置一致,即为4.19.232,转换为16进制为0413E8,对应的十进制为267240
在这里插入图片描述
对此我们需要修改编译器下的一个文件,路径为:/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/aarch64-none-linux-gnu/libc/usr/include/linux/version.h

#define LINUX_VERSION_CODE 267240
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

即可,然后继续编译,到此编译已经全部完成,在output目录下的images下会生成rootfs.tar压缩包

3,打包文件系统

  1. 进入到output/images 目录下找到rootfs.tar ,然后创建两个文件夹,分别为sys和rootfs
  2. 解压rootfs.tar出来到sys文件夹:tar -xvf rootfs.tar -C sys/
  3. 在制作一个为.img格式的文件输入:dd if=/dev/zero of=rootfs.img bs=1M count=你想要的大小,符和文件系统大小
  4. 在格式化:mkfs.ext4 rootfs.img
  5. 在挂载img,sudo mount rootfs.img rootfs
  6. 复制sys的文件到挂载的文件中:sudo cp -rfpd sys/* ./rootfs
  7. 取消挂载sudo umount rootfs
  8. 修复及检测镜像文件系统:sudo e2fsck -p -f rootfs.img
    在这里插入图片描述

4,下载文件系统

  1. 删除原来LubanCat_SDK/rockdev下的rootfs.img ,将我们生成的rootfs.img拷贝到该目录
  2. 在使用./build/sh updateimg 重新打包烧录即可
    在这里插入图片描述

烧录完成,顺利进入buildroot文件系统
在这里插入图片描述

5,添加qt以及weston以及适配

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值