1000001101000 / Debian_on_Buffalo

Tools for Installing/Running Debian on Buffalo ARM based Linkstation/Terastation/Kurobox/Cloudstor devices.
329 stars 41 forks source link

LS441DE limits itself to 100mbps #93

Open BrianBenninger opened 3 years ago

BrianBenninger commented 3 years ago

Hi,

First off thanks for this! It's great to be able to use debian instead of the original buffalo software.

I am writing this issue because I am getting throttled speeds from the NIC on the LS441DE.

Before I continue, let me assure you that I have tried countless 5e and 6 cables, and also have tried a gigabit switch and plugging directly into my router which also does gigabit.

The switch will not allow connection at all regardless of the cable (but does work for other devices) and the router limits itself to 100Mbps

I have run the ethtool on my network adapter and it shows that it SHOULD be able to do gigabit speeds, but that the link partner does not offer it.

Settings for eth0: Supported ports: [ TP MII FIBRE ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supported pause frame use: Symmetric Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 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: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Link detected: yes

I have also used mii-tool -v and got this response.

eth0: negotiated 100baseTx-FD flow-control, link ok product info: vendor 00:50:43, model 29 rev 1 basic mode: autonegotiation enabled basic status: autonegotiation complete, link ok capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

All of this makes me think the issue would be external, but as I stated previously I have tried countless cords which show gigabit speeds on other devices, and I have plugged directly into my router which can do gigabit and does for other devices.

I also tried forcing the NIC into gigabit speeds with sudo ethtool –s eth0 speed 1000 duplex full autoneg off This resulted in the network going down, I checked my routers dashboard and it listed that port as "unplugged". I ended up having to restart the linkstation in order to regain network. 100mbps network :(

I'm afraid I have run out of ideas, but if you have any or would like me to get you any further information I would be happy too.

Gigabit switch that will not connect to the linkstation even at reduced speeds: NETGEAR Pro Safe 16 port switch GS116 Router: Asus Zenwifi AX

Thank you,

1000001101000 commented 3 years ago

Good to hear from you!

This is an issue that happens on a subset of LS400 devices which apparently do not configure the ethernet chip for the proper voltage resulting in being stuck at 10/100, random disconnections or both. Someone did some really good work identifying the issue and writing about it here: https://openwrt.org/toh/buffalo/ls421de#ethernet_port

Despite having worked on about 10 ls400 devices I've never had one with this issue which has made it hard for me to test fixes for this issue.

We made some attempts a while back to implement the devmem and kernel patch based fixes described on that page but they didn't seem to work for the person who was trying them. Instead I put together a process for flashing the bootloader image provided on the OpenWRT site which resolved the issue for the users I was working with at the time.

Unfortunately, that image is not compatible with the LS441DE. If Buffalo provided the source code for this device's boot loader I would try adding some code to fix the issue and compile a new issue, but they don't seem to provide that code for most of their devices.

I asked the person who created the LS421 image for some help and they suggested a method for patching the bootloader image, but I wasn't able to make it work at the time. They added some more information but I haven't gotten around to trying again: https://forum.openwrt.org/t/mvneta-help-with-a-voltage-patch/64226/10

viktak commented 2 years ago

I noticed the same issue on an LS220D. I actually haven't measured the speed yet as I am still in the process of getting the disks ready to roll, but I saw this in dmesg:

root@debian:/home/buffalo# dmesg | grep eth0
[   21.301332] mvneta d0074000.ethernet eth0: Using random mac address 2e:bf:ea:65:9a:dd
[   36.378822] mvneta d0074000.ethernet eth0: PHY [d0072004.mdio-mii:00] driver [Marvell 88E1318S] (irq=POLL)
[   36.407530] mvneta d0074000.ethernet eth0: configuring for phy/rgmii-id link mode
[   50.755633] mvneta d0074000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   50.779179] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Is there a solution for the LS220D? I'm happy to help experiment with it!