середу, 10 грудня 2008 р.

Tablet genius EasyPen в gentoo

На свой День Вырождения разжился данным планшетом. Планшет работает через последовательный порт(на сегодняшний день - считается морально устаревшим). Понятно, сразу возникло жгучее желание завести это устройство в Xorg, чтобы поваять в GIMP


ABSTRACT (этот раздел можно пропустить)

Особенно спровоцировали меня некоторые ролики с YouTube, которые я закачивал для отца. Он "классический" художник: карандаш, уголь и прочее олдовое и "готичное" :-). Хотел познакомить его с инструментами современного художника.




Thom Yorke, Radiohead - Speed Painting by Nico Di Mattia, gimp.com



После саундтрека к этому ролику (Street spirit1) я заценил, что Radiohead не только труЪ банда, которая презирает DRM'щиков, но ещё и интересную мне музыку сочиняет, местами довольно зашибенную (то, что "местами" - лично моё ИМХО) :-)


INFO


Вот немного фотографий планшета:

  • Непосредственно сам планшет:


  • довольно заеложенный ящик из под планшета:

  • Содержимое ящика:

    • Бумажки всякие, по большому счёту ненужные, но добавляющие солидности: гарантийка, инструкция и т.п.
    • Дискетка с неким "Patch'ем"
    • CD с драйверами
    • Подставка для "карандаша"




  • Подставка чем-то мне очень понравилась. Тяжёленькая, аскетичной формы, с приятной "антискользящей" бархатной подложкой



  • А разьём - вот такой, для последовательного порта PC. Это тот, который в продуктах и документации одной грязной корпорации назван как COM1 или COM2 :) .



  • На всякий случай предъявлю заводскую наклейку в общем виде, может кому и пригодится эта информация





CONFIGURATION

Настройка для Xorg

(Справка по версиям, у меня установлены:
x11-base/xorg-x11-7.2
x11-base/xorg-server-1.3.0.0-r6
x11-drivers/xf86-input-summa-1.1.0
sys-libs/gpm-1.20.1-r6)


Редактируем /etc/make.conf - добавляем в переменную INPUT_DEVICES новый драйвер - summa:

...
INPUT_DEVICES="keyboard mouse summa"
...


Пересобираем xorg-server:

root ~ # emerge xorg-server


добавляем в /etc/X11/xorg.conf в секцию ServerLayout следующую строку:

/etc/X11/xorg.conf
...
Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Tablet"
InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
...


Добавляем в секцию Module строку:

/etc/X11/xorg.conf
...
Section "Module"
Load  "glx"
Load  "extmod"
Load  "xtrap"
Load  "record"
Load  "GLcore"
Load  "dbe"
Load  "dri"
Load  "drm"
Load  "freetype"
Load  "type1"
Load  "summa"   # для планшета
EndSection
...



Добавляем в xorg.conf ещё одну секцию InputDevice, только "Identifier" устанавливаем как "Tablet"

/etc/X11/xorg.conf
...
Section "InputDevice"
Driver "summa"
Identifier "Tablet"
Option "Device" "/dev/ttyS0"
Option "InputFashion" "Tablet"
Option "Mode" "Absolute"
Option "Name" "EasyPen"
Option "Compatible" "True"
Option "Cursor" "Stylus"
Option "Protocol" "Auto"
Option "SendCoreEvents" "on"
Option "Vendor" "GENIUS"
EndSection
...


теперь завершаем свою сессию в иксах, выйдя в ваш *dm. Затем заходим в системную консоль (Ctrl+Alt+F1) и перезагружаем иксы:

root ~ # /etc/init.d/xdm restart


Уже здесь планшет должен заработать. Во-первых - то, что он определился можно заметить по моргающему зелёному светодиоду на самом планшете, а также непосредственно - когда попытаетесь поводить "карандашом" (пером) по планшету, курсор на экране будет двигаться за его движениями :)


Вот собственно всё, что касается настройки планшета для иксов.

Дополнительно настроить для рисования ускорение, точность и кнопки можно в GIMP в меню "Файл --> Настроить --> Дополнительные устройства ввода"

Вот что было нашкарябано для проверки:




Видите, как минимум, у меня планшет работает :)

Настройка для работы в системной консоли

Отъявленные мизантропы могут настроить планшет и для использования в системной консоли, используя стандартный демон gpm. Сейчас объясню в чём особенность этой ситуации:
  • В начале я настроил именно в консоли, но дальнейшем колдовстве у меня пару раз намертво висли иксы, утаскивая с собой клавиатуру и прочие устройства ввода. Мало приятного в вынужденной перезагрузке после двухнедельного аптайма, без возможности вызвать EmergencySync
  • С планшетом можно работать либо в консоли, либо в Xorg. /dev/ttySxx походу неделим между процессами. Поэтому, если хотите работать с планшетом чисто в консоли, то закомментируйте в xorg.conf следующую строку в секции ServerLayout:

    /etc/X11/xorg.conf
    ...
    Section "ServerLayout"
    Identifier     "X.org Configured"
    Screen      0  "Screen0" 0 0
    InputDevice    "Mouse0" "CorePointer"
    #InputDevice    "Tablet"
    InputDevice    "Keyboard0" "CoreKeyboard"
    EndSection
    ...
    



для настройки необходимо, чтобы никакие проги не использовали планшет. Обычно это ранее запущенный gpm или xorg. Если что, на всякий случай выполните:


root ~ # /etc/init.d/xdm stop
root ~ # /etc/init.d/gpm stop


потом просто выполните:

root ~ # gpm -m /dev/ttyS0 -t summa


планшет должен заработать без особых проблем.

BUGS


  • Не стоит одновременно настраивать/использовать планшет в xorg и консоли.

  • При вводе параметров команды gpm для настройки работы планшета в системной консоли, соблюдайте такой-же как у меня порядок опций, т.к. иначе возможен вот такой результат:

    root ~ # gpm -t summa -m /dev/ttyS0
    O0o.oops(): [server_tools.c(88)]: Use -m device -t protocol [-o options]!
    


    Возможно это глюки только для моей версии ядра либо gpm, но видать из за этих "Oops"'ов у меня в процессе настройки пару раз подвисана намертво видеосистема с клавой вдобавок.



LINKS

Планшеты :: FAQ :: Genius: (тут ещё для XFree86 рассказывают, старая фигня, но наиболее полезная)

gpm-types(7) - Linux man page Список типов устройств ввода, поддерживаемых gpm. Список вариантов для опции -t команды gpm



1
как оказалось - в ролике была использована очень трофейная акустическая версия этой песни. Еле нашёл после долгого перекапывания интернетов, притом - в gnutella'е.




Читать далее

вівторок, 9 грудня 2008 р.

siemens C72 в gentoo

NAME

Подключение siemens C72 через FUSE->SieFS в среде Gentoo Linux. В итоге с содержимым телефона можно будет работать как с обычным usb_flash-накопителем.


DESCRIPTION

Недавно намутил себе данный телефон в полудохлом состоянии. После пятнадцати минут ковыряния отвёрткой (полная разборка мобилы) и старательной и аккуратной чистки нужных мест волшебной стирательной резинкой, получил вполне классный телефон, который ещё ни разу меня не подвёл (не смотря на свой довольно почтенный возраст и потрёпанный вид).

Со временем возникла задача слить с телефона фотки и другую полезную информацию в Linux без мучения с wine либо виртуальными машинами.

После пары минут шуршания в поисковике нарыл подходящие инструкции для общих случаев, но инструкций непосредственно для Gentoo, (да ещё и на русском) не нашёл. Решил заполнить этот пробел в документации к gentoo, написав данный коротенький HOWTO.

SOURCE

Вот весь набор в выпотрошенном виде:


  • Коробок

  • Кулёк

  • Mini-CD "SIM Mobile phone manager" - проприетарная прога под Грязное Поделие Зла. (говорю сразу - в wine не идёт)

  • Непосредственно USB кабель (Куплено на "Героев Труда" за 35 гульденов)






Разъём к телефону:



Разъём к компьютеру, USB (скорей всего - с встроенным в него ВЧ фильтром)





CONFIGURATION

Что делать:

Установить поддержку USB to Serial в ядре:



Device Drivers --->
USB support --->

[M] Support for Host-side USB

USB Serial Converter support --->
USB Serial Converter support
[*] USB Generic Serial Driver
[M] USB Prolific 2303 Single Port Serial Driver



также не забудьте о необходимости включенийя поддержки FUSE (Filesystem in USErspace):


File systems --->
[M] Filesystem in Userspace support


Если эти опции не были включены ранее, то включить их, пересобрать ядро. Загрузить модули/перезагрузить комп.

Подключить мобилу к компу через USB кабель. Выполнить команду:


root ~ # dmesg | tail


На консоль должно выйти нечто, по смыслу похожее на следующий текст:


usb 1-5: new full speed USB device using ohci_hcd and address 4
usb 1-5: configuration #1 chosen from 1 choice
pl2303 1-5:1.0: pl2303 converter detected
usb 1-5: pl2303 converter now attached to ttyUSB0


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

Соберите sys-fs/fuse:


root ~ # emerge sys-fs/fuse


Теперь загрузите модуль FUSE:


root ~ # modprobe fuse




Соберите пакет sys-fs/siefs - поддержку SieFS для fuse:


root ~ # emerge sys-fs/siefs


создайте каталог для мобильника


root ~ # mkdir -p /mnt/mobile


Теперь просто примонтируйте ваш мобильник командой mount, подставив имя устройства /dev/ttyUSBx, которое было выведено в результате выполнения dmesg | tail. Монтируйте из-под root'а, это некрасиво, зато работает сразу и без особых костылей.


root ~ # mkdir -p /mnt/mobile
root ~ # mount -t siefs /dev/ttyUSB0 /mnt/mobile


В результате следующей команды вы должны увидеть, что мобильник примонтировался и содержимое читается:


root ~ # ls -l /mnt/mobile
drwxrwxrwx 1 root root 0 Янв 1 2004 Data


Или ещё симпатичнее (если у вас установлена утилита app-text/tree):


root ~ # tree -L 2 /mnt/mobile
/mnt/mobile
`-- Data
|-- Animations
|-- Java
|-- Misc
|-- MmsTemp
|-- Pictures
|-- Skins
|-- Sms archive
|-- Sounds
|-- System
|-- Text module
|-- Themes
|-- Videos
`-- Voice memo

14 directories, 0 files


Если всё именно так, то можете сливать и заливать информацию на телефон без особых проблем.


SECURITY

Не смотря на угрожающе-навязчивое использование учётки root'а в этом HOWTO, именно в этом случае такой расклад уместен, и всё не так уж плохо. Особенно - если учесть соотношение времени, когда нужно залить\слить файлы с мобилы, и время потраченное на костылизацию изначально стройной системы прав доступа и конфигов в Gentoo, то в большинстве случаев игра не стоит свеч и можно смело пользоваться учёткой root.
Непривелигерованные пользователи по идее не должны добраться до содержимого мобилки, т.к. для них системой уготован следующий отлуп:


user ~ % ls -l /mnt
ls: невозможно получить доступ к /mnt/mobile: Отказано в доступе
итого 0
drwxr-xr-x 6 root root 160 Дек 1 14:46 backups
drwx------ 2 root root 72 Июн 17 20:41 cdrom
drwxr-xr-x 2 root root 48 Сен 5 10:14 flash
drwx------ 2 root root 72 Июн 17 20:41 floppy
?????????? ? ? ? ? ? mobile
drwxr-xr-x 2 root root 48 Сен 26 11:08 secretar
drwxr-xr-x 2 root root 48 Сен 16 17:04 sto-db
drwxr-xr-x 2 root root 48 Ноя 21 11:13 zames

user ~ % ls -l /mnt/mobile
ls: невозможно получить доступ к /mnt/mobile: Отказано в доступе

user ~ % ls -l /mnt/mobile/Data
ls: невозможно получить доступ к /mnt/mobile/Data: Отказано в доступе


и т.д.

И всё-же я вам нисколько не советую расслабляться лишний раз. Информацию слили либо залили - не забудьте вскоре отмонтировать телефон, как говорится - "бережёного боХ бережёт". ИМХО, не стоит злоупотреблять всякими конструкторами костылей, коими являются вещи, подобные связке FUSE->SieFS, даже если они выполняют свою основную работу в userspace.

BUGS

Иногда либо мобильник, либо драйвер глючит - при попытке просмотра содержимого мобилы происходят минутные тормоза и ошибка, подобная этой:


root ~ # ls /mnt/mobile
ls: чтение каталога /mnt/mobile: Ошибка ввода/вывода


В таком случае мне помогал следующий пакет действий:

Отмонтируем телефон:


root ~ # umount /mnt/mobile


смотрим, не остались ли висеть процессы монтирования:


root ~ # ps ax | grep siefs
23669 ? Ssl 0:00 /sbin/mount.siefs /dev/ttyUSB0 /mnt/mobile -o rw


если остались - безжалостно их мочим:


root ~ # killall -9 mount.siefs


потом отключаем мобилу и сам кабель от компа. Мобилу выключаем, затем включаем, ждём около 30 сек/1 минуты (у меня это время, когда начинает полноценно работать основное меню в мобильнике).

Потом подключаем кабель к телефону и компу, ждём около 5...10 сек и монтируем как указано выше.
Мне подобный рецепт помогает.

PS: Фото в этом ээ... "HOWTO" сняты с помощью описываемого C72. Как видите, ничего фантастического :)

LINKS

Opennet.ru: Монтирование телефонов Siemens под Linux как USB диска

TODO


  • Проверить возможность сливания содержимого SIM-карты, контакт-листа, заметок и прочего полезного барахла, которое может быть сохранено в мобильник


  • Использовать c72 как GPRS-модем. Думаю, это будет элементарно: просто порт модема в wvdial прописывается как /dev/ttyUSBxx, а дальше работаем как с обычным модемом с помощью AT-команд, но с учётом специфики GPRS подключения




Читать далее