Я пытаюсь заставить работать карту тюнера PCMCIA на моем безголовом домашнем сервере, на котором работает Debian Squeeze. Теперь, когда у меня очень большие проблемы с поиском правильной командной строки для захвата, транскодирования и потоковой передачи видео в сеть с помощью VLC, я решил пойти шаг за шагом и сначала поработать над локальным выводом.
Вот в чем проблема: кажется, нет устройства кадрового буфера (/ dev / fb0) для доступа к отображению графики на подключенном экране!И действительно, я заметил, что у меня нет образа Linux-пингвина при загрузке (не обращал внимания до того, как экран подключен, но всегда выключен, и в любом случае компьютер всегда включен).
Поскольку я не очень знаком с графикой Linux, я хотел бы понять:
- Это связано с моим конкретным оборудованием (см. Ниже)? Или это специфично для Debian Squeeze / версии ядра / ...?
- Есть ли какой-нибудь драйвер, который мне нужно установить / загрузить вручную?
Теперь немного общей информации:
- На компьютере нет выделенной графической карты, но есть встроенный графический чипсет (Intel G31 Express), встроенный в материнскую плату (Gigabyte G31M-ES2L)
- Я не хочу устанавливать полнофункциональный X-сервер, просто есть устройство кадрового буфера для этого конкретного теста
Есть идеи / комментарии по этому вопросу?
источник
/dev/fb0
к работе, обязательно примите мой ответ. Редко люди с реальным опытом по менее распространенной теме, обойти, чтобы дать HQ ответ. Они существуют в UNIX-SE, это довольно необычная тема, поэтому существует меньше экспертов.Ответы:
Я могу ответить на ваш вопрос, предварительно поработав с 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
, то сейчас лучший выбор.источник
modprobe vesa
(что я помню, пытался, прежде чем задавать вопрос здесь), что не получается, потому что модуль не существует в моей системе (FATAL: Module vesafb not found.
) -> должен будет понять, связано ли это с моим оборудованием или моим дистрибутивом Linux (Debian Squeeze ). Хорошая новость в том, чтоmodprobe uvesafb
работает и создает/dev/fb0
устройство. Однако теперь, когда я прочитал ваш ответ, я постараюсь правильно настроить все и найти драйвер KMS ...inteldrmfb
, я выяснил это, проведя небольшое исследование. У меня всегда есть ATI, поэтому поддержка Intel GPU не самая сильная сторона. Вы можете необходимо установить пакет для него, но я буду видеть , если я могу узнать.i915
, но он загружает Framebuffer, известный как inteldrmfb. Вам может потребоваться установить пакетlibdrm-intel1
или проверить, установлен ли он.Я наконец нашел решение своей проблемы !!
Прежде всего, большое спасибо всем, кто внес свой вклад, в частности TechZilla, и подробному объяснению, которое он дал, без которого, я думаю, я бы давно отказался!
В общем, все, что нужно сделать - это включить modesetting (
modeset=1
) приi915
загрузке модуля ядра. Это можно сделать обычными способами:/etc/modprobe.d
или в командной строке:
На самом деле, вам не нужно ничего делать, если вы устанавливаете пакет
xserver-xorg-video-intel
, который создает/etc/modprobe.d/i915-kms.conf
содержимоеoptions i915 modeset=1
. Однако, если кто-то не хочет устанавливать X (как в моем случае), то KMS не включается автоматически, что объясняет, почему устройство FrameBuffer не было создано ...источник
Вы можете попробовать виртуальный кадровый буфер, такой как Xvfb (X виртуальный кадровый буфер).
Описание пакета xvfb в squeeze
источник
Пока это стандартная установка Debian без излишеств и стандартного ядра, вы должны иметь возможность получить VGA-консоль, которая использует устройство кадрового буфера с параметром ядра, таким как «vga = 792» (что составляет 24 бита 1024 × 768). ). Конечно, ядро сообщает об этом как об устаревшем, но это работает.
См. Http://www.kernel.org/doc/Documentation/kernel-parameters.txt. для параметров ядра. Интересно, что параметр "vga =" не показывается как устаревший.
Обязательно повторно запустите update-grub (2) и лайки после изменения.
Также взгляните на http://packages.debian.org/squeeze/svgalib-bin, она не идеальна, но она позволяет вам делать некоторые необычные графические вещи на консоли.
источник
16
замедлениями. Это также устарело, что, по крайней мере, вы признаете, прагматично, что означает НЕ СДЕЛАТЬ С НОВЫМИ НАСТРОЙКАМИ. Старыйvga=
мусор не сможет загрузиться, если у вас отключены аппаратные модули,/etc/modprobe.d/
а многие дистрибутивы поставляются предварительно настроенными как таковые.