Как подключить два порта VCAN в Linux?

Я настроил два устройства vcan и хочу, чтобы они были соединены друг с другом. Я хочу иметь возможность использовать can-utils candump для прослушивания одной линии и отправки сообщений can с другой. Как я могу сделать это без физического устройства?

Для пояснения, я пишу программное обеспечение для связи через CAN, на что я уже способен, но для облегчения фактического сбора данных и дальнейшей разработки мне нужны два устройства с поддержкой CAN для связи друг с другом. В то время как простое решение в реальном мире, решаемое путем физического соединения устройств, мне нужно программное решение, которое будет работать на компьютере.


person viduwoy    schedule 21.01.2019    source источник


Ответы (1)


Добавьте модуль ядра can gateway:

sudo modprobe can-gw

Затем создайте правила шлюза с помощью cangw, который поставляется с can-utils, для соответствующих интерфейсов.
Например, для маршрутизации сообщений с vcan0 на vcan1:

sudo cangw -A -s vcan0 -d vcan1 -e 

и наоборот:

sudo cangw -A -s vcan1 -d vcan0 -e

Теперь вы сможете видеть все сообщения, отправленные на vcan0, также на vcan1 и наоборот.

person oh.dae.su    schedule 22.01.2019
comment
Это работает отлично! Вы знаете, где находится документация для can-gw? - person viduwoy; 22.01.2019
comment
Я не уверен, существует ли документация. Если вы введете cangw без аргументов, вы получите подробную информацию об использовании и несколько примеров. - person oh.dae.su; 22.01.2019
comment
отлично работает на BBB, соединяя can0 и can1 cangw -A -s can0 -d can1 -e Не позволит вам установить это правило, если modprobe can-gw не установлен - person Marcin Gajewski; 11.05.2021