I own an Iomega Storcenter ix2-200 and installed Archlinuxarm following the instructions posted by Sven Kiljan at https://www.kiljan.org/2016/11/15/installing-arch-linux-on-an-iomega-ix2-200-2/; notably those on the headless preparation (i.e., not via TTL). I'm on the latest kirkwood-dt kernel using the kirkwood-iomega_ix2_200.dts overlay. Installing Archlinuxarm has really put the life back into this aging NAS-box. However, one thing has been bothering me for quite a while now; I am unable to connect the Storcenter at 1Gb/s to my R7000 (running dd-wrt).
I was hoping that somebody with more know-how (@WarheadsSE? @moonman? @summers?) could help me with this issue.
I tried different cables, confirmed the cables connecting at 1 Gb/s with the R7000 using another machine, and tried to force the NIC into a 1 Gb/s connection using both ethtool and mii-tool; all to no avail. Unfortunately the only other router I own is a Airport Express, which only has a 100 Mb/s Ethernet port. [update] I was able to enable the DHCP-server (bootpd) on my 2011 MacBook Pro and use it to connect to the Storcenter via a single Ethernet cable. However, again the connection could only be made when forcing the Mac's NIC to 100 Mb/s. Dmesg showed the link going up at 1000 Mb/s but going down again quickly. Lastly, the two leds on the Storcenter's Ethernet port are solid green (bottom) and flashing orange (top).[/update]
Below is a snippet from dmesg that shows that actually a 1 Gb/s link goes up but goes down a few times and eventually the connection stays up at 100 Mb/s.
$this->bbcode_second_pass_code('', '[ 1.723965] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4
[ 1.732633] mv643xx_eth_port mv643xx_eth_port.0 eth0: port 0 with MAC address aa:00:00:00:00:01
[ 2.602918] mv643xx_eth_port mv643xx_eth_port.1 eth1: port 0 with MAC address xx:xx:xx:xx:xx:xx
[ 27.186010] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 1000 Mb/s, full duplex, flow control disabled
[ 28.309665] mv643xx_eth_port mv643xx_eth_port.1 eth1: link down
[ 34.940450] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 1000 Mb/s, full duplex, flow control disabled
[ 36.047826] mv643xx_eth_port mv643xx_eth_port.1 eth1: link down
[ 42.757901] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 1000 Mb/s, full duplex, flow control disabled
[ 43.872502] mv643xx_eth_port mv643xx_eth_port.1 eth1: link down
[ 46.361503] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 100 Mb/s, full duplex, flow control disabled
[ 46.371426] mv643xx_eth_port mv643xx_eth_port.1 eth1: link up, 100 Mb/s, full duplex, flow control disabled')
Scouring the internet did reveal that there have been issues with the mv643xx_eth driver in the past. Notably with TSO corruption and unaligned packages. I am unable to say for sure if any of the patches I found addressing these issues have made it to main-line (https://git.kernel.org/pub/scm/linux/ke ... ?h=v4.18.5), as the driver's version number is stoically kept at 1.4. However, there is a patch at https://github.com/archlinuxarm/PKGBUIL ... irkwood-dt that explicitly disables TSO, but it is not included in the PKGBUILD anymore. Nonetheless, I have the following udev rule set up:
$this->bbcode_second_pass_code('', 'ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth*", RUN+="/usr/bin/ethtool -K %k tx off sg off tso off"')
I took note of the discussions at https://archlinuxarm.org/forum/viewtopic.php?f=53&t=7723 and https://archlinuxarm.org/forum/viewtopic.php?f=27&t=3851 and wonder if there is a possible issue with auto-negotiation or something not properly being initialized by the driver. My suspicion is that the R7000 gives up after a few times and then stops advertising 1000baseT-FD.
Below the information reported by ethtool
$this->bbcode_second_pass_code('', 'driver: mv643xx_eth
version: 1.4
firmware-version: N/A
expansion-rom-version:
bus-info: platform
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
Settings for eth1:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: Symmetric Receive-only
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: No
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 Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 11
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Link detected: yes')
and here the those by mii-tool:
$this->bbcode_second_pass_code('', 'Using SIOCGMIIPHY=0x8947
eth1: negotiated 100baseTx-FD, link ok
registers for MII PHY 11:
1000 796d 0141 0e40 01e1 cde1 000d 0000
0000 0200 4000 0000 0000 0000 0000 3000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0040 0000 0000 0000 0000 0000
product info: vendor 00:50:43, model 36 rev 0
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
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control')
Thanks in advance!