本帖最后由 nickey.yang 于 2021-12-27 20:13 编辑
一、本地编译环境 1、安装编译 kernel 的工具 - apt install git gcc make flex bison libssl-dev lz4
- apt install python pip
2、scp 本机的 .ssh 文件夹到板端,然后 git clone kernel 代码3、编译代码 - make ARCH=arm64 rockchip_linux_defconfig
- time make ARCH=arm64 rk3588-xxx.img -j16
二、分布式编译环境1、安装 C/C++ 分布式编译工具 - apt install distcc distccmon-gnome<div align="left"></div>
2、修改服务器端和客户端的 /etc/default/distcc 配置- STARTDISTCC="true" #开机自启动
- ALLOWENDETS="127.0.0.1 192.168.31.0/24" #192.168.31.xxx为RK3588的IP 地址
- LISTENER=""
- ZEROCONFIG="false"
3、在服务器端和客户端启动 distccd 服务:- /etc/init.d/distcc stop
- /etc/init.d/distcc start
4、在客户端设置服务器端IP地址(.19为客户端IP地址,distcc部署允许localhost作为服务器端)- export DISTCC_HOSTS="192.168.31.19 192.168.31.251 192.168.31.100"
5、在客户端编译代码- make ARCH=arm64 rockchip_linux_defconfig
- 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 | | real | 8m41.081s | 8m31.613s | 5m0.604s | 3m47.136s | 6m24.822s | 3m35.845s | user | 56m35.906s | 56m56.541s | 24m55.459s | 15m7.921s | 44m3.944s | 57m57.281s | sys | 6m7.484s | 5m49.619s | 4m5.039 | 3m5.729s | 3m5.943s | 4m12.297s
|
|