Как настроить bluetooth и dial-up Интернет в Kubuntu и Mandriva
Переходим в консоль и в режим суперпользователя: > su Password: [вводим пароль суперпользователя] #
После этого с помощью любого текстового редактора (или с помощью Krusader с режиме суперпользователя) редактируем файл /etc/bluetooth/hcid.conf , например: # kate /etc/bluetooth/hcid.conf
Меняем в этом файле в разделе: # Default link mode # none - no specific policy # accept - always accept incoming connections # master - become master on incoming connections, # deny role switch on outgoing connections lm accept;
последнюю строку на lm accept, master;
(это необходимо для того, чтобы наше устройство становилось главным при Bluetooth-соединении). Даем команду обращения к USB-Bluetooth адаптеру компьютера и получаем вывод наподобие следующего: # hciconfig -a hci0: Type: USB BD Address: 00:0A:94:02:22:1E ACL MTU: 384:8 SCO MTU: 64:8 UP RUNNING AUTH ENCRYPT RX bytes:478 acl:0 sco:0 events:34 errors:0 TX bytes:380 acl:0 sco:0 commands:26 errors:0 Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80 Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 Link policy: RSWITCH HOLD SNIFF PARK Link mode: SLAVE ACCEPT Name: 'dellhost' Class: 0x100100 Service Classes: Device Class: Computer, Uncategorized HCI Ver: 1.1 (0x1) HCI Rev: 0x7a6 LMP Ver: 1.1 (0x1) LMP Subver: 0x7a6 Manufacturer: Cambridge Silicon Radio (10)
Здесь: BD Address: 00:0A:94:02:22:1E - уникальный адрес Bluetooth-устройства, которое имеется в нашем компьютере, UP RUNNING AUTH ENCRYPT - служба работает, включено шифрование. Включаем Bluetooth службу на телефоне (обычно где-то Bluetooth -> Включить). На телефоне появляется значок Bluetooth. Сканируем на наличие вблизи компьютера доступных Bluetooth-устройств: # hcitool scan
При этом обнаруживается наш телефон: # hcitool scan Scanning ... 00:0F:DE:82:22:87 S700i
Здесь 00:0F:DE:82:22:87 - BD-адрес телефона, который будет активно нами использоваться, его нужно запомнить, S700i - имя телефона, которое прописано в настройках Bluetooth телефона. Осуществляем проверку надежности передачи пакетов между компьютером и телефоном: # l2ping 00:0F:DE:82:22:87
Компьютер запрашивает, соединиться ли с телефоном - отвечаем да, вводим любой PIN-код (например: 7777). Затем телефон запрашивает: добавить ли dellhost (т.е. то имя компьютера, которое Вы задали выше, в настройках Bluetooth) в список доступных устройств - отвечаем: да, вводим на телефоне тот же PIN-код. Получаем на экране ряд сообщений, нажимаем через несколько секунд Ctrl-C. Имеем что-то вроде этого: # l2ping 00:0F:DE:82:22:87 Ping: 00:0F:DE:82:22:87 from 00:0A:94:02:22:1E (data size 44) ... 0 bytes from 00:0F:DE:82:22:87 id 0 time 52.77ms 0 bytes from 00:0F:DE:82:22:87 id 1 time 36.25ms 0 bytes from 00:0F:DE:82:22:87 id 2 time 33.06ms 0 bytes from 00:0F:DE:82:22:87 id 3 time 34.14ms 0 bytes from 00:0F:DE:82:22:87 id 4 time 31.99ms 0 bytes from 00:0F:DE:82:22:87 id 5 time 40.03ms 0 bytes from 00:0F:DE:82:22:87 id 6 time 35.94ms 0 bytes from 00:0F:DE:82:22:87 id 7 time 36.89ms 0 bytes from 00:0F:DE:82:22:87 id 8 time 34.83ms 0 bytes from 00:0F:DE:82:22:87 id 9 time 34.78ms 0 bytes from 00:0F:DE:82:22:87 id 10 time 33.71ms 11 sent, 11 received, 0% loss
Надпись 0% loss означает, что передача идет без потери данных. Хорошо. Можно (но это не обязательно) посмотреть дополнительную информацию о Bluetooth-модуле телефона: # hcitool info 00:0F:DE:82:22:87 Requesting information ... BD Address: 00:0F:DE:82:22:87 Device Name: S700i LMP Version: 1.1 (0x1) LMP Subversion: 0x9240 Manufacturer: Philips Semiconductors (37) Features: 0xff 0x3b 0x01 0x00 0x00 0x00 0x00 0x00 <3-slot packets> <5-slot packets>
Узнаем теперь, какие службы предоставляет телефон через Bluetooth: # sdptool browse 00:0F:DE:82:22:87
Если эта команда не заработает, запускаем сначала соответствующий демон sdpd, а потом - команду: # sdpd # sdptool browse 00:0F:DE:82:22:87
Получаем вывод очень подробной информации о модуле Bluetooth телефона, что-то наподобие нижеприведенного: Browsing 00:0F:DE:82:22:87 ... Service Name: Dial-up Networking Service RecHandle: 0x10000 Service Class ID List: "Dialup Networking" (0x1103) "Generic Networking" (0x1201) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 1 Profile Descriptor List: "Dialup Networking" (0x1103) Version: 0x0100
Service Name: HS Voice Gateway Service RecHandle: 0x10002 Service Class ID List: "Headset Audio Gateway" (0x1112) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 4 Profile Descriptor List: "Headset" (0x1108) Version: 0x0100
Service Name: Serial Port Service RecHandle: 0x10003 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 2
Service Name: Serial Port 2 Service RecHandle: 0x10004 Service Class ID List: "Serial Port" (0x1101) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 3
Service Name: OBEX Object Push Service RecHandle: 0x10005 Service Class ID List: "OBEX Object Push" (0x1105) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 6 "OBEX" (0x0008) Profile Descriptor List: "OBEX Object Push" (0x1105) Version: 0x0100
Service Name: OBEX IrMC Sync Server Service RecHandle: 0x10006 Service Class ID List: "IrMC Sync" (0x1104) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 8 "OBEX" (0x0008) Profile Descriptor List: "IrMC Sync" (0x1104) Version: 0x0100
Service Name: OBEX Basic Imaging Service RecHandle: 0x1000a Service Class ID List: "Imaging Responder" (0x111b) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 9 "OBEX" (0x0008) Profile Descriptor List: "Imaging" (0x111a) Version: 0x0100
Service Name: OBEX File Transfer Service RecHandle: 0x1000d Service Class ID List: "OBEX File Transfer" (0x1106) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 7 "OBEX" (0x0008) Profile Descriptor List: "OBEX File Transfer" (0x1106) Version: 0x0100
Service Name: HF Voice Gateway Service RecHandle: 0x1000e Service Class ID List: "Handfree Audio Gateway" (0x111f) "Generic Audio" (0x1203) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 5 Profile Descriptor List: "Handsfree" (0x111e) Version: 0x0101
Service Name: OBEX SyncML Client Service RecHandle: 0x10018 Service Class ID List: "Error: This is UUID-128" (0x00000002-0000-1000-8000-0002ee000002) Protocol Descriptor List: "L2CAP" (0x0100) "RFCOMM" (0x0003) Channel: 15 "OBEX" (0x0008)
Service Description: S700 series Service RecHandle: 0x1001b Service Class ID List: "PnP Information" (0x1200)
Service Name: Mouse & Keyboard Service Description: S700 Service Provider: Sony Ericsson Service RecHandle: 0x1001c Service Class ID List: "Human Interface Device" (0x1124) Protocol Descriptor List: "L2CAP" (0x0100) PSM: 17 "HIDP" (0x0011) Language Base Attr List: code_ISO639: 0x656e encoding: 0x6a base_offset: 0x100 Profile Descriptor List: "Human Interface Device" (0x1124) Version: 0x0100
Для выхода в интернет будем использовать службу Dial-up Networking.В листинге она указана первой, причем подключена она на канале 1 (Channel: 1) и обеспечивает доступ через радио-com порт ("RFCOMM" (0x0003)) Проверяем, есть ли у нас уже в системе на компьютере порты для Bluetooth (которые могут уже быть настроены на работу с другими устройствами, поэтому будьте внимательны при назначении имени порта): # ll /dev/rfcomm* /bin/ls: /dev/rfcomm*: Нет такого файла или каталога
Таких устройств у нас пока нет. Поэтому создадим /dev/rfcomm0 для постоянной работы с нашим телефоном (имеющим адрес 00:0F:DE:82:22:87) по каналу 1 (которому соответствует служба Dial-up Networking): # rfcomm bind rfcomm0 00:0F:DE:82:22:87 1
(Если бы нужно было создать устройство только для однократного соединения с телефоном, то надо было бы дать команду: # rfcomm connect rfcomm0 00:0F:DE:82:22:87 1
). Проверяем, правильно ли работает канал: # rfcomm show rfcomm0: 00:0F:DE:82:22:87 channel 1 clean
Далее необходимо отредактировать файл /etc/bluetooth/rfcomm.conf - для того, чтобы каждый раз при запуске Bluetooth происходила автоматическая привязка к Bluetooth порту нашего мобильного телефона (т.е. к rfcomm0). В данном файле в разделе rfcomm0 { # Automatically bind the device at startup bind no;
последнюю строку меняем на bind yes;
Указываем также в этом файле BD-адрес нашего телефона и номер канала соединения, меняя соответствующие строки в разделах: # Bluetooth address of the device device 00:0F:DE:82:22:87;
# RFCOMM channel for the connection channel 1;
Далее необходимо сделать так, чтобы служба Bluetooth запускалась при каждом запуске системы. Проще всего это сделать в KDE меню -> YaST (Центр управления) -> Система -> Системные службы (Runlevel)... Системные службы (Уровень выполнения): службы. Выбираем "Экспертный режим" В "Экспертном режиме" выделяем bluetooth Внизу, в разделе "Служба будет запущена в следующих уровнях", выбираем: 3 и 5 (а также 2, если Вы когда-либо работаете на этом уровне). Завершить Часть 2. Настройка соединения с интернетом через мобильный телефон посредством GPRS Теперь настраиваем GPRS соединение с интернетом через Bluetooth. Это можно сделать различными способами - для каждого из них устройство /dev/rfcomm0 будет фигурировать как модем. Ниже приведено описание подключения в графической среде KDE 3.5.1 с использованием утилиты kppp. Подключение другим способом (например, через KInternet) будет во многом аналогичным. Вызываем kppp: KDE меню -> Интернет -> Телефонное соединение (т.е. kppp) Первый вызов kppp от имени конкретного пользователя сразу дает ошибку: "Недостаточно прав для запуска /usr/sbin/pppd Убедитесь, что владельцем kppp является root и SUID-бит установлен" (это особенность настроек по умолчанию дистрибутива SuSE 10.1, в других дистрибутивах, например, Mandriva 2006, настройки по умолчанию таковы, что данный этап можно пропустить, перейдя сразу к настройке kppp для доступа в интернет). Исправляем ситуацию. В консоли проверяем, какие права на доступ имеются у файла /usr/sbin/pppd : # ls -l /usr/sbin/pppd -rwxr-xr-x 1 root dialout 291796 2006-04-23 06:38 /usr/sbin/pppd
Действительно, для файла не установлен бит SUID - "Set user ID on execution" (s), который позволяет запускать данный файл не его владельцуу-суперпользователю, а другим пользователям. Устанавливаем данный бит: # chmod u+s /usr/sbin/pppd
Проверяем, что получилось: # ls -l /usr/sbin/pppd -rwsr-xr-x 1 root dialout 291796 2006-04-23 06:38 /usr/sbin/pppd
Заодно разрешаем и утилиту kppp запускать от имени не-суперпользователя (в противном случае будет появляться сообщение об ошибке: "Невозможно создать lock-файл для модема"). Смотрим в консоли, где находится программа kppp: # whereis kppp kppp: /opt/kde3/bin/kppp
Получаем информацию о kppp, исходя из указанного расположения: # ls -l /opt/kde3/bin/kppp -rwxr-xr-x 1 root root 571236 2006-05-02 15:49 /opt/kde3/bin/kppp
Проверяем еще раз: # ls -l /opt/kde3/bin/kppp -rwsr-xr-x 1 root root 571236 2006-05-02 15:49 /opt/kde3/bin/kppp
Теперь запускаем вновь kppp и настраиваем соответствующие поля для доступа в интернет KDE меню -> Интернет -> Телефонное соединение (kppp) Настроить... Параметры kppp: Соединения... Создать... Ручная настройка: Имя соединения: Megafon-GPRS [вводим желаемое имя] Номер телефона: Добавить: *99# Авторизация: PAP/CHAP Сохранить пароль: да Тип Callback, нет Модемы... Создать... Устройство Имя модема: S700i-gprs [вводим желаемое имя для модема] Устройство модема: /dev/rfcomm0 Управление потоком: Программное (XON/XOFF) Окончание строки: CR Скорость соединения: 115200 Использовать lock-файл: да Тайм-аут модема: 120 с Модем Дождаться сигнала в линии перед набором номера: нет Ожидание при занятой линии: 0 с Громкость динамика модема: среднее [значения не имеет] Команды модема... Редактирование команд модема... Строка инициализации 1: AT+CGDCONT=1, "IP", "internet.nw" OK Внимание! Строка инициализации указана для Северо-Западного Мегафона - Санкт-Петербург, Ленинградская область и т.д. Для других операторов и регионов отличие в скрипте подключения будет заключаться прежде всего в указании параметра, который называется APN (access point name - имя точки доступа). В данном примере это - internet.nw (в строке инициализации его надо прописать в двойных кавычках). Информацию об APN см. прежде всего на официальных сайтах операторов связи в разделах "Настройка GPRS" (у "СЗ-Мегафона" он находится в разделе "Абонентам - Настройки мобильных телефонов - Мобильный интернет GPRS"; для Москвы имеется специальный раздел сайта - "Автоматическая настройка телефонов для GPRS" - использовав эту службу, можно посмотреть потом APN в настройках телефона). Например, для МТС по всей России APN должно быть internet.mts.ru, тогда строка инициализации 1 будет выглядеть так: AT+CGDCONT=1, "IP", "internet.mts.ru" OK См. также очень полезный сайт "Linux Mobile"; в частности, раздел "Статьи". Строки инициализации для разных разных операторов связи можно посмотреть в тексте скриптов, которые можно загрузить с этой страницы указанного сайта. По состоянию на август 2006 года строки инициализации из указанных скриптов для отдельных регионов были нижеследующие (автором данной статьи не тестировались!): Оператор Регион APN Билайн Все по России internet.beeline.ru Мегафон Москва, т.п. "Лайт" internet.ltmsk Мегафон С-Петербург и Сев-Зап internet.nw МТС Все по России internet.mts.ru Приведенная выше строка инициализации подходит для большинства моделей мобильных телефонов. В противном случае см. сайт "Linux Mobile". Строка инициализации 2: [пусто] Опросить модем... Результаты опроса модема: ATI: S700 series ATI1: CXC125935 ATI2: ATI3: Sony Ericsson S700 Bluetooth Modem ATI4: ATI5: Configuration Settings on Channel 0 &C: 1 &D: 0 *EIAC: 1,1,"MegaFon WAP GPRS" *EIAC: 2,1,"MegaFon MMS GPRS" *EIAC: 3,1,"Megafon gprs" *ELIN: 1 +CBST: 0,0,1 +CDIP: 0,2 +CGACT: 1, 0 +CGACT: 2, 0 +CGACT: 3, 0 +CGATT: 0 +CGDCONT: 1,"IP","intern... ATI6: ATI7: ATI8: Modem Configuration Profile Product Type Terminal Adapter Interfaces Bluetooth, IrDA, RS-232 Options OBEX, PPP, RLP, V42bis Разное Тайм-аут pppd: 60 с Встроить в панель при соединении: да Автодозвон при разъдинении: да Автодозвон при NO CARRIER: нет Показывать время в строке заголовка: да Разъединиться при остановке X-сервера: да Выход при разъединении: нет Свернуть окно при соединении: да Теперь в главном окне kppp выбираем: Соединение с: Megafon-GPRS Имя пользователя: inet [можно указать любое другое, значения не имеет] Пароль: inet [можно указать любой, значения не имеет] Показать окно журнала: да Подключиться... Если все было сделано правильно, происходит подключение (справа внизу появится значок kppp). Можно работать в интернете.