基于 RV1126B 评估板的 Linux 系统开发详解(一)

前 言

本文涵盖了Linux系统开发的各个环节,包括开发环境的搭建、LinuxSDK的配置与编译、U-Boot、Kernel及Rootfs的开发,以及系统镜像的替换方法。同时介绍系统镜像的打包与解包、关键计算单元(CPU、NPU)和内存子系统(DDR)性能策略配置与管理的详细步骤,旨在帮助开发者完成系统开发。

开发环境

Windows开发环境:Windows10 64bit

Linux开发环境:VMware16.2.5、Ubuntu22.04 64bit

LinuxSDK开发包:LinuxSDK-[版本号](基于rv1126b_linux6.1_release_v1.2.0)

评估板系统版本:U-Boot 2017.09、Linux-6.1.141、Buildroot-2024.02

交叉编译工具链:

应用开发:aarch64-buildroot-linux-gnu-gcc(版本为13.4.0,通过LinuxSDK编译生成)

U-Boot、内核开发:gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu

备注:本文基于16GByte eMMC、2GByte LPDDR4X配置核心板进行演示。

术语表

为便于阅读,下表对文档出现的关键术语进行解释;对于广泛认同释义的术语,在此不做注释。

1 LinuxSDK配置与编译

请先参考《开发环境搭建》文档正确安装LinuxSDK和依赖软件,再执行以下步骤。

1.1配置编译选项

进入LinuxSDK源码目录,配置LinuxSDK编译选项。

Host# cd /home/tronlong/RV1126B/rv1126b_linux6.1_release/

Host# ./build.sh lunch:tl1126_evm_defconfig

1.1.1配置编译设备树文件

我司提供的设备树文件位于LinuxSDK源码"kernel/arch/arm64/boot/dts/rockchip"目录。设备树文件根据评估板部分复用外设功能进行区分。具体说明如下表。

其中,ETH1 RGMII和ETH2(FEPHY)只能选择支持其中一个,tl1126-evm.dts设备树文件通过修改宏定义选择支持ETH1 RGMII或ETH2(FEPHY)。设备树默认支持ETH1 RGMII,如需启用ETH2(FEPHY),可参考如下方法修改设备树文件。

修改如下内容:

#define ETH_RGMII_1000M 0 //设置宏为0,关闭ETH1 RGMII

#define ETH_FEPHY_100M 1 //设置宏为1,开启ETH2(FEPHY)

评估板使用的设备树文件存在多级的依赖关系,具体如下表所示。表中的下一级设备树文件,被上一级设备树文件所引用。

LinuxSDK默认编译的设备树文件为tl1126-evm.dts,如需替换为支持对应功能的其他设备树,请参考以下步骤修改。本次操作以替换为tl1126-evm-mipi-lcd设备树(支持MIPI LCD显示)进行演示,其他设备树修改方法同理。

进入LinuxSDK源码目录执行如下命令,进入SDK配置界面。

Host# ./build.sh config

选择"Kernel",按Enter键进入到下一级配置选项。

选择"device-tree script name",按Enter键后,进入编辑页面。

进入编辑页面将"tl1126-evm"修改为"tl1126-evm-mipi-lcd",选择"Ok",按Enter键退出编辑页面。

选择"Save",按Enter键保存配置。

在弹出的界面中按选择"Ok",按Enter键保存。

在弹出的界面中按Enter键完成保存操作,修改会自动保存至"device/rockchip/.chips/rv1126b/tl1126_evm_defconfig"下的配置文件中。

1.1.2配置内核选项

我司默认配置的是Linux内核(推荐使用)。如需修改内核编译选项配置,请继续执行"./build.sh kernel-config"命令打开图形配置界面。此命令通过读取当前目录的.config文件,以图形界面的方式提供内核编译配置查看和修改方法。如无需修改内核编译选项配置,可跳过此步骤。

menuconfig是一套图形化的配置工具,需要ncurses库支持。ncurses库提供了一系列的API函数供调用者生成基于文本的图形界面,因此需要先执行如下命令通过网络安装ncurses库。

**Host#**sudo apt-get install libncurses5-dev

**Host#**sudo apt-get install libncursesw5-dev

ncurses库安装完成后,进入LinuxSDK源码目录,配置LinuxSDK编译选项。

Host# cd /home/tronlong/RV1126B/rv1126b_linux6.1_release/

Host# ./build.sh tl1126_evm_defconfig

执行如下命令进入内核配置菜单。

Host# ./build.sh kernel-config

可通过键盘的方向键选中对应菜单栏。在**<Select>** 被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。

每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y 键,会将相应的选项配置编译到内核中,同时菜单选项前面变为**< * >** 。按下N 键,不会将相应的选项配置编译为内核模块。按下M 键,会将相应的选项配置编译为内核模块,菜单选项前面变为**< M >** 。如需搜索,可按下**/**键打开搜索框,然后输入要搜索的内容。

配置完毕后,选中**<Save>** ,按Enter 键保存配置选项。然后选中**<Exit>** ,按Enter键退出。

备注:若配置有改动,退出menuconfig后脚本会自动将改动保存到原始的defconfig文件。原始的defconfig文件位于LinuxSDK源码"kernel/arch/arm64/configs/rockchip_linux_defconfig"目录下。

1.1.3配置Buildroot

如需修改Buildroot配置,请执行如下命令打开Buildroot配置界面。若无需修改Buildroot配置,可跳过此步骤。

Host# cd /home/tronlong/RV1126B/rv1126b_linux6.1_release/

Host# ./build.sh buildroot-config

可通过键盘的方向键选中对应菜单栏。在**<Select>** 被选中的情况下,可按Enter键进入子菜单。菜单选项中蓝色高亮的字母代表此菜单选项的快捷键,可在键盘上按下对应的字母快速选中对应的菜单选项。

每个菜单选项前的括号内容表示当前菜单选项的配置状态。选中对应的菜单选项后,按下Y 键,会将相应的选项配置编译到Buildroot中,同时菜单选项前面变为**< * >** 。按下N 键,不会将相应的选项配置编译到Buildroot中。如需搜索,可按下**/**键打开搜索框,然后输入要搜索的内容。

配置完毕后,选中**<Save>** ,按Enter 键保存配置选项。然后选中**<Exit>** ,按Enter键退出。若配置有改动,退出menuconfig后脚本会自动将改动保存到原始的defconf文件。

1.2编译LinuxSDK

请确保已参照"配置编译选项"章节配置LinuxSDK编译选项,然后在LinuxSDK的源码目录下执行如下命令,一键编译生成U-Boot、Kernel、Buildroot、Recovery等镜像,并打包生成Linux系统镜像。

Host# ./build.sh

预计耗时约2小时后编译完成,最终在rockdev目录下生成U-Boot、Kernel、Buildroot、Recovery、Linux系统等镜像如下所示。

1.3系统组件镜像说明

相关推荐
Mr数据杨15 小时前
【CanMV K210】传感器实验 DHT11 温湿度读取与环境监测
人工智能·硬件开发·canmv k210
Mr数据杨16 小时前
【CanMV K210】传感器实验 BMP280 温度气压与高度检测
人工智能·硬件开发·canmv k210
Mr数据杨1 天前
【CanMV K210】显示交互 LCD1602 I2C 通信与滚动文本显示
人工智能·交互·硬件开发·canmv k210
深圳市尚想信息技术有限公司1 天前
TL072HIDR双通道高性能JFET输入运算放大器TI德州仪器 电子元器件IC芯片
运算放大器·工业控制·电子元器件·放大器·德州仪器·运放芯片
Deepoch2 天前
以终端智能实现自主除草:Deepoc具身模型开发板的技术落地
人工智能·开发板·具身模型·deepoc·除草
Mr数据杨2 天前
【CanMV K210】显示交互 OLED 128x64 智能状态面板设计
人工智能·交互·硬件开发·canmv k210
2023自学中2 天前
imx6ull开发板,Linux-c编程,识别 键盘、鼠标、触摸屏坐标
linux·嵌入式·开发板·应用编程
BW.SU3 天前
PackagingTool 嵌入式资源打包合并工具
单片机·二进制·嵌入式开发·资源合并软件·图片打包
Mr数据杨4 天前
【CanMV K210】通信扩展 WiFi Socket TCP Client 通信
人工智能·硬件开发·canmv k210