категории | RSS

Введение
Решил поделиться небольшим опытом по настройке соединения ActiveSync КПК c рабочей станцией FreeBSD через bluetooth.
Итак, у меня есть КПК - Fujitsu-Siemens LOOX 720 и USB bluetooth адаптер на основе набора микросхем Broadcom. Данная модель КПК работает под операционной системой Windows Mobile 2003, а программное обеспечение от разработчиков этой ОС для синхронизации с настольным компьютером работает только на соответствующих ОС того же производителя.
Сразу скажу, что через кабель я не настраивал, потому что не удобно его с собой возить.
Дома все заработало через полчаса, но на работе, я использую ОС FreeBSD, и здесь ждало разочарование: в руководстве по FreeBSD достаточно неплохо описано как настроить одностороннюю связь между двумя bluetooth устройствами для обмена файлами, это было первое, что я сделал около года назад, когда приобрел КПК. Но для подключения ActiveSync через bluetooth, в первую очередь, на настольном компьютере необходимо предоставить сервис virtual serial port (т.е. сервис последовательного порта по Bluetooth). На момент написания статьи утилита rfcomm_pppd во FreeBSD (стабильные ветки и релизы) не обладает этим функционалом.
На сайте FreeBSD [https://www.freebsd.org/cgi/query-pr.cgi?pr=102523] я нашел информацию о состоянии портирования патча, который добавляет этот функционал: 25 января 2007 его только добавили в ветку current.
Патч проверенный на FreeBSD 6.1 можно взять на сайте разработчика
[https://www.cs.cmu.edu/~davide/howto/hotsync_bluetooth_serial.html].
Сразу скажу, что на странице сайта FreeBSD, указанного выше, есть переработанная версия патча для releng 6_2, он у меня не установился, если у кого получится, пусть расскажет.
Теперь по порядку:
1. Понадобятся дерево исходных кодов FreeBSD, работу патча я проверял на FreeBSD 6.2-STABLE #0. Скачиваем [https://www.cs.cmu.edu/~davide/howto/patch.rfcomm_sppd.c], сохраняем в каталог /usr/src/usr.bin/bluetooth/rfcomm_sppd/patch.rfcomm_sppd.c, далее:
# patch < patch.rfcomm_sppd.c
если все гладко
# make
# make install
# make clean
2. Установку ПО производим из портов. Я использую KDE, удобная графическая утилита для работы с КПК называется - Raki.
Устанавливаем ее:
# cd /usr/ports/palm/synce-kde && make install clean
В качестве зависимостей установятся необходимые для работы с КПК приложения: synce-librapi2, synce-libsynce, synce-rra, synce-serial, ну и KDE, если не установлено еще .
3. По руководству
[ https://www.freebsd.org/doc/ru_RU.KOI...bluetooth.html] подключаем и настраиваем bluetooth. добавляем в rc.conf:
ng_ubt_load="YES"
hcsecd_enable="YES"
sdpd_enable="YES"
gateway_enable="YES"
что бы эти изменения выполнить без перезагрузки выполняем:
# kldload ng_ubt
# /etc/rc.d/hcsecd start
# /etc/rc.d/sdpd start
# sysctl net.inet.ip.forwarding=1

На время первой настройки отключаем, если используется firewall, в дальнейшем нужно добавить правила для работы ActiveSync.
4. Подключаем USB адаптер bluetooth, в логе должно появиться примерно следующее:
uhub2: vendor 0x0a5c product 0x3500, class 9/0, rev 2.00/1.00, addr 3
uhub2: 3 ports with 0 removable, bus powered
ubt0: Broadcom Corp Bluetooth Transceiver, rev 1.10/1.00, addr 4
ubt0: Broadcom Corp Bluetooth Transceiver, rev 1.10/1.00, addr 4
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 4) endpoints: isoc-in=0x83, isoc-out=0x3; wMaxPacketSize=64; nframes=5, buffer size=320
ukbd0: vendor 0x0a5c product 0x3502, rev 1.10/1.00, addr 5, iclass 3/1
kbd2 at ukbd0
ums1: vendor 0x0a5c product 0x3503, rev 1.10/1.00, addr 6, iclass 3/1
ums1: 3 buttons.
Интересующая нас информация - устройство "ubt0". Запускаем стек bluetooth:
# /etc/rc.bluetooth start ubt0
Добавляем в файл /etc/bluetooth/hcsecd.conf информацию о КПК.
## bdaddr я посмотрел в настройках КПК
device {
bdaddr 00:09:2D:36:17:C2;
name "ppc";
key nokey;
pin nopin;
}
и в файл /etc/bluetooth/hosts
## для обращения к КПК по имени
00:09:2D:36:17:C2 ppc
5. Создаем файл /etc/ppp/options следующего содержания:
## Этот файл можно также создать утилитой synce-serial-config
/dev/ttyp9 115200
connect '/usr/local/bin/synce-serial-chat'
nodefaultroute
noauth
local
192.168.131.102:192.168.131.201
ms-dns Ваш_ДНС
crtscts
##
6. Если еще не запущена графическая оболочка, запускаем ее и открываем два виртуальных терминала.
Запускаем сервис последовательного порта.
# rfcomm_sppd -S -t /dev/ttyp9
Теперь при обзоре любое bluetooth устройство обнаружит его. К сожалению, в background режиме (опция -b) сервис у меня не запустился. Этот терминал оставляем висеть. Если что то пошло не так, читаем /var/log/messages на предмет ошибок.
В другом терминале запускаем
# synce-serial-start
Конфиг для нее мы сделали в пункте 5. Важно указать в конфиге устройство /dev/ttyp* то же, к которому будет открыт виртуальный последовательный порт с помощью rfcomm_sppd. Также, если что то пошло не так, читаем /var/log/messages на предмет ошибок.
Должен появится сетевой интерфейс ppp*, у меня это ppp0, добавляем маршрут к этому сетевому интерфейсу
# route add 192.168.131.0 -iface ppp0
7. Запускаем Raki, при первом запуске программа спросит какой сервис запускать - вариантов два: vdccm и dccm. Правильный ответ - vdccm.
Как только в трее появится знакомый логотип ActiveSync, можно сказать, что все готово.
8. Включаем bluetooth на КПК и открываем "Диспетчер Bluetooth" . Выбираем:
Новое -> ActiveSync через Bluetooth.
Bluetooth Wizard обнаружит PC под управлением FreeBSD, выбираем его, дальше должно пройти подключение ActiveSync и в трее на рабочей станции загорится значек Raki.
P.S. Должен сказать, что настройка на FreeBSD заняла тоже не более получаса, как и на домашнем ubuntu-linux.

Источник: https://board.tiranet.com/forum60/thread468.html

DimonVideo
2007-07-03T18:38:25Z

Здесь находятся
всего 0. За сутки здесь было 0 человек
Яндекс.Метрика