Installing the SDK on RK3588 with Kernel 5.10.160
This example installs KH-UCANFD Linux SDK on an Orange Pi 5 Plus running 5.10.160-rockchip-rk3588.
Environment
- Device: Orange Pi 5 Plus
- SoC: RK3588
- Kernel:
5.10.160-rockchip-rk3588 - SDK: KH-UCANFD Linux SDK
See the Orange Pi documentation for image installation.
Check the Running Kernel
bash
uname -r
The following commands assume 5.10.160-rockchip-rk3588.
Obtain the Kernel Source
bash
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.10Import the Current Configuration
bash
cp /boot/config-$(uname -r) .config
make ARCH=arm64 olddefconfig
make ARCH=arm64 modules_prepareSet the Kernel Build Link
bash
sudo ln -sfn ~/linux-orangepi-5.10 /lib/modules/$(uname -r)/build
ls -l /lib/modules/$(uname -r)/buildBuild the kernel modules so Module.symvers is generated:
bash
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modulesVerify required files:
bash
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"Match the Kernel Release
The source tree's release string must exactly equal uname -r:
bash
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= kernelreleaseExpected result:
text
5.10.160-rockchip-rk3588Install the SDK
bash
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-*/
sudo ./build.sh --kernel-location ~/linux-orangepi-5.10Replace the path after --kernel-location if the source tree is elsewhere.
Verify the Driver
bash
modinfo kcan
sudo modprobe kcan
lsmod | grep kcanReconnect the CAN FD device and inspect the interfaces:
bash
ip -d link show
Troubleshooting
Module.symvers missing
modules_prepare alone may not generate the symbol-version table. Build the modules:
bash
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modules
ls -lh Module.symversmodprobe Fails or Reports a Version Mismatch
Confirm that the kernel source release from make kernelrelease exactly matches uname -r.