sudo ethtool eth0

This will tell you the properties of the wired config.  If Duplex is showing half, then type:

sudo ethtool -s eth0 autoneg off
sudo ethtool -s eth0 duplex full

This will tell you the properties of the wired config.  If Speed is showing auto, then type:

sudo ethtool -s eth0 speed 100

Finally, type to view final configuration:

sudo ethtool eth0

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 :

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 :

/etc/init.d/network restart

Debian or Ubuntu Linux permanent settings :

Under Debian or Ubuntu Linux just create a script as follows :

vi /etc/init.d/100Mbs

Append following lines :

#!/bin/sh
ETHTOOL=”/usr/sbin/ethtool”
DEV=”eth0″
SPEED=”100 duplex full”
case “$1” in
start)
echo -n “Setting eth0 speed 100 duplex full…”;
$ETHTOOL -s $DEV speed $SPEED;
echo ” done.”;;
stop)
;;
esac
exit 0

Save and close the file. Setup executable permission :

chmod +x /etc/init.d/100Mbs

Now run script when Debian or Ubuntu Linux boots up. Use update-rc.d command install System-V style init script links :

update-rc.d 100Mbs defaults

Reboot the system to take effect or just type scrit name :

/etc/init.d/100Mbs start

For Debian, I think that you just need append the follow line at /etc/network/interfaces file :

post-up ethtool -s eth0 speed 10 duplex half