6

I use debian for my things,but when i config speed 1000 and duplex full the error occur

the exactly command i use: ethtool -s eth0 autoneg off speed 1000 duplex full

  Cannot set new settings: Invalid argument
         not setting speed
         not setting duplex
         not setting autoneg
  Cannot set new settings: Invalid argument
         not setting speed
         not setting duplex
         not setting autoneg

And this is my eth0 information.

   Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Full 
     Supported pause frame use: No
     Supports auto-negotiation: Yes
     Advertised link modes:  10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Full 
     Advertised pause frame use: No
     Advertised auto-negotiation: Yes
     Speed: 100Mb/s
     Duplex: Full
     Port: Twisted Pair
     PHYAD: 1
     Transceiver: internal
     Auto-negotiation: on
     MDI-X: Unknown
     Supports Wake-on: g
     Wake-on: d
     Link detected: yes


      driver: bnx2
      version: 2.1.11
      firmware-version: bc 3.5.12 ipms 1.6.0
      bus-info: 0000:04:00.0
      supports-statistics: yes
      supports-test: yes
      supports-eeprom-access: yes
      supports-register-dump: yes
      supports-priv-flags: no

Could any one tell me which is the wrong place?

altman
  • 125
  • 1
  • 5
  • 12
  • Please post the exact command you're using to set the speed. – EightBitTony Jun 08 '12 at 08:48
  • sorry, i just add it. – altman Jun 08 '12 at 08:52
  • 1
    FYI, you should almost never be forcing the link speed/duplex on a Gig link. If I can find the link someone had a really good blog post pointing go various specs saying that forcing the duplex for gig links is actually harmful most of the time. This may have been it... http://etherealmind.com/ethernet-autonegotiation-works-why-how-standard-should-be-set/ – Zoredache Jun 08 '12 at 09:15
  • 1
    While that blog post is interesting, and mostly valid, what he's saying is condradicted by many of the comments. Indeed, at the company I work, it is often necessary to force the speed link on Gig links. Advised by such equipment manufacturers Cisco, Oracle, HP. Clearly we had issues that did not fall into the 'most of the time' category, but I think that many visitors here will fall into this category too. – Sirch Jun 08 '12 at 12:19
  • 1
    Incidentally, I know my answer is 1.5 years late, but, the bnx2 driver does not allow disabling autonegotiation with speeds of 1 or 2.5 Gb/s. See bnx2.c:bnx2_set_settings() in the linux kernel source code for details. – etherfish Feb 24 '14 at 12:42

2 Answers2

11

Autonegotiation is a requirement for using 1000BASE-T according to Section 28D.5 of IEEE 802.3-2002 specification, so you cannot disable autonegotiation with 1000BASE-T.

Try -

sudo ethtool -s eth0 speed 1000 duplex full autoneg on

Siddu
  • 111
  • 1
  • 6
  • 1
    While it's required by the specification, some vendors provide an option to disable autonegotiation while operating at gigabit speeds. This was relevant a decade ago when gigabit NICs were less reliable, but the non-standard configuration option still exists in certain NIC drivers, switches, and other equipment. – etherfish Feb 24 '14 at 12:34
1

Did you try,

sudo ethtool -s eth0 speed 1000 duplex full autoneg off

but I support Zoredache's comment, you should probably not be forcing the link speed, and unless it doesn't work without it, you should leave the machine set to autoneg, and ensure the network port is set to the right speed.

EightBitTony
  • 9,211
  • 1
  • 32
  • 46