PCIe dla hakerów: wydobycie najwięcej

PCIe dla hakerów: wydobycie najwięcej

Węzeł źródłowy: 2039435

Znasz już podstawy podejścia do PCIe i być może masz na myśli cel związany z PCIe. A może chcesz wyposażyć w nie swój komputer jednopłytkowy kilka tanich, ale wydajnych kart WiFi PCIe do jazdy samochodem, być może dodaj drugi dysk SSD NVMe do swojego laptopa zamiast kontrolera Ethernet, którego nigdy nie używasz, a może dodać pełnowymiarowy procesor graficzny do Raspberry Pi 4 poprzez fajny adapter. Cokolwiek chcesz zrobić – upewnijmy się, że nie ma obszaru PCIe, którego nie znasz.

Dzielenie portu PCIe

Być może słyszałeś termin „rozwidlenie”, jeśli miałeś do czynienia z PCIe, szczególnie w społecznościach górniczych lub majsterkujących na komputerach PC. Polega to na podziale gniazda PCIe na wiele łączy PCIe i, jak możesz sobie wyobrazić, jest to całkiem smaczna funkcja dla hakerów; tak naprawdę nie potrzebujesz żadnego dodatkowego sprzętu, wystarczy dodać bufor dla REFCLK. Widzisz, jest on nadal potrzebny na każdym dodatkowym porcie, który otrzymujesz – ale nie możesz fizycznie po prostu wciągnąć tej samej pary zegara do wszystkich gniazd na raz, ponieważ spowoduje to odgałęzienia, a w konsekwencji odbicia sygnału; chip buforujący REFCLK pobiera zegar od hosta i wytwarza pewną liczbę identycznych kopii sygnału REFCLK, które następnie pobierasz samodzielnie. Być może widziałeś w Internecie karty slotowe x16 do czterech NVMe – niezmiennie gdzieś w rogu karty możesz dostrzec chip buforujący REFCLK. W idealnym scenariuszu to wszystko, czego potrzebujesz, aby wydobyć więcej PCIe z PCIe.

W rzeczywistości właściwa obsługa bifurkacji jest skomplikowana. Bifurkacja wymaga wsparcia ze strony hosta – i to wsparcie jest dość sytuacyjne, ponieważ tylko niektóre chipsety są w stanie wykonać bifurkację, a sporo płyt głównych jest w stanie to zrobić, ale z jakiegoś powodu decyduje się nie umożliwiać tego programowo. Nawet jeśli tworzysz własnego hosta PCIe z układem FPGA i związaną z tym samą elastycznością, układ FPGA może po prostu nie obsługiwać bifurkacji z powodów wewnętrznych. Co więcej, nie można po prostu uzyskać szesnastu łączy x1 z jednego gniazda x16 – zazwyczaj obsługiwana kombinacja to cztery łącza x4 z gniazda x16, może dwa łącza x4 z gniazda x8 z okablowaniem x16.

Tak czy inaczej dzielenie portu PCIe

Teraz istnieje alternatywa i są to przełączniki PCIe – są to potężne układy, które zapewniają interfejs urządzenia PCIe dla twojego hosta i wiele interfejsów hosta PCIe dla wszystkich twoich urządzeń; można je porównać do przełączników Ethernet pod względem działania, z tą różnicą, że linie przełącznika PCIe pełnią rolę hosta lub urządzenia, a porty przełącznika Ethernet są generalnie równe. Przełączniki te mają rozmiary od QFN typu RP2040 (w przypadku ASM1182, przełącznik 1:2) do rozmiaru procesora x86, często będą wymagały zewnętrznego chłodzenia, są też zazwyczaj drogie i zużywają przyzwoitą ilość moc. Jeśli szukasz kart bifurkacyjnych, powiedzmy, na Aliexpress, nieuchronnie natkniesz się na karty z przełącznikami PCIe.

Zaletą jest to, że nie wymagają specjalnego wsparcia ze strony hosta, ponieważ z perspektywy hosta wyglądają jak każde zwykłe urządzenie PCIe. Wadą – znowu kosztują znaczną kwotę i rzadko są udokumentowane. Na przykład chciałem kupić chipy przełącznika PCIe 1:4 i natknąłem się na kontroler ASM1184 1:4, który wytwarza cztery łącza x1 z jednego łącza x1. Właśnie tego potrzebowałem i przeglądając Google, odkryłem, że ten układ jest używany w tonach wszelkiego rodzaju chińskich rozdzielaczy PCIe, płytach głównych do komputerów stacjonarnych takich producentów jak Gigabyte, a płyty są nawet sprzedawane w takich miejscach jak Walmart. Same chipy ASM118x (1:4 dla ASM1184 i 1:2 dla ASM1182) również łatwo znaleźć na Aliexpress – głównym problemem jest brak dokumentacji. Technicznie rzecz biorąc, schemat urządzenia w świecie rzeczywistym to absolutne minimum, ponieważ wydaje się, że chipy mają działać samodzielnie, bez zewnętrznej kontroli – znalazłem taki dla ASM1182, i mój przyjaciel niedawno go znaleźli dla ASM1184. Jednak takie rzeczy jak rejestry I2C do kontroli zewnętrznej pozostaną tajemnicą.

Tak więc, mimo że chipy takie jak ASM1184 są kuszące, tanie i łatwo dostępne na Aliexpress, zarówno jako samodzielny układ scalony, jak i jako część produktów, debugowanie może być trudne. Na szczęście znam jednego zachodniego producenta, który uratuje Cię, jeśli chodzi o przełączniki PCIe – jest to Diodes Incorporated z linią produktów PCIe przejętą przez Pericom; możesz swobodnie pobrać pełne arkusze danych dla swoich przełączników PCIe i to wszystko kilka dobrych na Digikey. Możesz także natknąć się na przełączniki PCIe firmy Broadcom, ale jak można się domyślić, ich otwartość jest porównywalna z typowym produktem Broadcom – czyli nie istnieje.

Owoce górnictwa

Całkiem interesujące jest również to, jak niektóre oferty Aliexpress zamalowują oznaczenie ASMedia

Jeśli chcesz przeciągnąć PCIe za pomocą kabla i nie przeszkadza Ci łącze x1, możesz zrobić coś gorszego niż kabel USB3 – w rzeczywistości jest to całkiem odpowiednie medium. Istnieją dwie pary szybkich dyferencjałów USB3, a biorąc pod uwagę, że USB3 jest wybrednym interfejsem, jeśli chodzi o wymagania dotyczące integralności, okablowanie przeznaczone dla USB3 działa dobrze w przypadku PCIe. W kablach USB3 znajduje się również para USB2 – a para REFCLK 100 MHz pasuje do niej idealnie; Podsumowując, kable USB3 i łącza PCIe x1 to połączenie stworzone w niebie. Producenci sprzętu górniczego dostrzegli to, zalewając rynek wszelkiego rodzaju akcesoriami, które przeciągają łącza PCIe przez kable i złącza USB3 – przedłużacze gniazd, przełączniki PCIe, adaptery NVMe i tak dalej. Odkąd górnictwo stało się mniej popularne, te akcesoria są do wzięcia, dostępne po niskiej cenie.

Typowa górnicza płyta nośna składa się z płytki wtykowej x1 z gniazdem USB3 przeznaczonej do podłączenia do płyty głównej, płytki gniazda x16 z odpowiednim gniazdem USB3, a także dodatkowych wejść zasilania, czasami także z niektórymi regulatorami mocy; trzeci element to kabel USB3 ze złączami USB-A na obu końcach. Dla hakera projektującego coś niekonwencjonalnego z PCIe ponowne wykorzystanie tych akcesoriów może być kuszące – w końcu gniazda i kable USB3 można łatwo znaleźć w wielu odmianach.

Rzeczywiście, prawdopodobnie odniesiesz sukces – jeśli cokolwiek może być dowodem na to, że przeglądanie PCIe w taki sposób jest absolutnie opłacalne, to fakt, że wszystkie te wzmacniacze wydobywcze rzeczywiście pracowały dla wszystkich niezliczonych górników, w warunkach 24/7/365. Uważaj jednak na kilka czkawek. Na przykład istnieje jeden drobny problem z pinami, który nie zdarza się często – szybkie pary różnicowe TX i RX pozostaną na pinach USB3, ale nie jest do końca pewne, która para PCIe trafi do której pary USB3.

Co jednak ważniejsze, rodzaj sygnałów doprowadzanych do przewodów +5V i GND (tak, osobny przewód) części USB2 może się różnić – i wiadomo, że tak się dzieje. Moja przyjaciółka zbudowała urządzenie z tych przewodów i okazało się, że pionki PCIe, które miała, mają PEWAKE i PERST, a projekt zdziałał cuda. Jednak później kompatybilność z pionem dochodzenie na rosyjskim forum górniczym (przetłumaczony) znalazł kilka płytek nośnych i przełączników, w których przewód +5 V przenosił zamiast tego 3.3 V, a nawet 12 V – zamiast PERST lub PEWAKE, których można się spodziewać, projektując dla konkretnego posiadanego pionu. Jeśli próbujesz zaprojektować sprzęt do montażu na płycie głównej i polegasz na płytkach z „wtyczką x1 płyty głównej” lub płytami „gniazda x16” typowego przedłużacza karty nośnej, lepiej upewnij się, że te, których używasz, rzeczywiście działają zastosuj się do układu pinów, który masz na myśli; użycie podejrzanego pionu może prowadzić do sytuacji wybuchowej. Niestety, te pionki prawie zdefiniowały standard przenoszenia PCIe za pomocą wygodnych kabli – ale to jeszcze nie wszystko.

Upewnij się także, że unikasz zasilaczy dołączonych czasami do takich zestawów górniczych – wszystkie te „zasilanie SATA do 6-pinowego złącza PCIe” charakteryzują się poważnym niedopasowaniem pomiędzy mocą wejściową i wyjściową; jeśli coś jest nie tak z tymi płytami eksploracyjnymi, jest to włączenie tych adapterów, co w praktyce może stanowić prawdziwe zagrożenie pożarowe, jeśli Twoja karta PCIe zużywa nieco więcej energii, niż jest w stanie obsłużyć tanie złącze zasilania SATA adaptera.

Wszystkie gniazda, których możesz użyć

Ścieżka hakerska polegająca na wykorzystywaniu akcesoriów wydobywczych do celów szaleństwa PCIe nie jest jedyna. Jeśli znajdziesz smaczny chip, który łączy się przez PCIe, lub chcesz przedłużyć znalezione gdzieś łącze PCIe w całkowicie legalny sposób, zaprojektuj własną płytkę drukowaną! Obecnie masz wybór pomiędzy pełnowymiarowymi gniazdami do użytku na komputerach stacjonarnych lub gniazdami M.2 do użytku mobilnego – a jeśli celujesz w starszy lub przemysłowy sprzęt, mPCIe również się sprawdzi.

W przypadku komputerów stacjonarnych dostępnych jest mnóstwo gniazd PCIe. Aby podłączyć się do takiego gniazdka, potrzebna jest płytka PCB o grubości 1.6 mm – czyli na szczęście standardowa grubość PCB, jaką można dostać w dowolnej fabryce, a przy tym z reguły najtańsza grubość PCB! Będziesz chciał sfazować krawędź PCB podłączaną do gniazda PCIe – Twoja fabryka płytek PCB często może to zrobić za niewielką dodatkową opłatą, ale możesz również dodać to fazowanie post factum za pomocą pilnika lub noża xacto z zapasowym ostrze.

Jeśli chodzi o automaty mobilne, mam mówiłem obszernie o M.2 zanim. Proste wytyczne dotyczące M.2 są następujące: użyj płytki PCB 0.8 ​​mm z ENIG dla karty i upewnij się, że masz szablon, jeśli dodajesz gniazdo M.2 do swojej płytki drukowanej. Następnie wybierz kluczowanie, którego używasz – A+E dla kart WiFi, gniazda E do podłączania kart WiFi, gniazda i karty z kluczem M dla PCIe do x4 oraz karty B+M dla PCIe do x2 i kompatybilność z gniazdami B-key (WWAN) i M-key (SSD). Jest mnóstwo Gniazda M.2 na sprzedaż, a także szablony zarówno do automatów, jak i kart! W przypadku mPCIe będą działać płytki PCB o grubości 1 mm, a złocenie (ENIG) jest ponownie koniecznością.

Niezależnie od tego, czy używasz karty lub gniazda PCIe do telefonu komórkowego, czy do komputera stacjonarnego, wytyczne dotyczące układu diffpair, kilka wymaganych sygnałów i silna kompatybilność między szerokościami łączy i generacjami pozostają takie same. Cokolwiek projektujesz przy użyciu PCIe, nie jest to trudne zadanie do wykonania – a dzięki odporności PCIe, która pomaga nam w naszych szybkich wyprawach, istnieje duże prawdopodobieństwo, że osiągniesz cele projektu PCIe.

Znak czasu:

Więcej z Zhakuj dzień