Полноценно повернуть экран Linux

Прошло пару месяцев, и снова появилось необходимость вкорячить Linux в очередную модель ноутбука. Дано: особо китайский нетбук под торговой маркой Digma, купленный за 7 тысяч в одном и без меня известном магазине. Новым, как ни странно.

К моему удивлению UEFI на данном устройстве полноценный, 64-х битный, если кто-то уже сталкивался с подобными устройствами, понимает, почему я удивлён. Обычно их производители не предполагают запуска чего-то кроме Win8 32bit и Android, и потому ставят 32-х битный EFI, не способный запустить загрузчик 64-х битных ОС.

Само собой, моему знакомому (попавшему под действие моей красноглазой пропаганды) хотелось видеть на нём что-нибудь с KDE, а не богомерзкую Win10, и казалось бы – бери флэшку и ставь, но было бы всё так просто в этой жизни…

Короче, этот недобук считает себя планшетом. В UEFI есть настройка поворота экрана, и по умолчанию она стоит как повернуть влево. Но на ОС она не распространяется, Windows скорее всего повёрнут силами драйвера. В общем, постановка задачи — исправить ориентацию экрана в Linux настолько, насколько это вообще возможно.

Выбор ОС, установка

Выбран был тестовый Debian (bookworm), и установлен почти без приключений, не считая необходимость повернуть голову на 90 градусов. Полагаю этот гайд подойдёт для любого относительно современного дистрибутива.

Первым же делом после установки ОС идём в настройки экрана и поворачиваем его в нормальный вид, благо большинство DE имеют такую настройку. Теперь можно будет по-человечески работать с терминалом.

Поворачиваем виртуальную консоль

Идём в /etc/default/grub и добавляем в параметры ядра fbcon=rotate:3. Последняя цифра определяет, какой поворот экрана нам нужен, возможно вам понадобится другое значение (от 1 до 3 включительно). Теперь виртуальные консоли (а значит и лог запуска) будут повёрнуты правильно.

А что с самим GRUB? Меню загрузки повернуть скорее всего не получится, потому разумнее всего сделать так, чтобы мы его просто лишний раз не видели. Так что приводим указанный выше файл к примерно такому виду:

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE="hidden"
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet fbcon=rotate:3"

Не забываем после любых правок этого файла сделать sudo update-grub, иначе не взлетит.

Экран входа

Рабочий стол в порядке, логи загрузки в порядке, с GRUB-ом смирились, но вот пользователя выбираем по-прежнему вертикально. Поправить это можно, просто повернув Xorg целиком.

Для начала выясним идентификатор встроенного в ноутбук монитора. Для этого выполним команду xrandr и посмотрим, как наш монитор определился.

$ xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 16384 x 16384  
DSI-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 256mm x 144mm  
  1366x768      60.00*+  48.00     
...

Видим, что наш монитор определён как DSI-1.

Примечание: если ваш монитор идентифицируется как XWayland, значит вы вошли в графическом режиме Wayland. Выйдите из системы и войдите снова, выбрав графический сеанс на базе X11 (Xorg)

Запомнив это, создаём файл /etc/X11/xorg.conf.d/10-rotate.conf с следующим содержимым:

Section "Monitor"
    Identifier "DSI-1"
    Option "Rotate" "left"
EndSection

Собственно left — направление относительно текущего, в которое нужно повернуть монитор. Сохраняем, крестимся и идём в ребут. Если ваша удача больше нуля — экран входа будет повёрнут нормально.

На этом всё.

Ссылки

Этот пост — обобщение следующей информации:

thumb_up 4 thumb_down 0 chat Комментарии (0) favorite Донат