Operating System - Linux
1752619 Members
4274 Online
108788 Solutions
New Discussion юеВ

Forcing the NIC interface to 100 Mbps Full Duplex

 
SOLVED
Go to solution
Ian Derringer
Regular Advisor

Forcing the NIC interface to 100 Mbps Full Duplex

Greetings,
I am currently running Linux AS 3.0 - The port that I have my Linux server plugged into forced to 100 Mbps full duplex and NO neg. I would like to set this setting as well on my NIC ineterface on my server and make it a permanent setting. Does anyone here know how I can do this? Yes, I ran the command "mii-tool eth0" and it came back with 10/100 Mbps auto - I must change this to reduced the number of collisions on the NIC interface.

Thank you in advance.
Ian D.
13 REPLIES 13
Steven E. Protter
Exalted Contributor
Solution

Re: Forcing the NIC interface to 100 Mbps Full Duplex

It probably won't help. The collisions are probably a result of general network configutation.

The way to reduce collisons is to reduce the size of the collision domain. If all of your servers and workstations are on the same collission domain you'll have a lot of collisions.

What you may wish to do is check into dividing your network into distinct subnets.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Ross Minkov
Esteemed Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Ian,

To force 100 baseT full duplex for eth0 use:

/sbin/mii-tool -F 100baseTx-FD eth0

Then to check eth0

/sbin/mii-tool eth0

What I'd do is put this command at the end of your /etc/rc.d/rc.local file.

HTH,
Ross
Vitaly Karasik_1
Honored Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

there are two ways to force 10/100 half/full duplex mode for most NICs:

1) mii-tools & ethtool - you should add one of two commands into rc.local

2) module options in /etc/modules.conf - unfortunately, there is different options for every NIC driver. For example
for eepro100:

options eepro100 full_duplex=1


for e100:

options eth0 e100_speed_duplex=4

for bcm5700

options eth0 line_speed=100 auto_speed=0 full_duplex=1
Bill Thorsteinson
Honored Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

You will want to use the options method
to set 100 FD. Our Cisco switches get
very confused when they see the switch
start negotiating and fall back to HD.

You may also want to delay loading the
drivers until the interface is configured.
We also had problems if the driver was
loaded, and not configured immediately.
Remove the driver from /etc/modules, and
add an alias line in /etc/modules.conf
for the module.

aliase eth0 e100pro

I finally convinced the network people to
allow auto-negotiation. I pointed out that
the MII spec does not support 100FD as the
only option. CISCO advertises the ports
as 100HD.

The vortex documentation recommends the following port configuration on CISCO.

interface FastEthernet0/N
description machinename
load-interval 30
spanning-tree portfast


By the way, increasing carrier drops
indicates the swithch when HD, and
increasing collisions indicates the
server when HD.
Chris Xu
Trusted Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

The preferrable method is the second one described by Karasik, though it may look a little more work involved. It is, in general, not a good practice to put stuff in the rc.local if you can avoid it.

Another thing I ran into was some old NIC's that didn't have full duplex support in the driver. You need replace your NIC if that's case.

Chris
rick jones
Honored Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

I have to say I am _not_ a fan of hardcoding. I will say that I don't have the bad history with switches some have. Most of the switches I've used (surprise) have been ProCurves.

Indeed, if oneside is hardcoded and theother auto, autoneg is _supposed_ to fail and the side trying to auto will be in half-duplex because it is _supposed_ to be there.

You then get duplex mismatch with the hardcoded FD side and indeed you will see collisions - the type to look for in particular are "*late*" collisions if your tools break those out - for those are the "collisions" that are actually errors. On the full-duplex side of the mismatch you will see FCS/CRC errors.

When auto fails, go for the latest switch firmware and NIC drivers before resorting to hardcoding. Otherwise, move some kit around, get some new kit, whathaveyou and poof, duplex mismatches all over again.

The other reason to try to break the hardcoding habit - for Gigabit autoneg is _required_.
there is no rest for the wicked yet the virtuous have no pillows
Ian Derringer
Regular Advisor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Hi,
Everyone has a good point. I ran lsmod and saw that I have a bcm5700 NIC card. I was not able to modify my NIC setting with 'mii-tool', therefore, I downloaded 'ethtool' and used that instead. I was getting collisions because my cisco switch (5509) was set at 100Mbps full duplex auto - and my NIC was set to 100 half duplex auto. I do know that the cisco switch, well atleast mine doesn't like auto negotiate that much. So, I forced the cisco switch and the NIC interface to full duplex 100MBps no auto and everyone is very happy now.

Thanks for all your help.

Have a great day!!

P.S. How do I give out points to one/multiple people?

Ian D.
Vitaly Karasik_1
Honored Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

>points?

In IE browser you'll see a button for assigning points, Firefox has a problem with this button.
Stephen_126
Occasional Advisor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Where do I find a table/map of cards<-> options, some where shown in above replies.
Mine, today is "e1000", I need to run 100/FD now until copperGB switch environ is installed.

Thanks,
-Stephen 770-343-0196
========== SNIP ==================
2) module options in /etc/modules.conf - unfortunately, there is different options for every NIC driver. For example for eepro100:
options eepro100 full_duplex=1

for e100:
options eth0 e100_speed_duplex=4

for bcm5700
options eth0 line_speed=100 auto_speed=0 full_duplex=1