Yeah, I’m seeing issues with this new ethernet expansion card on Fedora 36 as well. Seems to work in Windows, though, so maybe the r8152 driver has some problems?
This Ethernet Expansion Cards do seem to be very delicate.
I can truly confirm that all my Ethernet switches within my lab environments are not the issue as I have many desktops, laptops, Dongles, MacBook Pros, Mac Minis, Servers, and docking stations working without any issue.
I am getting greater success to always do a reboot after I insert the Expansion Card to a new slot – I try to the rear USB C ports (right now as I am writing this post the card is on the left side back port).
I am seeing the card go offline and online periodically. I don’t have that experience with any other Ethernet device.
I have swapped the two cards between my original Frame work laptop (11th Generation I received in DEC 2021) and the new 12th Gen I received in September 2022. The experience is the same.
I am using POP!_OS 22.04 using kernel 5.19.0-76051900 on both systems.
No matter the configuration of the card or laptop the experience is the same where I see periodic drop and start of the network adapter.
On both laptops the Ethernet Expansion Card is recognized as USB Ethernet device (image attached from the Framework 11-gen as both cards do not work as well as the other laptop).
The PCI Ethernet device is my Sonnet SOLO10G SFP+ device – a network for a TrueNas server.
I am not sure if I am going to return 1 or both.
I’m running Ubuntu with kernel 5.19.0, only changes were adding the realtek UDEV rules.
Inserting the card is like roulette, sometimes it just doesn’t work:
[ +0.331330] usb 2-2: new SuperSpeed USB device number 62 using xhci_hcd
[ +0.020732] usb 2-2: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.04
[ +0.000010] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ +0.000004] usb 2-2: Product: USB 10/100/1G/2.5G LAN
[ +0.000002] usb 2-2: Manufacturer: Realtek
[ +0.000002] usb 2-2: SerialNumber: 4013000001
[ +0.023456] cdc_ncm 2-2:2.0: MAC-Address: 9c:bf:0d:00:05:30
[ +0.000009] cdc_ncm 2-2:2.0: setting rx_max = 16384
[ +0.000037] cdc_ncm 2-2:2.0: setting tx_max = 16384
[ +0.000473] cdc_ncm 2-2:2.0 eth0: register 'cdc_ncm' at usb-0000:00:0d.0-2, CDC NCM, 9c:bf:0d:00:05:30
[ +0.590028] usb 2-2: Disable of device-initiated U1 failed.
[ +0.007090] usb 2-2: Disable of device-initiated U2 failed.
[ +0.000030] cdc_ncm 2-2:2.0 eth0: unregister 'cdc_ncm' usb-0000:00:0d.0-2, CDC NCM
[ +0.190475] usb 2-2: Set SEL for device-initiated U1 failed.
[ +0.007047] usb 2-2: Set SEL for device-initiated U2 failed.
[ +1.828562] usb 2-2: USB disconnect, device number 62
[ +2.476044] usb usb3-port3: Cannot enable. Maybe the USB cable is bad?
[ +2.843934] usb usb3-port3: Cannot enable. Maybe the USB cable is bad?
[ +0.000114] usb usb3-port3: attempt power cycle
[ +2.711968] usb usb3-port3: Cannot enable. Maybe the USB cable is bad?
[ +2.643836] usb usb3-port3: Cannot enable. Maybe the USB cable is bad?
[ +0.000119] usb usb3-port3: unable to enumerate USB device
Eventually with enough port sex:
[Oct28 14:06] usb 2-2: new SuperSpeed USB device number 63 using xhci_hcd
[ +0.020725] usb 2-2: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.04
[ +0.000008] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ +0.000003] usb 2-2: Product: USB 10/100/1G/2.5G LAN
[ +0.000002] usb 2-2: Manufacturer: Realtek
[ +0.000002] usb 2-2: SerialNumber: 4013000001
[ +0.023476] cdc_ncm 2-2:2.0: MAC-Address: 9c:bf:0d:00:05:30
[ +0.000007] cdc_ncm 2-2:2.0: setting rx_max = 16384
[ +0.000035] cdc_ncm 2-2:2.0: setting tx_max = 16384
[ +0.000413] cdc_ncm 2-2:2.0 eth0: register 'cdc_ncm' at usb-0000:00:0d.0-2, CDC NCM, 9c:bf:0d:00:05:30
[ +0.003163] cdc_ncm 2-2:2.0 eth0: unregister 'cdc_ncm' usb-0000:00:0d.0-2, CDC NCM
[ +0.164569] usb 2-2: reset SuperSpeed USB device number 63 using xhci_hcd
[ +0.047373] r8152 2-2:1.0: load rtl8156b-2 v1 04/15/21 successfully
[ +0.037585] r8152 2-2:1.0 eth0: v1.12.13
[ +0.587093] r8152 2-2:1.0 enx9cbf0d000530: renamed from eth0
[ +3.291778] IPv6: ADDRCONF(NETDEV_CHANGE): enx9cbf0d000530: link becomes ready
[ +0.000346] r8152 2-2:1.0 enx9cbf0d000530: carrier on
Once it works, I’m getting good performance with iperf3 as client:
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 283 MBytes 2.37 Gbits/sec 0 624 KBytes
[ 5] 1.00-2.00 sec 280 MBytes 2.35 Gbits/sec 0 949 KBytes
[ 5] 2.00-3.00 sec 281 MBytes 2.36 Gbits/sec 0 949 KBytes
[ 5] 3.00-4.00 sec 280 MBytes 2.35 Gbits/sec 0 996 KBytes
[ 5] 4.00-5.00 sec 281 MBytes 2.36 Gbits/sec 0 996 KBytes
[ 5] 5.00-6.00 sec 280 MBytes 2.35 Gbits/sec 0 996 KBytes
[ 5] 6.00-7.00 sec 281 MBytes 2.36 Gbits/sec 0 996 KBytes
[ 5] 7.00-8.00 sec 280 MBytes 2.35 Gbits/sec 0 996 KBytes
[ 5] 8.00-9.00 sec 279 MBytes 2.34 Gbits/sec 0 1.09 MBytes
[ 5] 9.00-10.00 sec 281 MBytes 2.36 Gbits/sec 0 1.09 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 2.74 GBytes 2.35 Gbits/sec receiver
However, when it is a server, the retransmits really screw up performance:
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 89.3 MBytes 749 Mbits/sec 869 18.4 KBytes
[ 4] 1.00-2.00 sec 89.6 MBytes 752 Mbits/sec 904 19.8 KBytes
[ 4] 2.00-3.00 sec 92.3 MBytes 774 Mbits/sec 946 17.0 KBytes
[ 4] 3.00-4.00 sec 92.3 MBytes 775 Mbits/sec 931 19.8 KBytes
[ 4] 4.00-5.00 sec 92.9 MBytes 779 Mbits/sec 876 19.8 KBytes
[ 4] 5.00-6.00 sec 92.4 MBytes 775 Mbits/sec 935 19.8 KBytes
[ 4] 6.00-7.00 sec 93.0 MBytes 780 Mbits/sec 967 19.8 KBytes
[ 4] 7.00-8.00 sec 90.9 MBytes 763 Mbits/sec 899 19.8 KBytes
[ 4] 8.00-9.00 sec 87.6 MBytes 734 Mbits/sec 929 17.0 KBytes
[ 4] 9.00-10.00 sec 78.0 MBytes 655 Mbits/sec 756 19.8 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth Retr
[ 4] 0.00-10.00 sec 898 MBytes 754 Mbits/sec 9012 sender
[ 4] 0.00-10.00 sec 898 MBytes 753 Mbits/sec receiver
I’ve tested this against multiple machines each on a 10G link, which all achieve 9.39Gb/s between one another.
Also, once I disconnect the ethernet cable and reconnect, it will never link again until I reset the card.
Update: Once the card is working hard after about 5 minutes, it will disconnect, this seems to repeat over and over. I think framework made a dud. I’d advise people not order this until these problems are fixed, I think I’m going to try to return mine.
[Oct28 14:39] usb 2-2: USB disconnect, device number 65
[ +0.000269] xhci_hcd 0000:00:0d.0: WARN Set TR Deq Ptr cmd failed due to incorrect slot or ep state.
[ +0.335803] usb 2-2: new SuperSpeed USB device number 66 using xhci_hcd
[ +0.020433] usb 2-2: New USB device found, idVendor=0bda, idProduct=8156, bcdDevice=31.04
[ +0.000013] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=6
[ +0.000003] usb 2-2: Product: USB 10/100/1G/2.5G LAN
[ +0.000003] usb 2-2: Manufacturer: Realtek
[ +0.000002] usb 2-2: SerialNumber: 4013000001
[ +0.024357] cdc_ncm 2-2:2.0: MAC-Address: 9c:bf:0d:00:05:30
[ +0.000007] cdc_ncm 2-2:2.0: setting rx_max = 16384
[ +0.000038] cdc_ncm 2-2:2.0: setting tx_max = 16384
[ +0.000500] cdc_ncm 2-2:2.0 eth0: register 'cdc_ncm' at usb-0000:00:0d.0-2, CDC NCM, 9c:bf:0d:00:05:30
[ +0.004007] cdc_ncm 2-2:2.0 eth0: unregister 'cdc_ncm' usb-0000:00:0d.0-2, CDC NCM
[ +0.162974] usb 2-2: reset SuperSpeed USB device number 66 using xhci_hcd
[ +0.024034] r8152 2-2:1.0: load rtl8156b-2 v1 04/15/21 successfully
[ +0.036704] r8152 2-2:1.0 eth0: v1.12.13
[ +0.578218] r8152 2-2:1.0 enx9cbf0d000530: renamed from eth0
[ +3.339795] IPv6: ADDRCONF(NETDEV_CHANGE): enx9cbf0d000530: link becomes ready
[ +0.000324] r8152 2-2:1.0 enx9cbf0d000530: carrier on