Configuring the Kernel - CAN

Table of Contents

CAN support

CAN support will be needed for CARsenal usage.

In section “Networking support”:

  • Select “CAN bus subsystem support”
  • Select “Network physical/parent device Netlink interface”

Under “CAN bus subsystem support —>”

  • Select “Raw CAN Protocol (raw access with CAN-ID filtering)”
  • Select “Broadcast Manager CAN Protocol (with content filtering)”
  • Select “CAN Gateway/Router (with netlink configuration)”

Under “CAN Device Drivers —>”

  • Select “Virtual Local CAN Interface (vcan)”
  • Select as Module (M) “Serial / USB serial CAN Adaptors (slcan)”
  • Select “Platform CAN drivers with Netlink support”
  • Select “CAN bit-timing calculation”
  • Select “Enable LED triggers for Netlink based drivers”

Optionally you may also :

  • Select “Aeroflex Gaisler GRCAN and GRHCAN CAN devices”
  • Select “Xilinx CAN”
  • Select “Bosch C_CAN/D_CAN devices”
  • Select “Bosch CC770 and Intel AN82527 devices”
  • Select “IFI CAN_FD IP”
  • Select “Bosch M_CAN devices”
  • Select “Philips/NXP SJA1000 devices”
  • Select “Softing Gmbh CAN generic support”

Under “CAN SPI interfaces —>”

  • Select “Holt HI311x SPI CAN controllers”
  • Select “Microchip MCP251x SPI CAN controllers”

Under “CAN USB interfaces —>”

  • Select “EMS CPC-USB/ARM7 CAN/USB interface”
  • Select “ESD USB/2 CAN/USB interface”
  • Select “Geschwister Schneider UG interfaces”
  • Select “Kvaser CAN/USB interface”
  • Select “PEAK PCAN-USB/USB Pro interfaces for CAN 2.0b/CAN-FD”
  • Select “8 devices USB2CAN interface”

In Section “Networking Support”

Under “Networking options”

  • Select “Virtual Socket protocol”
  • Select “NETLINK: socket monitoring interface”

Under “QoS and/or fair queueing”

  • Select “CAN Identifier”

In section “Device Drivers —> USB support —> USB Serial Converter support —>” :

  • Select “USB Serial Console device support”
  • Select “USB Generic Serial Driver”
  • Select “USB Winchiphead CH341 Single Port Serial Driver”
  • Select “USB FTDI Single Port Serial Driver”

Hlcan driver

This would be used to get the chinese CAN Analyzer USB working with can-utils suite.

Go to your kernel sources folder and clone as submodule usb-can driver.

git submodule add https://github.com/V0lk3n/usb-can-2-module drivers/net/can/usb-can-2-module

Edit drivers/net/can/Kconfig and add the following line :

source "drivers/net/can/usb-can-2-module/Kconfig"

Edit drivers/net/can/Makefile and add the following line :

obj-y				+= usb-can-2-module/

In Section “Networking Support”

Under “CAN bus subsystem support —> CAN Device Drivers”

  • Select as Module “hlcan module for usb-can”

ISO 15765-2 Driver CAN-ISOTP (Optional)

Go to your kernel sources folder and clone as submodule can-isotp driver.

git submodule add https://github.com/V0lk3n/can-isotp drivers/net/can/can-isotp

Download “isotp.h” to “include/uapi/linux/can”

cd include/uapi/linux/can
wget https://raw.githubusercontent.com/v0lk3n/can-isotp/refs/heads/master/include/uapi/linux/can/isotp.h

Edit drivers/net/can/Kconfig and add the following line :

source "drivers/net/can/can-isotp/Kconfig"

Edit drivers/net/can/Makefile and add the following line :

obj-y				+= can-isotp/

In Section “Networking Support”

Under “CAN bus subsystem support —> CAN Device Drivers”

  • Select as Module “CAN ISO 15765-2 driver”

Save, Exit, then build!


Updated on: 2026-Mar-22
Author: v0lk3n