如何使用 smsc95xx 驱动程序自动启动 USB 以太网接口

如何使用 smsc95xx 驱动程序自动启动 USB 以太网接口

我使用的是带有 LAN9514 和 smsc95xx 驱动程序的定制主板,但无法在启动时自动启动以太网接口。系统启动后,我可以使用“ifconfig eth1 up”来启动它,但我希望它自动启动。

这是我的 /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

allow-hotplug eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0

我也尝试过“auto eth1”,但没有效果。

启动完成后不久,我在控制台上看到这些消息:

usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
smsc95xx v1.0.6
smsc95xx 1-1.1:1.0 eth1: register 'smsc95xx' at usb-ci_hdrc.0-1.1, smsc95xx USB 2.0 Ethernet, b2:6c:a9:0e:67:34
macb e000b000.ethernet eth0: link up (1000/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

启动网络的 /etc/init.d 脚本使用“/sbin/ifup -a”来启用自动接口的启动(在我的系统中,ifup 由 BusyBox 处理)。

我可以通过在 init.d 脚本中生成一个延迟命令来自动启动接口:“sleep 5 && ifconfig eth1 up &”,但这感觉像是一个临时解决方案,因为我不知道 USB 以太网设备需要多长时间才能实例化。

运行 ifconfig 会显示 lo 和 eth0 接口,但直到我手动启动它时才会显示 eth1。我缺少什么才能让 eth1 自动启动?

答案1

如果您使用 udevd,则可以使用它在接口可用时立即启动它。Busybox 还包含一个 udev 实现。

答案2

看起来就像eth0出现了 ifup -a已经运行,因为显然它需要一些时间来初始化它。

allow-hotplug eth0因此,尝试在之前添加auto eth0,这应该告诉 ifup/ifdown 在已经运行之后也启用接口ifup -a,当内核准备就绪后生成一个事件。

相关内容