В рамках проекта Google Summer of Code 2010 подготовлена первая публичная версия инструментария bluez-tools (http://code.google.com/p/bluez-tools/). Данный проект представляет из себя набор утилит для работы с bluetooth-устройствами в ОС Linux. Проект написан на языке Си и использует D-Bus-интерфейс bluez и obexd.
Основной список возможностей:
- Просмотр доступных адаптеров;- Просмотр и изменение параметров выбранного адаптера (имя, режимы, таймауты и т.д.);- Поиск bluetooth устройств;- Управление входящими запросами от других устройств (запрос пин-кода, подтверждение авторизации сервиса и т.д.);- Просмотр добавленных устройств;- Добавление/удаление/спаривание bluetooth устройств;- Просмотр и изменение параметров выбранного устройства (имя, "блокирование", "доверенность" и т.д.);- Поиск доступных сервисов на устройстве;- Соединение с audio/input/serial/network сервисами;- Регистрация сервера GN/PANU/NAP;- Мониторинг событий bluetoothd (путем захвата D-Bus ...URL: http://code.google.com/p/bluez-tools/
Новость: http://www.opennet.me/opennews/art.shtml?num=27629
Опять какие-то низкоуровневые утилиты делают. Сделали бы уже утилиту для работы с адресной книгой, ммс, историей и т.д.
А то норм. проги так и нет. Понятное дело что каждый производитель то хочет то и делает в своем телефоне, но все же ... проги то нету...
Где вы нашли слово "телефон" в новости?
>Опять какие-то низкоуровневые утилиты делают. Сделали бы уже утилиту для работы с
>адресной книгой, ммс, историей и т.д.
>А то норм. проги так и нет. Понятное дело что каждый производитель
>то хочет то и делает в своем телефоне, но все же
>... проги то нету...Ну так... кто мешает.
API открыт, языки есть.
Садитесь и пишите)А вообще, рекомендую молиться не о проге, а о библиотеке.
Прогу вам напишут.
Красивую.
GUI'шную.
На питоне.
С привязкой к Qt/GTK.
И будете куковать.А если будет библиотека с API, то энтузиасты смогут написать программ на любой вкус.
И для десктопов, и для телефонов, и даже для серверов =)
ага, только вот библиотек уже завались, а прог нету :)
+1 В нашем линухе все так... платформа хорошая, библиотеки есть, а хорошего прикладного ПО по пальцам пересчитать можно.
P.S. Сделай сам не катит. Я и так уже много делаю.
из чего следует - мало делаешь.
Год назад был очень удивлен не найдя консольной утилиты для спаривания с Bluetooth-телефоном. Пришлось какой-то Gnome-апплет ставить. IMHO, Bluetooth - этот как раз то исключение, когда в GUI уже все прекрасно настраивается, а грамотных консольных утилит нет.
>Год назад был очень удивлен не найдя консольной утилиты для спаривания с
>Bluetooth-телефоном. Пришлось какой-то Gnome-апплет ставить.hcitool, sdptool. Например, hcitool scan.
> hcitool, sdptool. Например, hcitool scan.Ага, телефон замечательно находится, видится, только PIN негде ввести... консольное спаривание сломали...
Точно, помню для спаривания в консоли пришлось скрипт выплевывающий пароль писать и его хитро вызывать из какой-то утилиты.
Это сломано уже три года. Я решил проблему так: ищу компьютер с телефона, тогда окно ввода PIN не пропадает через мгновение.
Так вам производители и рассказали как синхронизировать их устройства с компьютером, ага. И спеки вышлют. И денег дадут на развитие утилиты.
Держи карман шире.ЗЫ. А новость не про телефоны.
Не нравиться, пишите сами, благо консольных утилит хватает для работы конкретно с телефоном. Я например использую собственный скрипт для быстрого бэкапа всего телефона, и для авторизации автоматического блокирования/разблокирования экрана при отсутствии меня и телефона рядом с ПК.
Утилита данная очень даже нужна и полезна, если надо разработать приложение. Bluez API практически не задокументирован и непрост для освоения. А вообще на Яве неплохо было бы открытую библиотеку разработать для синих зубов.
>Утилита данная очень даже нужна и полезна, если надо разработать приложение. Bluez
>API практически не задокументирован и непрост для освоения. А вообще на
>Яве неплохо было бы открытую библиотеку разработать для синих зубов.На ентерпрайзной.
Чтобы с tomcat и mysql)
Очень хорошый набор утилит. Без проблем прикрутил инет со своего мобильника.
Поправка: очередной хороший набор утилит. Интернет с Bluetooth настроить мышью и без консоли можно стандартными средствами дистрибутива. Даже с недавних пор и в Ubuntu.
Подскажите пожалуйста как, а то в ubuntu 10.04 через граф. интерфейс получается только по кабелю, по bluetooth network-manager телефон как модем не видит.
Blueman ? :)
>Подскажите пожалуйста как, а то в ubuntu 10.04 через граф. интерфейс получается
>только по кабелю, по bluetooth network-manager телефон как модем не видит.
>Честно, не знаю, потому что Ubuntu не использую. В новостях о релизе 9.04 или 9.10 было сказано, что теперь можно. А как было раньше: https://help.ubuntu.com/community/BluetoothDialup
hcitool scan
sudo hcitool cc your-phone-mac-address
sudo hcitool auth your-phone-mac-address
sdptool browse your-phone-mac-address
Запоминаем значение RFCOMM у Dial-up Networking
gksudo gedit /etc/bluetooth/rfcomm.confrfcomm0 {
bind yes;
device your-phone-mac-address;
channel your-phone-rfcomm-channel;
comment "Bluetooth PPP Connection";
}sudo /etc/init.d/bluetooth restart
Всё добавлено. Устройство /dev/rfcomm0 можно использовать для синхронизации адресной книги и отправки SMS. А можно выйти в Интернет. Для этого делаем man wvdial.conf, копируем пример файла конфигурации в память, потому что в дебильной Убунте этот файл пустой. Заполняем поля по инструкции оператора связи. Затем sudo wvdial. Ура! Работает.
Я никогда не настраивал Bluetooth-интернет клавиатурой в полноценных дистрибутивах.
В 10.04 программы wvdial больше нет, потому что Dial-Up интернет стало можно настроить с помощью NetworkManager. Интересно, почему везде можно было настраивать его мышью, а в Ubuntu - нет? В полноценных дистрибутивах даже если какое-то средство настройки выполнено в псевдографике, для него есть пункт меню, и не нужно угадывать один файл из тысячи с ненастроенным Интернетом.
Что делать с 10.04?gksudo gedit /etc/ppp/peers/BluetoothDialup
debug
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/BluetoothDialup"
usepeerdns
/dev/rfcomm0 115200
defaultroute
crtscts
lcp-echo-failure 0gksudo gedit /etc/chatscripts/BluetoothDialup
TIMEOUT 35
ECHO ON
ABORT '\nBUSY\r'
ABORT '\nERROR\r'
ABORT '\nNO ANSWER\r'
ABORT '\nNO CARRIER\r'
ABORT '\nNO DIALTONE\r'
ABORT '\nRINGING\r\n\r\nRINGING\r'
'' \rAT
OK 'AT+CGDCONT=1,"IP","your-apn-here"'
OK ATD*99***your-data-profile-number-here#
CONNECT ""Вот так настраивается Интернет в самом "дружелюбном" к пользователю дистрибутиве Linux.
Я делал, по какой-то доке, примерно так:Узнаем адрес своего устройства
rjabinin@rjabinin-laptop:~$ hcitool scan
Scanning ...
18:86:AC:9D:AB:38 Nokia 5530 XpressMusicУзнаём номер канала, на котором висит Dial Up Network (DUN)
rjabinin@rjabinin-laptop:~$ sdptool search --bdaddr 18:86:AC:9D:AB:38 DUN | grep Channel
Channel: 22Затем создём во такой файл:
rjabinin@rjabinin-laptop:~$ cat /etc/bluetooth/rfcomm.conf
#
# RFCOMM configuration file.
#rfcomm0 {
# # Automatically bind the device at startup
bind yes;
#
# # Bluetooth address of the device
device 18:86:AC:9D:AB:38;
#
# # RFCOMM channel for the connection
channel 22;
#
# # Description of the connection
comment "Example Bluetooth device";
}Вообще-то "bind yes" должет биндить DUN-сервис на устройство /dev/rfcomm0 при загруске, но у меня этого не происходит.
Я каждый раз перед работой ввожу
rjabinin@rjabinin-laptop:~$ sudo rfcomm bind rfcomm0Зтем убунта 10.04 увидит этот самый /dev/rfcomm0 как обычный мобильник в ком-порту и сразу можно настроить подключение через network-manger. УРА!
Настройка закончена.
-------------------------------------------------------------------
Лично я пользую ppp:rjabinin@rjabinin-laptop:~$ cat /etc/chatscripts/provider
# This chatfile was generated by pppconfig 2.3.18.
# Please do not delete any of the comments. Pppconfig needs them.
#
# ispauth PAP
# abortstring
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
# modeminit
"" ATZ
"" AT+CGDCONT=1,"IP","internet"
#"" AT+CGDCONT=1,"IP","internet.mts.ru"
# ispnumber
OK ATDT*99#
# ispconnect
CONNECT \d\c
# prelogin# ispname
# isppassword
# postlogin# end of pppconfig stuff
rjabinin@rjabinin-laptop:~$ cat /etc/ppp/peers/provider
# This optionfile was generated by pppconfig 2.3.18.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
debug
/dev/rfcomm0
#/dev/ttyUSB2
115200
defaultroute
noipdefault
#user "ncc"
user "ncc"
ipparam providerusepeerdns
Запускаю соединение так:
rjabinin@rjabinin-laptop:~$ pon providerПосле этого мобильник спрашивает разрешение подключить к себе компьютер. Надо разрешить... :)
Результат:
rjabinin@rjabinin-laptop:~$ plog
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: not replacing existing default route via 192.168.137.1
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: Cannot determine ethernet address for proxy ARP
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: local IP address 94.240.89.179
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: remote IP address 10.6.6.6
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: primary DNS address 10.0.3.2
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: secondary DNS address 10.0.3.5
Aug 23 01:33:33 rjabinin-laptop pppd[2840]: Script /etc/ppp/ip-up started (pid 2857)
Aug 23 01:33:34 rjabinin-laptop pppd[2840]: Script /etc/ppp/ip-up finished (pid 2857), status = 0x0отключаемся так:
rjabinin@rjabinin-laptop:~$ poff providerrjabinin@rjabinin-laptop:~$ plog
Aug 23 01:34:31 rjabinin-laptop pppd[2840]: Sent 0 bytes, received 0 bytes.
Aug 23 01:34:31 rjabinin-laptop pppd[2840]: Script /etc/ppp/ip-down started (pid 2902)
Aug 23 01:34:31 rjabinin-laptop pppd[2840]: sent [LCP TermReq id=0x3 "User request"]
Aug 23 01:34:31 rjabinin-laptop pppd[2840]: rcvd [LCP TermAck id=0x3]
Aug 23 01:34:31 rjabinin-laptop pppd[2840]: Connection terminated.
Aug 23 01:34:32 rjabinin-laptop pppd[2840]: Script /etc/ppp/ip-down finished (pid 2902), status = 0x0
Aug 23 01:34:32 rjabinin-laptop pppd[2840]: Exit.
Лучше б Wayland кто-нибудь пилил бы, а то к инету уже сотней разных способов подключиться можно, а морда как рисовалась через анус эпической древности, так и рисуется. Только тулкитов поверх наворачивают, что б его не видеть.
Эээ, позвольте. Вот лучше бы *кто-нибудь* не пилил как раз, а то напилят-наломают дров и ничего приличного не выйдет. Иксы все ж таки долго живут, потому что делали с умом.
DUN (Dial-Up-Networking) в списке не вижу... 8-( Блин, для этих целей до сих пор приходится использовать старенький dund ещё из bluez-2.x...
Вообще dun поддерживается через bt-serial (входит в состав bluez-tools).
Сейчас пишу документацию для проекта, скоро все появится в wiki :)
Good. :) Если можно, как будет готово сюда свистнуть... А то, видимо, с новостью поторопились : прога вышла, а документация - нет... ;-)
Ну почему, небольшой мануал к каждой утилите написан (в тарболе).
Хорошо, напишу тут, как будет готово.
>DUN (Dial-Up-Networking) в списке не вижу... 8-( Блин, для этих целей до
>сих пор приходится использовать старенький dund ещё из bluez-2.x...А что, pppd в паре с тем же bluez и rfcomm уже не катит для таких целей?
>>DUN (Dial-Up-Networking) в списке не вижу... 8-( Блин, для этих целей до
>>сих пор приходится использовать старенький dund ещё из bluez-2.x...
>
>А что, pppd в паре с тем же bluez и rfcomm уже
>не катит для таких целей?Честно говоря, в своё время когда искал (потратив пару дней на гугла) солюшена, как подключать свой Palm через bluetooth, кроме как через dund не нашёл.
А солюшн такой. Запускается dund с опциями
--listen --persist --msdun --channel 1 call dunКак только Palm коннектится, он запускает pppd скриптец в /etc/ppp/peers/dun
И всё тип-топ. А как вы предлагается? (Принимаю только готовый рецепт, т.к. и так уже уйма времени была убита, и на гентушных форумах никто не ответил)
>И всё тип-топ. А как вы предлагается? (Принимаю только готовый рецепт, т.к.
>и так уже уйма времени была убита, и на гентушных форумах
>никто не ответил)К несчастью, именно Palm'ом никогда не обладал:-) Могу поделиться рецептом для обычной сотолыги)
У меня в /etc/bluetooth/rfcomm.conf:
rfcomm1 {
bind yes;
device 00:21:08:05:F0:71;
channel 1;
comment "Dial-up Networking";
}Для соединения запускается pppd:
pppd call gprs, где gprs - это файл /etc/ppp/peers/gprs следующего содержания (имя выбирается произвольно):
/dev/rfcomm1 115200
connect "usr/sbin/chat -v -f /etc/ppp/peers/gprs.chat"
noauth
local
ipcp-accept-local
ipcp-accept-remote
noipdefault
passive
mru 296
mtu 296
crtscts
lcp-max-configure 100
noipdefault
novj
novjccomp
nobsdcomp
nopcomp
noaccomp
defaultrouteДалее, $ cat /etc/ppp/peers/gprs.chat
ABORT "BUSY"
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
'' ATZ
# Modem init string
"OK" "AT+CGDCONT=1,\"IP\",\"internet\",\0.0.0.0\",0,0"
# Call number
"OK" "ATD*99#"
TIMEOUT 30Ну и пользователь-пароль: # cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
mobile * internetНастройки для Мегафона. Как-то так:-) Реализовано на голом bluez и pppd. Еще раз, команда в результате: pppd call gprs:-)
>У меня в /etc/bluetooth/rfcomm.conf:
>Настройки для Мегафона. Как-то так:-) Реализовано на голом bluez и pppd. Еще
>раз, команда в результате: pppd call gprs:-)Те же яйца, вид сбоку.
В bluez-2.x были соответствующие демоны, т.е. dund, который слушал входящее соединения, и ... запускал pppd call gprs :)
Зачем rfcomm (последовательный радиочастотный канал?) для моего Palm'а, я так и не понял: и без него работает. Проблема с Вашим решением, несмотря на то, что оно работает, то, что оно, как я понимаю, концептуально неверно: соединение инициируется со стороны сервера к клиенту (палм, мобила) --- в момент вызова pppd call, в то время как должно быть наоборот. Т.е. в случае моего палма, мне бы пришлось ещё на нём кнопочку нажимать, чтобы он ppp-соединение установил, помимо физического rfcomm, что плохо.
В bluez-3.x и дальше эти демоны стали deprecated, но, к счастью работают. Вместо демонов, стал возможным запуск требуемого сервиса, как только он требуется клиентом. Т.е. вообще всё работает на dbus/udev без всяких демонов! Например, от pand избавилсь так. Но почему-то для DUN такого сделать было нельзя (по крайней мере из коробки, без всяких питон-примочек). Вот я и надеюсь, что здесь это доделали...
>Те же яйца, вид сбоку.О чем и речь) С той лишь разницей, что решение, описанное мною, работает сейчас как работало и с ранними версиями bluez:-)
>Зачем rfcomm (последовательный радиочастотный канал?) для моего Palm'а, я так и не понял: и без него работает.
В чем разница между вашим Palm'ом и "обычным" сотовым телефоном в отношении rfcomm? Какое устройство из /dev/ используется в вашем решении?;-)
>Проблема с Вашим решением, несмотря на то, что оно работает, то, что оно, как я понимаю, концептуально неверно: соединение инициируется со стороны сервера к клиенту (палм, мобила) --- в момент вызова pppd call, в то время как должно быть наоборот. Т.е. в случае моего палма, мне бы пришлось ещё на нём кнопочку нажимать, чтобы он ppp-соединение установил, помимо физического rfcomm, что плохо.
Это, к сожалению, до конца не распарсил:-( Повторю, Palm'ы не юзал, поэтому не знаю о нажатии какой кнопочки идёт речь. В случае моей нокии есть возможность активировать на телефоне опцию "Автоподключение без подтверждения". То есть каждый раз при старте pppd тыкать кнопки на телефоне для разрешения подключения необязательно.
Что касается концептуальных просчетов, я не могу понять, как в таком случае должна работать система. Если мне на компьютере понадобился доступ в Интернет, я должен инициировать соединение с телефона? Это, во-первых, не всегда удобно, поскольку телефон может лежать в кармане брюк/рюкзака/etc, а, во-вторых, кажется мне концептуально неверным)))Трям-пам-пам:-)
Всё верно пишете: вы звоните на сотовый для доступа к интернету, тогда, конечно, труба -- это сервер и всё концептуально верно.В таком случае вам, действительно никакие DUN на десктопе (сервере) не нужны, т.к. афаик DUN (модем) уже есть в блютус-профиле вашей трубы.
С пальмой другая ситуация: это конечный (end-point) девайс (Tungsten T), т.е. у него имеется только блютус связь и всё (никаких gprs и т.п.). Поэтому "звонить" должен он, для того чтобы по интернету полазить, или для того чтобы синхронизацию данных сделать, т.е. пальма -- клиент, а "модем" (DUN) должен быть на десктопе, т.е. он попросту не умеет принимать "входящие", в отличие от сотового. Поэтому и надо было бы на нём, если использовать вашу схему, сначала установить канал rfcomm с десктопа, а затем "быстренько", пока он не разорвался пальмой, на пальме запустить ppp-соединение. Вот такие позы тоже бывают, но я таким не занимался, т.к. DUN с горем пополам настроил на машине. ;)
С другой стороны вам DUN может понадобиться, если, например, понадобится через десктоп выйти в интернет на мобиле (из-за дороговизны мобильного трафика, отрицательного баланса, или ещё по какой причине), то вам понадобится DUN. Правда, мобила тоже должна уметь так делать. Моя нокия 6630 так не умеет. %-)
Так и знал, что мы про разные вещи говорим)
Потребности в сёрфинге с телефона с использованием интернета, раздаваемого компьютером, не возникает, но хорошо, что возможность такая имеется)
Я-то ужеобрадовался, что ну наконец-то сделали! А ничего подобного. Очередная оболочка, такие уже 5 лет есть у Гнома и чуть больше у KDE. А насчёт оболочки для работы со всеми сервисами телефона, мыши и аудиогарнитуры, есть же программа! Только несвободная, но бесплатная. Об этом была новость несколько лет назад, только я не попробовал. Никто не помнит название?