Estoy tratando de hacer que una tarjeta sintonizadora PCMCIA funcione en mi servidor doméstico sin cabeza, ejecutando Debian Squeeze. Ahora, como tengo grandes problemas para encontrar la línea de comando correcta para capturar, transcodificar y transmitir el video a la red usando VLC, decidí ir paso a paso y trabajar primero en la salida local.
Ahí es donde entra el problema: ¡ parece que no hay ningún dispositivo framebuffer (/ dev / fb0) al que acceder para mostrar gráficos en la pantalla adjunta! Y, de hecho, noté que no tengo la imagen de pingüino de Linux en el arranque (no presté atención antes porque la pantalla está conectada, pero siempre está apagada, y de todos modos la computadora siempre está encendida).
Como no estoy muy familiarizado con los gráficos de Linux, me gustaría entender:
- ¿Está relacionado con mi hardware en particular (ver más abajo)? ¿O es específico de Debian Squeeze / una versión del núcleo / ...?
- ¿Hay algún controlador que deba instalar / cargar manualmente?
Ahora algo de información general:
- La computadora no tiene una tarjeta gráfica dedicada, sino un chipset gráfico integrado (Intel G31 Express), integrado en la placa base (Gigabyte G31M-ES2L)
- No quiero instalar un servidor X con todas las funciones, solo tengo un dispositivo framebuffer para esta prueba en particular
¿Alguna idea / comentario sobre el tema?
fuente
/dev/fb0
y en funcionamiento, asegúrese de aceptar mi respuesta. En raras ocasiones, las personas con experiencia real en un tema menos común se mueven para dar una respuesta de alta calidad. Existen en UNIX-SE, es un tema relativamente poco común, por lo que existen menos expertos.Respuestas:
Puedo abordar su pregunta, habiendo trabajado previamente con Linux FB.
Cómo Linux hace su FB.
Primero necesita tener soporte FrameBuffer en su kernel, correspondiente a su hardware. La mayoría de las distribuciones modernas tienen soporte a través de módulos del núcleo. No importa si su distribución viene preconfigurada con un logotipo de arranque, no uso uno y tengo soporte FB.
No importa si tiene una tarjeta gráfica dedicada, integrada funcionará siempre que se admita el Hardware Framebuffer.
No necesita X, que es el aspecto más atractivo de tener FrameBuffer. Algunas personas no lo saben mejor, por lo que abogaron por alguna forma de X para solucionar sus malentendidos.
No necesita trabajar directamente con el FB, lo que muchas personas suponen incorrectamente. Una biblioteca increíble para desarrollar con FrameBuffer es
DirectFB
que incluso tiene un soporte básico de aceleración. Siempre sugiero al menos echarle un vistazo, si está comenzando un proyecto basado en FB con todas las funciones (navegador web, juego, GUI ...)Específico para su hardware
Utilice el Vesa Generic FrameBuffer, se llama a sus módulos
vesafb
. Puede cargarlo, si lo tiene disponible, con los comandosmodprobe vesafb
. muchas distribuciones preconfiguran deshabilitado, puede registrarse/etc/modprobe.d/
.blacklist vesafb
Es posible que deba comentarse con un#
, en unblacklist-framebuffer.conf
u otro archivo de lista negra.La mejor opción es un controlador KMS específico de hardware. El principal para Intel es Intel GMA, no estoy seguro de cómo se llaman sus módulos. Deberá leerlo al respecto en sus documentos de distribución. Esta es la mejor opción de FB, personalmente siempre iría a KMS primero si es posible.
Utilice los controladores de FB específicos del hardware heredado, no se recomiendan ya que a veces tienen errores. Evitaría esta opción, a menos que sea el último recurso necesario.
Creo que esto cubre todas sus preguntas y debería proporcionar la información para que ese
/dev/fb0
dispositivo esté disponible. Cualquier cosa más específica necesitaría detalles de distribución, y si tiene algo de experiencia, RTFM debería ser todo lo que necesita. (Después de leer esto).Espero haberte ayudado, ¡tienes suerte de que estés preguntando sobre uno de mis temas! Este es un tema descuidado en UNIX-SE, ya que no todos (a sabiendas) usan Linux FrameBuffer.
NOTA: UvesaFB o VesaFB?
Es posible que haya leído que la gente usa
uvesafb
másvesafb
, ya que tuvo un mejor rendimiento. Esto fue generalmente cierto, pero no en una distribución moderna con hardware moderno. Si su hardware de gráficos admite el modo protegido VESA (VESA> = 2.0), y tiene un núcleo algo reciente,vesafb
ahora es una mejor opción.fuente
modprobe vesa
(lo cual recuerdo haber intentado antes de hacer la pregunta aquí) que falla porque el módulo no existe en mi sistema (FATAL: Module vesafb not found.
) -> tendré que entender si esto está relacionado con mi hardware o mi distribución de Linux (Debian Squeeze ) La buena noticia es quemodprobe uvesafb
funciona y crea el/dev/fb0
dispositivo. Sin embargo, ahora que he leído su respuesta, intentaré configurar las cosas de la manera correcta y encontrar el controlador KMS ...inteldrmfb
, lo descubrí haciendo una investigación rápida. Siempre tengo ATI, por lo que el soporte relacionado con Intel GPU no es mi punto más fuerte. Es posible que deba instalar un paquete, pero veré si puedo averiguarlo.i915
, pero carga el Framebuffer conocido como inteldrmfb. Es posible que deba instalar el paquetelibdrm-intel1
o verificar si está instalado.¡Finalmente encontré la solución a mi problema!
En primer lugar, muchas gracias a todos los que contribuyeron y, en particular, a TechZilla y a la explicación detallada que brindó, ¡sin la cual creo que me habría rendido hace mucho tiempo!
Básicamente, todo lo que hay que hacer es habilitar modesetting (
modeset=1
) cuandoi915
se carga el módulo del kernel. Esto se puede hacer de la manera habitual:/etc/modprobe.d
o en la línea de comando:
De hecho, no necesita hacer nada si instala el paquete
xserver-xorg-video-intel
, que crea/etc/modprobe.d/i915-kms.conf
contenidooptions i915 modeset=1
. Sin embargo, si alguien no quiere instalar X (como en mi caso), entonces KMS no está habilitado automáticamente, lo que explica por qué no se creó el dispositivo FrameBuffer ...fuente
Puede probar un framebuffer virtual como Xvfb (X virtual framebuffer).
Descripción del paquete xvfb en squeeze
fuente
Mientras se trate de una instalación Debian estándar sin nada sofisticado y un kernel estándar, debería poder obtener una consola VGA contratada que use el dispositivo framebuffer con un parámetro de kernel como "vga = 792" (que es 24 bits 1024 × 768 ) Claro que el kernel lo informa como obsoleto, pero funciona.
Ver http://www.kernel.org/doc/Documentation/kernel-parameters.txt para los parámetros del kernel. Curiosamente, el parámetro "vga =" no se muestra como obsoleto.
Asegúrese de volver a ejecutar update-grub (2) y los Me gusta después del cambio.
También eche un vistazo a http://packages.debian.org/squeeze/svgalib-bin , no es perfecto, pero le permite hacer algunas cosas gráficas elegantes en una consola.
fuente
16
desaceleraciones heredadas . También está en desuso, lo que al menos reconoces, pragmáticamente, lo que significa que NO HAGAS NUEVAS CONFIGURACIONES CON ELLO. Lavga=
basura vieja no se iniciará si tiene sus módulos de hardware deshabilitados/etc/modprobe.d/
y muchas distribuciones vienen preconfiguradas como tales.