Краткий поиск по инету навёл на немало статей про подключение жопореза через такое соединение, и пару описаний про консольную утилиту из портов, с интерфейсом типа ftp для работы с файлами в телефоне. Не совсем то что хотелось, хотя, с учётом что когда-то она монтировала-отмонтировала диск по бумажке - наверно бы осилила, или пришлось бы мне - под её руководством заливать поштучно гиг музыки... Короче надо думать, а пока прикручиваем телефон.
Девайс одолжил у народа на работе, ноунеймовская USB хреновина, отрапортовавшая о себе так:
Код: Выделить всё
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/3.73, addr 2
ubt0: vendor 0x0a12 product 0x0001, rev 1.10/3.73, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3;
wMaxPacketSize=49; nframes=6, buffer size=294

Код: Выделить всё
ussr$ more /boot/loader.conf
# Blue Tooth
ng_bt3c_load="YES"
ng_btsocket_load="YES"
ng_ubt_load="YES"
ubtbcmfw_load="YES"
ng_l2cap_load="YES"
netgraph_load="YES"

В хандбуке и на просторах инета, опять же, пачка всего про ручное прикручивание, написание мрачных скриптов по подъёму всего этого и т.п. В реальности, всё куда проще - прогресс не стоит на месте, и руководства уже устарели. Так что - пойдём новым путём. Прописываем в /etc/rc.conf:
Код: Выделить всё
# blue devices
hcsecd_enable="YES"
После чего смотрим - чё у нас в округе:
Код: Выделить всё
ussr$ hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:1e:a3:be:b5:eb
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 0x2
Page Scan Mode: 00
Class: 5a:02:04
Clock offset: 0x2de1
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:01:e3:87:12:24
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 0x2
Page Scan Mode: 00
Class: 50:02:08
Clock offset: 0x5638
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:11:9f:79:47:91
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 50:02:0c
Clock offset: 0x247d
Inquiry complete. Status: No error [00]
ussr#
Код: Выделить всё
ussr$ hccontrol -n ubt0hci remote_name_request 00:01:e3:87:12:24
BD_ADDR: 00:01:e3:87:12:24
Name: SL56
ussr$ hccontrol -n ubt0hci remote_name_request 00:1e:a3:be:b5:eb
Status: Page timeout [0x4]
ussr$ hccontrol -n ubt0hci remote_name_request 00:1e:a3:be:b5:eb
BD_ADDR: 00:1e:a3:be:b5:eb
Name: xxxx
ussr$ hccontrol -n ubt0hci remote_name_request 00:1e:a3:be:b5:eb | iconv -f utf-8 -t koi8-r
BD_ADDR: 00:1e:a3:be:b5:eb
Name: Вика
ussr$

Прописываем их в /etc/bluetooth/hosts - c именами куда удобней работать чем с MAC адресами:
Код: Выделить всё
ussr$ more /etc/bluetooth/hosts
# ... skipped ....
00:1e:a3:be:b5:eb nokia-6085
00:01:e3:87:12:24 siemens-sl56
ussr$
Код: Выделить всё
ussr$ more /etc/bluetooth/hcsecd.conf
# Vika
device {
bdaddr 00:1e:a3:be:b5:eb;
name "nokia-6085";
key nokey;
pin "1234";
}
# Siemens stational Phone
device {
bdaddr 00:01:e3:87:12:24;
name "siemens-sl56";
key nokey;
pin "1234";
}
Код: Выделить всё
ussr# /etc/rc.d/hcsecd restart
Stopping hcsecd.
Waiting for PIDS: 1527.
Starting hcsecd.
ussr#
Код: Выделить всё
ussr# l2ping -a siemens-sl56 -c 10
44 bytes from siemens-sl56 seq_no=-189836477 time=770.142 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=39.804 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=41.823 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=41.809 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=21.817 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=39.803 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=12.820 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=31.799 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=39.780 ms result=0
44 bytes from siemens-sl56 seq_no=-189836477 time=52.796 ms result=0
ussr#
Пингуем нокию:
Код: Выделить всё
ussr$ l2ping -a nokia-6085 -c 10
0 bytes from nokia-6085 seq_no=0 time=1735.944 ms result=0
0 bytes from nokia-6085 seq_no=1 time=40.785 ms result=0
0 bytes from nokia-6085 seq_no=2 time=41.793 ms result=0
0 bytes from nokia-6085 seq_no=3 time=28.797 ms result=0
0 bytes from nokia-6085 seq_no=4 time=33.751 ms result=0
0 bytes from nokia-6085 seq_no=5 time=15.815 ms result=0
0 bytes from nokia-6085 seq_no=6 time=35.798 ms result=0
0 bytes from nokia-6085 seq_no=7 time=37.789 ms result=0
0 bytes from nokia-6085 seq_no=8 time=45.792 ms result=0
0 bytes from nokia-6085 seq_no=9 time=37.792 ms result=0
ussr$
Дальше интересней. Из всего что удалось найти для работы с содержимым телефона, как я уже и писал выше, была консольная утилита. Ставим:
Код: Выделить всё
ussr$ cd /usr/ports/
ussr$ make search key='OBEX'
Port: obexapp-1.4.8
Path: /usr/ports/comms/obexapp
Info: Obex application to transfer objects to mobile equipment
Maint: mad@madpilot.net
B-deps: libiconv-1.11_1 openobex-1.3_1
R-deps: libiconv-1.11_1 openobex-1.3_1
WWW:
Port: openobex-1.3_1
Path: /usr/ports/comms/openobex
Info: Open source implementation of the OBEX protocol
Maint: mad@madpilot.net
B-deps: autoconf-2.61_2 autoconf-wrapper-20071109 automake-1.4.6_4 automake-wrapper-20071109 gettext-0.16.1_3 gmake-3.81_2 libiconv-1.11_1 libtool-1.5.24 m4-1.4.9,1 perl-5.8.8_1
R-deps:
WWW: http://openobex.sourceforge.net/
ussr$ cd /usr/ports/comms/obexapp
ussr$ su
ussr# make install clean
.... skipped ...
ussr# exit
ussr$ rehash
ussr$
Код: Выделить всё
ussr$ obexapp -c -a nokia-6085 -C ftrn
obex>
obex> ?
CApability, CD, DElete, DIsconnect, Empty, GET, GETDefault, Ls, Mkdir, Put?
obex> ls
Access Owner Group Size Modified Name
RW n/a n/a n/a n/a Victoriya/
R n/a n/a n/a n/a Графика/
R n/a n/a n/a n/a Музыка/
RW n/a n/a n/a n/a Темы/
R n/a n/a n/a n/a Сигналы/
R n/a n/a n/a n/a Видео/
R n/a n/a n/a n/a Фото/
R n/a n/a n/a n/a Записи/
R n/a n/a n/a n/a Прн файлы/
Success, response: OK, Success (0x20)
obex>
obex> cd Прн\ файлы/
obex> put /mnt/shares/movie/other/others/muzik/viktoriya/Алла\ пугачёва-прости поверь.mp3
Success, response: OK, Success (0x20)
obex> ls
Access Owner Group Size Modified Name
..
RWD n/a n/a 3637619 17-Feb-08 00:49 Алла пугачёва-прости поверь.mp3
Success, response: OK, Success (0x20)
obex>
Дальнейшее раскуривание мана по obexapp привело к знанию о том, что прога может принимать имя файла как параметр, и его класть на удалённый телефон в неинтерактивном режиме. Это было интересней. Через полчаса скриптописательства родилось такое:
Код: Выделить всё
ussr#
ussr# more /root/scripts/nokia.upload.sh
#!/bin/sh
icon="/usr/local/share/doc/xdialog/samples/warning.xpm"
# Заливаем
for file in "$@"
do
/usr/local/bin/obexapp -c -a nokia-6085 -C opush -n put "${file}"
rezult=$?
# Проверяем результат
if [ $rezult -eq 0 ]
then
# удачно
/usr/local/bin/Xdialog --title "Заливка файла удачна" \
--icon ${icon} --msgbox \
"Удачная закачка файла: \n ${file}" 0 0 &
else
# неудачно...
/usr/local/bin/Xdialog --title "Ошибка закачки" \
--icon ${icon} --msgbox \
"Ошибка при закачке файла: \n ${file}" 0 0 &
fi
done
ussr#


ussr# more /usr/home/viktoriya/Desktop/nokia.desktop
Код: Выделить всё
[Desktop Entry]
Comment=
Comment[ru]=
Exec=/root/scripts/nokia.upload.sh
GenericName=
GenericName[ru]=
Icon=staroffice
MimeType=
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
X-DCOP-ServiceType=
X-KDE-SubstituteUID=false
X-KDE-Username=
ussr#
Всё. На всё про всё - часа два. Вечером к компу было не прорваться - музыка текла рекой, долез тока ночью. Ночью же и писал

P.S. Скрипт требует порт /usr/ports/x11/xdialog, но работать будет и без него - тока окошек не будет.
P.S.2 Прога умная - перекодировку имён осуществляет сама. Так что на эту тему мона не беспокоиться.
P.S.3 Система такая:
Код: Выделить всё
ussr# uname -a
FreeBSD ussr.lissyara.int.otradno.ru 6.3-RELEASE FreeBSD 6.3-RELEASE #0: Sun Jan 20 09:47:57 MSK 2008
lissyara@ussr.lissyara.int.otradno.ru:/usr/obj/usr/src/sys/color-console i386
ussr#