跳到主要内容

常见问题

1.如何查看Debian显示用X11还是Wayland?

在X11系统上:

$ echo $XDG_SESSION_TYPE
x11

在Wayland系统上:

$ echo $XDG_SESSION_TYPE
wayland

2.Debian如何增加swap分区

当系统的物理内存不够用的时候,就可以增加Debianswap虚拟内存分区,以供当前运行的程序使用。比如创建⼀个2G的虚拟内存: 创建⼀个swap⽂件

cd /opt
mkdir swap
dd if=/dev/zero of=swapfile bs=1024 count=2000000 //count代表的是⼤⼩,这⾥是2G

把文件转换为swap文件

sudo mkswap swapfile

激活swap文件

swapon /opt/swapfile
卸载:
swapoff /opt/swapfile

开机启动后自动挂载的话,可以将以下内容添加到/etc/fstab文件中:

/opt/swapfile swap swap defaults 0 0

3.如何创建系统开机自启动程序?

  • 将自启动程序放入/etc/rc.local,开机就会自启动(不能写在exit 0之后);也可以写到/etc/init.d下面的某个文件。
  • systemd方法: 在/usr/local/bin创建脚本test.sh:
#!/bin/bash
echo "111" > /dev/ttyFIQ0

赋予脚本可执行权限:

chmod +x test.sh
/lib/systemd/system是系统服务目录,里面文件由发行版的维护者创建
/etc/systemd/system是本地管理员自定义服务配置,不会被/lib/systemd/system服务覆盖

进入/etc/systemd/system添加自己的自启动服务,创建demo.service,添加如下内容

[Unit]
Description=Run a Custom Script at Startup
After=network.target
[Service]
ExecStart=/usr/local/bin/test.sh
[Install]
WantedBy=default.target

使用以下命令重新加载systemd守护进程配置

systemctl daemon-reload

使用以下命令建立符号链接关系

systemctl enable demo.service

启动服务

systemctl start demo.service

如需禁止,执行以下命令

systemctl disable demo.service

4.Debian deb包的解压、修改、重新打包方法

如果很多想在原先deb上修改重新打包,方法如下:

#解压出包中的文件到extract目录下
dpkg -X xxx.deb extract/

#解压出包的控制信息extract/DEBIAN/下:
dpkg -e xxx.deb extract/DEBIAN/

# 修改方件XXX
# 对修改后的内容重新进行打包生成deb包
dpkg-deb -b extract/ .

5. Debian 系统触摸屏如何旋转?

安装xinput:

sudo apt update
sudo apt install xinput

识别触摸屏设备名称: 记录你的 触摸屏设备名称或 ID(比如 "UsbHID SingWon-CTP-V1.18B" 或 id=8)。

linaro@linaro-alip:~$ xinput list list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ UsbHID SingWon-CTP-V1.18B id=8 [slave pointer (2)]
⎜ ↳ SIGMACHIP Usb Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ headset-keys id=6 [slave keyboard (3)]
↳ rk805 pwrkey id=7 [slave keyboard (3)]
↳ UsbHID SingWon-CTP-V1.18B id=9 [slave keyboard (3)]
↳ Dell Dell USB Entry Keyboard id=10 [slave keyboard (3)]

旋转��触摸输入映射:

方向Transformation Matrix
正常1 0 0 0 1 0 0 0 1
左旋90°0 -1 1 1 0 0 0 0 1
右旋90°0 1 0 -1 0 1 0 0 1
翻转180°-1 0 1 0 -1 1 0 0 1

设置触摸旋转命令:

xinput set-prop 8 "Coordinate Transformation Matrix" 0 -1 1 1 0 0 0 0 1

6. Debian/Ubuntu 如何进行OTA升级?

(1)检查系统是否包含userdata分区 在开发板执行ls /userdata查看是否存在,若不存在,需在SDK打开该分区配置:

启用userdata分区

修改SDK中device/rockchip/rk3588/parameter.txt配置文件:

-CMDLINE: mtdparts=rk29xxnand:0x00000800@0x00001800(env),0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),-@0x00078000(rootfs:grow)
+CMDLINE: mtdparts=rk29xxnand:0x00002000@0x00004000(uboot),0x00002000@0x00006000(misc),0x00020000@0x00008000(boot),0x00040000@0x00028000(recovery),0x00010000@0x00068000(backup),0x01c00000@0x00078000(rootfs),0x00040000@0x01c78000(oem),-@0x01cb8000(userdata:grow)

修改SDK中tools/linux/Linux_Pack_Firmware/rockdev配置文件:

boot Image/boot.img
recovery Image/recovery.img
rootfs Image/rootfs.img
+userdata Image/userdata.img

如果是Ubuntu文件系统,还需要修改SDK中的fstab文件:

--- a/ubuntu/overlay/etc/fstab
+++ b/ubuntu//overlay/etc/fstab
@@ -9,4 +9,4 @@ sysfs /sys sysfs defaults 0 0
debugfs /sys/kernel/debug debugfs defaults 0 0
pstore /sys/fs/pstore pstore defaults 0 0
#PARTLABEL=oem /oem ext2 defaults 0 2
-#PARTLABEL=userdata /userdata ext2 defaults 0 2
+PARTLABEL=userdata /userdata ext2 defaults 0 2

(2)编译Recovery相关程序

  • external/recovery/:主要生成recovery二进制bin程序,recovery模式下的关键程序。

  • external/rkupdate/:主要生成rkupdate二进制bin程序,解析update.img固件中各个分区数据,并执行对各分区执行升级的关键程序,该程序被recovery二进制bin程序内部调用。 以下为修改以上两个目录中的源码文件之后的编译方法:

    1. source envsetup.sh
    2. 选择某一平台的 recovery 配置
    3. make recovery-dirclean && make recovery
    4. make rkupdate-dirclean && make rkupdate
    5. ./build.sh recovery
    6. ./mkfirmware.sh
    7. 烧写 recovery.img

(3)升级流程

  • 编译各组件

    .build.sh //编译uboot、kernel和rootfs
    .build.sh debian //编译Debian文件系统;如果是ubuntu,执行./build.sh focal或者./build.sh jammy
  • 打包完整固件

    ./build.sh updateimg //生成镜像文件:SDK/rockdev/update.img
  • 查看升级后的compatible字段

    cat /proc/devices-tree/compatible

(4)OTA升级包准备

修改tools/linux/Linux_Pack_Firmware/rockdev/package-file文件,根据需要升级的分区来配置。升级包可以只包含部分分区,以减小包大小。

注意事项

  • recovery.img在升级包中不会在Recovery模式下升级,以避免掉电时导致分区损坏。此分区将在normal系统下升级。
  • misc分区不建议打包进升级包,因为该分区会在升级后被清空。
  • 如果升级包存放在userdata分区,确保package-file中未包含userdata.img,以避免文件系统损坏。

(5)示例:仅升级boot.img

修改设备树

编辑设备树kernel/arch/arm64/boot/dts/rockchip/rk3588-neardi-linux-lkd3588-f0.dts:

--- a/kernel/arch/arm64/boot/dts/rockchip/rk3588-neardi-linux-lkd3588-f0.dts
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3588-neardi-linux-lkd3588-f0.dts
@@ -24,5 +24,5 @@
#include "rk3588-neardi-linux-ld160-ov13855-os04a10-dphy1.dtsi" //dphy1
/ {
model = "Rockchip RK3588 NEARDI LKD3588 Board";
- compatible = "neardi,lkd3588-linux-f04,", "rockchip,rk3588";
+ compatible = "neardi,lkd3588-linux-f05,", "rockchip,rk3588";
};

编译内核

./build.sh kernel

修改rk3588-package-file文件

tools/linux/Linux_Pack_Firmware/rockdev/rk3588-package-file文件中仅保留boot.img:

--- a/tools/linux/Linux_Pack_Firmware/rockdev/rk3588-package-file
+++ b/tools/linux/Linux_Pack_Firmware/rockdev/rk3588-package-file
@@ -5,14 +5,15 @@ package-file package-file
bootloader Image/MiniLoaderAll.bin
parameter Image/parameter.txt
#trust Image/trust.img
-uboot Image/uboot.img
-misc Image/misc.img
+#uboot Image/uboot.img
+#misc Image/misc.img
#resource Image/resource.img
#kernel Image/kernel.img
boot Image/boot.img
recovery Image/recovery.img
-rootfs Image/rootfs.img
+#rootfs Image/rootfs.img
+#oem Image/oem.img
+#userdata Image/userdata.img

打包升级包

./build.sh updateimg

(6)执行升级

将编译服务器生成的 update.img 复制到设备的 /userdata 目录:

sudo scp neardi@192.168.1.200:~/sdk/rk3588/linux/rk3588-linux/rockdev/update.img /userdata/

执行OTA升级命令:

sudo update ota /userdata/update.img

升级过程中可通过串口调试查看进度:

Checking in progress on 1 disk (24.2% complete)
Checking in progress on 1 disk (25.6% complete)

升级完成后,验证compatible是否更新:

cat /proc/device-tree/compatible

如显示neardi,lkd3588-linux-f05,说明升级成功。

7. Debian软件包重构

Debian第三方软件包修改并重新打包步骤如下:

1. apt-get build-dep <pkg> ##安装编译依赖包
2. apt source <pkg> ##下载<pkg>包的源码
3. 创建git,打补丁
4. dpkg-buildpackage -b -uc -us -d ##重新打包编译

比如:更改Xserver软件包,修改并重新打包deb,方法如下:

注意确认/etc/apt/source.list中deb-src开启,另外更新源apt update

- 安装依赖包
apt-get build-dep xorg-server-source

- 下载Xorg-xserver源码
apt source xorg-server-source

- 创建git,打补丁
$ cd xorg-server_*
$ git init && git add .
$ git commit -s "xxxxx"

- 开始编译打包deb
dpkg-buildpackage -b -uc -us -d

8. Debian docker构建

支持通过PC环境来构建Docker编译相关源码,并打包成deb便于集成到系统中。 具体参考文档<SDK>/docs/cn/Linux/Docker/Rockchip_Developer_Guide_Debian_Docker_CN.pdf

9. Debian分区管理

Debian系统支持开机check\resize\mount rootfs/oem/userdata等分区处理

系统增加resize-all.service相关服务,支持各格式分区的resize功能。

系统服务在/lib/systemd/system/resize-all.service和主要执行文件是/usr/bin/resize-helper/usr/bin/disk-helper

其中调试log在/var/log/resize-all.log,如下:

root@linaro-alip:~# cat /var/log/resize-all.log
Start resizing all internal mounted partitions
Log saved to /var/log/resize-all.log
[19]: Handling /dev/sda8 /userdata ext4 rw,relatime,stripe=128
[18]: Handling /dev/sda7 /oem ext4 rw,relatime
[0]: Handling /dev/sda6 / ext4 rw,relatime
[19]: Already resized /dev/sda8(ext4)
[18]: Already resized /dev/sda7(ext4)
[0]: Already resized /dev/sda6(ext4)

挂载分区方面,正常kernel cmdine root=PARTUUID=614e0000-0000会被rootfs挂载在根目录,oem/userdata写在/etc/fstab中systemd启动时钟会挂载处理。

root@linaro-alip:/# cat /etc/fstab
/* <file system> <mount point> <type> <options> <dump> <pass> */
proc /proc proc defaults 0 0
devtmpfs /dev devtmpfs defaults 0 0
devpts /dev/pts devpts mode=0620,ptmxmode=0666,gid=5 0 0
tmpfs /dev/shm tmpfs nosuid,nodev,noexec 0 0
sysfs /sys sysfs defaults 0 0
debugfs /sys/kernel/debug debugfs defaults 0 0
pstore /sys/fs/pstore pstore defaults 0 0
PARTLABEL=oem /oem ext4 defaults 0 2
PARTLABEL=userdata /userdata ext4 defaults 0 2
<dump> <pass> */

文件系统:设备名或UUID,也可以是⽹络文件系统(NFS)的路径。
挂载点:文件系统的挂载点,例如 / 或 /mnt/mydrive。
文件系统类型:如 ext4、ntfs、swap 等。
挂载选项:挂载时使用的选项,例如 defaults、ro(只读)、noatime 等。多个选项之间用逗号分隔。
dump:此字段用于 dump 命令,通常设置为 0,表示不需要备份。
pass:此字段用于 fsck 命令,数字表示 fsck 检查的顺序。根文件系统通常是 1,其他文件系统是 2,设置为 0 表示不检查。

10. Debian图形适配方案

目前主要支持X11和Wayland的显示架构,主要使用组合如下:

  • X11系统默认适配组合: xfce4/lxde + xserver + lightdm
  • WAYLAND系统默认适配组合: Weston+Wayland或gnome + Wayland + gdm3

11. 显示架构配置方案

  • X11/Xserver目前搭配是LXDE/XFCE轻量级桌面环境,桌面管理器使用lightdm
  • GNOME作为主流桌面环境,主要与WAYLAND显示服务器协议配合使用,并通过gdm3桌面管理器 进行配置。若要测试WAYLAND相关的演示程序,可以切换至Weston桌面环境,这与SDK中通过 Buildroot或Yocto构建的桌面系统相同。

12. Debian音视频适配方案

先介绍rockchip平台视频编解码大概得流程

vpu_service --> mpp --> GStreamer/rockit --> app
vpu_service: 驱动
mpp: rockchip平台的视频编解码中间件,相关说明参考mpp文档
GStreamer/rockit: 对接app等组件

目前Debian系统上主要用GStreamer来对接app和编解码组件。 编解码功能, 也可以直接通过mpp提供测试接口进行测试 (比如mpi_dec_test\mpi_enc_test...)

mpp源码参考 <SDK>/external/mpp/

测试demo参考: <SDK>/external/mpp/test

具体参考SDK文档Rockchip_Developer_Guide_MPP_CN.pdf

13. 音频Pulseaudio通路适配

默认音频使用pulseaudio,正常只要配置/etc/pulse/default.pa 目前SDK中适配ES8388RK809两款Codec 具体参考Debian官网Pulseaduio<SDK>/docs/Common/AUDIO/Rockchip_Developer_Guide_PulseAudio_CN.pdf

14. MPP、VPU适配

默认MPP预编译成deb集成在

/usr/lib/aarch64-linux-gnu/librockchip_mpp.so
/usr/lib/aarch64-linux-gnu/librockchip_mpp.so.0
/usr/lib/aarch64-linux-gnu/librockchip_mpp.so.1

同时确保内核有/dev/mpp_service相关节点 具体参考<SDK>/docs/Linux/Multimedia/Rockchip_Developer_Guide_MPP_CN.pdf

15. rkaiq调试

  • 确认rkaiq版本以及相关log

    root@linaro-alip:/# cat /var/log/syslog |grep rkaiq
    ...
    Jun 18 17:37:50 linaro-alip rkaiq: ************************** VERSION INFOS
    **************************
    Jun 18 17:37:50 linaro-alip rkaiq: version release date: 2023-10-07
    Jun 18 17:37:50 linaro-alip rkaiq: AIQ: AIQ v5.0x4.0
    Jun 18 17:37:50 linaro-alip rkaiq: IQ PARSER: Calib
    v1.4.8,magicCode:1170944
    Jun 18 17:37:50 linaro-alip rkaiq: ************************ VERSION INFOS END
    ************************
  • rkaiq服务有没有起来

    root@linaro-alip:/# ps aux |grep rkaiq
    root 2339 0.0 0.4 163020 8076 ? Sl 17:37 0:00 /usr/bin/rkaiq_3A_server
    root 2340 0.0 0.0 8508 1240 ? S 17:37 0:00 logger -t rkaiq
    root 2699 0.0 0.0 6264 604 ttyFIQ0 S+ 17:42 0:00 grep rkaiq
  • 内核ISP调试debug log

    echo 3 > /sys/module/video_rkisp/parameters/debug
    echo 3 > /sys/module/video_rkcif/parameters/debug
  • rkaiq debug log

    AE模块log:
    echo 0x1ff4 > /tmp/.rkaiq_log
    AWB模块log:
    echo 0x2ff4 > /tmp/.rkaiq_log
    AF模块log:
    echo 0x4ff4 > /tmp/.rkaiq_log
    HDR模块log:
    echo 0x20ff3 > /tmp/.rkaiq_log
    NR模块log:
    echo 0x40ff4 > /tmp/.rkaiq_log
    Dehaze log:
    echo 0x2000ff3 > /tmp/.rkaiq_log
    Sharp log:
    echo 0x80000ff4 > /tmp/.rkaiq_log
    CAMHW log:
    echo 0x4000000ff4 > /tmp/.rkaiq_log
  • 检查设备节点信息

    root@linaro-alip:/# grep '' /sys/class/video4linux/video*/name
    /sys/class/video4linux/video0/name:stream_cif_mipi_id0
    /sys/class/video4linux/video1/name:stream_cif_mipi_id1
    /sys/class/video4linux/video2/name:stream_cif_mipi_id2
    /sys/class/video4linux/video3/name:stream_cif_mipi_id3
    /sys/class/video4linux/video4/name:rkcif_scale_ch0
    /sys/class/video4linux/video5/name:rkcif_scale_ch1
    /sys/class/video4linux/video6/name:rkcif_scale_ch2
    /sys/class/video4linux/video7/name:rkcif_scale_ch3
    /sys/class/video4linux/video8/name:rkcif_tools_id0
    /sys/class/video4linux/video9/name:rkcif_tools_id1
    /sys/class/video4linux/video10/name:rkcif_tools_id2
    ...

16. Debian电源管理适配方案

(1)电源管理适配

Debian上电源管理比较复杂,不同系统存在多个待机路径,如:我们添加的power-key.sh按键待机(pm-utils或者直接写节点), pm-utils命令待机(执⾏hook脚本后写节点)。 xfce4、mate、gnome等桌面系统的电源管理中自动待机、UI或按键待机,一般是优先systemd,然后consolekit或pm-utils systemd(直接写节点),这边统一优先让systemd默认使用pm-utils来实现待机唤醒的流程。

Debian的overlay/etc/Powermanager 默认有集成相关配置文件

├── 01npu
├── 02npu
├── 03wifibt
├── 04wifibt
├── power-key.conf
├── power-key.sh
├── triggerhappy
└── triggerhappy.service

可查看etc/init.d/rockchip.sh电源管理有一些特别处理。特别是NPU和RKWIFIBT的部分,同时增加电源按键得处理。

# support power management
if [ -e "/usr/sbin/pm-suspend" -a -e /etc/Powermanager ] ;
then
mv /etc/Powermanager/power-key.sh /usr/bin/
mv /etc/Powermanager/power-key.conf /etc/triggerhappy/triggers.d/
if [[ "$CHIPNAME" == "rk3399pro" ]];
then
mv /etc/Powermanager/01npu /usr/lib/pm-utils/sleep.d/
mv /etc/Powermanager/02npu /lib/systemd/system-sleep/
fi
mv /etc/Powermanager/03wifibt /usr/lib/pm-utils/sleep.d/
mv /etc/Powermanager/04wifibt /lib/systemd/system-sleep/
mv /etc/Powermanager/triggerhappy /etc/init.d/triggerhappy

rm /etc/Powermanager -rf
service triggerhappy restart
fi

如果有其他特别模块需要唤醒处理,可以放在以下两个配置目录里

/usr/lib/pm-utils/sleep.d/ 和 /lib/systemd/system-sleep/

待机唤醒测试参考/rockchip-test/suspend_resume/suspend_resume.sh 其他芯片相关休眠唤醒的处理可具体参考<SDK>/docs/cn/Common/TRUST/Rockchip_RK3588_Developer_Guide_System_Suspend_CN.pdf开发文档。

(2)电源管理配置

这边主要介绍xfce4的电源管理配置,主要涉及DPMS和待机休眠相关配置。具体配置说明如下:

#/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml
<channel name="xfce4-power-manager" version="1.0">
<property name="xfce4-power-manager" type="empty">
<!-- Let other power manager(e.g. trigger-happy) handle power key -->
<property name="power-button-action" type="uint" value="0"/>
<!-- Disable DPMS(auto screen-off) by default -->
<property name="dpms-enabled" type="bool" value="false"/>
<property name="blank-on-ac" type="int" value="0"/>
<!-- Disable Screen lock by default -->
<property name="lock-screen-suspend-hibernate" type="bool" value="false"/>
</property>
</channel>

17. Debian固件升级方案

Debian固件升级方式主要如下:

  • USB升级

  • SD卡或U盘启动升级

  • 烧录器升级

  • OTA升级

    OTA升级分Recovery升级(包括Loader、Parameter、其他分区、客户自定义分区)、A/B分区升级、差分升级 具体参考<SDK>/docs/cn/Linux/Recovery/Rockchip_Developer_Guide_Linux_Upgrade_CN.pdf

18. 下载"Base Debian"失败问题

  • 由于编译 Base Debian 需要访问国外网站,而国内网络访问国外网站时,经常出现下载失败的情况:

Debian 使用live build,镜像源改为国内可以这样配置:

32位系统:
+++ b/ubuntu-build-service/{buster/bullseye}-desktop-armhf/configure
@@ -11,6 +11,11 @@ set -e
echo "I: create configuration"
export LB_BOOTSTRAP_INCLUDE="apt-transport-https gnupg"
lb config \
+ --mirror-bootstrap "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-chroot "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-chroot-security "http://mirrors.ustc.edu.cn/debian-security" \
+ --mirror-binary "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-binary-security "http://mirrors.ustc.edu.cn/debian-security" \--apt-indices false \--apt-recommends false \--apt-secure false \

64位系统:--- a/ubuntu-build-service/{buster/bullseye}-desktop-arm64/configure
+++ b/ubuntu-build-service/{buster/bullseye}-desktop-arm64/configure
@@ -11,6 +11,11 @@ set -e
echo "I: create configuration"
export LB_BOOTSTRAP_INCLUDE="apt-transport-https gnupg"
lb config \
+ --mirror-bootstrap "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-chroot "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-chroot-security "http://mirrors.ustc.edu.cn/debian-security" \
+ --mirror-binary "http://mirrors.ustc.edu.cn/debian" \
+ --mirror-binary-security "http://mirrors.ustc.edu.cn/debian-security" \
--apt-indices false \
--apt-recommends false \
--apt-secure false \

19. 系统如何设置开机启动进入命令行模式

大致方式为:

  • 卸载xserer
  • kernel开启CONFIG_FRAMEBUFFER_CONSOLE、CONFIG_DRM_FBDEV_EMULATION、 CONFIG_VT、CONFIG_VT_CONSOLE

20. Debian中编译和移植rkaiq/rkisp仓库的步骤

在Buildroot中rkaiq/rkisp功能调试正常,如何正确移植到Debian中

比如RK3588芯片,可以切换使用地版本的GCC和GLIBC来生成移植到第三方系统。

(1)修改Buildroot配置以支持GCC 8

diff --git a/configs/rockchip/chips/rk3588.config
b/configs/rockchip/chips/rk3588.config
index f806813a6e..affb5e71ad 100644
--- a/configs/rockchip/chips/rk3588.config
+++ b/configs/rockchip/chips/rk3588.config
@@ -1,4 +1,4 @@
-BR2_cortex_a76_a55=y
+BR2_cortex_a72_a53=y
BR2_PACKAGE_RK3588=y
BR2_ROOTFS_OVERLAY+="board/rockchip/rk3588/fs-overlay/"
BR2_TARGET_GENERIC_HOSTNAME="rk3588"
diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
index 7556e1ece6..c917823f57 100644
--- a/package/gcc/Config.in.host
+++ b/package/gcc/Config.in.host
@@ -17,7 +17,6 @@ config BR2_GCC_VERSION_ARC
config BR2_GCC_VERSION_8_X
bool "gcc 8.x"
- depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_9
# ARC HS48 rel 31 only supported by gcc arc fork.
depends on !BR2_archs4x_rel31
select BR2_TOOLCHAIN_GCC_AT_LEAST_8

(2)设置Buildroot配置,默认使用GCC 8和GLIBC 2.28进行编译。

buildroot#cat configs/rockchip_rk3588_glibc2.28_defconfig

#include "../rockchip_rk3588_defconfig"
BR2_GCC_VERSION_8_X=y
BR2_PACKAGE_GLIBC_2_28=y

(3)使用Buildroot进行相应配置的编译。

设置Buildroot环境,并编译camera-engine-rkaiq模块。

<SDK>#source buildroot/envsetup.sh rockchip_rk3588_glibc2.28
<SDK>## cd buildroot
buildroot# make camera-engine-rkaiq

编译完成后,将生成的文件(例如output/rockchip_rk3588_glibc2.28/build/camera-engine rkaiq-1.0/camera-engine-rkaiq-1.0.tar )移植到Debian系统中。