Страница 1 из 2

Проблема с разрешением консоли

Добавлено: 23 сен 2016, 00:11
burnside
Здравствуйте, форумчане!
У меня ноутбук, экран около 16 дюймов, помимо встроенной видеокарты intel установлена nvidia GeForce GTX 970M. Разрешение по умолчанию 3840х2160. Поскольку монитор небольшой, установил более низкое разрешение 1360x768 в Х. Чтобы экран входа в систему имел такое разрешение, прописал его явно в xorg.conf (помогло). Однако шрифт консоли (Alt+Ctrl+Fx) очень-очень мелкий (наверное, разрешение по умолчанию). Чтобы хоть что-нибудь можно было прочитать установил самый крупный шрифт через console-setup: 16x32 (только фрейм-буфер). Теперь по крайней мере можно разобрать текст. Пытался через /etc/default/grub изменить разрешение консоли. Безуспешно... Прошу всех неравнодушных откликнуться! :'(
ОС - Линукс Минт 18 (Синамон).

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 01:18
Chocobo
burnside,
Если я верно понял вопрос - то привести tty и иксы к нужному разрешению можно следующим образом:

Для начала, на этапе отображения меню grub жмем клавишу с чтоб попасть в его консоль, там набираем vbeinfo и видим все доступные разрешения экрана. Запоминаем нужное и бутимся в систему

По факту загрузки - добавляем эти строчки в /etc/default/grub, в моём примере 1280х960:

Код: Выделить всё

GRUB_GFXMODE=1280x960
GRUB_GFXPAYLOAD_LINUX=keep
Также стоит поменять

Код: Выделить всё

GRUB_CMDLINE_LINUX_DEFAULT="quiet spalsh"
На

Код: Выделить всё

GRUB_CMDLINE_LINUX_DEFAULT="quiet spalsh nomodeset"
Именно nomodeset не даст сползти разрешению в дальнейшем

Затем даём sudo update-grub и перезагружаемся.

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 07:11
burnside
Chocobo, спасибо за развернутый ответ! Такие манипуляции я уже проделывал ранее. Из всех доступных разрешений формата 16x9 vbeinfo выдает только 3840х2160. Если поставить любое другое разрешение из vbeinfo (например, 1024x768), то после этого графическая оболочка загружается только в безопасном режиме. Приходится возвращать настройки grub в исходное состояние. Напомню, что мое рабочее разрешение (в виду небольшого размера монитора ноутбука) 1360x768 (можно и 1920x1080, но уже менее комфортно). Эх, требуется какой-то иной подход... :dash2:

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 08:24
nimms
Если мыслить "правильно", то надо не разрешение экрана менять, а использовать DE и приложения, поддерживающие HiDPI. Например, GNOME 3, KDE 5, Cinnamon, MATE (но в нём пока не полная поддержка) и просто приложения, использующие GTK 3 и Qt 5. Суть в том, что элементы управления и шрифты будут увеличены в несколько раз (обычно ровно в два раза).

Менять разрешение в консоли уж точно не стоит. Нужно просто сменить шрифт, вот и всё. Сделать это можно командой:

Код: Выделить всё

sudo dpkg-reconfigure console-setup
Как шрифт выбрать, например, Terminus, а размер установить в максимум. Остальные параметры лучше не трогать. После этого, возможно, потребуется перезагрузиться, чтобы увидеть результат.

UPD: прошу прощения, не заметил, что про console-setup говорилось в первом посте.

В таком случае можно последовать инструкциям отсюда. Там можно увидеть, что для не-дефолтных разрешений (список приведён) надо создавать свой EDID-файл. Параметр загрузки nomodeset при этом не должен быть выставлен.

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 08:53
Chocobo
burnside писал(а): Если поставить любое другое разрешение из vbeinfo (например, 1024x768), то после этого графическая оболочка загружается только в безопасном режиме.
Хм, корица опять капризничает :smile: попробую воспроизвести и на ней, может удастся победить. :smile:

Еще вопрос, покажите сюда inxi -G, от задействованного видеоадаптера тоже могут быть разлчия в подходах

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 09:15
burnside
Chocobo писал(а): Еще вопрос, покажите сюда inxi -G, от задействованного видеоадаптера тоже могут быть различия в подходах
Вот вывод команды inxi -G :

Graphics: Card-1: Intel 4th Gen Core Processor Integrated Graphics Controller
Card-2: NVIDIA GM204M [GeForce GTX 970M]
Display Server: X.Org 1.18.3 driver: nvidia
Resolution: 1360x768@59.80hz
GLX Renderer: GeForce GTX 970M/PCIe/SSE2
GLX Version: 4.5.0 NVIDIA 361.42

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 11:48
burnside
nimms, благодарю за наводку. Читаю, пытаюсь разобраться. Пока непонятно как создать EDID файл для моего разрешения 1360x768.

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 12:05
nimms
burnside, насколько я понимаю, надо скачать исходники ядра, перейти там в директорию Documentation/EDID, скопировать одно из имеющихся определений (например, 1024x768.S в 1360x768.S), изменить в нём параметры как нужно, после чего запустить make. Создастся соответствующий бинарник (1360x768.bin), его надо будет скопировать в директорию, указанную по данной мной ссылке, и следовать далее по тексту.

Когда буду дома, попробую провернуть у себя. Раньше никогда этого не делал.

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 15:03
burnside
nimms, создать файл 1360x768.S и 1360x768.bin оказалось очень удобно при помощи утилиты modeline2edid (https://github.com/akatrevorjay/edid-generator):
cvt 1360 768 60 > file
./modeline2edid ./file
make

Двигаюсь дальше...

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 17:03
burnside
nimms писал(а): его надо будет скопировать в директорию, указанную по данной мной ссылке, и следовать далее по тексту.
Здесь не все так просто. В Linux Mint не существует mkinitcpio.conf, который есть в ArchLinux...

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 18:24
nimms
Итак, дело сделано.

Для начала нужно создать скрипт /etc/initramfs-tools/hooks/edid:

Код: Выделить всё

#!/bin/sh
. /usr/share/initramfs-tools/hook-functions
mkdir -p ${DESTDIR}/lib/firmware/edid
cp /lib/firmware/edid/1360x768.bin ${DESTDIR}/lib/firmware/edid
И сделать его исполняемым:

Код: Выделить всё

sudo chmod +x /etc/initramfs-tools/hooks/edid
Затем надо перегенерировать образ initramfs, для этого есть команда:

Код: Выделить всё

sudo update-initramfs -u
После этого прописать параметр загрузки в /etc/default/grub:

Код: Выделить всё

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash drm_kms_helper.edid_firmware=edid/1360x768.bin"
Переконфигурировать GRUB:

Код: Выделить всё

sudo update-grub
И перезагрузиться. Если всё сработает, то те же настройки применятся не только к консоли, но и к Иксам.

Ну и под конец можно убрать параметр загрузки в конфиге GRUB, чтобы не мешался (туда прописывали для теста), и передавать параметр модулю напрямую, прописав в /etc/modprobe.d/drm-kms-helper.conf:

Код: Выделить всё

options drm_kms_helper edid_firmware=edid/1360x768.bin

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 21:26
burnside
nimms, работает!!!! :thumbs: Огромное Вам спасибо! :bravo:

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 22:34
burnside
nimms, одна проблема разрешилась, но появилась другая. Теперь текст в консоли выходит за границы экрана. К примеру, если запустить mc, то будет видна только левая панель. :sad:

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 22:44
Chocobo
тут думаю может помочьfbset

Попробуй дать там по месту sudo fbset -g 1360 768 1360 768 32

Если прокатит - можно вкрутить в ~/.bashrc c условием что это tty, а не эмулятор терминала

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 23:05
burnside
Chocobo писал(а): Если прокатит - можно вкрутить в ~/.bashrc условием что это tty, а не эмулятор терминала
Chocobo, большое спасибо! :thumbs: Теперь все норме. А в ~/.bashrc что нужно прописать?

Re: проблема с разрешением консоли

Добавлено: 23 сен 2016, 23:26
Chocobo
в ~/.bashrc можно добавить следующие строки

Код: Выделить всё

case $(tty) in /dev/tty[0-9]*)
   sudo fbset -g 1360 768 1360 768 32 ;;
esac
Но он начнет дважды запршивать пароль при входе в tty, т.к. у нас тут sudo :smile:

От этого запроса отучаем так:

Код: Выделить всё

sudo visudo
В конец дописываем

Код: Выделить всё

username ALL = NOPASSWD: /bin/fbset
username разумеется свой :smile:

Теперь при каждом входе в командную строку, будет проверка не tty ли это случаем, и если он - выполнять необходимый fbset

Re: проблема с разрешением консоли

Добавлено: 24 сен 2016, 11:19
nimms
Чтобы система не выполняла лишнюю работу, а также для того, чтобы видеть логи (или лого) при загрузке, можно эту команду не в ~/.bashrc прописать, а оформить как скрипт для initramfs, прописав в /etc/initramfs-tools/scripts/init-premount/fbset:

Код: Выделить всё

#!/bin/sh
fbset -a -g 1360 768 1360 768 32
Прошу обратить внимание на ключ -a, который применяет указанные настройки ко всем TTY, присвоенным framebuffer-устройству, а не только к текущему.

После этого, опять же, надо сделать скрипт исполняемым и перегенерировать образ:

Код: Выделить всё

sudo chmod +x /etc/initramfs-tools/scripts/init-premount/fbset
sudo update-initramfs -u
Пока так. Может, когда-нибудь получится найти другой, более "красивый" способ избавиться от этой проблемы.

проблема с разрешением консоли

Добавлено: 30 янв 2017, 19:50
LeTruk
Столько команд... Что вводить то?

Попасть в консоль?

Добавлено: 30 янв 2017, 19:53
LeTruk
проблема с разрешением консоли Какую команду вводить?

Попасть в консоль?

Добавлено: 30 янв 2017, 21:16
Chocobo