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


    ppp ppp0 "ppp"

(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!.