https://ninkilim.com/articles/rtl9210_usb_to_nvme_bridge/fi.html
Home | Articles | Postings | Weather | Top | Trending | Status
Login
Arabic: HTML, MD, MP3, PDF, TXT, Czech: HTML, MD, MP3, PDF, TXT, Danish: HTML, MD, MP3, PDF, TXT, German: HTML, MD, MP3, PDF, TXT, English: HTML, MD, MP3, PDF, TXT, Spanish: HTML, MD, MP3, PDF, TXT, Persian: HTML, MD, PDF, TXT, Finnish: HTML, MD, MP3, PDF, TXT, French: HTML, MD, MP3, PDF, TXT, Hebrew: HTML, MD, PDF, TXT, Hindi: HTML, MD, MP3, PDF, TXT, Indonesian: HTML, MD, PDF, TXT, Icelandic: HTML, MD, MP3, PDF, TXT, Italian: HTML, MD, MP3, PDF, TXT, Japanese: HTML, MD, MP3, PDF, TXT, Dutch: HTML, MD, MP3, PDF, TXT, Polish: HTML, MD, MP3, PDF, TXT, Portuguese: HTML, MD, MP3, PDF, TXT, Russian: HTML, MD, MP3, PDF, TXT, Swedish: HTML, MD, MP3, PDF, TXT, Thai: HTML, MD, PDF, TXT, Turkish: HTML, MD, MP3, PDF, TXT, Urdu: HTML, MD, PDF, TXT, Chinese: HTML, MD, MP3, PDF, TXT,

Linux ja Realtek RTL9210 USB-NVMe-silta

Yhteenveto:Oireet: Toistuvat USB-nollaukset, I/O-virheet tai levyt katoavat Linuxissa. • Vaikuttaa: Realtek RTL9210 (vahvistettu) ja RTL9220 (mahdollisesti). • Syy: Palautuminen sisäiseen ROM-muistiin (f0.01) tarkistussummavirheen jälkeen. • Vaikutus: Pysyvä epävakaus, ei Linux-uudelleenohjelmointityökaluja saatavilla. • Korjaus: Vain OEM-Windows-apuohjelmat voivat palauttaa laiteohjelmiston – Realtek estää avoimen lähdekoodin vaihtoehdot.

Esipuhe

Vuonna 2025 pitäisi olla täysin järkevää käynnistää Raspberry Pi USB-liitännän kautta kytketyltä SSD-levyltä. Realtekin laiteohjelmiston omituisuuksien vuoksi tästä järkevästä tavoitteesta on kuitenkin tullut seikkailu. Kuukausien selittämättömän epävakauden jälkeen – satunnaiset nollaukset, katoavat levyt, vioittuneet tiedostojärjestelmät – kirjoittaja kokeili kaikkia tavallisia korjauksia: uusia kaapeleita, virtalähteellisiä hubeja, ytimen päivityksiä, USB-säätöjä ja laiteohjelmiston hienosäätöä. Läpimurto tuli vasta, kun ChatGPT vastasi outoon myöhäisillan kysymykseen: “Onko mahdollista, että USB-NVMe-silta on palautunut vanhaan laiteohjelmistoon?”

Johdanto

Jos Realtek-pohjainen NVMe-kotelo muuttuu yhtäkkiä epävakaaksi viikkojen moitteettoman toiminnan jälkeen – toistuvat USB-nollaukset, I/O-virheet tai katoavat levyt – et ole yksin. Tämä kaava on ilmennyt useissa merkeissä, nimettömistä yksiköistä tunnettuihin OEM-valmistajiin, kuten Sabrent ja Orico. Yhteinen nimittäjä: Realtekin RTL9210 ja mahdollisesti RTL9220 USB-NVMe-siltapiirit.

Aluksi kaikki toimii. Sitten, näennäisesti ilman syytä, laite alkaa katketa kuormituksen alla tai pitkäaikaisessa käytössä, erityisesti Linux- tai Raspberry Pi -järjestelmissä. Todellinen syy ei ole SSD tai virtalähde – se on itse laiteohjelmiston ohjain, joka hiljaa palautuu ROM-muistiin upotettuun varakoodiin, versioon, jota Realtek edelleen toimittaa sisäisesti nimellä f0.01.

Piilotettu mekanismi – Laiteohjelmiston palautus suunnittelun mukaan

Realtekin siltapiirit tallentavat toimintansa laiteohjelmiston ja konfiguraatiotiedot ulkoiseen SPI-muistiin. Käynnistyksen yhteydessä ohjain tarkistaa yksinkertaisen tarkistussumman. Jos tarkistussumma ei täsmää, se kieltäytyy lataamasta ulkoista laiteohjelmistoa ja käynnistyy sen sijaan sisäisestä ROM-muistista.

Tämä varalaiteohjelmisto on vanha ja viallinen. Siitä puuttuu useita USB-vakauskorjauksia ja linkkitilan hallinnan parannuksia, jotka ovat läsnä myöhemmissä versioissa, mikä johtaa klassiseen sekvenssiin, jonka jokainen Linux-käyttäjä tunnistaa:

usb 3-2: nollaa suurinopeuksinen USB-laite numero 2 xhci-hcd:llä
usb 3-2: laitteen kuvauksen luku/64, virhe -71
EXT4-fs varoitus (laite sda2): I/O-virhe kirjoitettaessa inodille …

Tarkistussumma voi muuttua virheelliseksi, kun konfiguraatiotietoja kirjoitetaan uudelleen – esimerkiksi kun silta päivittää virranhallinta- tai UAS-asetuksiaan – ja laite menettää virran kesken kirjoituksen. Seuraava käynnistys havaitsee vioittuneen tarkistussumman ja palautuu pysyvästi ROM-laiteohjelmistoon.

Tässä vaiheessa “korkean suorituskyvyn NVMe-kotelosi” käyttäytyy täsmälleen kuin halvin nimettömä kotelo, koska se käyttää nyt sisäisesti samaa viallista peruskoodia, joka on poltettu piisiruun.

Ongelman tarkistaminen

Voit vahvistaa tämän tilan helposti Linuxissa:

lsusb -v | grep -A2 Realtek

Terve Realtek-siltta raportoi laiteohjelmiston version (bcdDevice) yli 1.00. Palautunut siltta näyttää:

bcdDevice f0.01

Tämä f0.01-allekirjoitus tarkoittaa, että ohjain käynnistyy ROM-muistista – eikä mikään määrä irtikytkentää, uudelleenformatointia tai ytimen säätöä korjaa sitä.

Tämä palautusmekanismi on vahvistettu RTL9210:lle. RTL9220 vaikuttaa jakavan saman suunnitteluarkkitehtuurin ja laiteohjelmiston asettelun, joten se voi osoittaa identtistä käyttäytymistä, mutta tämä on todennäköistä, ei todistettua.

Miksi et voi korjata sitä itse

Periaatteessa korjaus on yksinkertainen: uudelleenohjelmoi oikea laiteohjelmisto SPI-muistiin. Käytännössä Realtek tekee tämän mahdottomaksi.

Yritys tarjoaa suljetun lähdekoodin Windows-päivitysohjelman OEM-valmistajille ja integraattoreille. Linux-käyttäjille ei tarjota mitään. Yhteisön kehittäjät käänteisinsinööröivät yhteensopivia flash-työkaluja (rtsupdater, rtl9210fw, rtsupdater-cli), jotka mahdollistivat täydellisen laiteohjelmiston palauttamisen Linux-järjestelmistä – kunnes Realtek antoi DMCA-poistopyyntöjä niiden tukahduttamiseksi.

Ei ole uskottavaa immateriaalioikeudellista perustetta tällaisten työkalujen estämiselle: ne eivät paljasta mikrokoodia, vaan ainoastaan järjestävät päivityssekvenssin USB:n kautta. Realtekin poistot eivät liittyneet suojaamiseen. Ne olivat ideologisia.

Ideologian hinta

Tämä ei koske avoimen lähdekoodin idealismia. Kyse on laitevalmistajan ideologisesta vihamielisyydestä avoimia järjestelmiä kohtaan, joka rikkoo laitteita, joita markkinoidaan Linux-yhteensopivina.

Realtekin vastustus dokumentaatiolle ja avoimille työkaluille on jatkunut kahden vuosikymmenen ajan kattaen Wi-Fi:n, Ethernetin, äänen ja nyt tallennusohjaimet. Tämä eristäytyminen saattaa jäädä huomaamatta pelkästään Windows-maailmassa, mutta se muuttuu myrkylliseksi, kun samat piirit integroidaan monialustaisiin tuotteisiin, kuten Sabrent EC-SNVE, joka avoimesti esittelee Linux-logoa pakkauksessaan.

Kieltämällä Linux-flash-työkalut ja estämällä yhteisön ylläpidon Realtek on tehokkaasti kriminalisoinut itsekorjauksen. Seuraukset leviävät ulospäin:

Loppujen lopuksi ei ole avoin lähdekoodi, joka rikkoo Realtekin laitteita – se on Realtekin vihamielisyys avointa lähdekoodia kohtaan, joka rikkoo ne.

Järkevä tie eteenpäin

Ratkaisu ei vaadi ideologista muutosta, vain pragmatismia. Realtek voisi:

  1. Julkaista toimittajan allekirjoittama komentorivipäivitysohjelma Linuxille (ei tarvita lähdekoodin paljastamista).
  2. Julkaista tarkistussumma-algoritmi, jotta integraattorit voivat turvallisesti validoida flash-kuvia.
  3. Ottaa käyttöön DFU-tyylinen tila, joka hyväksyy päivitykset USB-massamuistin kautta käyttöjärjestelmästä riippumatta.

Jokainen näistä estäisi takuukustannukset, suojaisi OEM-suhteita ja palauttaisia luottamuksen Realtekin siltapiireihin ammattimaisten Linux-käyttäjien keskuudessa – työasemien rakentajista Raspberry Pi -kehittäjiin.

Mitä voit tehdä

Jos epäilet, että kotelosi on palautunut ROM-laiteohjelmistoon:

Realtekin laiteohjelmistopolitiikka ei vain häiritse harrastajia; se aiheuttaa konkreettisia taloudellisia tappioita heidän omalle ekosysteemilleen. Mitä nopeammin tämä todellisuus tunnustetaan yrityksen sisällä, sitä nopeammin Linux-käyttäjät ja OEM-kumppanit voivat lopettaa ajan tuhlaamisen vältettävissä oleviin RMA-sykleihin.

Valmistajien vastaukset

Sekä Realtek että Sabrent kutsuttiin antamaan lausuntoja yllä kuvattuun laiteohjelmiston palautusongelmaan liittyen. Heidän vastauksensa – jos ne vastaanotetaan – liitetään tähän.

Liite – Vaikuttavien laitteiden tunnistaminen

Ohjain Toimittajan ID Tuotteen ID Huomautukset Tila
RTL9210 0x0bda 0x9210 USB 3.1 Gen 2 10 Gb/s silta Vahvistettu palautuskäyttäytyminen
RTL9220 0x0bda 0x9220 USB 3.2 Gen 2×2 20 Gb/s silta Mahdollinen, samankaltainen arkkitehtuuri

Laiteohjelmiston palautusallekirjoitus: bcdDevice f0.01
Tunnetut vakaat versiot: 1.231.31

Impressions: 23