Cambiar el monitor predeterminado de la consola Linux

24

¿Hay alguna forma de especificar en qué monitor se muestra la consola en Linux?

Detalles:
Tengo una configuración de 3 monitores con 2 tarjetas de video. Cuando inicio la computadora, el BIOS se muestra en la tarjeta gráfica PCI (que tiene un monitor pequeño). Al iniciar Linux, la consola se muestra en el mismo monitor. ¿Hay alguna manera de tener la salida de la consola en un monitor diferente? Estoy usando el framebuffer vesafb.

No veo una manera en mi BIOS para cambiar la tarjeta de video predeterminada.

Tim
fuente
1
He tenido el mismo problema en una configuración de monitor dual (tarjeta de video única); Después de intercambiar salidas, he determinado que el BIOS solo se muestra en el primer monitor que se detectará. obtengo el monitor correcto si desconecto o apago por completo el que el BIOS generalmente elige, pero si está conectado (incluso en espera), el BIOS envía todo a ese monitor.
quack quijote
Esperaba un indicador de comando del núcleo que elegiría a qué tarjeta de video conectarse.
Tim
Especifique su versión de Linux y el administrador de ventanas.
harrymc
44
Estoy desconcertado por las respuestas y los comentarios que se refieren a X. La pregunta es sobre la consola, que es el tty donde van los mensajes del kernel. ¿GNOMO? xrandr? administrador de ventanas? ¿Que demonios?
Alan Curry
@AlanCurry: Eso es lo que sucede cuando la publicación no es lo suficientemente clara.
harrymc

Respuestas:

7

Creo que la opción que estamos buscando aquí es fbcon=map:ndónde nestá el número asignado al dispositivo fb para la salida de video deseada.

Documentation / fb / fbcon.txt lo explica y también lo menciona con2fbmapcomo la utilidad para cambiarlo en tiempo de ejecución.

Alan Curry
fuente
No he podido probar esto, pero esta es la respuesta más cercana a plausible que puedo encontrar. Le doy la recompensa y comentaré cuando pruebe esto. Todas las otras respuestas parecen hablar de X, por lo que obviamente no es tan probable que sean correctas.
Journeyman Geek
Ya no tengo el hardware para probar esto, ¿alguien puede confirmar que esto funciona?
Tim
@Tim M: lo probé. Funciona.
Beroal
3

En cuanto a cambiar qué consola se ejecuta en qué monitor (frame buffer @ / dev / fb x), puede descargar este pequeño programa de ochenta líneas C que le permite especificar tales cosas.

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

Después de haber descargado y compilado eso, su uso más simple es sudo ./con2fb.out /dev/fb[frame buffer number, starting at 0] /dev/tty[console number, starting at 1].

Esto "bloqueará" el terminal especificado al monitor especificado (frame buffer), por lo que cuando intente y cambie a un terminal que se ha asignado a un monitor, enfocará ese terminal en lugar de encenderlo en la pantalla actual.

Sin embargo, recuerde, frame buffer! = Monitor físico. Cada monitor en el que desea tener un dispositivo separado debe estar conectado a una tarjeta gráfica separada (por lo tanto, los búferes de fotogramas separados).

También puede bloquear el kernel si no tiene cuidado, ¡así que tenga cuidado de no intentar engañar al programa! ;)

cuidadoso1
fuente
-3

Creo que esto dependerá del administrador de ventanas que esté utilizando. Por ejemplo, la Iluminación tiene la capacidad de recordar la posición de la ventana.

Fluxbox también permite guardar posiciones y estados de ventanas.

No creo que GNOME pueda hacer esto de forma inmediata, ya que creen que debería corresponder al desarrollador de la aplicación escribir código que pueda recordar su último estado.

Entonces, tener esta funcionalidad depende de:

  1. La versión de Linux que estás ejecutando
  2. El administrador de ventanas que está utilizando
  3. Si está dispuesto a intentar cambiar su administrador de ventanas a uno de estos
  4. Y depende de si estos gestores de ventanas son compatibles con su sabor favorito de Linux.
gruñó
fuente
1
El OP habla de una consola virtual, no de una ventana X. Si tiene un entorno gráfico, esto generalmente se puede encontrar usando ctrl + alt + F1 a ctrl + alt + F6. (puede volver a X con ctrl + alt + F7).
Daniel H