CAN bus under Linux (draft)

Bensuperpc February 01, 2025 [Software, Hardware] #Features #CAN #bus

CAN bus

Install tools for CAN bus

On debian/ubuntu based systems:

sudo apt install can-utils

On arch based systems (AUR package):

yay -S can-utils

From source: can-utils

Setup virtual interfaces

Create a virtual CAN interface:

sudo ip link add can0 type vcan

Enable standard CAN interface:

sudo ip link set up can0

Enable CAN FD interface:

sudo ip link set up can0 mtu 72

Setup hardware interfaces

Enable hardware CAN interface:

sudo ip link set up can0

Set standard CAN interface:

sudo ip link set can0 type can bitrate 125000

Set CAN FD interface:

sudo ip link set can0 type can bitrate 125000 dbitrate 5000000 fd on

Remove hardware interfaces

To remove the hardware CAN interface:

sudo ip link set down can0

Receiving data

To read received data from a CAN interface:

candump -cexdtA any

Sending data

To send data to a CAN interface:

cansend can0 217#1234567890ABCDEF

For CAN FD frames:

cansend can0 112##01234567890ABCDEF

Or with extended data:

cansend can0 112##01234567890ABCDEF1234567890ABCDEF

For CAN FD and BRS (Baud Rate Switch):

cansend can0 112##11234567890ABCDEF

Sources