Toybrick

标题: 基于 RK3588 debian 搭建 RK3588 Kernel 编译环境 [打印本页]

作者: nickey.yang    时间: 2021-12-27 19:47
标题: 基于 RK3588 debian 搭建 RK3588 Kernel 编译环境
本帖最后由 nickey.yang 于 2021-12-27 20:13 编辑

一、本地编译环境
1、安装编译 kernel 的工具
  1. apt install git gcc make flex bison libssl-dev lz4
  2. apt install python pip
复制代码

2、scp 本机的 .ssh 文件夹到板端,然后 git clone kernel 代码
3、编译代码
  1. make ARCH=arm64 rockchip_linux_defconfig
  2. time make ARCH=arm64 rk3588-xxx.img -j16
复制代码

二、分布式编译环境
1、安装 C/C++ 分布式编译工具
  1. apt install distcc distccmon-gnome<div align="left"></div>
复制代码

2、修改服务器端和客户端的  /etc/default/distcc  配置
  1.   STARTDISTCC="true" #开机自启动
  2.   ALLOWENDETS="127.0.0.1 192.168.31.0/24"   #192.168.31.xxx为RK3588的IP 地址
  3.   LISTENER=""
  4.   ZEROCONFIG="false"
复制代码

3、在服务器端和客户端启动 distccd 服务:
  1. /etc/init.d/distcc stop
  2. /etc/init.d/distcc start
复制代码

4、在客户端设置服务器端IP地址(.19为客户端IP地址,distcc部署允许localhost作为服务器端)
  1. export DISTCC_HOSTS="192.168.31.19 192.168.31.251 192.168.31.100"
复制代码

5、在客户端编译代码
  1. make ARCH=arm64 rockchip_linux_defconfig
  2. time make ARCH=arm64 rk3588-xxx.img -j32 CC="distcc /usr/bin/gcc"
复制代码

三、编译测试结果
对于 分布式RK3588 编译 的场景,粗略手动调整编译服务端的负载均衡之后,干净编译 RK3588 的 kernel 生成 30M 的内核 Image 的耗时如下

time
RK3588
分布式 RK3588 x1
分布式 RK3588 x2
分布式 RK3588 x3
i7-1165G7@2.80G
服务器  E5-2640@2.4G
real8m41.081s8m31.613s5m0.604s3m47.136s6m24.822s3m35.845s
user56m35.906s56m56.541s24m55.459s15m7.921s44m3.944s57m57.281s
sys6m7.484s5m49.619s4m5.0393m5.729s3m5.943s4m12.297s

四、参考资料
https://github.com/distcc/distcc

五、编译过程截图






作者: randyliu2020    时间: 2022-4-8 15:43
你好~我目前打算在rk3588上面跑opencl的demo,clinfo信息如下:
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  ARM Platform
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [ARM]
  clCreateContext(NULL, ...) [default]            Success [ARM]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 ARM Platform
    Device Name                                   Mali-LODX r0p0
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 ARM Platform
    Device Name                                   Mali-LODX r0p0
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 ARM Platform
    Device Name                                   Mali-LODX r0p0

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.14
  ICD loader Profile                              OpenCL 3.0
查询到的设备是Mali-LODX r0p0,不应该是mali-g610吗?
作者: wangyb@zhejiang    时间: 2022-11-25 17:05
2、scp 本机的 .ssh 文件夹到板端,然后 git clone kernel 代码;
这个代码的意思就是将RK3588的代码copy 到RK3588开发板上吗?
作者: wangyb@zhejiang    时间: 2022-11-25 17:07
我想问下RK3588 我根据官方BSP编译,编译到最后,烧到开发板上,boot 不到内核什么原因?
作者: fxieg    时间: 2023-6-6 17:43
https://t.rock-chips.com/forum.p ... &extra=page%3D1

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100

//
问题

我在开发板RX3588X 上编译内核遇到错误,请教该如何做。

在开发版RX3588 debian10 上做如下操作

sudo apt install git gcc make flex bison libssl-dev lz4
sudo apt install python pip

git clone https://github.com/rockchip-toybrick/kernel.git

然后进入kernel目录
运行如下命令
make ARCH=arm64 rockchip_linux_defconfig
time make ARCH=arm64 rk3588-xxx.img -j16

有错提示

make[2]: *** No rule to make target 'arch/arm64/boot/dts/rockchip/rk3588-x.dtb'.  Stop.
make[1]: *** [Makefile:1446: rockchip/rk3588-x.dtb] Error 2
make: *** [arch/arm64/Makefile:214: rk3588-x.img] Error 2







欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3