Все настройки проверялись на PalmOne Tungsten E и Sony Clie SJ22 с FreeBSD 4,10-STABLE. Синхронизации место в другой статье, потому что программы под FreeBSD и Linux (и другие юниксы) одни и те же, и настраивается всё практически одинаково. Eдинственное отличие под FreeBSD работает только Network Hotsync, потому столько внимания к настройке TCP/IP в этой статье. Если у вас FreeBSD 5.x oтличается только сборка ядра. Подробности в «Pуководстве пользователя FreeBSD"
Загрузите FreeBSD с ядром GENERIC (или убедитесь, что в ядре нет устройств ucom и uvisor, но есть устройства uhci, ohci и usb). Подключите Palm к машине. Нажмите HotSync. Сразу после этого (как пользователь root) наберите usbdevs -v. Пример вывода usbdevs:
# usbdevs -v Controller /dev/usb0: addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), VIA(0x0000), rev 1,00 port 1 addr 2: full speed, self powered, config 1, Palm Handheld(0x0060), Palm, Inc.(0x0830), rev 1,00 port 2 powered
Нас интересует ID устройства вашего Palmа. В нашем случае это Palm Handheld(0x0060). Запишите этy цифру. Если usbdevs не упоминает Palm в выводе проблемы либо с USB в машине либо с соединениями.
Убедитесь что у вас есть исходные тексты ядра в /usr/src/sys. Далее:
cd usr/src/sys/dev/usb grep '^product PALM.*0x0060' usbdevs 0x0060 замените на ID вашего устройства.
Пример вывода grep:
% grep '^product PALM.*0x0060' usbdevs product PALM TUNGSTEN_T 0x0060 Palm Tungsten T
Если grep выдаёт название другого устройства в нашем случае Tungsten T вместо Tungsten E, можно спокойно продолжать если ID устройств совпадают, то в 99,9% случаев совпадает и интерфейс.
Если grep ничего не выдаёт, это значит что вашего Palma нет в бaзе устройств FreeBSD:
Во-первых обновите систему. Если после обновления результат работы grep остался прежним лезем в uvisor.c добавлять свой ID, либо достаём на это предмет разработчиков FreeBSD.
Собираем ядро с поддержкой palm (предполагается, что система свежeустановленная, если вы уже собирали ядро добавляйте устройства в соответствующий файл конфигурации ядра):
cd /usr/src/sys/i386/conf cp GENERIC PALM
В конце файла конфигурации ядра (PALM) добавляем строки:
device uvisor device ucom
Вводим команды для сборки и установки ядра:
config PALM && cd ../../compile/PALM && make NO_MODULES=YES depend && \ make kernel && make kernel-install && reboot
После перезагрузки с новым ядром, нажимаем HotSync на палме, и смотрим последние строки вывода команды dmesg:
% dmesg | tail -10 sio0 at port 0x3f80x3ff irq 4 flags 0x10 on isa0 sio0: type 16550A sio1 at port 0x2f80x2ff irq 3 on isa0 sio1: type 16550A ad0: 76319MB [155061/16/63] at ata0-master UDMA100 acd0: CD-RW <_NEC CD-RW NR-7900A> at ata1-master UDMA33 acd1: DVD-ROM at ata1-slave UDMA33 Mounting root from ufs:/dev/ad0s3a ucom0: Palm, Inc. Palm Handheld, rev 1,00/1,00, addr 2Если в выводе упоминается Palm как ucom устройство (не ugen) поздравляю, FreeBSD видит и знает ваш палм!
TCP/IP, интернет
Переходим к настройке TCP/IP. Предполагается что вы ходите в интернет по dialup.
Содержимое /etc/ppp/ppp.conf:
default: set log Phase Chat LCP IPCP CCP tun command ident user-ppp VERSION (built COMPILATIONDATE) set device /dev/cuaaНОМЕР_ПОРТА_МОДЕМА set speed 115200 set dial «ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ \"\" AT OK \\dATDT\\T TIMEOUT 40 CONNECT" set timeout 180 isp: set server /var/run/ppp/isp-ppp » 0177 nat enable yes set phone НОМЕР_ТЕЛЕФОНА_ПРОВАЙДЕРА set authname ВАШ_ПАРОЛЬ set authkey ВАШ_ЛОГИН set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR palm: set server /var/run/ppp/palm-ppp » 0177 set device /dev/ucom0 set cd off set dial set speed 115200 set timeout 0 set ctsrts on set dns 10.0.0.1 accept dns set ifaddr 10.0.0.1 10.0.0.2 openДобавляем в /etc/rc.conf:
gateway_enable="YES» #разрешить IP forwarding usbd_enable="YES" named_enable="YES» #запустить собственный DNS-serverДобавляем в начало /etc/usbd.conf:
device «Palm Tungsten E" devname «ucom0" vendor 0x0830 product 0x0060 attach "/usr/sbin/pppctl /var/run/ppp/palm-ppp quit all;/usr/sbin/ppp -auto palm; sleep 5; /usr/sbin/ndc reload" detach "/usr/sbin/pppctl /var/run/ppp/palm-ppp quit all"замените 0x0060 на ID устройства вашего палма. ndc reload делается потому, что bind почему-то не слушает на сконфигурированном после его запуска tun-интерфейсе, и приходится его пнуть
Содержимое /etc/namedb/named.conf:
options { directory "/etc/namedb"; listen-on {127.0.0.1; 10.0.0.1;}; allow-query { 127.0.0.1; 10.0.0.2;}; allow-recursion { 127.0.0.1; 10.0.0.2;}; }; zone ".» { type hint; file «named.root"; }; zone «0.0.127.IN-ADDR.ARPA» { type master; file «localhost.rev"; };В принципе, постоянно дёргать запросами корневые сервера очень нехорошо, потому как их мало, а нас много, поэтому внутри секции options стоит добавить:
forwarders {IP_АДРЕС_ДНС_СЕРВЕРА_ПРОВАЙДЕРА;};Выполняем:
cd /etc/namedb sh make-localhostЕсли уж у нас есть свой DNS-server, то, в /etc/resolv.conf:
nameserver 127.0.0.1Перезапускаем FreeBSD. Внимательно смотрим /var/log/messages на предмет замученных очепяток в изменённых конфигурационных файлаx. Если всё хорошо, переходим к настройке палма.
prefs->connections->new: name: freebsd connect to: local network via: cradle/cable details speed: 115200 flow ctl: automatic prefs->network: service: Unix user name: ПУСТО password: ПУСТО connection: freebsd details connection type: ppp idle timeout: never query dns: ДА IP address: automatic script: endДелаем prefs->network->connect. По идее соединение должно пройти успешно. Под freebsd набираем: ping 10.0.0.2 Если ping проходит всё ок, поднимаем соединение с интернет: ppp -ddial isp Ждем пока свяжется. Можно ходить в интернет с палма.
Чтобы отключить соединение с палмом:
pppctl /var/run/ppp/palm-ppp quit allЧтобы отключить соединение с интернет:
pppctl /var/run/ppp/palm-isp quit allАвтор: Kors
Источник: forum.ladoshki.ru
Квартиры на сутки - компания Арбат