Вопрос или проблема
Я только что установил Debian 10 на свой GPD Pocket 2, и он работает отлично, кроме того, что экран не поворачивается постоянно при входе в систему.
В настоящее время я могу повернуть экран, выбрав “GNOME on xorg” из меню шестеренки при входе в систему, а затем запустив xrandr --screen 0 -o right
, но это быстро станет утомительным.
Я попробовал несколько решений для xorg, но не добился успеха. Я создал следующий скрипт на основе https://github.com/joshskidmore/gpd-pocket-2-arch-guide#install-xorg-packages и https://unix.stackexchange.com/questions/103460/how-to-change-gnome-default-screen-rotation:
Section "Monitor"
Identifier "eDP1"
Option "Rotate" "right"
EndSection
И я установил это в следующих местах:
- /etc/X11/xorg.conf (редактирование текущего раздела “monitor”)
- /etc/X11/xorg.conf.d/ (я создал этот каталог, затем создал “30-display.conf” с указанными выше настройками)
- /usr/share/X11/xorg.conf.d (просто добавил файл “30-display.conf”)
И все это приводит к мерцанию при входе. Я вижу черный всплеск (похожий на тот, когда я выполняю xrandr
после входа), затем квадрат, заполненный статическим серым цветом, примерно на 1 секунду дважды, затем загружается экран в “нормальной” / боковой ориентации.
Даже когда я добавляю xrandr --screen 0 -o right
в ~/.profile, наблюдается тот же эффект. Это работает, когда я помещаю его в ~/.bashrc, но это происходит после входа в систему, и опять же, я хотел бы автоматизировать эту конфигурацию.
У меня есть чувство, что Debian пытается применить конфигурацию, но что-то конфликтует. Как мне действовать в этом направлении?
ИЗМЕНЕНИЕ: Некоторая новая информация
Я определил свой менеджер экрана согласно https://unix.stackexchange.com/a/20376/293647, и это:
/usr/sbin/gdm3
После того как я прочитал следующую ссылку, я узнал об GDM:
https://wiki.archlinux.org/index.php/GDM#Rotate_login_screen
Изменения вступают в силу при выходе из системы. Это необходимо, потому что GDM не уважает xorg.conf.
Наверное, поэтому я не могу добиться поворота с помощью xorg. Так что делать дальше?
ИЗМЕНЕНИЕ 2:
GNOME все еще не ориентирован, но этот код из вышеприведенной ссылки ориентирует grub!
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="fbcon=rotate:1 quiet"
sudo update-grub # многие руководства пропускают этот шаг
Я нашел довольно кривое решение, но оно требует свежей установки Debian. Позвольте объяснить.
В попытке исправить экран я обновил свой драйвер видеокарты Intel.
https://gitlab.freedesktop.org/xorg/driver/xf86-video-intel
Чего я не ожидал, так это того, что этот драйвер заблокирует GNOME и не позволит мне вносить изменения через настройки
-> экран
-> ориентация
, и именно поэтому я искал основанное на коде решение. Как я упомянул в редактировании выше, у системы GPD Pocket 2 с Debian 10 и GNOME по умолчанию используется GDM
в качестве менеджера экрана, поэтому любое основанное на xorg решение потерпит неудачу.
Таким образом, первый шаг к решению этой проблемы заключался в переустановке Debian. Это было возможно для меня, потому что я только начинал настраивать свой Pocket 2, но я также осознаю, что это неприемлемо для всех аналогичных ситуаций. В этой связи я не собираюсь принимать свой ответ и буду ждать более подробного объяснения и решения для постоянного исправления экрана. Но пока, возможно, стоит рассмотреть следующую кривую процедуру.
1) Предполагая, что у вас свежая установка, давайте сначала исправим grub. В терминале:
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="fbcon=rotate:1 quiet"
sudo update-grub # многие руководства пропускают этот шаг
Это будет ориентировать вывод системы при загрузке и ваши консоли grub (например, через function
+alt
+2
) но это не исправляет экран входа. Это остается одной из частей этой головоломки, для которой у меня нет решения, но идем дальше.
2) Далее давайте соберем наш кривой автоматический поворот экрана.
Сначала перейдите в настройки
-> экран
-> ориентация
и выберите ориентацию портрет слева
и разрешение 1200x1920
.
Если вы дошли до этого момента и можете жить с прищуром, полагаю, вы закончили. Ваша рабочая среда должна загрузиться с этими настройками.
3) Если вы хотите автоматически загрузить улучшенную ориентацию, вот что я сделал.
Затем перейдите в Настройки
-> Автозагрузка приложений
и выберите Терминал.
Наконец, в вашем файле ~/.bashrc введите следующий код где угодно:
res=$(xrandr | grep \* | cut -d' ' -f4)
if [ "$res" != "600x960_60.00" ]; then
xrandr --newmode "600x960_60.00" 47.25 600 640 696 792 960 963 973 996 -hsync +vsync
# предыдущая строка была взята из: https://superuser.com/a/716837/1078490
# вам, возможно, придется настроить строку в соответствии с вашими выводами cvt
xrandr --addmode eDP-1 "600x960_60.00"
xrandr --output eDP-1 --mode "600x960_60.00"
fi
Теперь, когда вы войдете в систему, терминал запустится, а .bashrc автоматически выполнит настройки разрешения. Это не идеально, так как открытие/закрытие крышки не вызовет этот скрипт, и вам придется снова открыть терминал. Но он сохранит разрешение во время циклов сон/пробуждение, если вы удержите кнопку питания примерно 3 секунды перед закрытием крышки.
Ответ или решение
Настройка поворота экрана в Debian и GNOME
После установки Debian 10 на ваш GPD Pocket 2 вы столкнулись с проблемой автоматической ориентации экрана при входе в систему. Давайте разберёмся, как можно устранить эту проблему.
Шаг 1: Изменение параметров GRUB
Первое, что вам нужно сделать, — это настроить параметры загрузчика GRUB, чтобы отразить нужную ориентацию. Для этого откройте терминал и выполните следующие команды:
-
Откройте конфигурационный файл GRUB:
sudo vim /etc/default/grub
-
Найдите строку с
GRUB_CMDLINE_LINUX_DEFAULT
и измените её на:GRUB_CMDLINE_LINUX_DEFAULT="fbcon=rotate:1 quiet"
-
Сохраните изменения и выполните обновление конфигурации GRUB:
sudo update-grub
Это изменение будет поворачивать вывод на консоль GRUB, однако оно не повлияет на экран входа в систему.
Шаг 2: Установка xrandr на автоматический запуск
Теперь, чтобы поворот экрана применялся автоматически при входе в систему, вам нужно использовать xrandr.
- Откройте GNOME «Настройки» и перейдите в раздел «Экран».
- Установите ориентацию экрана на «Портретная левая» и разрешение на «1200×1920».
Шаг 3: Автоматическое применение xrandr через систему автозагрузки
Поскольку GNOME использует GDM в качестве дисплейного менеджера, он не будет учитывать изменения xorg.conf. Таким образом, вам нужно создать запуск скрипта с помощью xrandr:
-
Создайте новый файл в автозагрузке:
- Откройте меню «Настройки», затем «Программы автозагрузки», и добавьте новое приложение.
- В поле команд укажите:
gnome-terminal -e "bash -c 'xrandr --output eDP-1 --rotate right; exec bash'"
-
Или вы можете отредактировать ваш
~/.bashrc
, добавив следующий код:res=$(xrandr | grep * | cut -d' ' -f4) if [ "$res" != "600x960_60.00" ]; then xrandr --newmode "600x960_60.00" 47.25 600 640 696 792 960 963 973 996 -hsync +vsync xrandr --addmode eDP-1 "600x960_60.00" xrandr --output eDP-1 --mode "600x960_60.00" fi
Шаг 4: Проверка и устранение конфликтов драйвера
Если у вас возникают проблемы при применении изменений, возможно, причина в используемых драйверах видеокарты. Попробуйте установить последние версии драйверов Intel, чтобы избежать конфликтов:
sudo apt update
sudo apt install xserver-xorg-video-intel
Заключение
Эти шаги должны помочь вам настроить автоматический поворот экрана на вашем GPD Pocket 2 с Debian 10 и GNOME. Если ваши попытки все еще не увенчались успехом, вам стоит проверить наличие конфликтующих настроек или сообщений об ошибках в системе, а также обратиться на специализированные форумы для получения дополнительных советов.