Очень удобной функцией является поддержка виртуальной CAN шины в Linux, что позволяет делать отладку ПО без реального интерфейса.
Это дает возможность создавать свои сети, соединяя виртуальные CAN адаптеры с реальными. Выгоды от этого очень много, если приходится работать с сетями без реальных устройств или разрабатывая собственный протокол.
Для того чтобы виртуальный адаптер заработал, необходимо добавить поддержку VCAN в ядре. На примере в Ubuntu это выглядит так:
$ sudo modprobe vcan
далее необходимо добавить адаптер
$ sudo ip link add dev vcan0 type vcan
и включить
$ sudo ip link set up vcan0
Не обязательно префикс v, можно добавить и без него
$ sudo ip link add dev can1 type vcan
$ sudo ip link set up can1
Для проверки вводим:
$ ip a
и если все пошло удачно, то получаем наш интерфейс в списке
can1: <NOARP,UP,LOWER_UP> mtu 72 qdisc noqueue state UNKNOWN group default qlen 1000
link/can
Для проверки можно отправить сообщение и прочитать его как будто с реальным интерфейсом.