[RESOLVED] MicroSD expansion card shows as USB2 only in front right port

Hello,
I suspect this might be hardware related / a dodgy connector somewhere, but I thought I would ask here in case someone has come across this before or knows if it is perhaps software related.

I recently purchased a framework 13 AMD laptop and have installed Ubuntu 22.04 on it (UEFI 3.03, 6.1.0-1027-oem kernal) I have been using a micro sd card expansion module in the front right port and have noticed that it only appears as a USB 2 device running at USB 2 speeds (Bus 01.Port 1: Dev 10 below):

user@computer:~$ lsusb -t
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/5p, 480M
    |__ Port 1: Dev 10, If 0, Class=Mass Storage, Driver=usb-storage, 480M <-- uSD reader
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 5: Dev 4, If 0, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 1, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 2, Class=Wireless, Driver=, 480M
user@computer:~$ lsusb
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0e8d:e616 MediaTek Inc. Wireless_Device
Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 001 Device 010: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive  <-- uSD reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
user@computer:~$

I tried the adapeter in the other ports and it shows up as USB 3 (Bus 06.Port 1: Dev 3 for the back right):

user@computer:~$ lsusb -t
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
    |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=usb-storage, 5000M  <-- uSD reader
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/5p, 480M
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 5: Dev 4, If 0, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 1, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 2, Class=Wireless, Driver=, 480M
user@computer:~$ lsusb
Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 003: ID 090c:1000 Silicon Motion, Inc. - Taiwan (formerly Feiya Technology Corp.) Flash Drive
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0e8d:e616 MediaTek Inc. Wireless_Device
Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC  <-- uSD reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
user@computer:~$

USB 3.0 works on the front right port just fine when tested with a USB A expansion module and hard disk. Interestingly I can get the reader to operate in USB 3 mode on the front right port by plugging in a USB C expansion module and then plugging the reader into that. It works when both upright and flipped upside down quite reliably.

Has anyone had something similar happen to them or know of strange software quirks that could explain this other than hardware issues? If so, could you please enlighten me? :slight_smile:

Welcome to the community!

I do not have a micro sd card expansion with me at the moment, so I am not able to replicate right now. However, different expansion bays behave differently for the AMD Ryzen Framework 13 Laptop.

I will need to get hands on one myself for testing (I missed this one), but without one on hand, I would suspect this is the module’s behavior.

An interesting comparable would be to create a live USB of Fedora 39, run it as a live USB only and test it there without touching your Ubuntu install. Since even the Live ISO will have a different kernel, it would be helpful to see if the behavior is repeated there as well.

In the meantime, I will work on requesting a micro sd card expansion card for deeper testing.

1 Like

For what it’s worth: I cannot reproduce this issue on similar hardware.

The microSD Expansion Card shows up at USB 3 speeds in all four expansion card slots.

Linux, kernel 6.6.8.

3 Likes

Extremely helpful! Thanks! I just put in the request for this card. Then I will be in far better shape. I “suspect” this is a 6.1.0 thing, but will know soon enough. :slight_smile:

1 Like

Thanks everyone for looking into it and offering suggestions. I will test with Fedora, although it may be a day or two until I can download it and run.

This suggests that the problem is mechanical: the connector pins for the high-speed data lanes don’t have good/reliable enough contact, when you plug the microsd adapter right into the framework slot, but when you use the usb-c module, which has no active components but is just like a high-quality 1-inch extension, it makes good enough connection to both the framework mainboard and the microsd adapter module.

Those “super speed” data lines / connectors are not easy to engineer btw, and HDMI and DP data pins can be similarly finicky. USB-2 data lines are much more forgiving.

So what side is at fault? or slightly out of tolerance? I don’t think you can tell for sure from the evidence so far. The microsd module works in other bays so it’s fine? but the usb-c module works fully in the front-right bay, so that’s fine? (I’d personally just put the usb-c or usb-a module in there, if those work fully, and shrug and move on :slight_smile:

1 Like

I’m not able to reproduce this issue on Ubuntu 23.10 with kernel 6.5.0 either. On the front right port (port 4), the microSD expansion card correctly shows up as a USB 3 device:

/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/5p, 480M
    |__ Port 4: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
    |__ Port 5: Dev 4, If 0, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 1, Class=Wireless, Driver=btusb, 480M
    |__ Port 5: Dev 4, If 2, Class=Wireless, Driver=, 480M

And I’m able to achieve >USB 2.0 write speeds with a UHS-1 SD card connected:

XX@XX-Framework:~$ sudo dd if=/dev/sda of=./TestingFile bs=100M count=10 oflag=direct
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 12.6809 s, 82.7 MB/s

My MicroSD expansion card is currently in another state, but I’ll see if I can test it when I’m back there tomorrow night.

I finally got around to downloading and testing with the latest Fedora release.

The SD card reader worked at USB 3 speeds when in the front right port. I rebooted back into Ubuntu without touching anything and it also works at USB 3 speeds. After plugging it in and removing it a couple of times, the reader is sometimes USB 3 and sometimes USB 2. At this point it seems to be much more likely to show as USB 3 than the other night. Testing using @FvO’s script shows it is genuine USB 3 speeds.

Like @pierce suggested it is likely a mechanical issue / the joys of high bandwidths over small connectors with lots of tiny pins, which I will live with.

Thanks everyone for looking into it and testing.

I experienced a similar mechanical issue with my rear right port where the expansion card needs to be pressed in quite firmly after the latch clicks. The other ports work fine just by sliding them in until they click, but that particular one needs an extra push to show up as a USB device at all.

Update, on kernel 6.6.9 it’s working

1 Like

Also tested it in every port- looks like it’s coming up but not showing up in Files, seems my older 1TB MicroSD card that’s seen quite a bit of wear and year might be dying
https://asciinema.org/a/633216

Appreciate the update, sounds like we have our cause.

2 Likes

Correct. As it seems not many are replying to this anymore, this is probably ready for a close.

1 Like

I’ve gone ahead and changed the title to indicate that the issue has been resolved.

2 Likes

I’ve been periodically checking with the same and other SD cards and the adapter seems to reliably work at USB 3 speeds now. I presume the connector must have worn in or cleaned its contacts through use. Resolved from my point of view :slight_smile: .