0

I'm using a custom board with a LAN9514 and the smsc95xx driver, but cannot get the ethernet interface to come up automatically at boot time. Once the system starts, I can use "ifconfig eth1 up" to bring it up, but I want it started automatically.

Here is my /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

I've also tried "auto eth1" to no avail.

Shortly after boot completes I see these messages on the console:

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

The /etc/init.d script to start networking uses "/sbin/ifup -a" to enable startup of automatic interfaces (ifup is handled BusyBox in my system).

I can bring the interface up automatically by spawning a command with a delay in an init.d script: "sleep 5 && ifconfig eth1 up &", but that feels like a kludge because I don't know how long it can take for the USB ethernet device to be instantiated.

Running ifconfig shows interfaces lo and eth0, but not eth1 until I manually start it. What am I missing to have eth1 start automatically?

2 Answers 2

0

If you use udevd, you can use it to bring up the interface as soon is it is available. Busybox also contains an udev implementation.

0

It looks like eth0 comes up after ifup -a has already been run, because apparently it takes some time to initialize it.

So try adding allow-hotplug eth0 before auto eth0, that should tell ifup/ifdown to also enable the interface after ifup -a has already been run, when the kernel generates an event once it becomes ready.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.