Skip to content

Поворот экрана в режиме кадрового буфера

meefik edited this page Sep 5, 2014 · 1 revision

Ниже приводится решение для правильного поворота экрана в режиме фрейм-буфера. Т.е. чтобы была повернута картинка на 90 градусов (ландшафтная ориентация) и драйвер сенсорного экрана обрабатывал это поворот корректно. Решение опробовано на Samsung Galaxy S2 (i9100), тачскрин MXT224 (узнать модель тачскрина можно командой: cat /sys/devices/virtual/sec/sec_touchscreen/tsp_touchtype), Ubuntu 13.04 Raring Ringtail и Debian 7.0/wheezy.

Что работает:

  • позиционирование курсора к месту нажатия;
  • обработка удерживания (эмуляция удерживания левой кнопки мыши);
  • обработка двойного нажатия одним пальцем (эмуляция левой кнопки мыши);
  • обработка нажатия двумя пальцами (эмуляция правой кнопки мыши);
  • поворот координат сенсорного экрана.

Для этого нужно выполнить следующие шаги.

  1. Установить дистрибутив через Linux Deploy (Debian или Ubuntu) и подключиться к консоли под пользователем root (например, по SSH).

  2. Доставить необходимые пакеты:

    apt-get install build-essential wget unzip xorg-dev libmtdev-dev

  3. Загрузить исходный код модифицированного драйвера mtev для Xorg:

    wget https://github.com/meefik/xorg-input-mtev/archive/master.zip --no-check-certificate unzip master.zip

  4. Запустить сборку драйвера:

    cd ./xorg-input-mtev-master/ make

  5. Скопировать драйвер в каталог модулей Xorg:

    cp obj/mtev.so /usr/lib/xorg/modules/input/mtev_drv.so

  6. Отредактировать файл /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

  7. Запустить GNU/Linux через Linux Deploy в режиме фрейм-буфера (Параметры -> Frame Buffer). Для набора текста можно использовать виртуальную клавиатуру florence.

http://your_computer:3142/XXXX where XXXX is one of armdebian, armubuntu, or armkali

Clone this wiki locally