有没有办法指定 Linux 中控制台显示在哪个显示器上?
详细信息:
我有一套 3 显示器设置和 2 个视频卡。启动计算机时,BIOS 显示在 PCI 显卡上(该显卡有一个小显示器)。启动 Linux 时,控制台显示在同一显示器上。有没有办法让控制台输出到不同的显示器上?我正在使用 vesafb 帧缓冲区。
我没有在 BIOS 中看到更改默认视频卡的方法。
答案1
我认为我们在这里寻找的选项是分配给 fb 设备所需视频输出的号码fbcon=map:n
在哪里。n
文档/fb/fbcon.txt对其进行了解释,并提到了con2fbmap
在运行时更改它的实用程序。
答案2
至于更改哪个控制台在哪个监视器(帧缓冲区@ /dev/fb x
)上运行,您可以下载这个八十行的小型 C 程序,它允许您指定这些内容。
wget https://raw.githubusercontent.com/kunguz/pi3b/master/con2fb.c
gcc con2fb.c -o con2fb.out
下载并编译后,最简单的用法是sudo ./con2fb.out /dev/fb[frame buffer number, starting at 0] /dev/tty[console number, starting at 1]
。
这会将指定的终端“锁定”到指定的监视器(帧缓冲区),因此当您尝试切换到已分配给监视器的终端时,它会将焦点放在该终端上,而不是将其切换到当前显示器上。
但请记住,帧缓冲区 != 物理显示器。每个想要有单独 tty 的显示器都必须插入单独的显卡(即单独的帧缓冲区)。
另外,如果您不小心,内核可能会崩溃,所以请注意不要试图欺骗程序!;)