WARNING! Archlinux-psto
Все нижеизложенное - результат многомесячных битв с линуксом за право пользоваться мобильным инетом так, как я этого хочу.
Итак, вы хотите настроить интернет на компьютере, используя GPRS / EDGE / 3G - телефон с соединением через bluetooth.
На арчевики есть подробнейшие на первый взгляд инструкции, но они почему-то не помогают. Либо оно не работает, либо работает через раз, либо требует странных шаманских действий - одним словом, неведомая ебаная хуйня в действии. Особенно характерна ситуация, когда вот только что оно работало, ты сидел в инете - и вдруг раз! Пишет что все пиздец, к /dev/rfcomm0 доступ запрещен, инет не поднимается - и ничего, НИЧЕГО не помогает. Ни рестарт демонов, ни перезагрузка компа, ни включение-включение телефона...
Итак, несколько секретов.
1. Подготовка
Великий лайф-хак совет - если вы уже некоторое время возились, "спаривая" телефон с компом, но результат работает хреново или не работает совсем, очистите содержимое директории /var/lib/bluetooth/ !
Это нужно, чтобы заново спарить неправильно до этого спареные устройства.
2. Спаривание, оно же pairing, bluetooth-устройств.
Правильно оно производится так:
- BT на телефоне включен, модули ядра загружены, BT на компе (в случае наличия хардварного выключателя) включен, сервисы dbus и bluetooth запущены, /etc/bluetooth/main.conf просмотрен вручную и подправлен по необходимости - всяческие тайм-ауты при обнаружении новых устройств и все такое
- запускаем hcitool scan, он выдает список обнаруженных BT-устройств и их MAC-адреса. Копируем MAC своего телефона в буфер, файлик, в крайнем случае записываем на бумажку
- от рута выполняем bluez-simple-agent hci0 $СКОПИРОВАННЫЙ MAC-АДРЕС$
Телефон и комп обязаны снюхаться, начать спрашивать про PIN-коды, как вам тут действовать - природа подскажет :3
3, вариант 1: Подключение к инету, console-only way
- ставим пакет wvdial
- команда sdptool browse выдаст все доступные службы на всех bluetooth-устройствах окрест. Можно в принципе указать MAC-адрес в качестве парамета, чтобы ограничиться сканированием своего телефона. В выводе команды необходимо найти описание службы Dial-Up Networking (DUN) и узнать номер её канала (channel).
- открываем для редактирования файл /etc/bluetooth/rfcomm.conf и приводим к такому виду:
#
# RFCOMM configuration file.
#
rfcomm0 {
bind yes;
device $MAC-АДРЕС_ТЕЛЕФОНА$;
channel $НОМЕР_КАНАЛА$;
comment "пишите что хотите";
}
- открываем для редактирования файл /etc/wvdial.conf и приводим к такому виду:
[Dialer Defaults]
Modem = /dev/rfcomm0
Baud = 115200
Init1 = ATZ
Init2 = ATE0
[Dialer megafon]
Modem = /dev/rfcomm0
Init3 = AT+cgdcont=1,"IP","internet"
Phone = *99#
Stupid Mode = 1
Username = mega
Password = mega
Вместо параметров соединения для мегафона используем аналогичные от своего сотового оператора.
- Рестартуем сервис bluetooth, он должен прибиндить порт /dev/rfcomm0 к телефону
- Поднимаем интернет командой wvdial megafon (в моем случае), в вашем - используйте вашу замену слову megafon в строчке [Dialer megafon].
3, вариант 2: Подключение к инету, GUI-way
- ставим blueman
- в нем устройство будет уже спаренным - нажмем ещё и trust в контекстном меню.
- жмем "Подключиться к: точка доступа" в контекстном меню
После этого ifconfig покажет нам появление ещё одного сетевого интерфейса - bnep0
- осталась малость: запустить dhcpcd - чтобы получить IP-адрес, DNSы и прочее. На телефоне должна присутствовать служба "Точка доступа", другие подключения типа Wi-Fi лучше отключить совсем.
@темы: archlinux, linux, pairing, GPRS, 3G, bluetooth, DUN, rfcomm0, EDGE, интернет