O FreeBSD mistura nomes de adaptadores USB para ethernet semelhantes

4

Eu tenho dois adaptadores USB para ethernet Asix. O FreeBSD determina aqueles como ue1 e ue2 adaptadores.

O problema é que, na reinicialização, às vezes a interface ue1 se torna ue2 e vice-versa, o que praticamente atrapalha minha configuração de rede. Os dois adaptadores têm o MAC muito semelhante e pode ser o problema quando o sistema tenta reconhecê-lo.

Nos sistemas Linux, eu já classifiquei isso definindo as regras udev estáticas pelo endereço MAC dos adaptadores. Como posso conseguir o similar no Freebsd? Eu sei que está relacionado a devd , mas não sei como gerenciá-lo, então os adaptadores recebem o nome 'static'.

usbconfig 
ugen0.1: <DWCOTG OTG Root HUB> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA)
ugen0.2: <vendor 0x0424 product 0x9514> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (2mA)
ugen0.3: <vendor 0x0424 product 0xec00> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (2mA)
ugen0.4: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)
ugen0.5: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)


usbconfig -d ugen0.5 dump_device_desc
ugen0.5: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0210 
  bDeviceClass = 0x00ff  <Vendor specific>
  bDeviceSubClass = 0x00ff 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x0b95 
  idProduct = 0x1790 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  <ASIX Elec. Corp.>
  iProduct = 0x0002  <AX88179>
  iSerialNumber = 0x0003  <00000000000114>
  bNumConfigurations = 0x0001 

ugen0.4: <ASIX Elec. Corp. AX88179> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (248mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0210 
  bDeviceClass = 0x00ff  <Vendor specific>
  bDeviceSubClass = 0x00ff 
  bDeviceProtocol = 0x0000 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x0b95 
  idProduct = 0x1790 
  bcdDevice = 0x0100 
  iManufacturer = 0x0001  <ASIX Elec. Corp.>
  iProduct = 0x0002  <AX88179>
  iSerialNumber = 0x0003  <00000000000013>
  bNumConfigurations = 0x0001 
    
por fugitive 15.01.2018 / 15:26

1 resposta

0

A solução que sugiro é chamar um script em anexo que analise o endereço mac e renomeie o dispositivo.

     attach 0 {
             device-name "(ue)[0-9]+";
             action "yourscript $device-name";
     };

Não testado:

#!/bin/sh

MAC='ifconfig $1 | grep ether'

INBOUND_MAC="foo"
OUTBOUND_MAC="bla"

if [ "$MAC" == "$INBOUND_MAC" ]; then
ifconfig $1 name inbound
else
ifconfig $2 name outbound
fi
    
por 26.01.2018 / 16:34