Jak sprawdzić, czy zintegrowany układ GPU jest nadal dostępny po aktualizacji jądra

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Zintegrowany układ GPU pozostaje dostępny tylko wtedy, gdy nowe jądro go wykryje, powiąże z właściwym sterownikiem, utworzy węzły renderowania i udostępni je obciążeniu.

Po aktualizacji jądra serwera domowego aplikacja multimedialna może przełączyć się na obsługę programową, mimo że przełącznik akceleracji sprzętowej pozostaje włączony. Awaria może wystąpić na etapie wykrywania PCI, powiązania modułu jądra, ładowania oprogramowania układowego, tworzenia urządzenia DRM, inicjalizacji VA-API, uprawnień do urządzenia, mapowania w Dockerze lub ścieżki FFmpeg serwera multimediów. Sprawdzaj te warstwy po kolei i porównaj je z poprzednim uruchomieniem, zanim zmienisz ustawienia aplikacji.

Zapisz nowe jądro i potwierdź obecność iGPU na magistrali PCI

Zapisz wersję uruchomionego jądra, zainstalowane poprzednie jądra, parametry rozruchowe oraz czas aktualizacji. Następnie wyświetl urządzenia PCI klasy wyświetlania wraz z identyfikatorami numerycznymi i aktualnie przypisanym do zintegrowanego GPU sterownikiem jądra.

Jeśli iGPU nie pojawia się podczas enumeracji PCI, przed debugowaniem VA-API sprawdź ustawienia oprogramowania układowego lub BIOS-u. Serwer może udostępniać wyłącznie oddzielny układ GPU, gdy opcja iGPU lub obsługi wielu monitorów jest wyłączona, jak pokazuje przypadek, w którym iGPU było ukryte przed systemem Linux.

Porównaj identyfikator urządzenia i przypisany sterownik z ostatnim poprawnie działającym uruchomieniem. W systemach Intel jest to zazwyczaj i915 lub, w obsługiwanych nowszych konfiguracjach, xe; używaj sterownika przeznaczonego dla danego sprzętu i dystrybucji, zamiast wymuszać nazwę modułu z innej platformy.

Odczytaj logi jądra dotyczące inicjalizacji sterownika i oprogramowania układowego

Przeszukaj log bieżącego uruchomienia pod kątem sterownika GPU, DRM, oprogramowania układowego GuC lub HuC, inicjalizacji wyświetlania, błędów sondowania, limitów czasu oraz czarnych list modułów. Jeśli dostępne są trwałe logi, porównaj te same komunikaty z poprzednim jądrem.

Awaria sterownika multimediów może wystąpić nawet wtedy, gdy sprzęt jest widoczny. Zgłoszenie dotyczące Intel opisuje nieudaną inicjalizację VA-API na zintegrowanym układzie GPU Xe-LPG po zmianie otaczającego stosu oprogramowania, pokazując, że samo wykrycie sprzętu nie wystarcza.

Potwierdź, że wymagane pakiety oprogramowania układowego nadal istnieją oraz że moduł nie jest blokowany przez nowy parametr jądra, czarną listę ani zasady bezpiecznego rozruchu. Nie instaluj ponownie serwera multimediów, dopóki sterownik hosta nie zainicjalizuje się prawidłowo.

Potwierdź, że węzeł renderowania DRM nadal istnieje

Sprawdź /dev/dri i zapisz numery główne oraz podrzędne, właścicieli, grupy i cele dowiązań symbolicznych dla każdej karty i węzła renderowania. Nie zakładaj, że iGPU zawsze będzie oznaczone jako renderD128, gdy obecny jest inny układ GPU.

Akceleracja sprzętowa nie działa, gdy FFmpeg kieruje żądania do węzła, który istnieje, ale nie udostępnia już prawidłowego ekranu VA. Zgłoszenie Jellyfin pokazuje decydujący błąd: brak ekranu VA dla urządzenia renderowania.

Powiąż węzeł renderowania z urządzeniem PCI za pośrednictwem sysfs, a następnie zaktualizuj konfigurację kontenera lub aplikacji tylko wtedy, gdy tożsamość węzła rzeczywiście się zmieniła. Unikaj szerokich uprawnień, takich jak tryb 777; zachowaj model grupy renderowania i sprawdź członkostwo konta usługi.

-15% OFF

Przetestuj VA-API lub Quick Sync na hoście przed użyciem Dockera

Uruchom narzędzie diagnostyczne VA-API dostępne w dystrybucji dla zweryfikowanego węzła renderowania i zapisz nazwę sterownika, wersję VA-API, obsługiwane profile dekodowania, punkty wejścia kodowania oraz możliwości przetwarzania wideo.

Sterownik multimedialny przestrzeni użytkownika musi pasować do generacji sprzętu i interfejsu jądra. Opisany przypadek z systemu Linux podkreśla, że moduły DRM jądra oraz sterowniki DRI lub VA przestrzeni użytkownika to osobne warstwy; pomylenie ich może pozostawić niewłaściwy sterownik przestrzeni użytkownika.

Jeśli VA-API na hoście nie działa, porównaj bieżące pakiety sterownika multimediów i oprogramowania układowego z wersjami sprzed aktualizacji. Jeśli VA-API na hoście działa, nie zmieniaj jądra ani sterownika podczas przechodzenia do granicy kontenera.

Zweryfikuj to samo urządzenie i grupy wewnątrz kontenera

Sprawdź urządzenia uruchomionego kontenera, identyfikatory grup oraz dostęp do wybranego węzła renderowania. Uruchom dołączone do serwera multimediów narzędzie diagnostyczne VA-API lub kompilację FFmpeg wewnątrz kontenera, ponieważ poprawne działanie na hoście nie gwarantuje poprawnego działania w kontenerze.

Kontener może otrzymać /dev/dri/renderD128, a mimo to nie działać, ponieważ proces nie ma uprawnień odpowiadających grupie renderowania. Zgłoszenie dotyczące kontenera Jellyfin pokazuje, że należy zweryfikować zarówno mapowanie urządzenia, jak i dostęp grupy.

Porównaj numeryczne identyfikatory grup na hoście i w kontenerze, a następnie w razie potrzeby utwórz usługę ponownie z jawną konfiguracją urządzenia i grupy. Przewodnik ZimaSpace dotyczący sprawdzania transkodowania sprzętowego przedstawia kolejny dowód na poziomie aplikacji.

Wymuś mały test kodeka i obserwuj rzeczywiste silniki GPU

Użyj jednego sprawdzonego materiału H.264 lub HEVC i wymuś transkodowanie wideo bez napisów ani mapowania tonów HDR. Zapisz stan pulpitu nawigacyjnego, polecenie FFmpeg, prędkość transkodowania, użycie CPU oraz aktywność silnika dekodowania lub kodowania GPU.

Serwer multimediów może zgłaszać obsługę sprzętową, ale automatycznie wybrać niewłaściwe urządzenie VA-API. Zgłoszenie Jellyfin opisuje przypadek, w którym jawny wybór urządzenia zmienił sposób wykrywania ścieżki akceleracji przez FFmpeg.

Jeśli to możliwe, testuj dekodowanie i kodowanie osobno. Jeśli jeden kodek nie działa, a podstawowy kodek działa, iGPU jest dostępne, ale dany profil, funkcja oprogramowania układowego, ścieżka sterownika lub filtr nie jest obsługiwany. Nie uznawaj całego GPU za niedostępne na podstawie pojedynczej zaawansowanej awarii mapowania tonów.

Użyj poprzedniego jądra jako kontrolowanego porównania

Jeśli wykrywanie PCI, węzły renderowania lub VA-API na hoście nie działają tylko w nowym jądrze, uruchom poprzednie zainstalowane jądro bez zmieniania obrazu kontenera, wersji serwera multimediów ani konfiguracji przestrzeni użytkownika.

Przypadek związany z rozwiązywaniem problemów Jellyfin zaleca powrót do poprzedniego jądra jako najprostszy sposób rozróżnienia, gdy podejrzewa się, że awaria nastąpiła po zmianie jądra. Wartość stanowi kontrolowane porównanie jąder, a nie traktowanie wycofania zmiany jako trwałego rozwiązania.

Weryfikacja jest zakończona, gdy bieżące jądro pokazuje iGPU na magistrali PCI, wiąże je z właściwym sterownikiem, tworzy poprawny węzeł renderowania, inicjalizuje VA-API, udostępnia urządzenie wewnątrz kontenera i przyspiesza rzeczywisty test kodeka. Jeśli pomyślnie przechodzi go tylko poprzednie jądro, zachowaj je jako tymczasową opcję rozruchu, jednocześnie izolując regresję jądra, oprogramowania układowego lub sterownika multimediów.

Wsparcie i wskazówki

Więcej do przeczytania

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.