Operating System - Linux
1821553 Members
2368 Online
109633 Solutions
New Discussion юеВ

Re: 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
Vitaly Karasik_1
Honored Contributor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

modinfo module

or on module's site / from authors / from Google

AFAIK, for e1000 you should use

options e1000 Speed=100,Duplex=Full
Aris Cruz
New Member

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Another alternate for RHAS3 is edit your /etc/sysconfig/network-scripts/ifcfg-eth0[1,2]

add this line:

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

The network script checks for the variable ETHTOOL_OPTS and will set your duplex for you. This may work with RHAS2.1, depending on the update version you are running
Ian Derringer
Regular Advisor

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Great! I will try that and let you know.

Thanks,
Ian
Noordhoek
New Member

Re: Forcing the NIC interface to 100 Mbps Full Duplex

Hi, where exactly do you place this line in the eth0 file when using VI editor. 

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

 

I have tried placing it at the end (looks like the end) and saving it but it does not make any changes,..  THank You