configurar la interfaz vcan para que se active en el arranque

configurar la interfaz vcan para que se active en el arranque

Quiero configurar una interfaz SocketCAN virtual al arrancar. 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 sacar a relucir unfísicoInterfaz USB CAN en 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 abrir la vcaninterfaz al arrancar. 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: al arrancar o cuando lo ejecuto, ifup vcan0aparece 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 la tasa de bits.

Entonces parece que yotengo queestablecer bitrateyno debeconfigúrelo - al mismo tiempo.

¿Qué estoy haciendo mal aquí?

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

Respuesta1

Debe cargar el módulo vcan en el momento del arranque. Editar/etc/modulospara 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.

información relacionada