configurar la interfaz vcan para activarse en el arranque

3

Quiero configurar una interfaz virtual SocketCAN en el arranque. Las siguientes líneas hacen lo que quiero (manualmente):

ip link add dev vcan0 type vcan
ip link set up vcan0

(o)

ip link add dev vcan0 up type vcan

Tengo un método para abrir una interfaz USB CAN física en la conexión en caliente: agrego las siguientes líneas a /etc/network/interfaces:

allow-hotplug can0
iface can0 can static
    bitrate 250000
    up /sbin/ip link set $IFACE down
    up /sbin/ip link set $IFACE up type can

Ahora también quiero mostrar la vcaninterfaz en el arranque. Así que agregué automáticamente el vcanmódulo y agregué esas líneas a /etc/network/interfaces:

auto vcan0
iface vcan0 can static
    bitrate 0  # NEEDED but not supported
    pre-up /sbin/ip link add dev $IFACE type vcan
    up /sbin/ip link set $IFACE up 

Pero, extrañamente, este enfoque no funciona: en el arranque o cuando ejecuto ifup vcan0me sale el siguiente error:

Configuring interface vcan0=vcan0 (can)
/sbin/ip link add dev $IFACE type vcan
...
ip link set vcan0 type can bitrate 0
RTNETLINK answers: Operation not supported
Failed to bring up vcan0.

.. cuando agrego la línea bitrate <somevalue>o me sale

Configuring interface vcan0=vcan0 (can)
Missing required variable: bitrate
Missing required configuration variables for interface vcan0/can.
Failed to bring up vcan0.

.. cuando omito la configuración de bitrate.

Parece que tengo que configurarlo bitratey no debo configurarlo, al mismo tiempo.

¿Qué estoy haciendo mal aquí?

PD, por supuesto, podría simplemente ejecutar el ip link add ..inicio, pero me gustaría utilizar el mismo enfoque para ambas interfaces.

Frans
fuente

Respuestas:

2

Debe cargar el módulo vcan en el momento del arranque. Edite / etc / modules para esto y agregue la línea

vcan

A continuación, edite / etc / network / interfaces

auto vcan0
   iface vcan0 inet manual
   pre-up /sbin/ip link add dev $IFACE type vcan
   up /sbin/ifconfig $IFACE up

Finalmente, reinicie las interfaces:

sudo /etc/init.d/networking restart

La interfaz vcan0 debería aparecer si escribe

ifconfig

en una terminal

tuschenski
fuente