RK3588 系统安装使用 SDK 示例
本文说明在 Orange Pi 5 Plus(RK3588)设备上,针对 5.10.160-rockchip-rk3588 内核安装和使用 KH-UCANFD_Linux_SDK 的过程。
适用环境:
- 设备:Orange Pi 5 Plus
- 平台:RK3588
- 系统内核:
5.10.160-rockchip-rk3588 - SDK:KH-UCANFD_Linux_SDK
系统镜像烧录和基础系统安装可参考 Orange Pi 官方文档:
检查当前内核版本
先确认当前运行内核版本:
uname -r
本文后续步骤以输出为 5.10.160-rockchip-rk3588 为例。
准备内核源码
使用 Orange Pi 5 Plus 的 5.10 内核通常 orange-pi-5.10-rk35xx 分支。
git clone --depth=1 -b orange-pi-5.10-rk35xx https://github.com/orangepi-xunlong/linux-orangepi.git ~/linux-orangepi-5.10
cd ~/linux-orangepi-5.10导入当前内核配置
进入内核源码目录后,导入当前系统的内核配置,并准备外部模块编译所需文件:
cp /boot/config-$(uname -r) .config
make ARCH=arm64 olddefconfig
make ARCH=arm64 modules_prepare建立 build 链接
将当前运行内核的 build 路径指向已准备好的内核源码树:
sudo ln -sfn ~/linux-orangepi-5.10 /lib/modules/$(uname -r)/build确认链接是否正确:
ls -l /lib/modules/$(uname -r)/build编译模块:
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modules可使用以下命令检查关键文件是否已生成:
test -f .config && echo ".config OK" || echo ".config missing"
test -f include/generated/autoconf.h && echo "autoconf OK" || echo "autoconf missing"
test -f include/config/auto.conf && echo "auto.conf OK" || echo "auto.conf missing"
test -f Module.symvers && echo "Module.symvers OK" || echo "Module.symvers missing"如果此时提示 Module.symvers missing,通常表示源码只执行过 modules_prepare,还没有完整编译过内核模块。很多外部 .ko 驱动在开启 CONFIG_MODVERSIONS 时需要 Module.symvers。
生成 Module.symvers
完整编译内核模块以生成 Module.symvers:
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modules编译完成后确认文件存在:
ls -lh Module.symvers能看到类似下面的文件信息即可:
-rw-r--r-- 1 orangepi orangepi xxM Module.symvers修正 kernel release
内核源码树输出的 release 必须和 uname -r 完全一致。对于 5.10.160-rockchip-rk3588,可按下面方式设置:
cd ~/linux-orangepi-5.10
scripts/config --set-str LOCALVERSION "-rockchip-rk3588"
scripts/config --disable LOCALVERSION_AUTO
make ARCH=arm64 olddefconfig
make ARCH=arm64 LOCALVERSION= prepare
make ARCH=arm64 LOCALVERSION= modules_prepare
make ARCH=arm64 LOCALVERSION= kernelrelease最后一条命令预期输出:
5.10.160-rockchip-rk3588如果输出不一致,请先修正内核源码配置,再继续安装 SDK。
下载并安装 SDK
下载 KH-UCANFD_Linux_SDK:
wget https://gitee.com/ChengDu-KunHong/KH-UCANFD_Linux_SDK/releases/download/latest/KH-UCANFD_Linux_SDK.zip
unzip KH-UCANFD_Linux_SDK.zip
cd KH-UCANFD_Linux_SDK-*/指定 RK3588 当前内核源码树安装驱动:
sudo ./build.sh --kernel-location ~/linux-orangepi-5.10如内核源码放在其他目录,请将 --kernel-location 后面的路径替换为实际内核源码路径。
验证驱动加载
查看驱动模块信息:
modinfo kcan加载驱动:
sudo modprobe kcan确认模块已加载:
lsmod | grep kcan重新插拔 CAN FD 设备后,查看 CAN 网络接口:
ip -d link show正常情况下可以看到 can0、can1 等 CAN 接口。

常见问题
Module.symvers missing
现象:
Module.symvers missing原因通常是内核源码只执行了 modules_prepare,还没有完整编译模块,导致符号版本表未生成。
处理方式:
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modules
ls -lh Module.symversmodprobe 加载失败或版本不一致
如果 sudo modprobe kcan 加载失败,请检查内核源码树的 release 是否与当前系统完全一致。