Q. How do I change the speed, duplex on for my Ethernet card?
A. Under Linux use mii-tool or ethtool package which allows a Linux sys admin to modify/change and view the negotiated speed of network interface card (NIC) i.e. it is useful for forcing specific Ethernet speed and duplex settings.
Depending on which type of Ethernet card is installed on the system you need to use eithermii-tool or ethtool. I recommend installing both and use one of the tool, which will work with your card.
Task: Install mii-tool and ethtool tools
If you are using Debian Linux you can install both of these package with following command
:# apt-get install ethtool net-tools
If you are using Red Hat Enterprise Linux you can install both of these package with following command:# up2date ethtool net-tools
If you are using Fedora Core Linux you can install both of these package with following command
:# yum install ethtool net-tools
Task: Get speed and other information for eth0
Type following command as root user:
# ethtool eth0
Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 32 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: d Current message level: 0x00000007 (7) Link detected: yes
You don’t have to reboot Linux box, all you have to do is type the following command : # ethtool -r eth0 Or you can use mii-tool (outdated, use ethtool only) # mii-tool -r eth0 Output: # tail -f /var/log/messages
Jul 16 09:34:25 smtp1 kernel: e1000: eth0: e1000_watchdog_task: NIC Link is Up 10 Mbps Full Duplex Jul 16 09:34:25 smtp1 kernel: e1000: eth0: e1000_watchdog_task: 10/100 speed: disabling TSO
hanging your Network Interface Speed, Duplex or Auto Negotiate settings on Red Hat Linux
To set the interface speed, duplex or auto negotiation on Linux system boot up (make settings permanent), you need edit /etc/sysconfig/network-scripts/ifcfg-eth0 file for eth0 interface. This file used by Red Hat enterprise Linux, Fedora core, Cent Os etc.
Open the file: # vi /etc/sysconfig/network-scripts/ifcfg-eth0
Append following line: ETHTOOL_OPTS="speed 100 duplex full autoneg off"
Save and close the system. It will set the eth0 device to 100Mbs, full duplex, with the auto negotiation off at boot time. You can simply restart the networking (it will disconnect all ssh or ftp session) or restart the server. Depend upon traffic and load it may take upto 1 minute to setup a new port speed: # /etc/init.d/network restart
If you want 1000Mbs set line as follows: ETHTOOL_OPTS="speed 1000 duplex full autoneg off"Update: if above command failed to work for 1000Mbps use following command (see below in comment sections for discussion) :ETHTOOL_OPTS="speed 1000 duplex full autoneg on"