Jak uzyskać połączenie połączenie z internetem poprzez IrDA?
Bezprzewodowe połączenie
UWAGA: To jest bardzo stara wersja strony. Idź do tej strony(16.09.2000)
Co jest potrzebne:
- notebook z interfejsem IrDA (przykłady dotyczą IBM ThinkPad 600)
- telefon komórkowy z interfejsem IrDA i wbudowanym modemem (np. Nokia 7110)
1. Kompilacja jÄ…dra
Oczywiście jądro linuksa musi posiadać obsługę interfejsu IrDA. Ja użyłem dystybucji Mandrake 7.1 z jądrem 2.2.16. Skompiluj jądro jak chcesz, ale pamiętaj o ustawieniu odpowiednich opcji w sekcji "IrDA (infrared) support". Oto moje ustawienia:
#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set
CONFIG_IRDA_COMPRESSION=y
#
# IrDA compressors
#
CONFIG_IRDA_DEFLATE=m
#
# Infrared-port device drivers
#
#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m
CONFIG_IRPORT_SIR=m
#
# FIR device drivers
#
CONFIG_NSC_FIR=m
# CONFIG_WINBOND_FIR is not set
# CONFIG_TOSHIBA_FIR is not set
# CONFIG_SMC_IRCC_FIR is not set
#
# Dongle support
#
# CONFIG_DONGLE is not set
2. Ustawienia systemu
- W pliku conf.modules (lub modules.conf) umieść następujące wpisy:
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty
alias char-major-108 ppp_generic
alias tty-ldisc-11 irtty
alias char-major-161 ircomm-tty
options nsc-ircc dongle_id=0x09
alias irda0 nsc-ircc
Przedostatnia linia jest odpowiednia właśnie dla notebooka IBM ThinkPad 600. Jeżeli masz inny typ, pamiętaj o odpowiedniej zmianie.
- Zainstaluj pakiety ppp (ja mam w wersji 2.3.11) oraz irda-utils (do pobrania z
http://www.cs.uit.no/linux-irda/irda-utils/. Dla dystrybucji Mandrake jest to pakiet irda-utils-0.9.9-1mdk.i586.rpm. Zmodyfikuj plik /etc/irda/drivers, który powinien wyglądać teraz tak:
#! /bin/sh
#
# drivers
#
# Initialize and shutdown IrDA device drivers.
#
# This script should be invoked with two arguments. The first is the
# action to be taken, either "start", "stop", or "restart".
#
action=$1
device=$2
case "${action:?}" in
'start')
irattach irda0 -s 1
;;
'stop')
killall irattach
;;
'restart')
/sbin/ifconfig ${device:?} down up
;;
esac
- Utwórz odpowiednie urządzenia do obsługi IrDA, przez wydanie następujących poleceń:
mknod /dev/ircomm0 c 161 0
mknod /dev/ircomm1 c 161 1
mknod /dev/irlpt0 c 161 16
mknod /dev/irlpt1 c 161 17
czyli powinny istnieć następujące wpisy:
crw-rw-rw- 1 root root 161, 0 sie 4 22:21 /dev/ircomm0
crw-rw-rw- 1 root root 161, 1 sie 3 19:52 /dev/ircomm1
crw-rw-rw- 1 root root 161, 16 sie 3 19:52 /dev/irlpt0
crw-rw-rw- 1 root root 161, 17 sie 3 19:52 /dev/irlpt1
Szczegóły w dokumentacji do irda-utils (README.irattach).
Możesz już uruchomić interfejs IrDA, wydając polecenie `/etc/rc.d/init.d/irda start`. Jeżeli wszystko poszło sprawnie, w logach powinna znajdować się informacja o wykryciu i uruchomieniu interfejsu irda0:
Aug 4 22:09:01 localhost irmanager: executing: '/sbin/modprobe irda'
Aug 4 22:09:01 localhost kernel: IrDA (tm) Protocols for Linux-2.2 (Dag Brattli)
Aug 4 22:09:01 localhost irmanager: executing: 'echo 1 > /proc/sys/net/irda/discovery'
Aug 4 22:09:01 localhost irmanager: executing: 'echo localhost > /proc/sys/net/irda/devname'
sie 4 22:09:01 localhost irda: irmanager startup succeeded
Aug 4 22:09:01 localhost irmanager: + 1.1 Tue Nov 9 15:30:55 1999 Dag Brattli
Aug 4 22:09:01 localhost irmanager: + 1.1 Tue Nov 9 15:30:55 1999 Dag Brattli
Aug 4 22:09:01 localhost irattach: device=irda0
Aug 4 22:09:01 localhost irattach: FIR device
Aug 4 22:09:01 localhost irattach: executing: '/sbin/modprobe irda0'
Aug 4 22:09:01 localhost kernel: nsc-ircc, Found chip at base=0x02e
Aug 4 22:09:01 localhost kernel: nsc-ircc, driver loaded (Dag Brattli)
Aug 4 22:09:01 localhost kernel: IrDA: Registered device irda0
Aug 4 22:09:01 localhost kernel: nsc-ircc, Using dongle: IBM31T1100 or Temic TFDS6000/TFDS6500
Aug 4 22:09:01 localhost irattach: executing: 'echo 1 > /proc/sys/net/irda/discovery'
Aug 4 22:09:01 localhost irattach: FIR device (2)
Aug 4 22:09:01 localhost irattach: Starting device irda0
Aug 4 22:09:01 localhost irattach: executing: 'echo localhost > /proc/sys/net/irda/devname'
Jeżeli wszystko jest w porządku, włącz interfejs IrDA w komórce (hint: w Nokii 7110 menu 9), i przystaw ją w obok złącza IrDA w notebooku. Jeżeli komórka została wykryta, to wydanie polecenia `cat /proc/net/irda/discovery` powinno dać coś takiego:
IrLMP: Discovery log:
nickname: Nokia 7110, hint: 0xb125, saddr: 0x83e1fdbc, daddr: 0xd6160000
Jeżeli tak jest - gratulacje, zestawiłeś połączenie z komórką! Zostaje jeszcze utworzenie paru plików:
/usr/sbin/ppp-on-gsm
#!/bin/sh
LOCAL_IP=0.0.0.0
REMOTE_IP=0.0.0.0
NETMASK=255.255.255.0
DIALER_SCRIPT=/etc/ppp/ppp-gsm
exec /usr/sbin/pppd debug /dev/ircomm0 115200 \
$LOCAL_IP:$REMOTE_IP \
connect $DIALER_SCRIPT
/etc/ppp/ppp-gsm
#!/bin/sh
/usr/sbin/chat -v \
TIMEOUT 30 \
ABORT '\nBUSY\r' \
ABORT '\nNO ANSWER\r' \
ABORT '\nRINGING\r\n\r\nRINGING\r' \
ABORT '\nNO CARRIER\r' \
'' ATDT501808080 \
CONNECT ''
/etc/ppp/options
-detach
modem
crtscts
defaultroute
asyncmap 0
mtu 552
mru 552
user ppp
/etc/ppp/pap-secrets
(skrypty zaczerpnięto z serwisu LinuxNews).
Numer dostępowy dotyczy sieci IDEA.
Jeżeli wszystko jest gotowe, to zostaje już tylko wydać polecenie /usr/sbin/ppp-on-gsm. Powinno zestawić się połącznie po ppp, i utworzyć odpowiedni interfejs (np. ppp0). Jeżeli oczywiście nie zapomnieliśmy dodać odpowiednich wpisów do /etc/resolv.conf (np:
search foo.org
nameserver 194.204.152.43
nameserver 194.204.159.1
to już możemy cieszyć się połączeniem i "szaleć" w internecie. Powiedzmy, "szaleć", ponieważ uzyskamy maksymalną prędkość (w porywach) 9600, co wystarcza najwyżej do ściągnięcia poczty. Przy okazji ściągania poczty nie zapomnij o obejrzeniu UserFriendly!.