Toybrick

基于 RK3588 debian 搭建 RK3588 Kernel 编译环境

nickey.yang

新手上路

积分
11
发表于 2021-12-27 19:47:45    查看: 2142|回复: 1 | [复制链接]    打印 | 显示全部楼层
本帖最后由 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

四、参考资料

五、编译过程截图





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

randyliu2020

新手上路

积分
22
发表于 2022-4-8 15:43:28 | 显示全部楼层
你好~我目前打算在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吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表