• Обзоры и статьи о КПК
  • Программы и игры для Pocket PC
  • Программы и игры для Palm
  • Группа о КПК ВКонтакте
  • О сайте
  • Palm под FreeBSD — драйверы и TCP/IP

    Краткое предисловие

    Все настройки проверялись на 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_АДРЕС_ДНС_СЕРВЕРА_ПРОВАЙДЕРА;};
    

    Выполняем:

    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
    

    Автор: Kors

    Источник: forum.ladoshki.ru

    Rambler's Top100

    карта сайта, версия для КПК