configure a interface vcan para ser ativada na inicialização

configure a interface vcan para ser ativada na inicialização

Quero configurar uma interface SocketCAN virtual na inicialização. As linhas a seguir fazem o que eu quero (manualmente):

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

(ou)

ip link add dev vcan0 up type vcan

Eu tenho um método para trazer à tona umfísicoInterface USB CAN em hotplugging - adiciono as seguintes linhas 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

Agora quero abrir a vcaninterface na inicialização também. Então adicionei automaticamente o vcanmódulo e adicionei essas linhas 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 

Mas, estranhamente, essa abordagem não funciona: na inicialização ou quando executo, ifup vcan0recebo o seguinte erro:

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.

.. quando eu adiciono a linha bitrate <somevalue>ou recebo

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

.. quando omito a configuração da taxa de bits.

Então parece que euprecisadefinir bitrateeNão deveconfigure-o - ao mesmo tempo.

O que estou fazendo de errado aqui?

ps, é claro que eu poderia simplesmente executar na ip link add ..inicialização, mas gostaria de usar a mesma abordagem para ambas as interfaces.

Responder1

Você precisa carregar o módulo vcan no momento da inicialização. Editar/etc/módulospara isso e adicione a linha

vcan

Em seguida, 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 as interfaces:

sudo /etc/init.d/networking restart

A interface vcan0 deve aparecer se você digitar

ifconfig

em um terminal.

informação relacionada