Rotate console on startup (Debian)
I want to rotate my console (not X Server) by 90 degrees (clockwise). The following seems to work for me: echo 1 > /sys/class/graphics/fbcon/rotate ; however, I’d prefer to use a kernel option in Grub, rather than including the above in the /etc/rc.local script. The fbcon documentation outlines the following option that can be passed to the kernel: fbcon=rotate: . Unfortunately, when I modify /etc/default/grub and modify the GRUB_CMDLINE_LINUX line like this:
GRUB_CMDLINE_LINUX="fbcon=rotate_all:1"
GRUB_CMDLINE_LINUX="fbconsole=rotate_all:1"
@EmanuelBerg If you edit rc.local it will only run after the system has finished booting, which means if anything goes wrong and you land in single-user/recovery mode, the screen won’t be rotated. By putting it on the command line, the screen will be rotated correctly relatively early in the boot process.
4 Answers 4
Figured this out. You may need to add video=efifb to ensure that the framebuffer console is used:
GRUB_CMDLINE_LINUX="video=efifb fbcon=rotate:1"
EDIT: The efifb driver is designed for EFI firmware only, especially Intel-based Apple computers. However, as I’ve found out, it also works for non-Apple PCs. I am running the proprietary nVidia drivers on my Linux system, and the efifb driver works quite well. I assume it works for me because I am using nVidia drivers, and the «native» fbdev driver conflicts with them.
To be honest, I don’t fully understand why the efifb driver makes things work, but if someone else does (or if you can get things working with another framebuffer driver with nVidia drivers installed), please comment below. Thanks!
Полноценно повернуть экран 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 — направление относительно текущего, в которое нужно повернуть монитор. Сохраняем, крестимся и идём в ребут. Если ваша удача больше нуля — экран входа будет повёрнут нормально.
Ссылки
Этот пост — обобщение следующей информации:
by melianmiko, 2023 | Работаем на TimeWeb Cloud
How to rotate screen in Ubuntu using terminal?
Recently I booted Ubuntu 18.04 Live USB and I faced annoying problem. Screen was rotated and there was no rotate options in settings . I had to search not so obvious places in Internet, so I share this Q&A.
2 Answers 2
You should use xrandr command. xrandr -o normal takes your screen back to normal (landscape) rotation.
Ubuntu 22:
instead of xrandr -o normal you should use xrandr -orientation normal
@danjah Unfortunately I didn’t try to persist it. It’s probably not the best solution, but you can try to add new line with xrandr -o normal to you .bashrc or .bash_profile file
a partly solution to rotate via keyboard shortcut is found here: unix.stackexchange.com/a/465395/20661
Great answer. How do you do this with a dual monitor setup, where one should be flipped to normal mode and the other should be flipped left?
You can use these commands:
xrandr --output $(xrandr |grep eDP|cut -d" " -f1) --rotate left xrandr --output $(xrandr |grep eDP|cut -d" " -f1) --rotate normal
with that script, you can simply call
rotatescreen.sh -r rotatescreen.sh -l rotatescreen.sh -i rotatescreen.sh -n
Alternative, you can use CTRL+F8 to rotate using
gsettings set org.gnome.mutter.keybindings rotate-monitor "['XF86RotateWindows', 'F8']"
Сайт Кушеева Сергея
Как настроить поворот экрана и тачскрина в Linux.
12 сентября, 2012 | Автор: immortal
После установки Linux Ubuntu (сборка kubuntu) на HP Pavilion tx2500 не работал поворот экрана. А так хотелось крутить — вертеть. Возвращаться обратно на Windows не было желания, поэтому берем бубен Вернее поворот экрана возможен через настройки дисплея, возможно даже вывести на некоторые кнопки поворот экрана с помощью xrandr xrandr -o rigjt // поворот экрана вправо xrandr -o left // поворот экрана влево xrandr -o normal // обычный режим xrandr -o inverted // переворот экрана теперь в принципе можно задать эти команды на горячие клавиши, Настройки — Диспетчер настроек — Клавиатура — Комбинации клавиш я не разобрался как включить кнопку поворота экрана на панели дисплея, возможно только использовать медиакнопки. Он вертится! Всё хорошо до тех пор как только мы прикасаемся к тачскрину, курсор не перевернулся вместе с экраном, и чтобы попасть в верхнюю левую часть экрана надо нажать в нижнюю правую. Исправить положение можно повернув не только экран но и тачскрин. Сначала определим, как называется наш тачскрин, для этого в консоли выполним команду xinput # xinput ⎡ Virtual core pointer [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer [slave pointer (2)] ⎜ ↳ 2.4G Receiver [slave pointer (2)] ⎜ ↳ 2.4G Receiver [slave pointer (2)] ⎜ ↳ Wacom ISDv4 93 Pen stylus color=»#ff0000″>14 [slave pointer (2)] ⎜ ↳ Wacom ISDv4 93 Finger touch color=»#ff0000″>15 [slave pointer (2)] ⎜ ↳ SynPS/2 Synaptics TouchPad [slave pointer (2)] ⎜ ↳ MCE IR Keyboard/Mouse (ene_ir) [slave pointer (2)] ⎜ ↳ Wacom ISDv4 93 Pen eraser > 21 [slave pointer (2)] ⎣ Virtual core keyboard [master keyboard (2)] ↳ Virtual core XTEST keyboard [slave keyboard (3)] ↳ Power Button [slave keyboard (3)] ↳ Video Bus [slave keyboard (3)] ↳ Power Button [slave keyboard (3)] ↳ Sleep Button [slave keyboard (3)] ↳ 2.4G Receiver [slave keyboard (3)] ↳ HP Webcam [slave keyboard (3)] ↳ AT Translated Set 2 keyboard [slave keyboard (3)] ↳ HP WMI hotkeys [slave keyboard (3)] ↳ ENE eHome Infrared Remote Receiver [slave keyboard (3)] У нас 3 устройства: стилус, палец и ластик, к этим устройствам можно обращаться как по имени так и по ID, однако ID устройства может меняться при подключении USB устройств. Далее нам надо выяснить какие параметры можно поменять у данных устрйств, для этого выполним в консоли команду xinput watch-props 14 где 14- ID устройства. # xinput watch-props 14 Device ‘Wacom ISDv4 93 Pen stylus’: Device Enabled (148): 1 Coordinate Transformation Matrix (150): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (274): 0 Device Accel Constant Deceleration (275): 1.000000 Device Accel Adaptive Deceleration (276): 1.000000 Device Accel Velocity Scaling (277): 10.000000 Device Node (268): «/dev/input/event10» Wacom Tablet Area (304): 0, 0, 26312, 16520 Wacom Rotation (305): 0 Wacom Pressurecurve (306): 0, 0, 100, 100 Wacom Serial IDs (307): 147, 1, 0, 0, 0 Wacom Serial ID binding (308): 0 Wacom Pressure Threshold (309): 27 Wacom Sample and Suppress (310): 2, 4 Wacom Enable Touch (311): 0 Wacom Hover Click (312): 0 Wacom Enable Touch Gesture (313): 0 Wacom Touch Gesture Parameters (314): 0, 0, 250 Wacom Tool Type (315): «STYLUS» (297) Wacom Button Actions (316): «None» (0), «None» (0), «None» (0), «None» (0), «None» (0), «None» (0), «None» (0) Device Product ID (267): 1386, 147 Wacom Debug Levels (317): 0, 0 Evdev Axis Calibration (279): 188, 26308, 34, 16444 нас интересуют параметры выделенные зеленым, возможно некоторые параметры у других производителей тачей другие, например у тачскрина, который определился как Touchkit HID-USB Touchscreen есть параметр: Evdev Axis Inversion 0,0 Который аналогичен нашему Coordinate Transformation Matrix, значения этого параметра инверсия осей X и Y теперь осталось сделать скрипт изменения этих значений, создаем файл и туда пишем обычный режим экрана
#!/bin/sh xrandr -o normal xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 поворот вправо #!/bin/sh xrandr -o right xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Coordinate Transformation Matrix» 1 0 0 0 1 0 0 0 1 поворот влево #!/bin/sh xrandr -o left xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Wacom Rotation» 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 переворот #!/bin/sh xrandr -o inverted xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Pen stylus» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Finger touch» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Wacom Rotation» 0 xinput —set-prop «Wacom ISDv4 93 Pen eraser» «Coordinate Transformation Matrix» -1 0 1 0 -1 1 0 0 1 делаем 4 файла, ставим права на исполнение и назначаем клавиши для их исполнения. В принципе можно всё сделать на одну кнопку и вращать экран сменяя положения по кругу, но мне лениво было писать скрипт. Публикация данной статьи была сделана из офисного пакета OpenOffice.org по инструкции: http://кушеев.рф/archives/7