понедельник, 17 марта 2008 г.

Настройка Genius G-Pen 560 в (K)ubuntu 7.10

Как и обещал, опишу настройку графического планшета 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
После всех этих плясок с бубном система узнает наш планшет... но сила нажатия так и не работает... Тут есть два пути. Первый - загрузиться в виндах (с установленными драйверами), чтобы планшет инициализировался. После этого, не отключая планшет, перегрузиться в Линукс. 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, Режим - Экран.
Радуемся жизни, она прекрасна.

четверг, 13 марта 2008 г.

Перешел на rTorrent

В очередной раз Ktorrent похерил все закачки. Не знаю чего у него глючит, но периодичность порчи всего подозрительная.
Снес его нафиг и поставил из репозиториев консольный rTorrent. Настройка заняла 5 минут.
Все работает, и даже быстрее качает и меньше ресурсов ест.
Доволен :)

вторник, 11 марта 2008 г.

Genius G-Pen 560

Подарил дочке на 8 Марта графический планшет Genius G-Pen 560 (1375 руб).
Подключается по usb, рабочая зона 5x6. Перо - беспроводное, с батарейкой AAA, имеет 1024 степени нажатия.








После подключения к компьтеру, Kubuntu 7.10 планшет определила и загрузила драйвер. Но в данном случае планшет работает как вторая мышь, т.е. курсор перемещается, кнопки отрабатывают, а вот сила нажатия на перо не работает.
Конечно от графического планшета хочется нормальной работы в граф. редакторах типа Gimp и InkScape, а не как обычной мыши. Пришлось по-гуглить и немного потанцевать в качестве шамана с бубном... и я его настроил, о чем и напишу позже :)

понедельник, 10 марта 2008 г.

Ошибки при записи DVD и как с ними бороться

Полезная информация. У меня такое иногда случается.
Взял отсюда...

Случается, что при записи DVD-дисков возникают ошибки. Обычно при этом болванка выбрасывается, однако есть способы некоторые ошибки исправить и записать-таки диск. Почти всегда такой диск нормально читается и проходит проверку на MD5-суммы. Ниже приведены несколько типичных ошибок и способы их устранения.

Сбой в процессе записи в начале или середине диска.
Редко, но бывает так: в начале или середине диски запись обрывается и growisofs выдаёт сообщение:

Executing 'builtin_dd if=1.iso of=/dev/cdrom obs=32k seek=0'
/dev/cdrom: "Current Write Speed" is 16.4x1352KBps.
0/4393730048 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU 0.0%
0/4393730048 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU 0.0%
0/4393730048 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU 0.0%
0/4393730048 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU 0.0%
0/4393730048 ( 0.0%) @0x, remaining ??:?? RBU 100.0% UBU 0.0%
1671168/4393730048 ( 0.0%) @0.4x, remaining 1007:27 RBU 100.0% UBU 1.9%
:-[ WRITE@LBA=330h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
:-( write failed: Input/output error
/dev/cdrom: flushing cache
/dev/cdrom: closing track
:-[ CLOSE TRACK failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
/dev/cdrom: closing session
/dev/cdrom: reloading tray

Болванку выбрасывать не надо, а только запустить процесс ещё раз - диск будет продолжен с того места, где запись прервалась. После этого диск нормально читается и проходит проверку на MD5-суммы.

Ошибка закрытия сессии
Диск полностью записался, и начинается закрытие сессии - иногда здесь происходит ошибка:

2144544*2KB out @ average 9.9x1352KBps
/dev/cdrom: flushing cache
/dev/cdrom: closing track
/dev/cdrom: closing session
:-[ CLOSE SESSION failed with SK=5h/ASC=72h/ACQ=03h]: Input/output error


Обидно, диск-то записался, но читаться он не будет, так как не закрыта сессия.
Для этого есть фирменная "затычка" от авторов dvd+rw-tools: небольшая программа close, и нужен её исходник. Его нужно скачать отсюда, установить/скачать исходные коды dvd+rw-tools и скопировать close.cpp в каталог с исходниками dvd+rw-tools. После этого в каталоге с исходниками компилируем close.cpp командой:

g++ -o close close.cpp

Всё, даём ей права на исполнение, вставляем в привод диск с неудачно закрытой сессией и пишем:

close /dev/hda

Если /dev/hda ваш пишущий DVD-привод, конечно. После этого диск будет закрыт, его можно прочесть и он проходит проверку MD5-сумм.


Ошибка при проверке и чтении только что записанного диска.
Диск полностью записался, сессия закрылась, и бывает так, что сразу же считать его не удаётся:

dd if=/dev/cdrom bs=2048 count=2261481 | md5sum

c99a74c555371a433d121f551d6c6398 -
1+0 записей считано
1+0 записей написано
скопировано 2048 байт (2,0 kB), 1,51564 секунд, 1,4 kB/s

Для того, чтобы это обойти, нужно всего лишь вынуть и вставить диск. :-)