Ustawienie trybu jądra vs. Framebuffer?


24

W KMS sterowniki graficzne są przenoszone do jądra. Ponieważ bufor ramki był już w jądrze, nie spodziewałbym się, że wpłynie to na działanie bufora ramki. Jednak przeczytałem, że KMS zastępuje fb, powiększa fb, wymaga fb i wymaga usunięcia obsługi fb. Co za cholera? Odpowiedź, której szukam, to wyjaśnienie związku między KMS a buforem ramki.

Używam uvesafb, aby uzyskać natywną rozdzielczość w tty. Moim celem jest zrozumienie, jak to będzie działać w systemie z KMS. Pomogłoby to również objąć takie tematy jak: Czy przewijanie jest szybsze w KMS? Czy narzędzia takie jak fbterm i fbida działają tak samo? Czy stabilność jest lepsza?

Odpowiedzi:


6

Przede wszystkim istnieją zasadniczo dwa typy klasycznych sterowników bufora ramki:

  • Ogólne sterowniki sprzętu i oprogramowania układowego (np. Vga, vesafb / uvesafb, efifb)
  • Sterowniki specyficzne dla sprzętu (np. Rivafb, atyfb)

Wszystkie klasyczne sterowniki bufora ramki miały podstawową obsługę ustawiania trybów, ale w niewielkim stopniu lub w ogóle obsługiwały przyspieszenie sprzętowe.

W klasycznym projekcie X nie było to tak naprawdę problemem: aby uzyskać przyspieszenie 2D, serwer X działał jako root i miał bezpośredni dostęp do sprzętu. Zasadniczo całkowicie ominął sterownik bufora ramki. W przypadku obsługi 3d (i 2d na nowszych kartach) używałby również sterownika DRM jądra, który pośredniczy w dostępie i zarządza pamięcią wideo.

W tej konfiguracji były dwa miejsca, w których dokonano ustawiania trybów: zarówno w sterowniku bufora ramki jądra, jak i na serwerze X przestrzeni użytkownika. To powielanie kodu (i sporadyczne walki między kierowcami, np. Na przełączniku VT) nie były idealne.

Ponadto w jądrze były dwa oddzielne sterowniki dla tego samego sprzętu: sterownik bufora ramki i sterownik DRM. W niektórych przypadkach (np. Intelfb sprzed km) możesz załadować jeden lub drugi, ale nie oba jednocześnie.

KMS było rozwiązaniem tych problemów. To:

  • Scala specyficzny dla jądra sterownik bufora ramki i sterownik drm w jeden sterownik.
  • Zapewnia interfejs dla X serwera do sterowania ustawieniami trybów, dzięki czemu X serwer nie musi mieć bezpośredniego dostępu do sprzętu. (Rzeczywiście, dzięki KMS serwer X nie potrzebuje już uprawnień roota.)

Kilka interesujących uwag: Migracja do obecnej wersji KMS rozpoczęła się około 2004 r .; zobacz e-mail Jona Smirl na temat rearchitektury konsoli .

Aby odpowiedzieć na bardziej szczegółowe pytania:

  • Szybkość ogólnie nie będzie gorsza niż jeden z nieprzyspieszonych sterowników ogólnych (np. VGA, vesafb), ale konsola tekstowa bufora ramek KMS została zaprojektowana dla wygody i awaryjnego użycia, a nie prędkości, a konsola nie jest w pełni przyspieszona w niektórych sterownikach. Na przykład owinięte długie linie są dość złe na kartach Intel.
  • Aplikacje zaprojektowane do korzystania ze starych interfejsów bufora ramki nadal będą działać na buforze ramki KMS.

3

KMS ustawia rozdzielczość wyświetlania i głębokość w przestrzeni jądra, a nie w przestrzeni użytkownika. Tak więc to zastępuje. Umożliwia natywną rozdzielczość w buforze ramki.

Ustawienie trybu jądra


4
Artykuły na Wiki o KMS są łatwe do znalezienia, ale wyjaśnienia są okropne. W jaki sposób KMS może zastąpić fb i jednocześnie włączyć go? Fb już obsługuje natywną rozdzielczość, więc co się różni? Czy narzędzia fb działają z KMS?
— user5184

nie sądzę, że bufor ramki obsługuje natywną rozdzielczość, szczególnie gdy monitor jest szerokoekranowy. na przykład natywna rozdzielczość mojego monitora LCD to 1680x1050, jednak bufor ramki wykrywa tylko rozdzielczość 1280x1024
— LiuYan 刘 研
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.