Привлёк внимание тем, что на упаковке был нарисован
tux(верный признак того, что устройство не заточено исключительно под windows),
и кучей дисков с мультимедиа-контентом впридачу.
Аппарат с поддержкой bluetooth и gprs
+ не самый дешевый для использования gprs, хоть и внутрикорпоративный тариф стандарт
Уже довольно старенький, но прекрасно себя зарекомендовавший дистрибутив, который я не скоро решусь поменять на какой-то другой (прецеденты обратного перехода уже были)1)
Для сопряжения компьютера и телефона через bluetooth-адаптер нам понадобятся все пакеты, начинающиеся на bluez. Их и установим
root#urpmi -a bluez-((для Debian надо через apt-get поставить все пакеты, начинающиеся на //bluez-//))
Запустим службу bluetooth
root#/etc/init.d/bluetooth restart
Включим у телефона поддержку bluetooth и дадим (если еще не дали) ему имя nokia-3250.
Определимся с адресом телефона.
bash$ hcitool scan
scanning ...
00:19:4f:e3:73:b6 nokia-3250
Проверим, есть ли у телефона поддержка dial-up networking, и на каком канале
[r-asian@localhost ~]$ sdptool browse 00:19:4f:e3:73:b6 browsing 00:19:4f:e3:73:b6 ...
Далее вываливается списов всех служб, которые поддерживает телефон. Из всего многообразия нас интересует вот эта:
service name: dial-up networking
service rechandle: 0x10002
service class id list:
"dialup networking" (0x1103)
protocol descriptor list:
"l2cap" (0x0100)
"rfcomm" (0x0003)
channel: 2
language base attr list:
code_iso639: 0x454e
encoding: 0x6a
base_offset: 0x100
profile descriptor list:
"dialup networking" (0x1103)
version: 0x0100
То, что нас интересует висит на 2-м канале.
Генератор pin-кода это просто скрипт, который генерирует последовательность вида PIN:{пароль}, например такой
#!/bin/bash echo "PIN:1234";
Сохраним его в файле /usr/local/bin/bluepin.helper и не забудем дать ему права на исполнение
#chmod +x /usr/local/bin/bluepin.helper
Его настройка производится правкой файла /etc/bluetooth/hcid.conf.
options {
autoinit yes;
security auto;
pairing multi;
pin_helper /usr/local/bin/bluepin.helper;
}
device {
name "11:11:11:11:11:11";
class 0x3e0100;
iscan enable; pscan enable;
lm accept;
lp rswitch,hold,sniff,park;
auth enable;
encrypt enable;
}
Его настройка производится правкой файла /etc/bluetooth/rfcomm.conf. В нём мы прописываем к какому файлу устройства в /dev будет соответствовать gprs- модем. В нащем случае определим его как /dev/rfcomm0
rfcomm0 {
bind yes;
# Адрес телефона
device 00:19:4f:e3:73:b6;
# Номер канала на котором поддерживается dial-up networking
channel 2;
comment "dial-up networking gateway";
}
Перезапустим демон hcid
root#/etc/init.d/bluetooth restart
Проверим наличие файла-устройства /dev/rfcomm0
$ ls /dev|grep rfcom rfcomm0
Пошлём на телефон команду инициализации, выведя её в файл /dev/rfcomm0
$ echo "atz">/dev/rfcomm0
Телефон ожил и спросил разрешения принять запрос от «11:11:11:11:11:11»? Ну и чудесно.
Для дозвона могут быть использованы самые разные программы-звонилки. Например kppp, или можно попробовать настроить pppd вручную. Лично мне нравится textbfwvdial. В поставку моего дистрибутива он входит.
#urpmi wvdial
Расмотрим настройку подключения к провайдеру на примере МТС, для других операторов сотовой связи необходимую информацию по номеру телефона, имени пользователя и паролю можно найти на их сайтах.
Создадим файл настройки /etc/wvdial.conf.mts следующего содержания
[DIALER DEFAULTS] ; Устройство модема modem = /dev/rfcomm0 ; Скорость передачи baud = 115200 ; Инициализация модема init = ATZ ; Вторая строка инициализации, берётся на сайте опреатора init2 = AT+CGDCONT=1,"IP","internet.mts.ru" ; Тип модема modem type = analog modem ; Тоновый набор номера dial command = ATDT ; Номер телефона phone = *99# ; Логин и пароль username = mts password = mts
Запустим, дозвон, указав, из какого файла брать параметры
$wvdial --config /etc/wvdial.conf.mts
Если всё в порядке, то видим следующее:
--> wvdial: internet dialer version 1.54.0 --> initializing modem. --> sending: atz atz ok --> sending: at+cgdcont="1","ip","internet.mts.ru" at+cgdcont="1","ip","internet.mts.ru" ok --> modem initialized. --> sending: atdt*99# --> waiting for carrier. atdt*99# connect ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~ --> carrier detected. waiting for prompt. ~[7f]}#@!}!} } }2}#}$@#}!}$}%\}"}&} }*} } g}%~ --> ppp negotiation detected. --> starting pppd at wed nov 21 21:47:42 2007 --> pid of pppd: 5807 --> using interface ppp0 --> pppd: connect: ppp0 <--> /dev/rfcomm0 --> pppd: pap authentication succeeded --> local ip address 172.28.164.233 --> remote ip address 10.6.6.6 --> primary dns address 195.209.229.37 --> secondary dns address 10.84.125.2
Ну, в общем-то и всё.