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

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.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.