Palmоводство в Дебиан

Замечательная вещь - КПК! И разбудит утром, и книжку на нём можно почитать, и по карте города ориентироваться, и музыку послушать, и фильм посмотреть в дороге. Всё это (и даже более того) умеет Palm Tungsten T3. Стильный маленький помощник весом в 153 грамма и который умещается в любой, даже самый маленький кармашек. Хотя КПК - это помощник ПК, а не его аналог и уж тем более замена, зато это правая рука мобильного телефона.

КПК я использую для:
- интернет через GPRS - быстрый набор\отправка большого числа смс - чтение книг и PDF-журналов - музыка\фильмы - математика (быстрая прикидка графической зависимости по экспериментальным точкам, аппроксимация, тестирование небольших программ в пути) - справочник (таблица физических констант, перевод между системами величин, свойства полупроводников, оптических материалов, таблица Менделеева и проч.) - пульт управления бытовой техникой - планировщик задач - игры (шашки\шахматы) - перенос данных через SD-карту

Как его связать с Большим ПК, на котором работает Дебиан.
Оказывается, довольно просто. Для синхронизации данных между ПК и КПК в Линуксе есть программы, не уступающие софту под оффтопик ни функционалом, ни видом. Пальмоводы обычно пользуют Kpilot или jpilot, но я расскажу о том, как можно связываться с Пальм и без них.


Способ 1. Bluetooth.
При навыках компиляции ядра это не так сложно, как может показаться. В ядре следует влключить поддержку Bluetooth и скомпилировать (желательно модулями) поддержку USB-Bluetooth адаптеров, которые у вас есть, и все протоколы Bluetooth так же модульно. Вонзаем переходник в usb-порт и внимательно смотрим за выводом dmesg и lsusb - они скажут нам всю правду. Если модуль этого устройства скомпилирован, то ядро его загрузит и вы увидите в выводе lsusb что-то вроде (для Billington USB-Bluetooth адаптера):

Bus 002 Device 002: ID
0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
А так отреагирует dmesg (в моём случае)
usb 2-1: new full speed USB device using uhci_hcd and address 2 Bluetooth: HCI USB driver ver 2.9 usbcore: registered new driver hci_usb
На самом устройстве должен загореться индикатор и подмигивать время от времени. Для того, чтобы например, перекидывать на пальм файлы, потребуется поставить на него программу, реализующую OBEX-протокол. Удобнее это делать в интегрированных средах, например, в КДЕ должен появиться соответствующий значок в трее, а в Konqueror - устройство Bluetooth. При попытке соединиться будет запрошен пин-код, который должен быть одинаковым на Пальм и на ПК. Дальше, в Konquerior, вы просто видите каталог, и по протоколу OBEX вам доступен обмен файлами. На Пальм должна быть установлена программа, также реализующая OBEX - например, BlueFiles от Softick. Да, решение проприетарное, но хорошо работающее. Кто найдёт программу лучше и опенсорснее - милости просим.
Итак, модули ядра Bluetooth на ПК и программа поддержки OBEX в КПК. Но что делать, если вы не пользуетесь KDE или GNOME?
Очень просто. Вам потребуются пакеты bluez* (все пакеты), obexftp и obexserver. Собственно,

apt-get install bluez* obexftp obexserver
И ставим все пакеты, которые потянут зависимости. Далее от рута ищете МАК-адрес всех устройств Bluetooth поблизости:
# hcitool scan
Scanning ...
00:07:E0:3A:C5:C6 virens
Нашлось - это мой наладонник. Очень хорошо. Теперь попытаемся выяснить, какие сервисы предоставляет нам устройство. Вызываем команду
# sdptool browse 00:07:E0:3A:C5:C6
которая у нас спросит PIN, который мы ввели в Пальм, когда появилось соответствующее окно. Далее видим:
Кстати, вызвав hcitool без параметров можно узнать много подробностей про работу этой утилиты - и воспользоваться этим. Например, выяснить уровень сигнала, провести скрытое сканирование, установить или сменить метод шифрования...

# sdptool browse 00:07:E0:3A:C5:C6 Browsing 00:07:E0:3A:C5:C6 ...
Service Name: Blue Files FTP
Service RecHandle: 0x10001
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x8cc
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: OBEX Object Push
Service RecHandle: 0x10002
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x8cc
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100



Замечаем строчку OBEX File Transfer - то, что надо. Да, естественно, во всех случаях заменяете мой МАК-адрес на свой, который сообщит hcitool scan.
Теперь для того, чтобы перекопировать файл linuxcenter.pdf на карточку моего Пальм в каталог /lib на ней, нужно написать (от рута):

# obexftp -b 00:07:E0:3A:C5:C6 -c /card/lib -p linuxcenter.pdf
После чего видим:

Browsing 00:07:E0:3A:C5:C6 ...
Channel: 1
No custom transport
Connecting...bt: 1
done
Sending /card/lib... Sending card... Sending lib... done
Sending linuxcenter.pdf...-done
Disconnecting...done

Всё, готово, теперь файл на Пальме. Можно читать. Аналогично можно забирать файлы и оттуда, заменив ключ -p на -g.


Способ 2. Подключение через USB.
Есть несколько программ, которые на Пальм имитируют поведение USB-флешки, выдавая за флешку карточку пальма. Одна из них - Softick CardExport. Помимо того, что она проприетарная, так она годится только для оффтопик, да и то работает (во всяком случае работала) как-то ректально... И не так давно я наткнулся на программу с простым названием Card Reader. Интерфейс - проще некуда, большая кнопка CONNECT. Вставляем Пальм в крэдл, вонзаем USB-штепсель крэдла в порт и жмём на эту самую кнопку CONNECT в программе. И что же мы видим в dmesg?

usb 4-1: new full speed USB device using uhci_hcd and address 5
scsi0 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
Vendor: mStream Model: CardReader Rev: 1.0
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sda: 499712 512-byte hdwr sectors (256 MB)
sda: Write Protect is off
sda: Mode Sense: 1b 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 499712 512-byte hdwr sectors (256 MB)
sda: Write Protect is off
sda: Mode Sense: 1b 00 00 00
sda: assuming drive cache: write through
sda: sda1
sd 0:0:0:0: Attached scsi removable disk sda
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete

Узнаёте родные строки? То-то же! Теперь просто монтируем scsi-диск штатными средствами:
mount -t vfat /dev/sda1 /mnt/flash
И можем работать с картой памяти Пальм как с обычной флешкой. Очень удобно. Программа Card Reader тоже проприетарная, но работает бесплатно в течение двух недель, после чего просит денег. Снос и установка продлевают жизнь ещё на две недели.

Вместо заключения
Есть ещё одна возможность - работать с Пальм через ИК-порт, но ИК-приёмники есть не у всех, так что описывать это подробно вряд ли стоит. Впрочем, если будет свободный час - могу поэкспериментировать.

7 комментариев: |высказаться!| RSS-лента дискуссии.|
Unknown комментирует...

Прекрасная статья!

Жаль, что я КПК не пользуюсь, но считаю, что статья будет исключительно полезна интересующимся данной тематикой. Респект автору!

virens комментирует...

А мне вот КПК в душу запали ещё давно. До сих пор горжусь тем, что, когда учился в 10 классе, лично держал в руках и немножко поработал на чуде - Newton Message Pad от Apple. Купить его тогда не было возможности - это был самый первый КПК, передовой для своего времени. Увы, Эпл свернула его производство, а жаль.
Первым КПК был Palm m105 - монохромный экран и 32МГц процессор. Удивительно, но даже сейчас он по скорости реакции и удобству работы обгоняет навороченные покетпс на раз. Сейчас у меня лучшее творение компании Palm - T3.

Сейчас пальмы переживают переходный период: операционку PalmOS совмещают с Linux. Поэтому машинок на платформе пальм сейчас очень мало. Но новая платформа почти готова и первые машинки должны появиться ближе к началу будущего года.

И вам, he1mut, спасибо за комментарий :-)

Анонимный комментирует...

Привет, это pelmen (Костя)
Хочу сказать, что данная статья мне помогла примонтировать mp3-плеер, однако хочу заметить, что для этого мне пришлось пересобирать ядро с параметрами scsi (об этом в статье не сказано, хотя и зачем...)

virens комментирует...

Привет, это pelmen (Костя)
Ба, знакомые всё лица! :-) Рад, что ты заглянул на огонёк...

Хочу сказать, что данная статья мне помогла примонтировать mp3-плеер
Хм... 8-0 Интересно, чем?

однако хочу заметить, что для этого мне пришлось пересобирать ядро с параметрами scsi (об этом в статье не сказано, хотя и зачем...)
Костя, ты меня заинтриговал. Если я правильно понимаю, то единственный параметр в scsi, ради которого можно из-за usb-устройства пересобрать ядро, это PROBE ALL SCSI LUNs. Но в этой статье об этом не говорится (зато говорится в другой про кардридеры... В общем, отпишись, что там конкретно не хватает.

abc-online комментирует...

Передача файлов на КПК по obex'у у меня заработала сразу и без всякого компота :) (Suse 10.0 + глюкодром мобайл). Правда, с тех пор остался один вопрос - синхронизация КПК через блютус с каким-нибудь линуксовым "аутглюком". Если автору известны подобные мануалы, было бы неплохо поделиться ссылками :)

virens комментирует...

Передача файлов на КПК по obex'у у меня заработала сразу и без всякого компота :) (Suse 10.0 + глюкодром мобайл).
Это и понятно: в КДЕ очень грамотно реализована работа с синими зубами. А в оконных менеджерах приходится немного повозиться.

Правда, с тех пор остался один вопрос - синхронизация КПК через блютус
Увы, но я этим не занимался и ссылки на подобные мануалы мне не известны.

Анонимный комментирует...

Есть версия Card Reader на русском языке
Card Reader

Отправить комментарий

Подписаться на RSS-ленту комментариев к этому посту.