Change Linux Console's Default Monitor
I think the option we're looking for here is fbcon=map:n
where n
is the number assigned to the fb device for the desired video output.
Documentation/fb/fbcon.txt explains it and also mentions con2fbmap
as the utility for changing it at runtime.
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! ;)