FreeBSD 混合了类似 USB 到以太网适配器的名称

FreeBSD 混合了类似 USB 到以太网适配器的名称

我有两个 Asix USB 转以太网适配器。 FreeBSD 将它们确定为ue1ue2适配器。

问题是,重新启动后,有时界面ue1会变成ue2反之亦然,这几乎会破坏我的网络配置。两个适配器具有非常相似的 MAC,当系统尝试识别它时可能会出现问题。

udev在 Linux 系统上,我之前通过适配器 mac 地址设置静态规则来解决这个问题。我怎样才能在Freebsd中实现类似的功能?我知道它与相关,devd但我不确定如何管理它,因此适配器获得“静态”名称。

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 

答案1

我建议的解决方案是在附加上调用一个脚本,该脚本查看 mac 地址并重命名设备。

     附加 0 {
             设备名称“(ue)[0-9]+”;
             操作“yourscript $设备名称”;
     };

未经测试:

#!/bin/sh

MAC=`ifconfig $1 | grep 以太`

INBOUND_MAC="foo"
OUTBOUND_MAC="bla"

如果[“$MAC”==“$INBOUND_MAC”];然后
ifconfig $1 名称入站
别的
ifconfig $2 名称出站

相关内容