Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Русификация
  COM-порт
  Монтирование образов
  dd
  burncd
  Консоль
  polling
  redirect_port
  wolf3d
  W.O.L.
  HDD->HDD
  bsdstats
  pdf в html
  monitord
  monit
  dvd в avi
  LAM
  Контроль провайдера
  pppd
  ru man
  geom_uzip
  colorize
  nettop
  немного о ssh
  установка по сети
  ClamAV mirror
  BlueTooth
  WiFi WPA
  iftop
  iPod
  2 CD -> 1 DVD
  ipcalc
  LACP и VLAN
  FFS из-под WinXP
  queues
  NFS & Win2k3
  Dynamic DNS
  ProFTPD+iconv
  deltup, xdelta, bdelta
  Приглашение csh/tcsh
  настрока bash
  Lan over Bluetooth
  pppoe
  метаданные exif
  dd : бэкапируем windows
  mozilla autoconfig
  Proxy Auto Configuration
  NNTP сервер
  Rinetd
  ISO DVD FreeBSD
  my disc1
  sftp+chroot
  SendXMPP
  APCUPSD
  Видеонаблюдение
  Настройка аудиоплеера на ximp3
  HDD(mbr) -> HDD(gpt)
  mc 4.6.2
  Динамический DNS
  axel
  LiveCD
  NAS на MPD
  backup конфигов на почту
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


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 тока настраивал сам зуб и пинговал телефон, файлы не кидал - лениво.



Ссылка на обсуждение: Incorrect URL.

размещено: 2008-02-18,
последнее обновление: 2008-12-23,
автор: lissyara

оценить статью:

muzzy, 2008-02-18 в 8:53:34

Достойный скрипт, в остальном все как в мане :)

lazyklimm, 2008-02-18 в 15:11:36

я не стал заморачиваться и купил кардридер, благо у сестры в нокию карточка втыкивается

Alive, 2008-02-19 в 12:20:20

Спасибо. Яркий пример того, что жена бывает не только вредной, но и полезной.

Василий, 2008-02-19 в 13:00:33

Так для картридера ж приётся руки тянуть к телефону, к карте, к ридеру.

Вопрос не в тему: на что намекает color-console? Всегда объходился без компиляции ядра для цветов в консоли. ;-)

gloom, 2008-02-19 в 13:18:59

Интересно http://sourceforge.net/projects/kde-bluetooth
работает в freebsd?
В портах нету :(

lissyara, 2008-02-19 в 14:08:10

от на это намекает
Люблю ядрышко цветное, а не просто белое =)

azu, 2008-02-19 в 21:14:00

kde-bluetooth: A collection of Bluetooth utilities and modules for KDE based on BlueZ.

Вот это голубоеZ кажется тянет корнями к реализации синезубого стека в линухсе.

Manefesto, 2008-02-20 в 8:13:31

Можно попытатся слабать гуёвину на PyQt или PerlQt

Kash, 2008-02-24 в 12:12:29

Хм, я у себя обошелся загрузкой только ng_ubt модуля, и добавлением в netstart
/etc/rc.d/bluetooth start ubt0
скриптик сам подгружает все неоходимые модули, работает замечательно.
Статья отличная, спасибо.

P.S.: /etc/rc.d/bluetooth 100% есть в 6.3, на более ранних версиях не смотрел. :)

lissyara, 2008-02-24 в 12:14:42

Первое же обновление системы и все ваши правки улетят в газенваген.
Юзайте штатные средства, а не создавайте помойку там где живёте. Потом сами же проблем огребёте...

Kash, 2008-02-24 в 12:38:07

Да, с netstart'ом я действительно лохонулся. :(
Смотрим devd.conf и видим.
...
# When a USB Bluetooth dongle appears activate it
attach 100 {
   device-name "ubt[0-9]+";
   action "/etc/rc.d/bluetooth start $device-name";
};
detach 100 {
   device-name "ubt[0-9]+";
   action "/etc/rc.d/bluetooth stop $device-name";
};
...
Т.е. скрипт запускается на автопилоте.

AD, 2008-03-06 в 12:34:17

Круто! Фурычит, по после закидывания файла на устойство. (E-ten X500 в моём случае) KDE ещё секунд 30 пытается запустить этот скрипт. Хотя диалоговое окно уже всплыло (Переписал на инглиш сообщения - у мну абракадабра вылазила) и было успешно закрыто.

TheFeaR, 2008-05-26 в 16:05:04

  R       n/a      n/a      n/a        n/a              Прн файлы/

=)))))))

turka, 2008-08-14 в 17:46:28

где-то в переписки freedsd.org нашёл, что в 6.3 и 7.0 блютуз пускается новым способом спомощью bluetooth.device.conf. А щас найти не могу может кто знает

delpass, 2009-10-20 в 17:11:33

Думаю логичней было бы добавить в меню отправить.
Или в кедах такого меню нет?


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

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&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 15 чел.
За последние 30 мин было: 45 человек
За сегодня было
98 показов,
26 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.16 секунд
Из них PHP: 62%; SQL: 38%; Число SQL-запросов: 77 шт.
Исходный размер: 144562; Сжатая: 25965