Setting e1000 Interface Settings Permanently On Debian

Posted by: admin  :  Category: Debian GNU/Linux

Well, sometimes obvious things aren’t quiet as obvious as supposed.

After plugging in a dual Intel Pro 1000 into my Debian box and hooking it up to my ancient Cisco 1924 switch, I noticed this in the kernel logs:

Jul 31 09:10:35 localhost kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Half Duplex

I though it should be fairly easy set the interface speeds properly so the devices would actually talk to each other.

While doing so on the Cisco was actually easy, the Linux box would refrain from doing so at a first glance.

#ethtool -s eth0 speed 100 duplex full

Running the command given above resulted in an error preventing me to set the parameters. It took me a while to find out that I had to actually turn off auto negotiation to make it work, too.

#ethtool -s eth0 speed 100 duplex full autoneg off

Now I had to make this change permanent as it would reset to defaults after the next reboot. I did so by adding the post-up line to my /etc/network/interfaces file:

auto eth0
iface eth0 inet static
post-up /usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1

It should be noted, that the module documention at Intel’s website does not actually state that auto-negotiation must be turned off when setting interface speed and duplex modes. The question remains if this was only the case on my particular setup or if it is an absolute requirement after all.

2 Responses to “Setting e1000 Interface Settings Permanently On Debian”

  1. daniel Says:

    thx for your post. I had the problem that my nic was configured to 100MBps although it could do more. You solved my case.

  2. kris Says:

    Thanks. Had this on Etch and some Dell machines.