Plugged-in network cable is not detected (possibly related to green ethernet?)

12,155

Solution 1

This is what I’ve found out and how I have solved the issue for now.

First of all, I have come accross numerous reports of the same issue on the internet, this one for instance. Most people seem to have solved the issue by upgrading the jme driver. I have found newer versions of the JME driver on ftp://driver.jmicron.com.tw/Ethernet/Linux/ and http://bbs.cooldavid.org/git/?p=jme.git;a=summary. The newest driver from the Git repository (bp-1.0.8.9-noasd) does not change anything about my problem.

Version bp-1.0.8.5 from the JMicron website (strangely, versions 1.0.8.3 to 1.0.8.5 are not available in the Git repository) provides a workaround for the issue that makes it a bit less annoying: It is the same as 1.0.8.4 (it was even uploaded the same day), except that it adds the delay_time module parameter, which causes the network card to automatically fall back to 100 MBit/s after it cannot connect for several seconds (by default 11). With this, link detection works, so it saves me running ethtool manually, but of the connection is only 100 MBit/s.

I got rid of the D-Link DIR-652 router and bought a TP-Link TL-WDR3600 instead. With that, I initially had exactly the same problem. Then I installed the DD-WRT firmware, and suddenly, the issue vanished.

Solution 2

I'm willing to bet that your router is waiting to hear what kind of link whatever is connected to it is going to run at to turn the port on, and seeing that your Shuttle is waiting to hear what speed it's supposed to run at will keep waiting because the port is turned off!

I haven't read the manual yet so I can't tell you how to do it, but see if you can turn off the Green Networking for the one port your Shuttle is connected to (and leave the auto-negotiation on) and see what happens.

The other thought is to get your Shuttle to force a data packet out somehow (manual ping to 127.0.0.1 for example) to present some sort of electrical activity on the port.

After reading through D-Link's website, Green Ethernet seems to be mostly marketing. I do say mostly because there is potential to save energy, but some of the features they mention are already used in other pieces of technology. So, perhaps the "turning off the port to save energy" is a good idea in theory, but I think it makes some bad assumptions about how some other devices work and is more of a pain than practical.

GL

Share:
12,155

Related videos on Youtube

cdauth
Author by

cdauth

Updated on September 18, 2022

Comments

  • cdauth
    cdauth almost 2 years

    I have just purchased a D-Link DIR-652 wireless router, and now I want to connect a Shuttle XS25GT V2 computer using a 1 metre Cat 5e ethernet cable. The Shuttle runs Ubuntu 12.10 and has a JMC250 Ethernet card.

    When I plug the network cable in, the Shuttle does not detect the connection and can thus not communicate with the network. The output of ethtool is exactly the same as if no network cable was plugged in:

    root@shuttle:~# ethtool p33p1
    Settings for p33p1:
            Supported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
                                    1000baseT/Half 1000baseT/Full 
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
                                    1000baseT/Half 1000baseT/Full 
            Advertised pause frame use: Symmetric Receive-only
            Advertised auto-negotiation: Yes
            Speed: 10Mb/s
            Duplex: Half
            Port: MII
            PHYAD: 1
            Transceiver: internal
            Auto-negotiation: on
            Supports Wake-on: pg
            Wake-on: g
            Current message level: 0x000020c6 (8390)
                                   probe link rx_err tx_err hw
            Link detected: no
    

    This does not change using a different network cable (1m, 3m, 15m). Strangely, when I connect a different computer with the router using the same network cable, everything works fine, and when I connect the Shuttle to a different router (of a different model) using the same network cable, it also works.

    I have discovered that turning auto-negotiation off fixes the problem. After running ethtool -s p33p1 autoneg off speed 100 duplex full, this is the output:

    root@shuttle:~# ethtool p33p1
    Settings for p33p1:
            Supported ports: [ TP MII ]
            Supported link modes:   10baseT/Half 10baseT/Full 
                                    100baseT/Half 100baseT/Full 
                                    1000baseT/Half 1000baseT/Full 
            Supported pause frame use: No
            Supports auto-negotiation: Yes
            Advertised link modes:  Not reported
            Advertised pause frame use: No
            Advertised auto-negotiation: No
            Speed: 100Mb/s
            Duplex: Full
            Port: MII
            PHYAD: 1
            Transceiver: internal
            Auto-negotiation: off
            Supports Wake-on: pg
            Wake-on: g
            Current message level: 0x000020c6 (8390)
                                   probe link rx_err tx_err hw
            Link detected: yes
    

    However, Gigabit ethernet requires auto-negotiation, so this will only work with reduced speed.

    I suspect that the “Green Ethernet” functionality of the router might not detect the connection of the cable and thus not turn on the power of the ethernet port. There seems to be no way to disable Green Ethernet in the config menu of the router, though.

    Does anyone have an idea how I could fix this problem? I tried to manually tell the network card to negotiate a connection using ethtool -r, but that did not do anything.

    • Ƭᴇcʜιᴇ007
      Ƭᴇcʜιᴇ007 over 11 years
      ethtool -s p33p1 autoneg off speed 1000 duplex full doesn't set it to Gb?
    • David Schwartz
      David Schwartz over 11 years
      Have you tried with a cable that is certified by its manufacturer to run at gigabit speeds? Cable cannot negotiate -- it's just wires -- connecting devices with a cable not qualified for the highest speed supported by both ends is not a supported configuration.
    • cdauth
      cdauth over 11 years
      techie007: That is not possible, ethtool will not let me set 1000 MBit/s with auto-negotiation off.
    • cdauth
      cdauth over 11 years
      David Schwartz: I have used normal Cat 5e cables. Also, one of the cables I tried was delivered with the Gigabit router, so I guess it should support Gigabit. Also, as written, Gigabit works with my computer and the same cable and with the Shuttle and a different router.
  • cdauth
    cdauth over 11 years
    So far I haven’t found any way to turn off green ethernet. Do you have any suggestion how I could force a data packet to be sent? Also, I’m not sure if that will help, as I’ve tried running a DHCP client on the interface, which probably sends some traffic, and that did not change anything.
  • cdauth
    cdauth over 11 years
    Interestingly, I have discovered that connecting the Shuttle to a different router that also uses Green Ethernet (an AVM Fritz!Box), the Gigabit connection works fine.