Подключение GPRS в Linux: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 38:
== Настройка компьютера ==
 
=== Настройка Bluetooth-соединения === 1) Вставить Bluetooth-модуль в USB-разъём, подгрузить необходимые модули ядра: # modprobe hci_usb 2) Редактировать файл /etc/bluetooth/hcid.conf. В моем случае я оставил файл практически без изменений, указав лишь свой pin_helper (об этом ниже): options { autoinit yes; security auto; pairing multi; '''pin_helper /usr/local/bin/bluepin.helper''' } device { name "%h-%d"; class 0x3e0100; iscan enable; pscan enable; lm accept; lp rswitch,hold,sniff,park; auth enable; encrypt enable; } bluepin.helper должен быть программой, печатающей строку вида "PIN:0000", где "0000" -- пароль доступа к компьютеру по Bluetooth. Для эти
=== Настройка Bluetooth-соединения ===
 
1) Вставить Bluetooth-модуль в USB-разъём, подгрузить необходимые модули ядра:
 
# modprobe hci_usb
 
2) Редактировать файл /etc/bluetooth/hcid.conf. В моем случае я оставил файл практически без изменений, указав лишь свой pin_helper (об этом ниже):
 
options {
autoinit yes;
security auto;
pairing multi;
'''pin_helper /usr/local/bin/bluepin.helper'''
}
device {
name "%h-%d";
class 0x3e0100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
auth enable;
encrypt enable;
}
 
bluepin.helper должен быть программой, печатающей строку вида "PIN:0000", где "0000" -- пароль доступа к компьютеру по Bluetooth. Для этих целей подойдет крохотный скрипт:
 
#!/bin/bash
echo PIN:0000
 
Не забудьте вместо нулей вписать нормальный пароль и установить права на исполнение bluepin.helper.
 
'''Примечание''': в новых версиях bluez-utils механизм ввода пароля изменён. Теперь пользователь Bluetooth должен использовать отдельную программу для подтверждения пароля, а общесистемные настройки пароля стали недействительны. Данное верно как минимум для bluez-utils версии 3.7, а возможно и для более ранних версий. В этом случае рекомендуется установить bluez-passkey-gnome (иконка Bluetooth появится в системном лотке после запуска программы bt-applet). В качестве альтернативы можно использовать программу passkey-agent. При попытке спарить телефон и компьютер, требуется ввести одинаковые пароли на телефоне и в появившемся окне ввода пароля.
 
3) После этого можно запускать службу Bluetooth (в других дистрибутивах Linux это может выглядеть немного иначе):
 
# /etc/init.d/bluez-utils start
 
За ошибками на этом этапе можно следить через /var/log/syslog.
 
В более поздних версиях bluez-utils служба Bluetooth в Debian перезапускается так:
 
# /etc/init.d/bluetooth restart
 
4) Проверить работу устройства можно, например, так:
 
# hciconfig
hci0: Type: USB
BD Address: 00:11:F6:04:FB:BF ACL MTU: 120:20 SCO MTU: 64:0
UP RUNNING PSCAN ISCAN
RX bytes:965327 acl:6408 sco:0 events:2522 errors:0
TX bytes:294442 acl:3841 sco:0 commands:17 errors:0
 
5) Теперь необходимо найти телефон. Для этого убеждаемся, что Bluetooth на телефоне включен, и активирован режим видимости.
 
# hcitool scan
Scanning ...
00:16:BC:CD:64:D2 Nokia 6021
 
Был обнаружен только что настроенный телефон. Все в порядке. Его "мак-адрес" запоминаем (выделяем-копируем), он еще пригодится.
 
6) Редактируем файл /etc/bluetooth/rfcomm.conf и вносим туда "мак-адрес" телефона:
 
rfcomm0 {
bind yes;
device '''00:16:BC:CD:64:D2''';
channel 1;
comment "Dial-up networking gateway";
}
 
Могут быть доступны другие каналы Bluetooth (профили), например, профили синхронизации или обмена файлами. Однако для доступа в интернет они не нужны. Список поддерживаемых телефоном профилей можно просмотреть с помощью
 
# sdptool browse <мак-адрес-телефона>
или
#sdptool records <мак-адрес-телефона>
 
'''Для пользователей телефонов на базе Windows Mobile 6:''' <br />
В шестой версии винмобайла нет профиля DUN, для таких случаев надо использовать соединение через "Bluetooth NAP Service". <br />
'''Для пользователей телефонов на базе Windows Mobile 5 Smartphone:''' <br />
 
Остерегайтесь телефонов, не поддерживающих Dialup Networking по Bluetooth. Например SonyEriccson T280.<br />
 
Стек, встроенный в ОС, не возвращает информации о профилях на запрос sdptool browse. Экспериментальным путём было обнаружено, что профиль "Dial-up networking gateway" находится на пятом канале. В этом случае запись в /etc/bluetooth/rfcomm.conf выглядит так:
 
rfcomm0 {
bind yes;
device '''00:11:22:33:44:55''';
channel 5;
comment "Dial-up networking gateway on WM5 Smartphone";
}
 
'''00:11:22:33:44:55''' - "мак-адрес" вашего телефона.
 
7) Остановите и перестартуйте службу Bluetooth (''возможно, это и необязательно делать, я не знаю, -- прим. автора'')
 
# /etc/init.d/bluez-utils stop
# /etc/init.d/bluez-utils start
 
8) Теперь необходимо провести первое "сопряжение" устройств. Это можно сделать так:
 
# echo ATZ > /dev/rfcomm0
или так:
#rfcomm connect 0 00:11:22:33:44:55 1
где 0 - номер устройства rfcomm, 1 - номер канала
 
и ввести пароль (выдаваемый bluepin.helper) на телефоне. После этого на телефоне в списке сопряжённых устройста для устройства-компьютера установить опцию "Автоподключение без подтверждения", тогда телефон больше не будет спрашивать пароля при каждом соединении.
 
'''Примечание''': после перезагрузки системы при сопряжении может возникнуть ошибка invalid exchange, при этом телефон даже не пингуется, это вызвано тем что не может выполниться скрипт выводящий пин, у меня это было из-за того что не стояли права на его выполнение, лечится
 
# chmod +x /usr/local/bin/bluepin.helper
 
Если эта ошибка возникает с самого начала, то возможно вы не правильно указали путь к скрипту в hcid.conf
 
На этом настройка Bluetooth-соединения закончена.
 
=== Настройка соединения GPRS (EDGE) ===