本文出自 Suzf Blog。 如未注明，均为 SUZF.NET 原创。
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 either mii-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-toolsIf you are using Red Hat Enterprise Linux you can install both of these package with following command:
# up2date ethtool net-toolsIf 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 eth0Output:
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
Or use mii-tool command as follows:
# mii-tool eth0Output:
eth0: negotiated 100baseTx-FD flow-control, link ok
Task: Change the speed and duplex settings
Setup eth0 negotiated speed with mii-tool
Disable autonegotiation, and force the MII to either 100baseTx-FD, 100baseTx-HD, 10baseT-FD, or 10baseT-HD:
# mii-tool -F 100baseTx-HDSetup eth0 negotiated speed with ethtool
# mii-tool -F 10baseT-HD
# ethtool -s eth0 speed 100 duplex fullTo make these settings permanent you need to create a shell script and call from /etc/rc.local (Red Hat) or if you are using Debian create a script into the directory /etc/init.d/ directory and run update-rc.d command to update the script.
# ethtool -s eth0 speed 10 duplex half
Read man page of mii-tool and ethtool for more information.