Ключевые слова:mobile, gprs, irda, linux, (найти похожие документы)
From: http://www.linuxmobile.h12.ru
Date: Mon, 20 Jan 2005 18:21:07 +0000 (UTC)
Subject: GPRS через IrDA в телефоне Nokia 6310i
Оригинал: http://www.linuxmobile.h12.ru/data/nokia/irda.html
Нам потребуется:
Поддержка usb и irda в ядре
Пакет IrDA Utils
Проверяем, есть ли у нас irda-устройства командой:
# ls -l /dev | grep ir
Вы должны увидеть что-то похожее:
crw-r--r-- 1 root root 161, 0 Jun 23 13:23 ircomm0
crw-r--r-- 1 root root 161, 1 May 10 11:46 ircomm1
Ecли этих устройств нет, создаем их
# mknod /dev/ircomm0 c 161 0; mknod /dev/ircomm1 c 161 1
Добавляем в файл /etc/modules.conf строку:
alias char-major-161 ircomm-tty
Подключаем IR-порт, грузим модули:
# insmod usb-uhci.o
# insmod irda-usb.o
Проверяем, на всякий случай, что модули загружены:
# lsmod
Должны увидеть что-то вроде:
Module Size Used by
usb-uhci 20376 0 (unused)
irda-usb 13584 1
Переходим в каталог, где лежит утилита irattach и выполняем там
команду
# ./irattach irda0 -s 1
У нас должен появиться новый сетевой интерфейс. Проверяем:
# ifconfig | grep ir
Должны увидеть примерно следующее:
irda0 Link encap:IrLAP HWaddr 7f:84:94:c1
Затем включаем ИК-порт на телефоне и кладем его рядом с портом.
Открываем файл /proc/net/irda/discovery. В нём должна быть примерно
такая строка (зависит от модели вашего телефона)
IrLMP: Discovery log:
nickname: Nokia 6310i, hint: 0xb125, saddr: 0x7f8494c1, daddr: 0x00006ba5
Если это не так, то у нас нет связи с телефоном, надо искать ошибку.
Если телефон обнаружен, можно перейти к настройке соединения.
Скачиваем GPRS скрипт (http://www.linuxmobile.h12.ru/data/siemens/gprs.html)
для нужного оператора. И распаковываем его в /
Выполняем команду:
#ln -s /dev/ircomm /dev/modem
И наконец устанавливаем соединение:
#gprs
После чего примерно через 20с, соединение будет поллностью
установлено.
Вот и всё
Beeline:
#!/bin/sh
DIALTIMEOUT=20
MODEM=modem SPEED=115200 MODEM_INIT='AT+CGDCONT=1,\"IP\",\"internet.beeline.ru\" OK'
IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault
debug usepeerdns user beeline mtu 576
novj nobsdcomp novjccomp nopcomp noaccomp"
LOGSCRIPT="CONNECT"
PHONE="*99***1#"
# перед запуском pppd удаляет default router, по окончании - восстанавливает
# Более корректно было бы вставить эти действия в /etc/ppp/ip-up.local и /etc/ppp/ip-down.local
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]* *\([^ ]*\) .*/default gw \1/'` ;
if [ -n "$DR" ] ; then
trap "echo route add $DR ; route add $DR ; exit" 2 3 9 15
route delete $DR
echo route delete $DR
fi
##########################
##################### При обрыве соединения pppd перезапускается ####################
while true ; do
pppd \
connect 'chat -v ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT BUSY "" '"$MODEM_INIT"' ATDP'$PHONE' '"$LOGSCRIPT"' ;' \
crtscts defaultroute modem -detach mru 576 \
$NASH_IP:$IH_IP /dev/$MODEM $SPEED
cat /etc/ppp/resolv.conf > /etc/resolv.conf
sleep $DIALTIMEOUT
done
MTS:
----
#!/bin/sh
DIALTIMEOUT=20
MODEM=modem SPEED=115200 MODEM_INIT='AT+CGDCONT=1,\"IP\",\"internet.mts.ru\" OK'
IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault
debug usepeerdns user mts mtu 576
novj nobsdcomp novjccomp nopcomp noaccomp"
LOGSCRIPT="CONNECT"
PHONE="*99***1#"
# перед запуском pppd удаляет default router, по окончании - восстанавливает
# Более корректно было бы вставить эти действия в /etc/ppp/ip-up.local и /etc/ppp/ip-down.local
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]* *\([^ ]*\) .*/default gw \1/'` ;
if [ -n "$DR" ] ; then
trap "echo route add $DR ; route add $DR ; exit" 2 3 9 15
route delete $DR
echo route delete $DR
fi
##########################
##################### При обрыве соединения pppd перезапускается ####################
while true ; do
pppd \
connect 'chat -v ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT BUSY "" '"$MODEM_INIT"' ATDP'$PHONE' '"$LOGSCRIPT"' ;' \
crtscts defaultroute modem -detach mru 576 \
$NASH_IP:$IH_IP /dev/$MODEM $SPEED
cat /etc/ppp/resolv.conf > /etc/resolv.conf
sleep $DIALTIMEOUT
done
Megafon:
--------
#!/bin/sh
DIALTIMEOUT=20
MODEM=modem SPEED=115200 MODEM_INIT='AT+CGDCONT=1,\"IP\",\"internet.ltmsk\" OK'
IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault
debug usepeerdns user gdata mtu 576
novj nobsdcomp novjccomp nopcomp noaccomp"
LOGSCRIPT="CONNECT"
PHONE="*99***1#"
# перед запуском pppd удаляет default router, по окончании - восстанавливает
# Более корректно было бы вставить эти действия в /etc/ppp/ip-up.local и /etc/ppp/ip-down.local
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]* *\([^ ]*\) .*/default gw \1/'` ;
if [ -n "$DR" ] ; then
trap "echo route add $DR ; route add $DR ; exit" 2 3 9 15
route delete $DR
echo route delete $DR
fi
##########################
##################### При обрыве соединения pppd перезапускается ####################
while true ; do
pppd \
connect 'chat -v ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT BUSY "" '"$MODEM_INIT"' ATDP'$PHONE' '"$LOGSCRIPT"' ;' \
crtscts defaultroute modem -detach mru 576 \
$NASH_IP:$IH_IP /dev/$MODEM $SPEED
cat /etc/ppp/resolv.conf > /etc/resolv.conf
sleep $DIALTIMEOUT
done