Настраиваем планшет Genius WizardPen

Ну что ж.
Имеем: Дебиан, планшет Genius WizardPen А5 (у вас, возможно, другой формат).
Нужно: чтоб эта зараза заработала.

Устанавливаем драйвер

1) Для начала качаем последнюю альфу драйвера отсюда или стабильную версию отсюда (линки рабочие на 26.04.2009).

2) Распаковываем скачанный архив:

$ tar -zxvf wizardpen-[скачанная вами версия]

3) Ставим необходимые пакеты:

$ sudo aptitude install xutils libx11-dev libxext-dev build-essential xautomation xinput xserver-xorg-dev

4) Заходим в созданную при распаковке директорию:

$ cd wizardpen-[скачанная вами версия]

5) Конфигурим и ставим драйвер:

$ ./configure --with-xorg-module-dir=/usr/lib/xorg/modules && make && sudo make install

6) Проверяем, что драйвер корректно поставился (наличие файлов wizardpen_drv.la и wizardpen_drv.so):

$ ls /usr/lib/xorg/modules/input/wizardpen_drv.*

Для Xorg7.3 рекомендуется создавать файл конфигурации устройства. Этот шаг иногда не только рекомендован, но и жизненно важен, когда конфигурация внесенная в xorg.conf не работает. Попробуем рассмотреть оба варианта.

Сначала — новый вариант.

1) Присоединяем планшет (если уже этого не сделали).

2) Узнаем его имя:

$ grep -i name /proc/bus/input/devices

2.1) Можно проверить, корректно ли нашел его HAL:

$ lshal | grep ["имя с предыдущего вывода"]

3) Создаем новый файл с именем /etc/hal/fdi/policy/99-x11-wizardpen.fdi

$ nano /etc/hal/fdi/policy/99-x11-wizardpen.fdi

4) В него вносим следующее:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<deviceinfo version="0.2">
<device>
<!-- This MUST match with the name of your tablet -->
<match key="info.product" contains="NAME OF YOUR TABLE OBTAINED FROM PREVIOUS STEP">
<merge key="input.x11_driver" type="string">wizardpen</merge>
<merge key="input.x11_options.SendCoreEvents" type="string">true</merge>
<merge key="input.x11_options.TopX" type="string">5619</merge>
<merge key="input.x11_options.TopY" type="string">6554</merge>
<merge key="input.x11_options.BottomX" type="string">29405</merge>
<merge key="input.x11_options.BottomY" type="string">29671</merge>
<merge key="input.x11_options.MaxX" type="string">29405</merge>
<merge key="input.x11_options.MaxY" type="string">29671</merge>
</match>
</device>
</deviceinfo>

Прошу отметить, что значения в этом файле не обязательно корректны для вашего устройства. Потом мы его откалибруем.

5) Перезагружаемся.

Если после перезагрузки курсор сходит с ума или не стартуют иксы, вы наверное где-то накосячили… Вперед — дебагить!

Калибруем

1) Выполняем

$ lshal | less

2) И ищем в довольно таки обширном выводе команды имя найденного ранее нами устройства. Строчка должна содержать info.product = ‘[имя планшета]’

3) Ищем чуть ниже строчку linux.device_file = ‘/dev/input/eventN’ (где N — какой-то номер)

4) Пакет исходников, который мы скачали пораньше, содержит программку калибровки, запускаем ее с консоли (если мы не в папке скачанного и распакованного драйвера — сначала заходим в нее):

$ calibrate/wizardpen-calibrate /dev/input/eventN

N берем с найденной выше строчки.

Если что-то не так, возможно программа не скомпилирована, тогда сначала заходим с папку с ней и командуем make.

5) Следуйте инструкциям в программе. Когда программа завершит работу, она выведет на экран необходимые настройки. Редактируем созданный выше файл конфигурации в соответствие с полученными значениями.

6) Нужно перегрузиться (а ходят слухи, что и просто переткнуть планшету в порт).

Должно работать (=

Старый вариант

Этот вариант гораздо долее долгий и муторный, но чего только для людей не сделаешь (=

1) Присоединяем планшет (если не уже)

2) Ищем название девайса:

$ cat /sys/bus/usb/devices/*/product

Вывод будет чем-то типа этого:
Tablet WP5540U
UHCI Host Controller
UHCI Host Controller
UHCI Host Controller
EHCI Host Controller

3) Добавляем правило udev. Прошу заметить, что SYSFS{product} содержит полученное выше имя планшета!

$ sudo bash
# echo 'BUS=="usb", KERNEL=="event*", SYSFS{product}=="Tablet WP8060U", NAME="input/%k", SYMLINK+="tablet-event", MODE="0666"' >> /etc/udev/rules.d/010_local.rules
# exit

4) Рестартуем udev:

$ sudo /etc/init.d/udev restart

5) Проверяем созданную ссылку:

$ ls -la /dev/tablet-event

Если получаем строчку — наше счастье, ссылка удачно создана.

Калибруем «по-старинке»

1) Компилируем программу калибровки (если не уже)

$ cd calibrate && make

2) Собственно, калибруем:

$ sudo ./wizardpen-calibrate /dev/tablet-event

3) Сохраняем вывод, он нам еще пригодится.

4) Бекапим /etc/X11/xorg.conf

5) Открываем его:

$ sudo nano /etc/X11/xorg.conf

6) Добавляем в секцию «ServerLayout» строчку

InputDevice "WizardPen Tablet" "AlwaysCore"

7) Проверяем xorg.conf на наличие раздела с настройками калибровки планшета. Если его нет — добавляем (там, где настройки мыши, отдельным блоком), заменив на значения, полученные при калибровке.

Section "InputDevice"
Identifier "WizardPen Tablet"
Option "SendCoreEvents" "true"
Driver "wizardpen"
Option "Device" "/dev/tablet-event"
Option "TopX" "0"
Option "TopY" "234"
Option "BottomX" "32747"
Option "BottomY" "32762"
Option "MaxX" "32747"
Option "MaxY" "32762"
EndSection

Стартуем иксы без планшета

Если драйвер старый, он не поддерживает горячее подключение. Нам нужно отключать его, ели планшета не подключена.

Открываем /etc/rc.local

$ sudo nano /etc/rc.local

и прямо перед exit 0 добавляем туда следующее:

XORG_CONF=/etc/X11/xorg.conf
if [ -e /dev/tablet-event ]; then
sed -ie 's/^\(\s*\)\#\(\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\1\2/' "$XORG_CONF"
echo "Udev created /dev/tablet-event = Tablet present! - Tablet-driver enabled"
else
sed -ie 's/\(^\s*InputDevice\s\s*\"WizardPen\ Tablet\"\s\s*\"AlwaysCore\"\)\s*$/\#&/' "$XORG_CONF"
echo "Udev did NOT create /dev/tablet-event = tablet NOT present! - Tablet-driver disabled"
fi

Сохраняем файл и выходим.

Проверяем как udev ловит подключение планшета (запускаем следующую команду с/без планшета):

$ sudo /etc/init.d/rc.local start

Любуемся результатами.

Настраиваем кнопки планшета

Узнаем имя настраиваемого девайса:

$ xsetpointer -l

Командуем (где «WizardPen Tablet» — результат предыдущей команды):

$ xinput set-button-map "WizardPen Tablet" 1 3 2

Если что-то не так, меняем местами кнопки или вобще оставляем только перо:

$ xinput set-button-map "WizardPen Tablet" 1 0 0

Удачи в использовании!

No comments yet.

Добавить комментарий