Hub USB-C za 40 euro jako dok Switcha 2: 540 bajtów firmware
Zwykły hub USB-C ładował Switcha 2, ale nie pokazywał obrazu na telewizorze. Około 540 bajtów dopisanego kodu sprawiło, że udaje dok Nintendo.

Switch 2 ładuje się z każdego porządnego huba USB-C i bez problemu wchodzi w tryb DisplayPort Alt Mode, a mimo to na telewizorze nie pojawi się obraz. Autor pewnego projektu miał dość wożenia ze sobą nieporęcznego, kruchego oficjalnego doka, więc sprawdził, co tak naprawdę robi konsola. Skończyło się łataniem firmware w hubie za 40 euro.
Dlaczego zwykły hub USB-C nie działa ze Switchem 2?
Z fabrycznym oprogramowaniem Switch dochodzi zaskakująco daleko: negocjuje zasilanie, wchodzi w DisplayPort Alt Mode i ustawia pin assignment D. Potem nic. Okazuje się, że najpierw musi zajść coś jeszcze. Sniffer USB-PD (WITRN K2, wpinany w kabel) pokazał, że dok przedstawia się jako urządzenie Nintendo (VID 057E, produkt 2062), ogłasza własny SVID 057E i po konfiguracji DP odpowiada na serię wiadomości vendor-defined, czyli formatów zdefiniowanych przez producenta. Zapytanie to 057E0001 plus numer komendy, odpowiedź zaczyna się od 057E0041.
Hub to Cable Matters 7-in-1 z kontrolerem PD VL103 (rdzeń 8051, 32 KiB firmware) i układem RTD2142 jako konwerterem DP na HDMI. Do wolnego miejsca w firmware autor dopisał około 540 bajtów kodu 8051, które odpowiadają konsoli jak oficjalny dok. Zmieniał jedną rzecz naraz: oferta 15 V / 2,8 A zamiast fabrycznych 2,53 A, pełna identyfikacja doka. Samo VID Nintendo nie wystarczyło, Switch sprawdza tożsamość szerzej. Trzysekundową pauzę usunęła dopiero wersja v7.
Odpowiedzi z wersjami skopiowano z oficjalnego doka. Nie opisują niczego, co hub faktycznie ma, a nieznane komendy dalej dostają fabryczne „Not supported”. Do analizy autor używał Ghidry, SDCC i symulatora uCsim, a pomagały mu Claude i GPT.
Skąd blade kolory w HDR?
Obraz ruszył, ale z włączonym HDR kolory były wyraźnie wyblakłe, choć oficjalny dok na tym samym monitorze wyglądał normalnie. Autor wykluczył wyświetlacz, zakres RGB, sam hub (Linux pokazuje przez niego HDR poprawnie) i kontroler PD. Zostały RTD2142, w którego AVI InfoFrame pola kolorymetrii wskazywały BT.709, mimo że Switch wysyła BT.2020. Firmware tego układu, niepodpisany i do wgrania przez flashrom, też wymagał łatki. Według tytułu oryginału poszło na to 108 bajtów.
Aplikacje warte uwagi
Wybierz właściwe pola, dodaj je i trafiaj w cel. Łatwa do nauczenia, trudna do opanowania. Za darmo, dla każdego wieku.
Rozmawiaj z partnerem AI; każde zdanie wraca poprawione i wyjaśnione w Twoim języku. 9 języków, od A1 do C2.
Otwieraj komunikaty EDIFACT i X12, każdy segment objaśniony, konwersja do JSON/XML, eksport PDF i Excel. Działa lokalnie, bez wysyłania.
Wybierz dla kogo, okazję i osobowość. Wyszukiwarka czyta opisy produktów lokalnych sklepów i układa to, co pasuje. Za darmo, bez rejestracji.
Więcej z tego dnia
Zobacz wszystkie →
AMD Adrenalin 26.11.1 naprawia nadmierne zapisy na SSD w Radeonach

Apple Support Community zamknięte po 28 latach. Co dalej?

Nāpōwawāʻenakaulua: dwa gigantyczne kwazary, które powstały za wcześnie

Licznik Linky: TSUE mówi, że nie można odmówić wymiany
Więcej w kategorii: Sprzęt
Zobacz wszystkie →
Claude zhakował kamerę Wi-Fi za 10 dolarów, by działała bez chmury

Camp Snap CS-8 Micro: kamera wideo wielkości breloka za 39,99 dolara

Ring Drone Cam: latająca kamera Amazona za 250 dolarów jest głośna
