Автор/Источник: Kors» 14.04.2005 18:54, просмотров сегодня: 1, всего: 8324
статья размещена в группе: КПК в работе (для профессионалов)
оценка: 3.15, 20 голосов
Краткое предисловие.
Все настройки проверялись на 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 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A
sio1 at port 0x2f8-0x2ff 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_АДРЕС_ДНС_СЕРВЕРА_ПРОВАЙДЕРА;};
ВНИМАНИЕ!!!! вопросы безопасности здесь НЕ рассматриваются, но я рекомендую закрыть firewalloм, настроить слушать только на локальных адресах или отключить (если не нужны) сетевые сервисы!!! Подробности в FreeBSD handbook.
Выполняем:
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: 115'200
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
Ссылки.
Руководство пользователя FreeBSD (handbook)
Русский перевод Руководствa пользователя FreeBSD (handbook)
Документация FreeBSD (man-страницы):
dmesg
grep
named
named.conf
ping
ppp
pppctl
rc.conf
resolv.conf
ucom
ugen
usbdevs
usbd
usbd.conf
uvisor
|