Hi,
In my Raspberry Pi based systems using the Buildroot built Linux image I always had problems with eth0 not being correctly configured after switching on. Even if I configured it in the /etc/network/interfaces:
auto eth0 iface eth0 inet dhcp
Or when I called the "udhcpc eth0" from the init scripts.
The reason was, that the USB subsystem was not initialized yet, when the init scripts were executed.
I finally solved the problem using the udev, to configured eth0 as soon as it gets visible. If somebody wants to configure eth0 via DHCP, it may be enough to add the following to the /etc/udev/rules.d/60-rpi-eth.rules rule:
KERNEL=="eth*", SUBSYSTEM=="net", ACTION=="add", RUN+="/sbin/udhcpc $env{INTERFACE}"
If somebody wants to configure the eth0 according to definitions stored in /etc/network/interfaces, then the appropriate /etc/udev/rules.d/60-rpi-eth.rules rule file is:
KERNEL=="eth*", SUBSYSTEM=="net", ACTION=="add", RUN+="/sbin/ifup $env{INTERFACE}"