eth0 not coming up on boot of openSUSE 11.0

Hi,

I have now installed openSUSE 11.0 from ISO image on two separate systems and both suffer from the same problem.

eth0 does not come up on reboot.

It can be manually ifconfig’d satisfactorily after boot, and then works.

I have checked the configuration files in /etc/sysconfig/network to me (I’m not expert on that) and they look OK, e.g.:

cat /etc/sysconfig/network/ifcfg-eth0

BOOTPROTO=‘static’
BROADCAST=’’
ETHTOOL_OPTIONS=’’
IPADDR=‘192.168.198.10/24’
MTU=’’
NAME=‘82566DC-2 Gigabit Network Connection’
NETMASK=’’
NETWORK=’’
REMOTE_IPADDR=’’
STARTMODE=‘auto’
USERCONTROL=‘no’

The following hasty patch fixes the problem:

diff /etc/init.d/network.dist /etc/init.d/network

429a430,433
>
> # XXX. Phil added the next line!! Fri Oct 3 14:20:49 EST 2008.
> echo $PHYSICAL_IFACES | grep eth0 >/dev/null || PHYSICAL_IFACES="$PHYSICAL_IFACES eth0"
>

I’m leaning to the view it’s a bug in the system setup or network start up code.

Cheers,


Phil

Hi
I would have thought the netmask should be in the netmask section of
the config rather than as part of the ip address.

What is the dmesg output or /var/log/messages like? Does it show you
the error?


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.0 x86 Kernel 2.6.25.16-0.1-default
up 18:23, 1 user, load average: 0.06, 0.03, 0.06
GPU GeForce 6600 TE/6200 TE - Driver Version: 173.14.12

Hi,

I have now resolved the cause of the problem.

Please also see the thread “ifup eth0 fails on boot” where the cause was first identified, and intent to log a bug has been asserted. (Thanks.)

The problem occurs when you have a tmpfs file system mount.

My hypothesis is that state information regarding Ethernet interfaces gathered on boot is lost when the tmpfs mount happens.

This is why my patch to /etc/init.d/network worked. I am now using the following patch just before AVAILABLE_IFACES is set:

XXX. Phil added the next line!! Fri Oct 3 14:20:49 EST 2008.

Mounting tmpfs in /etc/fstab hides Ethernet card discovery at boot.

See comments in /etc/fstab. You need this code if you mount tmpfs.

for i in 0 1 # 2 3 4 5 6 7 8 9
do
echo $PHYSICAL_IFACES | grep eth$i >/dev/null || PHYSICAL_IFACES="$PHYSICAL_IFACES eth$i"
done

And in /etc/fstab:

Enabling this will make ethernet cards invisible at boot time.

This is because the boot process keeps transient state information for

ethernet card discovery in /tmp – and (I assume) this gets over-mounted.

If you use tmpfs, you must hack /etc/init.d/network to “see” ethernet cards.

Phil. Wed Nov 19 09:28:55 EST 2008.

tmpfs /dev/shm tmpfs defaults,size=1024m 0 0

Cheers,


Phil

Yes! this was my problem too.

My solution was to just change the name of the directory that I wanted to mount the ramdisk on - by convention/example I used /dev/shm because Red Hat distros use it. openSuSE, however, uses /dev/shm for cached sysconfig data

(and when I think about it, what the %&*$ is RH doing putting a ramdisk in /dev anyways?)

Easy enough to just change to using “/mnt/ram” or “/var/cache/Smarty” or whatever…