Як встановити режим відео у linux з kms / drm?


12

Як я можу встановити режим відео в Linux на низькому рівні? Наскільки мені відомо, найнижчим рівнем у просторі користувачів буде запит KMS через DRM. Це правильно? І якщо так, то як я можу досягти перемикання режиму та доступу до пов’язаної "відеопам'яті"?


Що таке kms? Поки що я не чув про KSM або переключення режимів.
BЈович

Я маю на увазі під KMS: посилання на режим ядра-режим .

Ви маєте на увазі фреймбуфер / консоль? Або для X11 / Xorg?
penguin359

@ penguin359 Або. X і fb, якщо можливо, якщо я можу використовувати libdrm безпосередньо ... (PS: бажано через C ++)

4
@litro чого ти намагаєшся досягти? і в багатьох кілометрах дистрибутива активується, якщо є, а не вимкнено.
ксенотеррацид

Відповіді:


3

KMS - налаштування режиму ядра для тих, хто не чув про нього, стає можливим за допомогою драйверів відеорежиму в режимі ядра. Ці драйвери відеорежиму в режимі ядра налаштовують відображення кадру кадрів, що за замовчуванням є початковою роздільною здатністю доданих моніторів. Якщо підключено більше одного монітора, кожен монітор отримає своє початкове дозвіл, а віртуальна консоль буде обмежена мінімальною шириною та висотою обох моніторів.

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

Додаткову інформацію див. У документації на ядро ​​про налаштування режимів за допомогою параметра video = boot up для фреймбуферів .


2

Я не впевнений, що ви насправді знаєте, про що ви питаєте, інакше ви б сформулювали це так, що відповідає. ... Але щоб зробити все можливе, відповідаючи на ваше запитання.

Ви хочете встановити режим і вимкнути деяку «відеопам'ять»? як старий DOS режим X днів ?? Якщо це те, що ви хочете, вам потрібно запрограмувати за допомогою Framebuffer. З огляду на це, було б набагато краще працювати з DirectFB. DirectFB - це дуже тонкий шар, з прискоренням, на Framebuffer. Його низький рівень, і правдиво, він такий низький, як ви повинні розумно хотіти, коли-небудь хочете писати заяви. Ви могли б встановлювати режими та керувати в більш низькому рівні. Якщо ви хочете безпосередньо керувати прямим стилем, вам потрібно писати Framebuffer в режимі "необроблений", ви, в основному, створюєте відеомагнітофон. Якщо ви відчуваєте, що Framebuffer працює погано, я не можу зробити стрес, перевірте DirectFB. Якщо у когось завантажений драйвер KMS, його Framebuffer встановлюється через KMS / libdrm.

Тепер, що стосується libdrm, то це libdrm libdrm для роботи з ядром DRM. Це не Framebuffer, це не API програми, це бібліотека системних пристроїв. Якщо ви хочете створити новий драйвер пристрою, libdrm - це абсолютний шлях. Наприклад, libdrm-radeon. Linux не DOS, єдиний спосіб безпосередньо спілкуватися з обладнанням - це ядро. Усі звичайні програми ніколи не надсилають код безпосередньо на апаратне забезпечення, воно повинно бути пошкоджено в деякій lib / API / call. Є проекти, які застосували внутрішній підхід для академічних / експериментальних цілей, наприклад, FBUI.

Я сподіваюсь, що я міг би принаймні вказати на вас у правильному напрямку, якщо не так, ви повинні прокоментувати, а також оновити своє запитання. Я дотримувався цього питання з моменту його заснування, яке було щонайменше дві міграції тому і ближче до відповіді. Без додаткової інформації, насправді більше не можна сказати.

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