На примере USB-IrDA dongle и Nokia 6310i.
В данной статье рассматривается способ подключения компьютера с Linux к интернету посредством сотового телефона c GPRS и внешнего usb IR-порта. Для этого потребуется: -ядро 2.4.х; -поддержка usb, irda в ядре (модули usb-uhci.o, irda-usb.o), ircomm, irtty; -пакет IrDA Utils http://irda.sourceforge.net; -наличие сотового телефона с IR-портом и GPRS (использовался Nokia 6310i); -любой внешний usb IR-порт.
Рекомендуется к прочтению документация (http://irda.sourceforge.net/docs/). Или хотя бы просто IR-HOWTO из комплекта документации по Linux.
Порядок действий следующий.
- Распаковываем пакет irda-utils в какой-нибудь каталог, выполняем в нем make. Компиллируются утилиты, из которых нам понадобится только irattach.
- Проверяем, есть ли у нас 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
- Пишем файл /etc/ppp/options следующего содержания:
/dev/ircomm0 connect '/usr/sbin/chat -v -f /etc/ppp/GPRS' local ipcp-accept-local ipcp-accept-remote -pap noipdefault defailtroute
- Затем пишем файл /etc/ppp/GPRS:
ABORT "BUSY" ABORT "NO CARRIER" "" "AT" "OK" "AT&FV1E0&D2&S0&C1S0=0" "OK" "ATS7=60+CBST=,,1;+DS=3,0;&K3" "OK" "AT+CGDCONT=1,\042IP\042,\042internet.mts.ru\042,\0420.0.0.0\042,1,1" "OK" "ATDT*99#" TIMEOUT 30 CONNECT
- Файл /etc/resolv.conf:
nameserver 213.87.0.1 nameserver 213.87.1.1
(Эти файлы специфичны для GSM-оператора MTC, их содержание для других сотовых операторов очевидно. Само собой, должна быть подключена услуга GPRS-internet.)
- Переходим в каталог, где лежит утилита 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
Если это не так, то у нас нет связи с телефоном, надо искать ошибку. Если телефон обнаружен, можно попробовать установить соединение.
Запускаем: # pppd
На дисплее телефона должен появиться значoк "G", говорящий о том, что соединение установлено. Проверяем, на всякий случай:
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol inet addr:213.87.10.70 P-t-P:10.6.6.6 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:40 (40.0 b) TX bytes:77 (77.0 b)
Если образовался ppp0 интерфейс, то всё в порядке. Для завершения соединения выполняем
# killall pppd.
Источник: http://k2.stcnet.ru/projects/misc/gprs/index.html |