Skip to content

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

RK3588 kernel version

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.10

Import the Current Configuration

bash
cp /boot/config-$(uname -r) .config
make ARCH=arm64 olddefconfig
make ARCH=arm64 modules_prepare
bash
sudo ln -sfn ~/linux-orangepi-5.10 /lib/modules/$(uname -r)/build
ls -l /lib/modules/$(uname -r)/build

Build the kernel modules so Module.symvers is generated:

bash
cd ~/linux-orangepi-5.10
make ARCH=arm64 -j$(nproc) modules

Verify 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= kernelrelease

Expected result:

text
5.10.160-rockchip-rk3588

Install 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.10

Replace the path after --kernel-location if the source tree is elsewhere.

Verify the Driver

bash
modinfo kcan
sudo modprobe kcan
lsmod | grep kcan

Reconnect the CAN FD device and inspect the interfaces:

bash
ip -d link show

RK3588 SDK verification

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.symvers

modprobe Fails or Reports a Version Mismatch

Confirm that the kernel source release from make kernelrelease exactly matches uname -r.

Driving Intelligent Connections, Empowering the Future