Ключевые слова:freebsd, palm, pda, sync, (найти похожие документы)
From: Pavel A. Letskiy <che@piluli.spb.ru.>
Newsgroups: email
Date: Mon, 27 Mar 2007 14:31:37 +0000 (UTC)
Subject: Сказ о том, как я пытался подружить FreeBSD и КПК
Оригинал: http://psycho-one.livejournal.com/789.html
Сказ о том, как я пытался подружить FreeBSD и КПК
И подружил таки! :) О том, как это было сделано и пойдет мой рассказ.
При написании данного труда были использованы статьи:
http://gja.space4me.com/things/Palm_TungstenC_FreeBSD.htmlhttp://lists.pilot-link.org/pipermail/pilot-link-general/2003-February/000896.html
Но, товарищ пишет для PalmOS 5.x, а оно несколько отличается.
В начале, даю вводную :)
Пальмы, под управлением PalmOS 4.х, идущие в комплекте со шнурками (а
не с кредлом), похоже не могут синхронизироваться с FreeBSD, через
локальную синхронизацию.
(Если я не прав, пожалуйста, расскажите мне как это делается)
Поэтому, мы будем подключать наш КПК через сеть.
Итак...
Чего мы, так сказать, имеем? А имеем мы следующее:
Десктопная система: FreeBSD 5.3
Наладонник: Sony CLIE PEG-SJ30. PalmOS 4.1
1. Ядро
Для начала, убедитесь, что в вашем ядре
(/usr/src/sys/i386/conf/GENERIC) есть следующие строки:
pseudo-device ppp 1 # Kernel PPP
pseudo-device tun # Packet tunnel.
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # USB2 interface
device usb # USB Bus (required)
device uvisor # For Palm->USB interface
device ucom # Generic serial layer
Если чего-то не хватает - добавьте.
Думаю не нужно напоминать, что не стоит длать изменения прямо в
GENERIC? ;) Лучше для начала скопировать его, например так:
$cd /usr/src/sys/i386/conf/
$cp GENERIC PALM
После внесения необходимых изменений, пересоберем ядро:
$config PALM
$cd ../../compile/PALM
$make depend && make && make install
Перезагрузим машину.
Подключаем Пальму и нажимаем HotSync. Смотрим вывод dmesg. Если есть
строка:
ucom0: Palm, Inc. Palm Handheld, rev 1.00/1.00, addr 2
значит все в порядке, идем дальше.
2. Настройка USB
Теперь нам нужно отредактировать файл /etc/usbd.conf. Добавляем в него
строки:
device "Palm Handheld Device"
devname "ucom[0-9] "
attach "/usr/sbin/ppp -background -unit0 palm"
После опции devname, можно (в некоторых случаях, наверное, нужно)
добавить строки:
vendor 0x054c
product 0x0060
Данные эти можно взять из вывода команды usbdevs -v. Однако, у меня
все работает и без них.
Теперь перезапустим usb демона:
$kill && /usr/sbin/usbd
На этом настройка USB закончена.
3. Настройка PPP
Продолжим. Далее, нам требуется настроить PPP.
Для этого, в файле /etc/ppp/ppp.conf, пишем:
palm:
set device /dev/ucom0
set cd off
set dial
set speed 115200
set timeout 0
set ctsrts on
set ifaddr 192.168.0.66 192.168.0.33
enable dns
add default HISADDR
open
Опция ifaddr, задает два адреса: первый - это IP-адрес вашего хоста
под FreeBSD, второй - это IP-адрес который получит Palm после
соединения. Естественно, что у Вас они могут (и скорее всего будут)
другими.
Проверка соединения
Для начала произведем некоторые настройки в самом КПК. Для этого
(описано для КПК с английским интерфейсом):
1. Заходим в "Preferences". Выбираем "Connection", затем создаем новое
соединение "Custom". В нем выбираем "Connect to: PC" и
"Via: Cradle/Cable".
2. Идем в пункт "Details " и выбираем "Speed: 115200 bps" и
"Flow Ctl: Automatic"
3. Возвращаемся в Preferences" и выбираем "Network". Создаем новый
сервис и выбираем "Connection: Custom" (новое соединение, которое мы
только что создали). "User Name:" - оставляем пустым и поле "Password:
-Prompt-" тоже не трогаем.
4. Захоим в "Details " и выбираем "Connection type: PPP", "Idle
timeout: 1min", "Query DNS: [ставим галочку]" and
"IP Address: Automatic"
5. В пункте "Script" должна быть только одна запись: "End".
Теперь, когда настройка закончена, возвращаемся в Preferences->Network
и жмем "Connect".
КПК подключит себя как USB-устройство, FreeBSD запустит ppp и в
течении 10 секунд должна установиться связь.
Если все пройдет как надо, в выводе команды ifconfig, вы увидите:
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.66 --> 192.168.0.33 netmask 0xffffffff
Opened by PID 35494
Теперь можно проверить работоспособность соединения командой ping:
[che@lelishe:~]$ping 192.168.0.33
PING 192.168.0.33 (192.168.0.33): 56 data bytes
64 bytes from 192.168.0.33: icmp_seq=0 ttl=255 time=106.258 ms
64 bytes from 192.168.0.33: icmp_seq=1 ttl=255 time=9.793 ms
64 bytes from 192.168.0.33: icmp_seq=2 ttl=255 time=8.509 ms
64 bytes from 192.168.0.33: icmp_seq=3 ttl=255 time=9.417 ms
Синхронизация
Для синхронизации нам потребуется софтина под названием pilot-link.
Поставим ее:
$cd /usr/ports/palm/pilot-link
$su
$make install clean
Поставили? Отлично. Идем дальше.
Если у вас PalmOS 4.x, вам потребуется запустить демона pi-csd. Он
идет в комплекте с pilot-link. Запускаем:
$/usr/local/bin/pi-csd -H lelishe -a 192.168.0.66 -n 255.255.255.0
Ключи запуска:
-H - это имя машины с FreeBSD (НЕ Palm!!!)
-a - это IP-адрес машины с FreeBSD (НЕ Palm!!!)
-n - ну тут все понятно. Маска подсети :)
Теперь в консоли пишем:
$pilot-xfer -p net:any -s palm/backup/
Ключи запуска pilot-xfer можно посмотреть с помощью ключа -h.
Далее нам нужно сделать последние изменения в настройках HotSync на
Palm`е:
Modem Sync Prefs -> Network
LANsunc Prefs -> LANsync
Primary PC Setup -> Здесь нужно прописать параметры машины к которой вы подключаетесь
Теперь, над иконкой синхронизации, выбираем "Modem". Под иконкой
выбираем наш настроенный "Custom".
И жмем кнопку синхронизации.
И FreeBSD, и Palm дожны сообщить об удачном коннекте и начать
синхронизацию.
На этом, вроде, все...
Да пребудет с вами Сила!
Имеем SONY CLIE SJ20 (PalmOS 4.1) + usb шнурок FreeBSD 6.2
Синхронизация происходит через kpilot указываем девайс /dev/cuaU0(в настройках kpilot) добавляем пользователя в группу dialer, ну и должны быть загружены модули (либо включены в ядро) ucom.ko uvisor.ko. И никаких танцев с бубном (т.е. с ppp) :)