Install KCAN Driver
Install KCAN Driver¶
1. Uninstall PCAN driver (skip if not installed)¶
cd peak-linux-driver-8.20.0
sudo modprobe -r pcan
sudo make uninstall
cd
2. Install KCAN dependencies¶
sudo apt update && sudo apt install -y build-essential g++ dkms wget unzip libpopt-dev linux-headers-$(uname -r)
3. Verify GCC version (must match kernel build version)¶
cat /boot/config-$(uname -r) | grep -i "gcc_version"
If output is CONFIG_GCC_VERSION=120300 (gcc-12 required), run:
sudo apt install -y gcc-12
4. Download KCAN SDK¶
wget https://gitee.com/ChengDu-KunHong/KH-UCANFD_Linux_SDK/releases/download/v1.2.2/KH-UCANFD_Linux_SDK.zip
unzip KH-UCANFD_Linux_SDK.zip
5. Build KCAN driver¶
cd KH-UCANFD_LinuxSDK-v1.2.2/
sudo sed -i 's/-ftrivial-auto-var-init=zero//g' /usr/src/linux-headers-$(uname -r)/Makefile
sudo chmod +x ./build.sh
./build.sh
6. Build into kernel¶
sudo mkdir -p /usr/src/kcan-8.20.0/
cat << 'EOF2' | sudo tee /usr/src/kcan-8.20.0/dkms.conf
PACKAGE_NAME="kunhong-linux-driver"
PACKAGE_VERSION="8.20.0"
CLEAN="make clean"
MAKE[0]="sed -i 's/-ftrivial-auto-var-init=zero//g' /usr/src/linux-headers-${kernelver}/Makefile 2>/dev/null || true; make DKMS_KERNEL_DIR=$kernel_source_dir MOD=MODVERSIONS PAR=NO_PARPORT_SUBSYSTEM USB=USB_SUPPORT PCI=PCI_SUPPORT PCIEC=PCIEC_SUPPORT ISA=ISA_SUPPORT DNG=NO_DONGLE_SUPPORT PCC=NO_PCCARD_SUPPORT NET=NETDEV_SUPPORT RT=NO_RT"
BUILT_MODULE_NAME[0]="kcan"
BUILT_MODULE_LOCATION[0]="."
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
EOF2
7. Verify KCAN driver loading¶
sudo modprobe kcan
lsmod | grep kcan
Re-plug CAN FD device, then verify interfaces:
ip link show
8. Create kernel update with DKMS¶
sudo cp -r ~/KH-UCANFD_LinuxSDK-v1.2.2/driver/* /usr/src/kcan-8.20.0/
cat << 'EOF2' | sudo tee /usr/src/kcan-8.20.0/dkms.conf
PACKAGE_NAME="kunhong-linux-driver"
PACKAGE_VERSION="8.20.0"
CLEAN="make clean"
MAKE[0]="cd ${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/source; sed -i 's/-ftrivial-auto-var-init=zero//g' /usr/src/linux-headers-${kernelver}/Makefile 2>/dev/null || true; make DKMS_KERNEL_DIR=${kernel_source_dir} MOD=MODVERSIONS PAR=NO_PARPORT_SUBSYSTEM USB=USB_SUPPORT PCI=PCI_SUPPORT PCIEC=PCIEC_SUPPORT ISA=ISA_SUPPORT DNG=NO_DONGLE_SUPPORT PCC=NO_PCCARD_SUPPORT NET=NETDEV_SUPPORT RT=NO_RT"
BUILT_MODULE_NAME[0]="kcan"
BUILT_MODULE_LOCATION[0]="."
DEST_MODULE_LOCATION[0]="/updates"
AUTOINSTALL="yes"
EOF2
sudo dkms add -m kcan -v 8.20.0
sudo dkms build -m kcan -v 8.20.0
sudo dkms install -m kcan -v 8.20.0
dkms status
9. Enable auto-load¶
echo "kcan" | sudo tee /etc/modules-load.d/kcan.conf
cat /etc/modules-load.d/kcan.conf
Expected output:
kcan
💡 If KCAN is not auto-loaded after reboot, run sudo modprobe kcan. If still not loaded, try sudo modprobe peak_usb.

