As for changing what console runs on what monitor (frame buffer @ /dev/fbx
), you can download this small, eighty line C program that allows you to specify such things.
wget https://raw.githubusercontent.com/kunguz/pi3b/master/con2fb.c
gcc con2fb.c -o con2fb.out
After you have downloaded and compiled that, it's simplest usage is sudo ./con2fb.out /dev/fb[frame buffer number, starting at 0] /dev/tty[console number, starting at 1]
.
This will "lock" the specified terminal to the specified monitor (frame buffer), so when you try and and switch to a terminal that's been assigned to a monitor, it will give focus to that terminal instead of switching it on the current display.
Remember though, frame buffer != physical monitor. Each monitor which you want to have a seperate tty on must be plugged into a seperate graphics card (so seperate frame buffers).
Also you can crash the kernel if you're not careful, so watch out you don't try and trick the program! ;)
1i've had the same trouble on a dual-monitor setup (single video card); after swapping outputs i've determined the BIOS just displays on the first monitor to be detected. i get the right monitor if i disconnect or completely cut power to the one the BIOS usually picks, but if it's connected (even on standby) then the BIOS sends everything to that monitor. – quack quixote – 2010-03-20T20:58:12.983
I was hoping for a kernel command flag that would choose which video card to connect to. – Tim – 2010-03-20T21:03:55.547
Please specify your version of Linux and window manager. – harrymc – 2012-08-31T05:51:56.813
4I'm baffled by the answers and comments referring to X. The question is about the console, which is the tty where kernel messages go. GNOME? xrandr? window manager? What the hell? – Alan Curry – 2012-08-31T08:06:52.180
@AlanCurry: That's what happens when the post is not clear enough. – harrymc – 2012-09-03T07:21:09.930