Приветствую камрады!
Прикупил Orico NVMe M.2 SSD 10Gbps, на базе бриджа RTL9210, установил туда KINGSTON SA400S37120G, который до этого стоял в домашней машине и бутстрапнул туда арч, чтобы можно было загрузиться в полноценную систему на рабочей машине (на которой стоит оффтопик).
Первые проблемы начали вылазить в процессе бутстрапа и выглядели как ошибки драйвера UAS с отвалом диска. Лог ядра добавлю позже, если получится проблему воспроизвести. UAS я попробовал вылечить через usb-storage.quirks=0bda:9210:u, что вроде как помогло доустановисть систему и загрузиться с самого диска. Но в процессе работы с диска он периодически отваливается с полным зависанием системы (разумеется). После резета машины, диск не детектится в BIOS (но это возможно связано с кривым ASUS-овским биосом), его необходимо переподключить.
Решать проблему я начал с кабелей. Изначально адаптер был подключен через родной короткий шнурок USB3.0 <-> Type-C к удлинителю USB2.0. Дома, при подключении к ноуту родным шнурком в USB2 порт, проблема воспроизвелась. Я предположил, что у адаптера плохая поддержка USB2 и подключил его в USB3.0 на работе коротким кабелем. При работе на порте 3.0 зависаний не происходило (возможно мне повезло), но лазить каждый раз под стол не прикольно, поэтому был куплен 3.0 <-> Type-C на 1.8м.
Прошивка. На форуме есть тред по прошивке RTL9210 и аналогичных бриджей, а на station-drivers.com есть последняя версия 1.25, на которую я обновился с текущей 1.24. Вот старый дамп MPTool до прошивки:
**************************************************************
Device : [Port4] : Realtek RTL9210 NVME #0
**************************************************************
U2PHY : 02 f4 9b e0 e1
U3PHY : 02 d4 09 00 d5 00 80
VID : 0x0bda
PID : 0x9210
MANUFACTURE : "Realtek"
PRODUCT : "RTL9210"
SERIAL : "012345678902"
SCSI_PRODUCT : "RTL9210 NVME "
SCSI_VENDOR : "Realtek "
DISK_HOTPLUG : 0x00
LED : 0x01
PINMUX1 : 0x00000000
PINMUX2 : 0x00000000
U2_MAXPWR : 0xfa
U3_MAXPWR : 0x70
ASPMDIS : 0x00
PCIE_REFCLK : n/a
DISK_IPS_THRES : 0x0a
SWR_1_2V : n/a
EN_UPS : n/a
PD : n/a
CUSTOMIZED_LED : 01 01 00 00 00 00 00 00 00 00 00 00 00 00 00
SUSPEND_LED_OFF : n/a
FORCE_USB_SPEED : n/a
FORCE_PCIE_SPEED : n/a
FORCE_USB_QUIRK : n/a
FORCE_PCIE_QUIRK : n/a
FAN : n/a
DIS_SHOW_EMPTY_DISK : 0x01
FORCE_SATA_NORMAL_DMA : n/a
UART_DBG_PIN : 0x05
FINGER_PRINT_EN : n/a
RM_INTERNAL_RD : 0x00
HS_AUTO_SWITCH : n/a
EFUSE :
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
-------------------------------------------------
0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
10 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
50 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
60 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
70 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
90 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
a0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
b0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
Boot Mode : Flash NM
FW Ver : 1.24.2
FW Build Date : 2020.12.07
IC Ver : 0xa0010002
IC Pkg Type : PCIE
UUID : ffffffff-ffff-ffff-ffff-ffffffffffff
Disconn_ForceUSB2 : 0x00
Попутно инфо системы:
[wx@nvme ~]$ uname -a
Linux nvme 5.10.52-3-rt47-MANJARO #1 SMP PREEMPT_RT Tue Jul 27 07:05:57 UTC 2021 x86_64 GNU/Linux
[phantom@nvme ~]$ lspci
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation 82579V Gigabit Network Connection (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.4 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 5 (rev c4)
00:1c.7 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 8 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation Z77 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750] (rev a2)
01:00.1 Audio device: NVIDIA Corporation GM107 High Definition Audio Controller [GeForce 940MX] (rev a1)
03:00.0 USB controller: ASMedia Technology Inc. ASM1042 SuperSpeed USB Host Controller
04:00.0 SATA controller: ASMedia Technology Inc. ASM1062 Serial ATA Controller (rev 01)
[wx@nvme ~]$ lsusb
Bus 002 Device 004: ID 04d9:1702 Holtek Semiconductor, Inc. Keyboard LKS02
Bus 002 Device 003: ID 04d9:a0d6 Holtek Semiconductor, Inc. USB Gaming Mouse
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 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 002: ID 0403:6010 Future Technology Devices International, Ltd FT2232C/D/H Dual UART/FIFO IC
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0951:16a2 Kingston Technology DTR30G2
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210 M.2 NVME Adapter
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
[wx@nvme ~]$ free -m
total used free shared buff/cache available
Mem: 15948 1129 13912 91 906 14554
Swap: 0 0 0
И лог ядра, в момент отвала диска, когда я был загружен с флешки:
[ 3024.126870] usb 3-4: reset high-speed USB device number 2 using xhci_hcd
[ 3029.446731] usb 3-4: device descriptor read/64, error -110
[ 3045.020034] usb 3-4: device descriptor read/64, error -110
[ 3045.250032] usb 3-4: reset high-speed USB device number 2 using xhci_hcd
[ 3045.373356] usb 3-4: device descriptor read/64, error -71
[ 3045.603355] usb 3-4: device descriptor read/64, error -71
[ 3045.833357] usb 3-4: reset high-speed USB device number 2 using xhci_hcd
[ 3045.833458] usb 3-4: Device not responding to setup address.
[ 3046.040101] usb 3-4: Device not responding to setup address.
[ 3046.246679] usb 3-4: device not accepting address 2, error -71
[ 3046.370013] usb 3-4: reset high-speed USB device number 2 using xhci_hcd
[ 3046.370116] usb 3-4: Device not responding to setup address.
[ 3046.576777] usb 3-4: Device not responding to setup address.
[ 3046.783347] usb 3-4: device not accepting address 2, error -71
[ 3046.783408] usb 3-4: USB disconnect, device number 2
[ 3046.796667] print_req_error: 983 callbacks suppressed
[ 3046.796669] blk_update_request: I/O error, dev sdc, sector 198516744 op
0x1:(WRITE) flags 0x800 phys_seg 5 prio class 0
[ 3046.796682] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 1704986 starting block 6853121)
[ 3046.796695] blk_update_request: I/O error, dev sdc, sector 198529024 op
0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0
[ 3046.796699] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 10485770 starting block 6854656)
[ 3046.796702] Buffer I/O error on device dm-3, logical block 6854656
[ 3046.796714] blk_update_request: I/O error, dev sdc, sector 479529680 op
0x1:(WRITE) flags 0x0 phys_seg 1 prio class 0
[ 3046.796718] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 10486414 starting block 41979738)
[ 3046.796724] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 1704985 starting block 6849599)
[ 3046.796761] Buffer I/O error on device dm-3, logical block 6853121
[ 3046.796769] Buffer I/O error on device dm-3, logical block 6853122
[ 3046.796771] Buffer I/O error on device dm-3, logical block 6853123
[ 3046.796772] Buffer I/O error on device dm-3, logical block 6853124
[ 3046.796773] Buffer I/O error on device dm-3, logical block 6853125
[ 3046.796781] Buffer I/O error on device dm-3, logical block 41979738
[ 3046.796785] Buffer I/O error on device dm-3, logical block 6849599
[ 3046.796877] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 10486415 starting block 41979739)
[ 3046.796881] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 10486416 starting block 41979740)
[ 3046.796893] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 10486418 starting block 41979741)
[ 3046.796894] Buffer I/O error on device dm-3, logical block 41979739
[ 3046.796900] Buffer I/O error on device dm-3, logical block 41979740
[ 3046.797887] Aborting journal on device dm-3-8.
[ 3046.797892] EXT4-fs error (device dm-3) in ext4_reserve_inode_write:5751:
Journal has aborted
[ 3046.797974] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 4347963 starting block 17477576)
[ 3046.797996] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 4347964 starting block 17477588)
[ 3046.798015] EXT4-fs warning (device dm-3): ext4_end_bio:345: I/O error 10
writing to inode 4347965 starting block 17477592)
[ 3046.799782] buffer_io_error: 974 callbacks suppressed
[ 3046.799783] Buffer I/O error on dev dm-3, logical block 0, lost sync page
write
[ 3046.799792] EXT4-fs (dm-3): I/O error while writing superblock
[ 3046.799795] EXT4-fs error (device dm-3): mpage_map_and_submit_extent:2510:
inode #4982493: comm kworker/u16:8: mark_inode_dirty error
[ 3046.800013] Buffer I/O error on dev dm-3, logical block 21528576, lost sync
page write
[ 3046.800020] JBD2: Error -5 detected when updating journal superblock for
dm-3-8.
[ 3046.800035] Buffer I/O error on dev dm-3, logical block 0, lost sync page
write
[ 3046.800044] EXT4-fs (dm-3): previous I/O error to superblock detected
[ 3046.800067] Buffer I/O error on dev dm-3, logical block 0, lost sync page
write
[ 3046.800073] EXT4-fs (dm-3): I/O error while writing superblock
[ 3046.800074] EXT4-fs error (device dm-3): ext4_journal_check_start:83:
Detected aborted journal
[ 3046.800075] EXT4-fs (dm-3): Remounting filesystem read-only
[ 3046.800077] EXT4-fs error (device dm-3): mpage_map_and_submit_extent:2512:
comm kworker/u16:8: Failed to mark inode 4982493 dirty
[ 3046.800673] Buffer I/O error on dev dm-3, logical block 0, lost sync page
write
[ 3046.800680] EXT4-fs (dm-3): I/O error while writing superblock
[ 3046.800682] EXT4-fs error (device dm-3): ext4_journal_check_start:83:
Detected aborted journal
[ 3046.800684] EXT4-fs (dm-3): failed to convert unwritten extents to written
extents -- potential data loss! (inode 4347963, error -30)
[ 3046.800696] EXT4-fs (dm-3): failed to convert unwritten extents to written
extents -- potential data loss! (inode 4347964, error -30)
[ 3046.800700] EXT4-fs (dm-3): failed to convert unwritten extents to written
extents -- potential data loss! (inode 4347965, error -30)
[ 3046.800703] EXT4-fs (dm-3): failed to convert unwritten extents to written
extents -- potential data loss! (inode 4347966, error -30)
[ 3046.800706] EXT4-fs (dm-3): failed to convert unwritten extents to written
extents -- potential data loss! (inode 4982453, error -30)
[ 3046.940017] usb 3-4: new high-speed USB device number 3 using xhci_hcd
[ 3047.063371] usb 3-4: device descriptor read/64, error -71
[ 3047.293358] usb 3-4: device descriptor read/64, error -71
[ 3047.523349] usb 3-4: new high-speed USB device number 4 using xhci_hcd
[ 3047.646691] usb 3-4: device descriptor read/64, error -71
[ 3047.876690] usb 3-4: device descriptor read/64, error -71
[ 3047.983398] usb usb3-port4: attempt power cycle
[ 3048.386685] usb 3-4: new high-speed USB device number 5 using xhci_hcd
[ 3048.386789] usb 3-4: Device not responding to setup address.
[ 3048.593447] usb 3-4: Device not responding to setup address.
[ 3048.800015] usb 3-4: device not accepting address 5, error -71
[ 3048.923349] usb 3-4: new high-speed USB device number 6 using xhci_hcd
[ 3048.923451] usb 3-4: Device not responding to setup address.
[ 3049.130113] usb 3-4: Device not responding to setup address.
[ 3049.336680] usb 3-4: device not accepting address 6, error -71
[ 3049.336739] usb usb3-port4: unable to enumerate USB device
Прошивка не помогла, как и установка DISK_IPS_THRES отвечающего за отключение питания шины PCI по таймауту во имя энергосбережения (некоторым помогало с отвалами). Передача в параметре ядра quirks для отключения UAS не помогает.
В текущий момент проверяю короткий кабель, есть подозрение на длинный 1.8м, который китайский и бюджетный за ~5$, хотя производитель указал на упаковке по экрану на каждую дифференциальную пару включая общий экран.
Есть идеи? Кто-то вообще с такими адаптерами работал? Может они вообще не предназначены, чтобы с них грузились?