Alterar o monitor padrão do console Linux

24

Existe alguma maneira de especificar em qual monitor o console será exibido no Linux?

Detalhes:
Eu tenho uma configuração de 3 monitores e 2 placas de vídeo. Quando eu inicializo o computador, o BIOS é exibido na placa de vídeo PCI (que possui um pequeno monitor). Ao iniciar o Linux, o console é exibido no mesmo monitor. Existe uma maneira de obter a saída do console em um monitor diferente? Estou usando o framebuffer vesafb.

Não vejo uma maneira no meu BIOS de alterar a placa de vídeo padrão.

Tim
fonte
1
eu tive o mesmo problema em uma configuração de monitor duplo (placa de vídeo única); depois de trocar as saídas, determinei que o BIOS é exibido no primeiro monitor a ser detectado. eu obtenho o monitor certo se eu desconectar ou cortar completamente a energia da que o BIOS normalmente escolhe, mas se estiver conectado (mesmo em espera), o BIOS envia tudo para esse monitor.
quack quixote
Eu esperava um sinalizador de comando do kernel que escolhesse qual placa de vídeo se conectar.
Tim
Especifique sua versão do Linux e gerenciador de janelas.
harrymc
4
Estou perplexo com as respostas e comentários referentes ao X. A questão é sobre o console, que é o tty para onde as mensagens do kernel vão. GNOMO? xrandr? gerenciador de janelas? Que diabos?
27612 Alan Curry
@ AlanCurry: Isso é o que acontece quando o post não está claro o suficiente.
harrymc

Respostas:

7

Acho que a opção que procuramos aqui é fbcon=map:nonde nestá o número atribuído ao dispositivo fb para a saída de vídeo desejada.

A documentação / fb / fbcon.txt explica e também menciona con2fbmapcomo o utilitário para alterá-lo em tempo de execução.

Alan Curry
fonte
Ainda não testei isso, mas esta é a resposta mais próxima do plausível que posso encontrar. Estou dando a recompensa e comentarei quando testar isso. Todas as outras respostas parecem falar sobre o X, então obviamente não é tão provável que estejam corretas.
Journeyman Geek
Não tenho mais o hardware para testar isso, alguém pode confirmar que isso funciona?
Tim
@ Tim M: Eu testei. Funciona.
beroal
3

Quanto à alteração de qual console é executado em qual monitor (buffer de quadro @ / dev / fb x), é possível fazer o download deste pequeno programa C de oitenta linhas, que permite especificar essas coisas.

wget https://raw.githubusercontent.com/kunguz/pi3b/master/con2fb.c
gcc con2fb.c -o con2fb.out

Depois de baixar e compilar isso, é o uso mais simples sudo ./con2fb.out /dev/fb[frame buffer number, starting at 0] /dev/tty[console number, starting at 1].

Isso "travará" o terminal especificado no monitor especificado (buffer de quadro); portanto, quando você tentar alternar para um terminal atribuído a um monitor, ele focalizará esse terminal em vez de alterná-lo na exibição atual.

Lembre-se, porém, frame buffer! = Monitor físico. Cada monitor no qual você deseja ter um tty separado deve ser conectado a uma placa gráfica separada (buffers de quadro separados).

Além disso, você pode travar o kernel se não for cuidadoso, portanto, cuidado para não tentar enganar o programa! ;)

cuidado agora
fonte
-3

Eu acredito que isso vai depender do gerenciador de janelas que você está usando. Por exemplo, a iluminação tem a capacidade de lembrar a posição da janela.

O Fluxbox também suporta o salvamento de posições e estados da janela.

Eu não acredito que o GNOME possa fazer isso imediatamente, pois eles acreditam que deve ser responsabilidade do desenvolvedor do aplicativo escrever um código que possa lembrar seu último estado.

Portanto, ter essa funcionalidade depende de:

  1. A versão do linux que você está executando
  2. O gerenciador de janelas que você está usando
  3. Se você estiver disposto a tentar mudar o gerenciador de janelas para um desses
  4. E isso depende se esses gerenciadores de janelas são suportados pelo seu sabor favorito do linux.
grunhido
fonte
1
O OP está falando sobre um console virtual, não uma janela X. Se você possui um ambiente gráfico, isso geralmente pode ser encontrado usando ctrl + alt + F1 a ctrl + alt + F6. (você pode voltar ao X com ctrl + alt + F7).
Daniel H