Тут я напомнил о себе сотовый, и я, вспомнив о недавнем запуске GPRS, решил попытать счастья, тем более по отзывам очевидцев в винде выход в интернет через GPRS - вполне возможен. Но винда виндой, а я на сегодняшний момент работаю на FreeBSD 5.4-RELEASE, и драйверы от производителя телефона тут мне вряд ли помогут. Значит надо искать.
И так дано:
1. Операционная система FreeBSD 5.4-RELEASE
2. Сотовый телефон стандарта GSM900/1800 Philips 530 с инфракрасным интерфейсом
3. Инфракрасный порт Tekram IRMate 210
Задача - выйти с помощью всего этого хозяйства в интернет.
Первым делом отправляемся в каталог с коллекцией портов:
Код: Выделить всё
# cd /usr/ports
И ищем все порты, по ключу irda:
Код: Выделить всё
# make search key=irda
Ответом на эту команду будет один единственный результат поиска:
Код: Выделить всё
Port: birda-1.00_2
Path: /usr/ports/comms/birda
Info: Bohlin's IrDA utilities, ported from NetBSD's pkgsrc
Maint: allbery@ece.cmu.edu
B-deps:
R-deps:
WWW:
Что ж это лучше чем ничего, попробуем применить его к своим нуждам, для начала прочитав краткое описание в файле /usr/ports/comms/birda/pkg-descr, из которого становится ясно, что это набор утилит для работы с устройствами через IrDA на COM-порту. Нам подходит, устанавливаем:
Код: Выделить всё
# cd ./comms/birda
# make install clean
Исходник пакета весит всего 56 Кб, зависимостей у пакета, как можно видеть выше нет. При установке пакета в каталог /usr/local/bin будут положены исполняемые файлы: ircomm, irobex, irs, mkobexcard, mkobexdate, mkobexmemo, mkobexpdb, mkobextel и mkobextodo, из них нам понадобится только первый, поэтому стоит изучить его man-страницу:
Код: Выделить всё
# man ircomm
Исходя из man делаем вывод, что подключение телефона к компьютеру возможно с помощью следующей команды:
Код: Выделить всё
# ircomm -t -d /dev/cuaa0 -y /dev/ptyqf -n "Philips 530" -Y
Для удобства я добавил в файл /etc/devfs.conf строчку
Код: Выделить всё
link cuaa0 irda
В результате чего при загрузке системы в каталоге /dev создается симлинк на /dev/cuaa0, к которому подключен инфракрасный порт.
Для проверки работоспособности полученной связки выполним команду, не забыв при этом активировать инфракрасный порт в телефоне.
Код: Выделить всё
# ircomm -t -d /dev/irda -y /dev/ptyqf -n "Philips 530" -v3
В результате должны увидеть примерно следующее:
Код: Выделить всё
in: fe bf 01 be 66 36 19 bb c7 f8 60 01 04 00 b0 25
00 50 68 69 6c 69 70 73 20 35 33 30 00
discovered Philips 530, address=be663619, hints=Modem, Fax, Telephony, IrCOMM, IrOBEX
query completed
in: 66 73 be 66 36 19 bb c7 f8 60 01 01 3f 82 01 01
83 01 04 84 01 01 85 01 80 86 01 03 08 01 1f
115200 baud
LAP connected
in: 66 11
in: 66 31
in: 66 30 81 00 81 00
in: 66 52 01 00 84 00 00 01 00 01 01 00 00 00 03
in: 66 74 01 00 84 00 00 01 00 01 02 00 03 00 01 07
in: 66 91
in: 66 b1
in: 66 b6 81 03 81 00 02
comm connected
in: 66 d8 01 03 00 0a 12 01 03 13 02 11 13 20 01 0c
in: 66 f1
in: 66 f1
in: 66 f1
in: 66 f1
in: 66 f1
in: 66 f1
.........
Если это так, значит все в порядке, можно переходить к настройке интернет-соединения. Если нет, значит Вы являетесь владельцем инфракрасного порта другой марки, в этом случае Вам нужно ознакомиться со списком поддерживаемых устройств (man ircomm).
Настраиваем интернет-соединение, использовать будем ppp. Открываем файл /etc/ppp/ppp.conf в любимом редакторе, в моем случае это ee:
Код: Выделить всё
# ee /etc/ppp/ppp.conf
Если Вы используете ppp для соединения с интернет в первый раз, то этого файла скорее всего нет по указанному пути. В этом случае нужно его туда поместить скомандовав:
Код: Выделить всё
# cp /usr/share/examples/ppp/ppp.conf.sample /etc/ppp.conf
Для того, чтобы установить интернет-соединение, его нужно сначала описать в файле /etc/ppp.conf, сделаем это прямо сейчас (я пользуюсь услугами компании БайкалВестКом, поэтому настройки приведены именно для этого оператора, но могут быть с легкостью подправлены для любого другого:
Код: Выделить всё
bwc: # это название соединения
set device /dev/ttyqf # это устроиство-модем
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
OK-AT-OK ATE1Q0 OK \
AT+CGDCONT=1,\\\"IP\\\",\\\"inet.bwc.ru\\\" OK\ # здесь нужно вписать APN (узнать на сайте оператора)
AT+CGATT=1 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set logout "ABORT BUSY ABORT ERROR TIMEOUT 30 \
\"\" +++ATH OK-ATH-OK AT+CGATT=0 OK"
set authname "bwc" # имя пользователя (узнать на сайте оператора)
set authkey "" # пароль (узнать на сайте оператора)
set phone "*99***1#" # номер телефона (на некоторых телефонах *99#)
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
set reconnect 5 100
add default HISADDR
enable dns
Сохраняем файл и пробуем соединиться (ACHTUNG! У Вас должна быть активирована услуга GPRS), предварительно активировав irda в телефоне:
Код: Выделить всё
# ircomm -t -d /dev/irda -y /dev/ptyqf -n "Philips 530" -Y
# ppp
ppp ON localhost> dial bwc
Если все в порядке, приглашение командной строки поменяется три раза ppp -> Ppp -> PPp -> PPP. Если все буквы большие, значит соединение установлено, открываем соседнюю консоль и проверяем это:
Код: Выделить всё
# ping mail.ru
Если пинг пошел, можно поробовать открыть какой-нибудь сайт
Код: Выделить всё
# elinks http://linuxforum.ru
Если соединение не установлено, ищем ошибки в логах.
Однако давать столько команд для установки соединения немного утомительно, поэтому попытаемся облегчить себе жизнь, добавим в начало конфигурации соединения строчку:
Код: Выделить всё
bg /usr/local/bin/ircomm -t -d /dev/irda -y /dev/ptyqf -n "Philips 530" -Y
С учетом этого конфигурация будет выглядеть так:
Код: Выделить всё
bwc:
bg /usr/local/bin/ircomm -t -d /dev/irda -y /dev/ptyqf -n "Philips 530" -Y
set device /dev/ttyqf
set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \"\" AT \
OK-AT-OK ATE1Q0 OK \
AT+CGDCONT=1,\\\"IP\\\",\\\"inet.bwc.ru\\\" OK\
AT+CGATT=1 OK \\dATDT\\T TIMEOUT 40 CONNECT"
set logout "ABORT BUSY ABORT ERROR TIMEOUT 30 \
\"\" +++ATH OK-ATH-OK AT+CGATT=0 OK"
set authname "bwc"
set authkey ""
set phone "*99***1#"
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
set reconnect 5 100
add default HISADDR
enable dns
Теперь для активизации GPRS-соединения достаточно включить инфракрасный порт телефона, положить его напротив IrDA и дать команду:
Код: Выделить всё
# ppp -auto bwc
Вот собственно и все. Замечания, предложения и поправки принимаются в этом топике или по e-mail klimov.sergey@gmail.com.