Как и обещал, опишу настройку графического планшета Genius G-Pen 560 в (K)ubuntu 7.10.
При подключении к компьютеру G-Pen 560 определяется как обычная мышь, т.е работает в режиме relative и силу нажатия на перо не отрабатывает. Нам нужно сделать все наоборот - вогнать планшет в абсолютный режим и отрабатывать силу нажатия.
Данный планшет поддерживается драйвером WizardPen, его можно собрать из исходников, а можно (нужно) взять готовый:
wget
http://www.dallerweb.dk/ubuntu/wp/i386/wizardpen_drv.soи поместить его в нужную директорию:
sudo cp wizardpen_drv.so /usr/lib/xorg/modules/input/
Теперь узнаем под каким именем планшет известен системе:
cat /sys/bus/usb/devices/*/product
В выводе этой команды ищем название планшета. У меня он определился как G-Pen.
Далее подсистеме udev объясняем что у нас есть еще одно usb устройство и его нужно определять как /dev/tablet-event. Для этого создаем в /etc/udev/rules.d новый файл 010-local.rules, или, если он уже существует, добавляет в него строку для нашего планшета:
BUS=="usb", KERNEL=="event*", SYSFS{product}=="G-Pen", NAME="input/%k", SYMLINK+="tablet-event", MODE="0666"
Перезапускаем udev:
sudo /etc/int.d/udev restart
В директории /dev/ появится ссылка tablet-event.
Настало время править конфиг xorg.conf.
Добавляем секцию, определяющую графический планшет и его параметры:
Section "InputDevice"
Identifier "WizardPen Tablet"
Option "SendCoreEvents" "relative"
Driver "wizardpen"
Option "Mode" "Absolute"
Option "Device" "/dev/tablet-event"
Option "TopX" "66"
Option "TopY" "196"
Option "TopZ" "128"
Option "BottomX" "12000"
Option "BottomY" "9000"
#Option "BottomZ" "300"
Option "MaxX" "12000"
Option "MaxY" "9000"
Option "MaxZ" "1023"
EndSection
И добавляем ссылку на планшет в секцию ServerLayout:
Section "ServerLayout"
Identifier "Default Layout"
InputDevice "Generic Keyboard"
InputDevice "Configured Mouse"
InputDevice "WizardPen Tablet" "AlwaysCore"
...
В Х-сах мышь висит на эвенте /dev/input/mice, который принимает запросы от всех указательных устройств. Чтобы мышь нормально работала при подключенном планшете, ее нужно повесить на собственный эвент. У меня это /dev/input/mouse1
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
# Option "Device" "/dev/input/mice"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "ImPS/2"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection
Перегружаем X-сы. Предупреждаю, что планшет должен быть подключен, иначе Х-сы не стартуют. Где-то видел для этого хак - нужно внести еще такую секцию в xorg.conf:
Section "ServerFlags"
Option "AllowMouseOpenFail" "on"
EndSection
После всех этих плясок с бубном система узнает наш планшет... но сила нажатия так и не работает... Тут есть два пути. Первый - загрузиться в Windowsх (с установленными драйверами), чтобы планшет инициализировался. После этого, не отключая планшет, перегрузиться в linux. G-Pen заработает как и ему положено, с отработкой силы нажатия.
Второй путь - скачать и собрать утилитку init-gpen, которая зашлет нужные байты в планшет. Порядок действий такой:
1. sudo rmmod usbhid
2. ./init-gpen
3. sudo modprobe usbhid
4. Restart Xorg
Правда на 4-м пункте у меня иногда Х-сы не перегружаются. Я просто ребутаю всю систему. Главное не отключать планшет, иначе придется выполнять 1-4 пункты заново.
Для настройки кнопок пера нужно выполнить команду:
xinput set-button-map "WizardPen Tablet" 1 3 2
или, при возникновении проблем
xinput set-button-map "WizardPen Tablet" 1 0 0
Все. Планшет полностью готов к работе.
Сила нажатия пера работает в Gimp и inkscape. В Gimp заходим в Файл->Настройка->Устройства ввода->Конфигурирование устройств ввода, добавляем WizardPen Tablet, Режим - Экран.
Радуемся жизни, она прекрасна.