Svensson Patrik L wrote: > Emil, > For the moment I can not prove that's the e1000 initialization is > wrong, in fact it reports everything is OK. > Maybe the error is after the probe function, I have noticed that the > device name had an temporary name in the /sys/class/net directory > (/sys/class/net/__tmp1234 instead of eth0) when the error occurs. Do > you know where the creation of the /sys/class/net/<device> tree is > done?
If you load the driver and you have interface (even if it's called __tmp1234) then the driver did it's job. Interfaces are not guaranteed to be called ethX and can be renamed which is what seems to be happening in your case. There is nothing the driver can do about that. To get a better idea what happens when the network is brought up - take a look at the initialization scritps: /etc/sysconfig/network-scripts/ifup-eth (excerpt): # remap, if the device is bound with a MAC address and not the right device num # bail out, if the MAC does not fit if [ -n "${HWADDR}" ]; then FOUNDMACADDR=`get_hwaddr ${REALDEVICE}` if [ "${FOUNDMACADDR}" != "${HWADDR}" ]; then curdev=`get_device_by_hwaddr ${HWADDR}` if [ -n "$curdev" ]; then rename_device "${REALDEVICE}" "${HWADDR}" "${curdev}" || { echo $"Device ${DEVICE} has different MAC address than expected, ign oring." exit 1 } fi fi fi Note the rename_device function. You can see what the function is doing in /etc/sysconfig/network-scripts/network-functions: # rename_device() - Rename a network device to something else # $1 - desired name # $2 - hardware address to name (no longer used) # $3 - '/' separated list of devices that are already in use # (for general calls, use the current device you're trying to # change to $1) rename_device() { local target=${3##*/} /sbin/ip link set "$target" name "$1" 2>/dev/null || { local hw2=`get_hwaddr ${1}` local nconfig=`get_config_by_hwaddr ${hw2}` local curdev=`get_device_by_hwaddr ${hw2}` local dev= [ -z "${hw2}" ] && return if [ -n "$nconfig" ]; then dev=$(. $nconfig ; echo $DEVICE) oldifs=$IFS IFS=/ for device in $3 ; do [ "$dev" = "$device" ] && unset dev done IFS=$oldifs fi [ -z "$dev" ] && dev=dev$RANDOM rename_device $dev $hw2 "$3/$curdev" /sbin/ip link set "$target" name $1 2>/dev/null } } So maybe you can edit those scripts to fit your needs? Or simply comment out the renaming function and see what you get. Thanks, Emil ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel