На примере 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.
Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34