Jak ustawić tryb wideo w systemie Linux z kms / drm?

12

Jak ustawić tryb wideo w systemie Linux na niskim poziomie? O ile wiem, najniższą warstwą w przestrzeni użytkownika byłoby żądanie KMS przez DRM. Czy to jest poprawne? A jeśli tak, to jak mogę zmienić tryb i uzyskać dostęp do powiązanej „pamięci wideo”?

Caleb
źródło
Co to jest km? Do tej pory nie słyszałem o KSM ani o przełączaniu trybów.
BЈовић
Mam na myśli łącze KMS: Link do trybu jądra .
Czy chodzi o bufor ramki / konsolę? Lub dla X11 / Xorg?
penguin359,
@ penguin359 Albo. X i Fb, jeśli to możliwe, o ile mogę bezpośrednio korzystać z libdrm ... (PS: najlepiej przez C ++)
4
@litro co próbujesz osiągnąć? a na wielu dystryktach kilometry aktywują się, jeśli są dostępne i nie są wyłączone.
ksenoterracid

Odpowiedzi:

3

KMS - ustawienie trybu jądra dla tych, którzy o nim nie słyszeli - jest możliwe dzięki sterownikom wideo trybu jądra. Te sterowniki wideo w trybie jądra konfigurują wyświetlanie bufora ramki, który domyślnie jest natywną rozdzielczością podłączonych monitorów. Jeśli podłączonych jest więcej niż jeden monitor, każdy monitor uzyska swoją natywną rozdzielczość, a wirtualna konsola będzie ograniczona do minimalnej szerokości i wysokości obu monitorów.

Ponieważ użycie KMS powoduje bufor bufora, elementy konfiguracji bufora ramki powinny działać. Nie mogę tego zweryfikować w systemie, w którym aktualnie jestem, ponieważ nie ma on sterownika KMS. Ale później będę w systemie z KMS i dam ci znać.

Aby uzyskać więcej informacji, zobacz dokumentację jądra dotyczącą ustawiania trybów za pomocą parametru video = boot up dla buforów ramki .

Michael Trausch
źródło
2

Nie jestem pewien, czy naprawdę wiesz, o co pytasz, inaczej sformułowałbyś to w sposób odpowiadający. ... Ale daję z siebie wszystko, odpowiadając na twoje pytanie.

Chcesz ustawić tryb i zagłuszyć trochę „pamięci wideo”? jak stary tryb dos X dni? Jeśli tego właśnie chcesz, musisz zaprogramować za pomocą bufora ramki. Powiedziawszy to, byłoby znacznie lepiej pracować z DirectFB. DirectFB jest jak bardzo cienka warstwa z przyspieszeniem na Framebufferze. Jego niski poziom i prawdę mówiąc, jest tak niski, jak należy, aby móc pisać aplikacje. Będziesz mógł ustawiać tryby i mieć kontrolę w bardziej niskim stylu. Jeśli chcesz bezpośredniej bezpośredniej kontroli stylu, musisz napisać Framebuffer na surowo, po prostu zamapuj trochę RAM. Jeśli uważasz, że Framebuffer działa słabo, nie mogę się wystarczająco stresować, sprawdź DirectFB. Jeśli ktoś ma załadowany sterownik KMS, jego Framebuffer jest ustawiany przez KMS / libdrm.

Podobnie jak w przypadku libdrm, jest to biblioteka przestrzeni użytkownika do pracy z DRM jądra. To nie jest Framebuffer, to nie API aplikacji, to biblioteka urządzeń systemowych. Jeśli chcesz utworzyć nowy sterownik urządzenia, libdrm jest absolutną drogą do zrobienia. Na przykład libdrm-radeon. Linux nie jest systemem DOS, jedynym sposobem bezpośredniej komunikacji ze sprzętem jest jądro. Wszystkie normalne aplikacje nigdy nie wysyłają kodu bezpośrednio do sprzętu, musi zostać zagubiony w jakiejś bibliotece lib / API / wywołaniu. Istnieją projekty, które przyjęły podejście wbudowane w jądro, do celów akademickich / eksperymentalnych, takie jak FBUI.

Mam nadzieję, że mógłbym przynajmniej skierować cię w dobrym kierunku, jeśli nie, powinieneś skomentować, a także zaktualizować swoje pytanie. Podążałem za tym pytaniem od czasu jego koncepcji, która była co najmniej dwie migracje temu i nie jest bliżej odpowiedzi. Bez dodatkowych informacji nie można powiedzieć nic więcej.

JM Becker
źródło