Налаштування режиму ядра проти Framebuffer?


24

За допомогою KMS графічні драйвери переміщуються в ядро. Оскільки framebuffer вже був у ядрі, я не очікую, що це вплине на роботу framebuffer. Але я читав, що KMS перевершує fb, збільшує fb, вимагає fb і вимагає видалення підтримки fb. Якого біса? Я шукаю відповідь - це пояснення взаємозв'язку між KMS та фреймбуфером.

Я використовую uvesafb, щоб отримати власне дозвіл на tty. Моя мета тут - зрозуміти, як це буде працювати в системі з KMS. Це також допоможе охопити такі речі, як. Чи швидше прокручування KMS? Чи працюють однакові утиліти, такі як fbterm та fbida? Чи стабільність краща?

Відповіді:


6

Перш за все, це два типи драйверів класичних фреймбуферів:

  • Загальні драйвери апаратного та мікропрограмного забезпечення (наприклад, vga, vesafb / uvesafb, efifb)
  • Спеціальні драйвери (наприклад, rivafb, atyfb)

Усі класичні драйвери framebuffer мали базову підтримку модерування, але вони мали незначну підтримку апаратного прискорення.

З класичним дизайном X це насправді не було проблемою: щоб отримати 2D прискорення, X-сервер працював як root і мав доступ до обладнання безпосередньо. По суті, він повністю обійшов драйвер фреймбуфера. Для 3d (та 2d підтримки на нових картках) він також використовував драйвер DRM ядра, який опосередковував доступ та керував відеопам'яттю.

У цій установці було зроблено два місця, в яких проводилося настроювання: як у драйвері фреймбуфера ядра, так і на сервері X сервера простору. Це дублювання коду (і випадкові бійки між драйверами, наприклад, на VT-комутаторі) не було ідеальним.

Крім того, в ядрі були два окремих драйвери для одного і того ж обладнання: драйвер фреймбуфер і драйвер DRM. У деяких випадках (наприклад, pre-kms intelfb) ви можете завантажувати те чи інше, але не обидва одночасно.

KMS був вирішенням цих питань. Це:

  • Об'єднує специфічний для апаратного забезпечення драйвер фреймбуфера та драйвер драйвера в єдиний драйвер.
  • Забезпечує інтерфейс для X-сервера, який використовується для керування модемацією, тому X-сервер не повинен безпосередньо отримувати доступ до обладнання. (Дійсно, для KMS сервер X більше не потребує кореневих дозволів.)

Деякі цікаві зауваження: Перехід до того, що зараз є KMS, фактично розпочався близько 2004 року; див . електронну пошту Джона Смірла про консольну архітектуру .

Щоб відповісти на ваші конкретніші запитання:

  • Швидкість зазвичай не буде гіршою, ніж один із неприскорених загальних драйверів (наприклад, VGA, vesafb), але текстова консоль KMS framebuffer була розроблена для зручності та використання в екстрених ситуаціях, а не для швидкості, а консоль не прискорюється повністю на деяких драйверах. Наприклад, загорнуті довгі рядки досить погані на картах Intel.
  • Програми, призначені для використання старих інтерфейсів framebuffer, як і раніше працюватимуть на фреймбуфер KMS.

3

KMS встановлює роздільну здатність та глибину відображення в просторі ядра, а не в просторі користувача. Так так, це це витісняє. Це дозволяє вбудовану роздільну здатність у кадрі.

Налаштування режиму ядра


4
Статті у Вікі про KMS легко знайти, але пояснення жахливі. Як KMS може витіснити fb і одночасно його включити? Fb вже підтримував нативну роздільну здатність, і чим він відрізняється? Чи працюють утиліти fb з KMS?
user5184

Я не думаю, що фреймбуфер підтримує вбудовану роздільну здатність, особливо коли монітор широкоекранний. наприклад, вбудована роздільна здатність мого РК-монітора - 1680x1050, проте
рамка
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.