Shrnutí: • Příznaky: Opakované resetování USB, chyby I/O nebo mizející disky v Linuxu. • Postižené: Realtek RTL9210 (potvrzeno) a RTL9220 (možná). • Příčina: Návrat k interní ROM (
f0.01
) po selhání kontrolního součtu. • Dopad: Trvalá nestabilita, žádné nástroje pro přehrání firmwaru v Linuxu. • Řešení: Pouze proprietární nástroje pro Windows od OEM mohou obnovit firmware – Realtek blokuje open-source alternativy.
V roce 2025 by mělo být zcela rozumné spouštět Raspberry Pi z SSD připojeného přes USB. Díky zvláštnostem firmwaru Realteku se však tento rozumný cíl stal dobrodružstvím. Po měsících nevysvětlené nestability – náhodné resety, mizející disky, poškozené souborové systémy – autor vyčerpal všechny běžné opravy: nové kabely, napájené huby, aktualizace jádra, úpravy USB a ladění firmwaru. Průlom přišel, až když ChatGPT odpověděl na zvláštní noční otázku: „Je možné, že se USB-NVMe můstek vrátil ke starému firmwaru?“
Pokud se vaše NVMe skříň založená na Realteku náhle stane nestabilní po týdnech bezchybného provozu – opakované resetování USB, chyby I/O nebo mizející disky – nejste sami. Tento vzorec se objevil u několika značek, od neznačkových jednotek po známé OEM výrobce, jako jsou Sabrent a Orico. Společný jmenovatel: USB-NVMe můstkové čipy Realtek RTL9210 a možná RTL9220.
Zpočátku vše funguje. Pak, zdánlivě bez příčiny, začne zařízení při zátěži nebo při delším používání, zejména na systémech Linux nebo Raspberry Pi, ztrácet spojení. Skutečnou příčinou není SSD ani napájení – je to samotný řadič firmwaru, který tiše přejde na záložní kód uložený v ROM, verzi, kterou Realtek stále interně dodává jako f0.01
.
Můstkové čipy Realteku ukládají svůj operační firmware a konfigurační data do externího SPI flash. Při zapnutí řadič kontroluje jednoduchý kontrolní součet. Pokud se tento součet neshoduje, odmítne načíst externí firmware a místo toho se spustí z interní ROM.
Tento záložní firmware je zastaralý a vadný. Chybí mu několik oprav stability USB a vylepšení správy stavu spojení přítomných v pozdějších revizích, což vede ke klasické sekvenci, kterou každý uživatel Linuxu pozná:
usb 3-2: reset vysokorychlostního USB zařízení číslo 2 pomocí xhci-hcd
usb 3-2: čtení deskriptoru zařízení/64, chyba -71
Varování EXT4-fs (zařízení sda2): Chyba I/O při zápisu do inode …
Kontrolní součet se může stát neplatným, když jsou konfigurační data přepsána – například když můstek aktualizuje nastavení správy napájení nebo UAS – a zařízení ztratí napájení během zápisu. Při dalším spuštění zjistí poškozený kontrolní součet a trvale se vrátí k firmwaru ROM.
V tu chvíli se vaše „vysokovýkonná NVMe skříň“ chová přesně jako nejlevnější neznačková skříň, protože interně nyní běží na stejném vadném základním kódu vypáleném do křemíku.
Tento stav můžete snadno ověřit v Linuxu:
lsusb -v | grep -A2 Realtek
Zdravý můstek Realteku hlásí revizi firmwaru (bcdDevice
) vyšší než 1.00. Vračený můstek ukazuje:
bcdDevice f0.01
Tento podpis f0.01
znamená, že řadič se spouští z ROM – a žádné odpojení, přeformátování ani ladění jádra to neopraví.
Tento mechanismus návratu byl potvrzen na RTL9210. RTL9220 zřejmě sdílí stejnou architekturu návrhu a rozložení firmwaru, takže může vykazovat stejné chování, ale to zůstává pravděpodobné, nikoli prokázané.
V zásadě je oprava triviální: přehrát správný firmware do SPI. V praxi to Realtek znemožňuje.
Společnost poskytuje uzavřený aktualizační program pro Windows pro OEM a integrátory. Uživatelům Linuxu nenabízí nic. Komunitní vývojáři zpětně analyzovali kompatibilní nástroje pro flashování (rtsupdater
, rtl9210fw
, rtsupdater-cli
), které umožňovaly úplnou obnovu firmwaru ze systémů Linux – dokud Realtek nevydal výzvy k odstranění DMCA, aby je potlačil.
Neexistuje žádný věrohodný důvod ochrany duševního vlastnictví pro blokování těchto nástrojů: neodhalují mikrokód, pouze organizují aktualizační sekvenci přes USB. Odstranění Realteku nebylo o ochraně. Bylo ideologické.
Nejde o idealismus open-source. Jde o ideologickou nepřátelskost výrobce hardwaru vůči otevřeným systémům, která ničí zařízení prodávaná jako kompatibilní s Linuxem.
Odpor Realteku k dokumentaci a otevřeným nástrojům přetrvává dvě desetiletí, od Wi-Fi, Ethernetu, audia až po řadiče úložišť. Tato uzavřenost by mohla zůstat nepovšimnuta ve světě pouze s Windows, ale stává se toxickou, když jsou tyto čipy integrovány do produktů pro více platforem, jako je Sabrent EC-SNVE, který otevřeně zobrazuje logo Linuxu na svém obalu.
Zákazem nástrojů pro flashování v Linuxu a blokováním komunitní údržby Realtek fakticky kriminalizoval vlastní opravy. Důsledky se šíří dál:
Nakonec to není open-source, co ničí zařízení Realteku – je to nepřátelství Realteku vůči open-source, co je ničí.
Řešení nevyžaduje ideologický posun, pouze pragmatismus. Realtek by mohl:
Každý z těchto kroků by zabránil nákladům na záruky, ochránil vztahy s OEM a obnovil důvěru v můstkové čipy Realteku mezi profesionálními uživateli Linuxu – od stavitelů pracovních stanic po vývojáře Raspberry Pi.
Pokud máte podezření, že se vaše skříň vrátila k firmwaru ROM:
lsusb -v | grep bcdDevice
.f0.01
, nahlaste problém svému OEM.dmesg
a uveďte tento zdokumentovaný mechanismus návratu.Firmware politika Realteku nejen obtěžuje nadšence; vytváří hmatatelnou finanční ztrátu pro jejich vlastní ekosystém. Čím dříve tato realita bude uvnitř společnosti uznána, tím dříve mohou uživatelé Linuxu a partneři OEM přestat ztrácet čas zbytečnými cykly RMA.
Realtek i Sabrent byli vyzváni, aby poskytli prohlášení k problému návratu firmwaru popsanému výše. Jejich odpovědi – pokud budou obdrženy – budou připojeny zde.
Řadič | ID dodavatele | ID produktu | Poznámky | Stav |
---|---|---|---|---|
RTL9210 | 0x0bda | 0x9210 | Můstek USB 3.1 Gen 2 10 Gb/s | Potvrzeno chování návratu |
RTL9220 | 0x0bda | 0x9220 | Můstek USB 3.2 Gen 2×2 20 Gb/s | Možné, podobná architektura |
Podpis návratu firmwaru: bcdDevice f0.01
Známé stabilní revize: 1.23
– 1.31