CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
24.03.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Блогометки :: Устройства

Заметки :: Блогометки :: Сети и Интернет

Подключение Internet в FreeBSD через Bluetooth и смартфон Nokia

http://prostounix.in.ua/

Еще года полтора назад был куплен ноутбук Asus X50V. ОСь установил FreeBSD 7.0 :)
И первые грабли: как поднять интернет? Поскольку это лэптоп - значит мобильный инет (3G, EDGE)

Гуглением нашел информацию для Siemens под Linux. И как всегда результат: сделай сам.
Тема немного экзотичная, но возможно кому-то пригодится

Поехали...

Все обкатано на такой связке
Asus X50V + Bluetooth + Nokia 6120 + FreeBSD 7.1 = Internet

Этап первый: подгон железа

Nokia 6120 (смартфон, bluetooth 2.0, 3G) напрочь отказался подключаться через дата-кабель, постояное ugen0. Исключение составил режим передачи данных, здесь он радостно обрадовал появлением /dev/da1. Значит доступ к карте памяти есть. Ну лучше так, чем вообще никак :)

Поиски перешли в сторону bluetooth. В магазине был куплен USB девайс за 60 UAH известного китайского производителя NoName

Работа bluetooth-стека реализуется через NetGraph

В конфиг ядра надо добавить такие строчки и пересобрать

options NETGRAPH
options NETGRAPH_BLUETOOTH
options NETGRAPH_BLUETOOTH_BT3C
options NETGRAPH_BLUETOOTH_H4
options NETGRAPH_BLUETOOTH_HCI
options NETGRAPH_BLUETOOTH_L2CAP
options NETGRAPH_BLUETOOTH_SOCKET
options NETGRAPH_BLUETOOTH_UBT
options NETGRAPH_BLUETOOTH_UBTBCMFW

или подгрузить как модули.

Теперь подключение адаптера вызывает

ubt0: on uhub0
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3; wMaxPacketSize=49; nframes=6, buffer size=294

Значит все ОК, переходим к следующему пункту.

Нюанс: при отключении адаптера система падает, на данный момент причину установить не удалось. Есть предположение о кривизне bluetooth-адаптера.

Этап второй: спаривание телефона

За подключение (спаривание) смарта и FreeBSD отвечает демон hcsecd.

В файле /etc/bluetooth/hcsecd.conf добавляем

device {
bdaddr 00:1e:a4:85:cd:34;
name "nokia-6120";
key nokey;
pin "111000";
}

В файле /etc/bluetooth/hosts

00:1e:a4:85:cd:34 nokia-6120

Здесь 00:1e:a4:85:cd:34 – это MAC-адрес телефона. Его можно определить командой

root@freebsd# hccontrol inquiry

На что получаем ответ

Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:1e:a4:85:cd:34
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 5a:02:0c
Clock offset: 0x202a

В /etc/rc.conf добавляем запуск hcsecd

hcsecd_enable="YES"

Теперь проверяем, как все работает

root@freebsd# /etc/rc.d/hcsecd start
root@freebsd# l2ping -a 00:1e:a4:85:cd:34
0 bytes from 00:1e:a4:85:cd:34 seq_no=0 time=25.494 ms result=0
0 bytes from 00:1e:a4:85:cd:34 seq_no=1 time=30.933 ms result=0
0 bytes from 00:1e:a4:85:cd:34 seq_no=2 time=10.996 ms result=0
0 bytes from 00:1e:a4:85:cd:34 seq_no=3 time=26.050 ms result=0

0 байт ето нормально, при первом пинге телефон захочет PIN-код, у меня он 111000 (установлен в /etc/bluetooth/hcsecd.conf параметр pin), его надо ввести.

Теперь самый интересный момент: настройка PPP

Этап третий: настройка PPP

Добавляем в /etc/ppp/ppp.conf

ks-bluetooth:
enable force-scripts
set authname
set authkey
set phone "*99***1#"
set dial "ABORT ERROR ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
\"\" ATZ OK-ATZ-OK AT+CGDCONT=1,\\\"IP\\\",\\\"www.ab.kyivstar.net\\\" OK \\dATD\\T TIMEOUT 40 CONNECT"
set login
set timeout 600
# enable dns
set dns 192.168.10.108
resolv rewrite
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add! default HISADDR

set phone "*99***1#" – это номер дозвона, для ericson рекомендуют ставить set phone "*99#"
www.ab.kyivstar.net – точка доступа (APN), у каждого оператора своя, здесь Kyivstar, будьте внимательны (когда-то использовал xl.kyivstar.net 5коп за 1Mb, случайно оставил www.ab.kyivstar.net – 5грн за 1Mb :)))
enable dns – использовать DNS провайдера, перепишет ваш resolv.conf
set dns 192.168.10.108 – использовать свой DNS 192.168.10.108
Остальное взято с системного примера PPP.

Дозвон осуществляет rfcomm_pppd

rfcomm_pppd -a 00:1e:a4:85:cd:34 -c -C DUN -l ks-bluetooth

DUN – Dial UP Network
ks-bluetooth – название конфигурации с ppp.conf
00:1e:a4:85:cd:34 – MAC нашего смарта

Для удобства создал скрипт /etc/ppp/nokia-6120.ks.up

#!/bin/sh
rfcomm_pppd -a 00:1e:a4:85:cd:34 -c -C DUN -l ks-bluetooth

И сделал симлинк

root@freebsd# ln -s /etc/ppp/nokia-6120.ks.up /usr/bin/inet
root@freebsd# chmod +x /etc/ppp/nokia-6120.ks.up

Пора проверить наш инет

root@freebsd# inet
root@freebsd# ifconfig tun0
tun0: flags=8051 metric 0 mtu 1500
inet 94.153.xxx.xxx --> 10.6.6.6 netmask 0xffffff00
Opened by PID 3471

Все работает :) Ваши замечания и предложения оставляйте в комментах.
Спасибо за внимание!

Источники

man ppp
man bluetooth
man hccontrol
man rfcomm_pppd




Комментарии

аноним-2, Wed Sep 30 21:06:47 2009:
Для устранения первого нюанса - а если предварительно остановить работу демона hcsecd, и выгрузить ставшие ненужными модули?
LiSergey, Wed Sep 30 11:23:37 2009:
подгрузка модуля:
kldload /boot/kernel/ng_ubt.ko
он за собой подтянет еще парочку
LiSergey, Wed Sep 30 11:18:15 2009:
на 7.2 не вызывает падения системы при выдергивании блютуз-юсб-модуля.
блютуз подгружал модулями

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds