3

I've got an HT Z600 with the intergrated ethernet 5764 PCIe LOM controller.

When I check advertised speed with sudo ethtool enp1s0 I can see advertised link modes of 10,100,1000baseT, half and full duplex.

When I plug in the cable, 'wired settings' shows an attempt to connect at 1000 MB/s, then shows 'cable disconnected' then another attempt to connect.

When using a different (older) router the same thing would happen, but after a number of attempts it would connect at 100 MB/s. With two newer switches it just attempts to connect at 1000 and never succeeds.

I can make it connect by only advertising 10,100 speeds using sudo ethtool -s enp1s0 advertise 0x004 and it will immediately connect at 100 MB/s.

When I search for similar problems, almost every time it was caused by a faulty cable. I've bought a switch with speed indicators and tested every cable is cat5e and shows as gigabit speed when both ends are plugged into that switch. I've also tested that the cable gives gigabit speed and the network behaves normally when plugged between two different switches. I've checked every port on both switches gives gigabit speeds.

Here's my attempt to gather info:

Ubuntu 18.04.2 LTS

> lspci | awk '/[Nn]et/ {print $1}' | xargs -i% lspci -ks %
01:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5764M Gigabit Ethernet PCIe (rev 10)
    Subsystem: Hewlett-Packard Company NetXtreme BCM5764M Gigabit Ethernet PCIe
    Kernel driver in use: tg3
    Kernel modules: tg3

> lspci -nn -d 14e4:

01:00.0 Ethernet controller [0200]: Broadcom Inc. and subsidiaries NetXtreme BCM5764M Gigabit Ethernet PCIe [14e4:1684] (rev 10)

> sudo ethtool -i enp1s0

driver: tg3
version: 3.137
firmware-version: 5764m-v3.35
expansion-rom-version: 
bus-info: 0000:01:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

> sudo ethtool enp1s0 (when I set advertised mode to 10/100)

Settings for enp1s0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Half 1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  100baseT/Half 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                         100baseT/Half 100baseT/Full 
    Link partner advertised pause frame use: Symmetric
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 100Mb/s
    Duplex: Half
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off
    Supports Wake-on: g
    Wake-on: g
    Current message level: 0x000000ff (255)
                   drv probe link timer ifdown ifup rx_err tx_err
    Link detected: yes

> sudo ethtool enp1s0 (when I set speed to 1000 with sudo ethtool -s enp1s0 speed 1000 duplex full)

Settings for enp1s0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
                            1000baseT/Half 1000baseT/Full 
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  1000baseT/Full 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: Unknown!
    Duplex: Unknown! (255)
    Port: Twisted Pair
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: g
    Wake-on: g
    Current message level: 0x000000ff (255)
                   drv probe link timer ifdown ifup rx_err tx_err
    Link detected: no


(offload features)
> sudo ethtool -k enp1s0
...
highdma: on
...

> sudo cat /etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

> dmesg

[159771.985545] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159771.985554] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159773.152452] tg3 0000:01:00.0 enp1s0: Link is down
[159779.157332] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159779.157334] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159780.324591] tg3 0000:01:00.0 enp1s0: Link is down
[159783.204587] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159783.204599] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159784.367819] tg3 0000:01:00.0 enp1s0: Link is down
[159787.230882] tg3 0000:01:00.0 enp1s0: Link is up at 1000 Mbps, full duplex
[159787.230895] tg3 0000:01:00.0 enp1s0: Flow control is on for TX and on for RX
[159788.394290] tg3 0000:01:00.0 enp1s0: Link is down
...

And here's what I've attempted:

updated /etc/default/grub to add GRUP_CMDLINE_LINUX_DEFAULT="iommu=soft" then sudo update-grub and reboot.
No difference that I can see.

> sudo ethtool -s enp1s0 speed 100 duplex full
... works and immediately connects at 100.
> sudo ethtool -s enp1s0 speed 1000 duplex full
... switches between "connecting" and "cable disconnected", shows the "link is up/link is down" messages from the dmesg output above.

> sudo ethtool -K enp1s0 highdma (on/off)
No difference that I can see.

Any help is GREATLY appreciated!

Edit: I can confirm that it's a driver or hardware issue because when at 1000:

> ip link | grep enp
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT group default qlen 1000

and when at 100

> ip link | grep enp
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000

(And this comment saying that NO-CARRIER is either driver or hardware: https://bugzilla.gnome.org/show_bug.cgi?id=792506#c5) ... all of which confirms what Fabby is saying. I guess I'm out of luck.

Edit: This question appears to be the same issue, and states that the card was working with Kernel 4.14 but stopped working with 4.15. uname -r tells me I'm running 4.15.0-55-generic - so this seems to fit. I don't know enough about kernels to update/maintain/verify if an update will help. But that'd be a different question, thanks for the help with this one!

  • did you try ethtool -s with duplex half – cmak.fr Aug 4 '19 at 5:44
  • Yes, sorry for not including that. When I use 1000 with duplex half it says "cable unplugged" and ethtools shows the Speed/Duplex as Unknown. Unlike when I use 1000 with duplex full, where it switches between attempting to connect at 1000 and saying cable unplugged. – Azrael Aug 4 '19 at 9:26
  • 3
    I'm voting to close this question as off-topic because this is a hardware problem as per answer. – Fabby Aug 5 '19 at 17:23
1

All of the answers you're finding say that it's the cable because that's what it is in 99% of all cases.

The problem really is at the hardware level though, and as your cables and switches seem to check out OK that leaves you with:

  • The firmware (I checked: there is built-in support for this card)
  • The actual connector inside the PC

So you've got a hardware problem or you have a bug in the firmware and both of these are off-topic here.

However just fix the speed at 100M for now and every x kernel updates you receive, try 1G again or just have the connector replaced...

  • I think you're right. I'm thinking that it's likely a hardware issue, considering the lack of anyone else with these same specifics. Thanks for the confirmation, so I don't feel like I'm just replacing hardware rather than configuring it properly. – Azrael Aug 5 '19 at 23:00
  • Another question implies it was broken in the kernel change from 1.14 to 1.15. Link in my edit above. – Azrael Aug 6 '19 at 0:52
  • I don't have your specific hardware so I cannot check that, so yes, that's a new question ;-) – Fabby Aug 6 '19 at 6:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.