-
Notifications
You must be signed in to change notification settings - Fork 689
Поворот экрана в режиме кадрового буфера
Ниже приводится решение для правильного поворота экрана в режиме фрейм-буфера. Т.е. чтобы была повернута картинка на 90 градусов (ландшафтная ориентация) и драйвер сенсорного экрана обрабатывал это поворот корректно. Решение опробовано на Samsung Galaxy S2 (i9100), тачскрин MXT224 (узнать модель тачскрина можно командой: cat /sys/devices/virtual/sec/sec_touchscreen/tsp_touchtype), Ubuntu 13.04 Raring Ringtail и Debian 7.0/wheezy.
Что работает:
- позиционирование курсора к месту нажатия;
- обработка удерживания (эмуляция удерживания левой кнопки мыши);
- обработка двойного нажатия одним пальцем (эмуляция левой кнопки мыши);
- обработка нажатия двумя пальцами (эмуляция правой кнопки мыши);
- поворот координат сенсорного экрана.
Для этого нужно выполнить следующие шаги.
-
Установить дистрибутив через Linux Deploy (Debian или Ubuntu) и подключиться к консоли под пользователем root (например, по SSH).
-
Доставить необходимые пакеты:
apt-get install build-essential wget unzip xorg-dev libmtdev-dev
-
Загрузить исходный код модифицированного драйвера mtev для Xorg:
wget https://github.com/meefik/xorg-input-mtev/archive/master.zip --no-check-certificate unzip master.zip
-
Запустить сборку драйвера:
cd ./xorg-input-mtev-master/ make
-
Скопировать драйвер в каталог модулей Xorg:
cp obj/mtev.so /usr/lib/xorg/modules/input/mtev_drv.so
-
Отредактировать файл /etc/X11/xorg.conf:
Section "ServerLayout" Identifier "Layout0" Screen "Screen0" InputDevice "touchscreen" "CorePointer" EndSection
Section "InputDevice" Identifier "touchscreen" Option "Device" "/dev/input/event2" #linuxdeploy Driver "mtev" Option "Rotation" "1" EndSection
Section "Device" Identifier "Card0" Driver "fbdev" Option "fbdev" "/dev/graphics/fb0" #linuxdeploy Option "Rotate" "CW" EndSection
Section "Screen" Identifier "Screen0" Device "Card0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
-
Запустить GNU/Linux через Linux Deploy в режиме фрейм-буфера (Параметры -> Frame Buffer). Для набора текста можно использовать виртуальную клавиатуру florence.