Я могу ответить на ваш вопрос, предварительно поработав с Linux FB.
Как Linux делает свой FB.
Во-первых, вам нужно иметь поддержку FrameBuffer в вашем ядре, соответствующую вашему оборудованию. Большинство современных дистрибутивов имеют поддержку через модули ядра. Не имеет значения, если ваш дистрибутив поставляется с предварительно настроенным логотипом загрузки, я не использую его и поддерживаю FB.
Неважно, если у вас есть выделенная видеокарта, интегрированная будет работать, пока поддерживается аппаратный кадровый буфер.
Вам не нужен X, который является наиболее заманчивым аспектом наличия FrameBuffer. Некоторые люди не знают лучше, поэтому они отстаивали какую-то форму X, чтобы обойти свои недоразумения.
Вам не нужно работать с FB напрямую, что многие люди ошибочно полагают. Очень хорошая библиотека для разработки с FrameBuffer - DirectFB
она даже имеет некоторую базовую поддержку ускорения. Я всегда советую хотя бы проверить это, если вы запускаете полнофункциональный проект на основе FB (Web Browser, Game, GUI ...)
Специфично для вашего оборудования
Используйте Vesa Generic FrameBuffer, его модули называются vesafb
. Вы можете загрузить его, если он у вас есть, с помощью команд modprobe vesafb
. во многих дистрибутивах его предварительно отключить, вы можете проверить /etc/modprobe.d/
. blacklist vesafb
может быть необходимо закомментировать с #
, в blacklist-framebuffer.conf
или другом файле черного списка.
Лучший вариант - аппаратный драйвер KMS. Основным для Intel является Intel GMA, не знаю, как называются его модули. Вам нужно будет прочитать об этом из ваших документов дистрибутива. Это самый эффективный вариант FB, лично я всегда буду идти KMS первым, если это возможно.
Используйте драйверы FB для устаревшего аппаратного обеспечения, не рекомендуется, так как они иногда содержат ошибки. Я бы избежал этого варианта, если только в крайнем случае не нужно.
Я считаю, что это покрывает все ваши вопросы, и должен предоставить информацию, чтобы получить это /dev/fb0
доступ устройству. Для чего-то более конкретного потребуется информация о распространении, и если у вас есть некоторый опыт, RTFM должен быть всем, что вам нужно. (после прочтения).
Надеюсь, я помог, Тебе повезло, что ты спросил об одной из моих тем! Это тема, которой пренебрегают в UNIX-SE, поскольку не все (сознательно) используют Linux FrameBuffer.
ПРИМЕЧАНИЕ: UvesaFB или VesaFB?
Вы, возможно, читали, что люди используют uvesafb
более vesafb
, поскольку это имело лучшую производительность. Это в целом верно, но не в современном дистрибутиве с современным аппаратным обеспечением. Если ваше графическое оборудование поддерживает защищенный режим VESA (VESA> = 2.0), и у вас есть несколько новое ядро vesafb
, то сейчас лучший выбор.
/dev/fb0
к работе, обязательно примите мой ответ. Редко люди с реальным опытом по менее распространенной теме, обойти, чтобы дать HQ ответ. Они существуют в UNIX-SE, это довольно необычная тема, поэтому существует меньше экспертов.