|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Мелочи
—> BlueTooth
Как закинуть файлы на Нокию из-под FreeBSD.
Автор: lissyara.
Итак. В наличии - Жена, её Нокия, FreeBSD 6.3 на десктопе, музыка на нём же, и желание жены же эту музыку получить в телефоне. Телефон имеет голубозубый интерфейс - BlueTooth.
Краткий поиск по инету навёл на немало статей про подключение жопореза через такое соединение, и пару описаний про консольную утилиту из портов, с интерфейсом типа 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
| Чтобы она не была угеном (ugen0 =)), предварительно были подгружены и прописаны в /boot/loader.conf модули:
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"
| И ребутаемся, или выполянем пачку действий из всё тех же древних инструкций, с учётом что нужные скрипты уже есть в /etc/rc.d/. Я ребутнулся, не продакшен, десктоп всё же.
После чего смотрим - чё у нас в округе:
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$
| Пока колупался - один девайс пропал - видать кто-то мимо проходил =). Оставшиеся два - собсно телефон жены, и Siemens-SL56 - стационарный телефон - в нём тоже оказался синий зуб, к тому же работающий и включенный.
Прописываем их в /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$
| И в /etc/bluetooth/hcsecd.conf - файл конфигурации
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";
}
| И рестартуем даемона hcsecd:
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/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 GUI". Полезного запрос ничё не принёс - тока пару утилит для работы с телефонами через шланги - СОМ или USB - когда девайс виден как модем... Тот же COM. Про голубые зубы ничё не было.
Дальнейшее раскуривание мана по obexapp привело к знанию о том, что прога может принимать имя файла как параметр, и его класть на удалённый телефон в неинтерактивном режиме. Это было интересней. Через полчаса скриптописательства родилось такое:
ussr#
ussr# more /root/scripts/nokia.upload.sh
#!/bin/sh
icon="/usr/local/share/doc/xdialog/samples/warning.xpm"
# Заливаем
/usr/local/bin/obexapp -c -a nokia-6085 -C opush -n put "$@"
rezult=$?
# Проверяем результат
if [ $rezult -eq 0 ]
then
# удачно
/usr/local/bin/Xdialog --title "Заливка файла удачна" \
--icon ${icon} --msgbox \
"Удачная закачка файла: \n $@" 0 0 &
else
# неудачно...
/usr/local/bin/Xdialog --title "Ошибка закачки" \
--icon ${icon} --msgbox \
"Ошибка при закачке файла: \n $@" 0 0 &
fi
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:/usr/obj/usr/src/sys/color-console
i386
ussr#
| Под восьмёркой amd64 тока настраивал сам зуб и пинговал телефон, файлы не кидал - лениво.
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?t=7166.
размещено: 2008-02-18,
последнее обновление: 2008-12-23,
автор: lissyara
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN
На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm
Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth"a
Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli
Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master
MySQL (Master Master) and (Master Slave) Как настроить репликацию…
|
Комментарии пользователей [15 шт.]