Bluetooth + GPRS: выход в Интернет между прошлым и будущим

В нашей стране самый лучший Интернет - это служебный Интернет. Среднестатистический офисный сиделец в течение рабочего дня успевает и в аське поболтать, и файлы качнуть, и в вебе поблуждать. Иметь Инет еще и дома - дело неоправдвнно хлопотное. Романтика диалапа осталась в прошлом. До "будущего" - домашнего ADSL'я - российская провинция еще не доросла. Тем не менее, потребность выйти в Интернет с домашнего компьютера нет-нет да и есть-есть. Ну, там, в выходные почту проверить, в аське парой слов с далекими родственниками перекинуться. На этот случай, уважаемые камрады, придуманы сотовые телефоны с bluetooth'ом и поддержкой GPRS.

Собственно, статья на тему Как быстро настроить Internet over GPRS на Linux + Siemens S55 + Bluetooth уже написана линуксоидом по имени Alex Ott. Очень дельная и детальная, на русском языке. Поэтому, чтобы не прослыть лидер-боянистом, хочу лишь поделиться опытом по воплощению этих рекомендаций в жизнь.
Прежде всего, внимание нужно обратить на команду sdptool search DUN. Она выводит на экран консоли примерно следующее:

        Inquiring ...
        Searching for DUN on 00:01:E3:70:E0:AF ...
        Service Name: Dial-up networking
        Service RecHandle: 0x11103
        Service Class ID List:
          "Dialup Networking" (0x1103)
          "Generic Networking" (0x1201)
        Protocol Descriptor List:
          "L2CAP" (0x0100)
          "RFCOMM" (0x0003)
            Channel: 1
        Language Base Attr List:
          code_ISO639: 0x656e
          encoding:    0x6a
          base_offset: 0x100
        Profile Descriptor List:
          "Dialup Networking" (0x1103)
            Version: 0x0100

Здесь значение имеютна mac-адрес (в данном примере - 00:01:E3:70:E0:AF, но для кажного телефона, он, конечно же, индивидуальный) и Channel: 1 (не факт, что и у вас будет 1, у меня, например, оказался 2). Эти два параметра используются для связывания устройства rfcomm именно с вашим телефоном командой:

rfcomm bind 0 XX:XX:XX:XX:XX:XX Y

где XX:XX:XX:XX:XX:XX - ваш mac-адрес, а Y - ваш номер bluetooth-канала, который используется встроенным модемом сотового телефона для Dialup-соединения.

Существенные затруднения у для меня вызвал процесс ввода пин-кода для установки соединения с сотиком. Чтобы разрулить эту ситуацию пришлось редактировать файл /etc/bluetooth/hcid.conf. Там можно поэкспериментировать со строчкой security. Мне помогло значение auto. А вот значение none, которое, казалось бы, предназначается для входа без авторизации, оказалось "глючным": при нем телефон требовал пин-код и после ввода оного зависал.

#
# HCI daemon configuration file.
#
# HCId options
options {
 # Automatically initialize new devices
 autoinit yes;
 # Security Manager mode
 #   none - Security manager disabled
 #   auto - Use local PIN for incoming connections
 #   user - Always ask user for a PIN
 #
 security auto;
 ...

Не забудьте записать сам пин-код в файл /etc/bluetooth/pin. 

Ряд примечаний хочу сделать для тех, кто уже обнаруживает у себя первые признаки раннего склероза или маразма (к числу таких граждан в последнее время принадлежит и автор этих строк). На американском языке нижеследующие рекомендации назывались бы checklist. Телефон, во-первых, должен быть подключен к тарифу, предполагающему выход в Интернет и сама эта опция должна быть настроена. Прежде чем ломиться в сеть с компьютера убедитесь, например, что телефон "видит" wap-странички. На счету при этом должны быть ДЕНЬГИ. Во-вторых, GPRS и bluetooth на телефоне должны быть ВКЛЮЧЕНЫ. Советы вовсе не праздные и не шуточные: на то, чтобы понять, что я пытаюсь выйти в Интернет не с билайновской, а со смартовской симки (у меня "две в одной") ушло... ээээ ...несколько десятков минут.

В заключение нужно сказать еще об одной самостоятельно обнаруженной возможности. Чтобы не вводить каждый раз (да еще и от имени root'а) команду rfcomm bind 0 XX:XX:XX:XX:XX:XX Y, используйте файл /etc/bluetooth/rfcomm.conf. Если в нем параметр bind установить как yes, вписать правильные mac-адрес и номер канала, то привязка устройства будет происходить автоматически при загрузке системы.

#
# RFCOMM configuration file.
#
rfcomm0 {
 # Automatically bind the device at startup
 bind yes;
 # Bluetooth address of the device
 device 00:0D:41:12:6E:CE;
 # RFCOMM channel for the connection
 channel 2;
 # Description of the connection
 comment "Internet gateway";
}
Теперь для выхода в Интернет достаточно набрать в консоли
/usr/sbin/pppd call gprs

или оформить это соответствующим ярлычком на рабочем столе. Полномочий root'а для этого не требуется.

Интернет через GPRS работает, конечно же, не особо шустро, по скорости напоминая модемы конца 90-х. Однако если фильмы не качать, то вполне нормальное соединение. Фильмы качать луче, все-таки, через выделенный канал. Ну, типа того, который подключен в вашем офисе:).

Найти прикольный сувенир на Dumka.ru; футбольный клуб динамо; аренда блок контейнера: установка блок контейнеров - Контейнеры от СПК Ванда; соединительные линии; Новый год и новогодние туры