Вопрос или проблема
Как вывести правильное разрешение/частоту в текстовом режиме?
[ Полная прозрачность: Я сначала задал этот вопрос на форумах Arch Linux, но не получил ответа ]
У меня есть сервер, который в общем работает безголовным образом. Он вообще не запускает X — только командная строка.
Этот сервер раньше имел большой громоздкий КДТ, который я подключал, когда нужно было что-то устранить. Это работало неплохо, но КДТ (хоть и маленький) весит столько же, сколько среднеразмерный седан. Недавно я купил маленький подержанный ЖК-дисплей, чтобы заменить его.
Проблема в том, что когда я подключаю ЖК-дисплей и включаю его, он сообщает: “Текущий ввод не поддерживается монитором. Пожалуйста, измените разрешение на 1280×1024 @ 60Hz”.
Если я перезагружу сервер (что я обычно делаю примерно раз в год, так что это не оптимальное решение), монитор работает… до тех пор, пока я не отключу его. Затем, когда я снова подключаю его и включаю, я получаю то же сообщение, пока не перезагружу.
(Использование DVI, вероятно, решит эту проблему, но у сервера нет порта DVI)
Как заставить сервер выводить видео 60Hz так, чтобы оно продолжало работать после отключения/подключения? Бонусы будут выданы за ответы, которые не требуют перезагрузки!
Вам нужно использовать framebuffer.
Просто отредактируйте /etc/grub.conf
и добавьте vga=794
в конец строк, начинающихся с kernel.
vga=793
15-бит 1280×1024@60
vga=794
16-бит 1280×1024@60
vga=795
24-бит 1280×1024@60
В зависимости от возраста монитора, вам, возможно, придется попробовать один из других кодов.
Извините, вам придется перезагрузить, пока это не заработает, после чего все будет в порядке.
В удивительном проявлении компетентности, я сам это исправил!
Я сделал следующее:
- В /etc/default/grub
- Установить GRUB_CMDLINE_LINUX_DEFAULT=”nomodeset”
- Добавить строку GRUB_TERMINAL=console
- Добавить строку GRUB_GFXPAYLOAD_LINUX=text
- Удалить строку GRUB_GFXMODE
- Запустить grub-mkconfig -o /boot/grub/grub.cfg
Недостаток в том, что я получаю крупный текст с не очень хорошим разрешением вместо красивого текстового вывода с разумным разрешением. Преимущество в том, что это работает, в отличие от любого из вышеперечисленного.
Вы можете попробовать
sudo udevadm trigger
Из мануала по udevadm для Arch:
udevadm trigger [options]
Запрос событий устройства от ядра. Применяется в основном для воспроизведения событий при холодной загрузке системы.
Вы пробовали использовать fbset
? Использование этого для установки правильного режима framebuffer должно сработать.
Я не пользовался Arch много since они перешли на systemd, но это работало хорошо в прошлом.
Ответ или решение
Для того чтобы установить корректное разрешение и частоту обновления экрана в текстовом режиме на вашем сервере без графической среды, вы можете следовать следующим рекомендациям.
1. Настройка GRUB
Первый шаг – это настройка загрузчика GRUB. Вам нужно указать параметры, чтобы учитывать нужное разрешение и частоту:
-
Откройте файл
/etc/default/grub
в текстовом редакторе:sudo nano /etc/default/grub
-
Измените или добавьте следующие строки:
- Установите:
GRUB_CMDLINE_LINUX_DEFAULT="nomodeset"
- Добавьте:
GRUB_TERMINAL=console
- Добавьте также:
GRUB_GFXPAYLOAD_LINUX=text
- Удалите (если есть) строку:
GRUB_GFXMODE=...
- Установите:
-
Сохраните изменения и закройте редактор.
- Обновите конфигурацию GRUB:
sudo grub-mkconfig -o /boot/grub/grub.cfg
2. Использование fbset
После настройки GRUB, вы можете использовать fbset
для установки нужного разрешения в текстовом режиме. Если у вас не установлен fbset
, установите его:
sudo apt install fbset
Выполните команду для изменения разрешения (например, на 1280×1024):
sudo fbset -g 1280 1024 1280 1024 16
На этом этапе ваш сервер должен корректно отображать разрешение на современном ЖК-мониторе.
3. Применение udevadm
Иногда проблема может заключаться в распознавании устройства после его подключения. Вы можете запустить команда для активации всех устройств:
sudo udevadm trigger
Это может помочь в том случае, если проблемы возникают после выключения и включения монитора.
4. Альтернативные решения
Если указанные выше шаги не приводят к желаемому результату, можно попробовать следующее:
- Убедитесь, что используете все доступные порты и соединения (например, HDMI или VGA), чтобы минимизировать такие проблемы.
- Обратитесь к документации для вашего монитора, возможно, есть рекомендации по настройке для устройств, работающих в текстовом режиме.
Следуя этим шагам, вы должны добиться стабильного вывода изображения на вашем сервере при подключении ЖК-монитора.