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 vcan
interfaz en el arranque. Así que agregué automáticamente el vcan
mó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 vcan0
me 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 bitrate
y 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.
fuente