Изменить монитор консоли Linux по умолчанию

22

Есть ли способ указать, на каком мониторе отображается консоль в Linux?

Подробности:
У меня есть 3 монитора с двумя видеокартами. Когда я загружаю компьютер, BIOS отображается на графической карте PCI (у которой есть маленький монитор). При запуске Linux консоль отображается на том же мониторе. Есть ли способ вывести консольный вывод на другой монитор? Я использую кадровый буфер vesafb.

Я не вижу в моем BIOS способа изменить видеокарту по умолчанию.

Tim
источник
1
у меня была такая же проблема на установке с двумя мониторами (одна видеокарта); после переключения выходов я определил, что BIOS просто отображается на первом обнаруживаемом мониторе. Я получаю правильный монитор, если отключаю или полностью отключаю питание от того, которое обычно выбирает BIOS, но если он подключен (даже в режиме ожидания), BIOS отправляет все на этот монитор.
quack quixote
Я надеялся на флаг команды ядра, который бы выбрал видеокарту для подключения.
Tim
Пожалуйста, укажите вашу версию Linux и оконный менеджер.
harrymc
3
Я озадачен ответами и комментариями, относящимися к X. Вопрос касается консоли, которая является tty, куда идут сообщения ядра. ГНОМ? XRandR? оконный менеджер? Что за черт?
Alan Curry
@AlanCurry: Вот что происходит, когда сообщение недостаточно ясно.
harrymc

Ответы:

7

Я думаю, что вариант, который мы ищем здесь fbcon=map:n где n это номер, назначенный устройству fb для желаемого видео выхода.

Документация / FB / fbcon.txt объясняет это, а также упоминает con2fbmap как утилита для его изменения во время выполнения.

Alan Curry
источник
Я не проверял это, но это самый близкий ответ к правдоподобному, который я могу найти. Я даю это вознаграждение, и прокомментирую, когда я проверю это. Все остальные ответы, похоже, говорят о X, поэтому, вероятно, не так правильно.
Journeyman Geek
У меня больше нет оборудования, чтобы проверить это, кто-нибудь может подтвердить, что это работает?
Tim
@ Тим М: я проверял это. Оно работает.
beroal
2

Что касается изменения того, какая консоль работает на каком мониторе (кадровый буфер @ / dev / fb x ), вы можете скачать эту маленькую программу на восемьдесят строчек языка Си, которая позволяет вам определять такие вещи.

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, должен быть подключен к отдельной графической карте (таким образом, отдельные кадровые буферы).

Также вы можете разбить ядро, если не будете осторожны, так что будьте осторожны, не пытайтесь обмануть программу! ;)

carefulnow1
источник
-3

Я считаю, что это будет зависеть от оконного менеджера, который вы используете. Например просветление имеет возможность запоминать положение окна.

Fluxbox также поддерживает сохранение позиций и состояний окон.

Я не верю, что GNOME может сделать это «из коробки», так как они считают, что разработчик приложения должен написать код, который может запомнить его последнее состояние.

Таким образом, наличие этой функциональности зависит от:

  1. Версия Linux, которую вы используете
  2. Менеджер окон, который вы используете
  3. Если вы хотите попробовать переключить ваш оконный менеджер на один из этих
  4. И это зависит от того, поддерживаются ли эти оконные менеджеры вашим любимым видом linux.
gruntled
источник
1
ОП говорит о виртуальной консоли, а не о X-окне. Если у вас есть графическое окружение, это обычно можно найти, используя ctrl + alt + F1 через ctrl + alt + F6. (Вы можете вернуться к X с помощью Ctrl + Alt + F7).
Daniel H