Estou tentando fazer com que uma placa sintonizadora PCMCIA funcione no meu servidor doméstico sem cabeça, executando o Debian Squeeze. Agora, como tenho grandes problemas para encontrar a linha de comando correta para capturar, transcodificar e transmitir o vídeo para a rede usando o VLC, decidi ir passo a passo e trabalhar primeiro na saída local.
É aí que entra o problema: parece não haver um dispositivo buffer de quadro (/ dev / fb0) para acessar para exibir gráficos na tela anexada! E, de fato, notei que não tenho a imagem do pinguim do Linux na inicialização (não prestei atenção antes, pois a tela é anexada, mas sempre desligada e, de qualquer maneira, o computador está sempre ligado).
Como não estou muito familiarizado com os gráficos do Linux, gostaria de entender:
- Isso está relacionado ao meu hardware específico (veja abaixo)? Ou é específico do Debian Squeeze / uma versão do kernel / ...?
- Existe algum driver que eu preciso instalar / carregar manualmente?
Agora, algumas informações gerais:
- O computador não possui placa gráfica dedicada, mas um chipset gráfico incorporado (Intel G31 Express), incorporado na placa-mãe (Gigabyte G31M-ES2L)
- Não quero instalar um servidor X com todos os recursos, basta ter um dispositivo buffer de quadro para este teste específico
Alguma idéia / comentário sobre o assunto?
fonte
/dev/fb0
funcionar, aceite minha resposta. Raramente as pessoas com experiência real em um tópico menos comum, dão a volta para dar uma resposta no QG. Eles existem no UNIX-SE, é um assunto relativamente incomum, portanto existem menos especialistas.Respostas:
Posso responder à sua pergunta, tendo trabalhado anteriormente com o Linux FB.
Como o Linux faz o seu FB.
Primeiro, você precisa do suporte do FrameBuffer no seu kernel, correspondente ao seu hardware. A maioria das distribuições modernas tem suporte via módulos do kernel. Não importa se sua distribuição vem pré-configurada com um logotipo de inicialização, eu não uso uma e tenho suporte ao FB.
Não importa se você possui uma placa de vídeo dedicada, a integrada funcionará enquanto o Hardware Framebuffer for suportado.
Você não precisa do X, que é o aspecto mais atraente de ter o FrameBuffer. Algumas pessoas não sabem melhor, então defendiam alguma forma de X para solucionar seus mal-entendidos.
Você não precisa trabalhar diretamente com o FB, o que muitas pessoas assumem incorretamente. Uma biblioteca muito impressionante para o desenvolvimento com o FrameBuffer é que
DirectFB
ela possui algum suporte básico à aceleração. Eu sempre sugiro pelo menos dar uma olhada, se você estiver iniciando um projeto completo com base em FB (Web Browser, Game, GUI ...)Específico ao seu hardware
Use o Vesa Generic FrameBuffer, seus módulos são chamados
vesafb
. Você pode carregá-lo, se tiver disponível, com os comandosmodprobe vesafb
. muitas distribuições o pré-configuram como desativado, você pode fazer o check-in/etc/modprobe.d/
.blacklist vesafb
pode ser necessário comentar com um#
, em umblacklist-framebuffer.conf
ou outro arquivo da lista negra.A melhor opção é um driver KMS específico de hardware. O principal para a Intel é o Intel GMA, sem ter certeza do nome de seus módulos. Você precisará ler sobre isso nos seus documentos de distribuição. Esta é a opção FB com melhor desempenho; eu pessoalmente sempre faria o KMS primeiro, se possível.
Use os drivers FB específicos do hardware herdado, não recomendado, pois às vezes são de buggy. Eu evitaria essa opção, a menos que fosse necessário o último recurso.
Acredito que isso cobre todas as suas perguntas e deve fornecer as informações para
/dev/fb0
disponibilizar esse dispositivo. Qualquer coisa mais específica precisaria de detalhes de distribuição e, se você tiver alguma experiência, RTFM deve ser tudo o que você precisa. (depois de ler isso).Espero ter ajudado, sua sorte está perguntando sobre um dos meus tópicos! Este é um assunto negligenciado no UNIX-SE, pois nem todos (conscientemente) usam o Linux FrameBuffer.
NOTA: UvesaFB ou VesaFB?
Você pode ter lido as pessoas usam
uvesafb
demaisvesafb
, pois teve melhor desempenho. Isso geralmente era verdade, mas não em uma distribuição moderna com o hardware moderno. Se o seu hardware gráfico suportar o modo protegido VESA (VESA> = 2.0) e você tiver um kernel um tanto recente,vesafb
agora é uma escolha melhor.fonte
modprobe vesa
(que lembro de ter tentado antes de fazer a pergunta aqui) que falha porque o módulo não existe no meu sistema (FATAL: Module vesafb not found.
) -> terá que entender se isso está relacionado ao meu hardware ou à minha distribuição Linux (Debian Squeeze ) A boa notícia é quemodprobe uvesafb
funciona e cria o/dev/fb0
dispositivo. No entanto, agora que eu li sua resposta, vou tentar coisas configuração da maneira adequada e encontrar o driver KMS ...inteldrmfb
, descobri fazendo uma pesquisa rápida. Eu sempre tenho ATI, portanto, o suporte relacionado à GPU da Intel não é meu ponto forte. Você pode precisar instalar um pacote para ele, mas vou ver se consigo descobrir.i915
, mas ele carrega o Framebuffer conhecido como inteldrmfb. Pode ser necessário instalar o pacotelibdrm-intel1
ou verificar se ele está instalado.Finalmente encontrei a solução para o meu problema !!
Antes de tudo, muito obrigado a todos que contribuíram e, em particular, ao TechZilla e à explicação detalhada que ele forneceu sem a qual acho que teria desistido há muito tempo!
Então, basicamente, tudo o que precisa ser feito é ativar o modesetting (
modeset=1
) quando oi915
módulo do kernel carregar. Isso pode ser feito da maneira usual:/etc/modprobe.d
ou na linha de comando:
De fato, você não precisa fazer nada se instalar o pacote
xserver-xorg-video-intel
, o que cria o/etc/modprobe.d/i915-kms.conf
contendooptions i915 modeset=1
. No entanto, se alguém não quiser instalar o X (como no meu caso), o KMS não será ativado automaticamente, o que explica por que o dispositivo FrameBuffer não foi criado ...fonte
Você pode experimentar um framebuffer virtual como o Xvfb (X virtual framebuffer).
Descrição do pacote xvfb no squeeze
fonte
Contanto que esta seja uma instalação debian padrão sem nada sofisticado e um kernel padrão, você poderá conseguir um console VGA contratado que use o dispositivo framebuffer com um parâmetro de kernel como "vga = 792" (24 bits 1024 × 768 ) Certamente, o kernel o relata como obsoleto, mas funciona.
Veja http://www.kernel.org/doc/Documentation/kernel-parameters.txt para obter os parâmetros do kernel. Curiosamente, o parâmetro "vga =" não aparece como obsoleto.
Certifique-se de executar novamente o update-grub (2) e os gostos após a alteração.
Também dê uma olhada em http://packages.debian.org/squeeze/svgalib-bin . Não é perfeito, mas permite que você faça algumas coisas gráficas sofisticadas em um console.
fonte
16
desacelerações herdadas . Também está obsoleto, o que pelo menos você reconhece, pragmaticamente significa que NÃO FAZ NOVAS CONFIGURAÇÕES COM ELE. Ovga=
lixo antigo falhará na inicialização, se você tiver seus módulos de hardware desabilitados/etc/modprobe.d/
e muitas distribuições forem pré-configuradas como tal.