Personal tools

Conectarea unui telefon mobil prin IR

From linux360

Revision as of 15:13, 28 April 2008 by Gabel (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introducere

Acest tutorial prezintă modul de configurare a distribuţiei Slackware Linux 12.0 pentru a permite conectarea la un telefon mobil folosind un adaptor IrDA / USB.

Adaptorul IrDA/USB este de tipul KingSun-959: Bus 003 Device 002: ID 07d0:4959 Dazzle Kingsun KS-959 Infrared Adapter

  1. cat /var/log/dmesg | grep 959

KingSun KS-959 IRDA/USB found at address 3, Vendor: 7d0, Product: 4959 drivers/net/irda/ks959-sir.c: IrDA: Registered KingSun KS-959 device irda0 usbcore: registered new interface driver ks959-sir

Singurul telefon mobil pe care am testat aceste informaţii este Nokia 5200, deci este posibil ca pentru alte tipuri de telefoane mobile să existe diferenţe în ceea ce priveşte setările descrise în acest tutorial.

Informaţiile au fost testate pe un notebook Fujitsu Amilo Pro v3515 (Slackware-current, kernel 2.6.24.5). Distribuţia a fost instalată cu opţiunea "full". De asemenea, am configurat HAL (Hardware Abstraction Layer) conform CHANGES_AND_HINTS.TXT.

Pentru conectivitatea prin infraroșu, am instalat pachetul irda-utils de aici, folosind sursele pachetului de aici, astfel:

$ cd /home/<user>/Desktop $ wget -r ftp://ftp.slackbuilds.org/12.0/network/irda-utils $ mv /home/<user>/Desktop/ftp.slackbuilds.org/12.0/network/irda-utils/*.* /home/<user>/Desktop

  1. su
  2. chmod +x irda-utils.SlackBuild
  3. ./irda-utils.SlackBuild
  4. cd /tmp
  5. installpkg irda-utils-0.9.18-i486-1_SBo.tgz

Configurare

  • Încărcarea modulelor de kernel necesare (modificarea fișierului de configurare /etc/rc.d/rc.molules-<kernel-version>-smp):

      1. IrDA/USB modules

/sbin/modprobe irda-usb /sbin/modprobe ks959-sir /sbin/modprobe irtty-sir /sbin/modprobe ircomm

  • Verificarea încărcării modulelor:

  1. lsmod

Module Size Used by ircomm_tty 23944 0 ircomm 14340 1 ircomm_tty irtty_sir 8960 0 sir_dev 14596 1 irtty_sir irda_usb 16772 0 ks959_sir 11648 0 irda 114360 5 ircomm_tty,ircomm,sir_dev,irda_usb,ks959_sir crc_ccitt 5760 1 irda

  • Activarea serviciului IrdA:

  1. cd /etc/rc.d
  2. chmod 0755 rc.irda
  3. ./rc.irda start

Starting IrDA: /usr/sbin/irattach

  • Activarea interfeței irda0:

  1. irattach irda0 -s 1
  1. ifconfig

irda0 Link encap:IrLAP HWaddr bf:21:c7:c1

         UP RUNNING NOARP  MTU:2048  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:8
         RX bytes:0 (0.0 B)  TX bytes:339 (339.0 B)

  • Verificarea funcţionării conectivităţii IR:

Comanda cat /proc/net/irda/discovery: IrLMP: Discovery log:

nickname: Nokia 5200, hint: 0xb125, saddr: 0xbf21c7c1, daddr: 0x0000b3b5

Comanda cat /proc/net/irda/irlap: irlap0 state: LAP_NDM

 device name: irda0, hardware name: usb#2
 caddr: 0x7a, saddr: 0xbf21c7c1, daddr: 0x000000
 win size: 0, win: 0, line capacity: 0, bytes left: 0
 tx queue len: 0 win queue len: 0 rbusy: FALSE mbusy: FALSE
 retrans: 0 vs: 0 vr: 0 va: 0
 qos   bps     maxtt   dsize   winsize addbofs mintt   ldisc   comp
 tx    9600    0       64      1       12      0       0
 rx    9600    0       64      1       12      0       0

Comanda irdadump: 07:39:50.648254 xid:rsp bf21c7c1 < 0000b3b5 S=6 s=5 Nokia 5200 hint=b125 [ PnP Modem Fax Telephony IrCOMM IrOBEX ] (27) 91 packets received by filter

Comanda irdaping <daddr>:

  1. irdaping 0x0000b3b5

IrDA ping (0x0000b3b5 on irda0): 32 bytes 32 bytes from 0x0000b3b5: irda_seq=1 time=110.18 ms. 32 bytes from 0x0000b3b5: irda_seq=2 time=111.15 ms. 32 bytes from 0x0000b3b5: irda_seq=4 time=111.10 ms. 32 bytes from 0x0000b3b5: irda_seq=5 time=105.08 ms.

8 packets received by filter

Comanda obex_test:

  1. obex_test

Using IrDA transport OBEX Interactive test client/server. > c Connect OK! Version: 0x10. Flags: 0x00

  • Utilizarea obexftp

$ obexftp -i -l Connecting...done Receiving "(null)"...\<?xml version="1.0"?> <!DOCTYPE folder-listing SYSTEM "obex-folder-listing.dtd"

[ <!ATTLIST folder mem-type CDATA #IMPLIED> ]>

<folder-listing version="1.0">

   <folder name="Extra" user-perm="RW" mem-type="MMC"/>
   <folder name="Graphics" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Music files" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Themes" created="20060101T000000" user-perm="RW" mem-type="DEV"/>
   <folder name="Tones" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Video clips" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Images" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Recordings" created="20060101T000000" user-perm="R" mem-type="DEV"/>
   <folder name="Receiv. files" created="20060101T000000" user-perm="R" mem-type="DEV"/>

</folder-listing> done Disconnecting...done

Alte aplicaţii

$ obextool Scanning for Irda devices Found IrDA device Using obexftp command: /usr/bin/obexftp -i Found ObexTool version 0.33 ... Found configuration file /etc/obextool/obextool.cfg version 0.33 ... Found configuration file /etc/obextool/obextool.typ version 0.33 ... Found configuration file /etc/obextool/obextool.ext version 0.33 ...

Exemplu de fișier de configurare: [global]

  1. With Linux-IrDA you will want to use

port = /dev/ircomm0

  1. Set model to the model number of your phone. For the

model = 6510

  1. There are few main models that should make use of the certain drivers.
  2. These are: 6110, 7110, 6510, 3110, 2110, 6160.
  1. Set IrDA device name.

irda_string = Nokia 5200

initlength = default

  1. For infrared connection with phones other than Nokia 6110/6130/6150 use:

connection = irda

  1. Don't forget to run: 'irattach irda0 -s' or similiar before running gnokii

use_locking = yes

  1. Baudrate to use on serial port connections.

serial_baudrate = 9200

  1. Force serial port handshaking mode, useful primarily for "AT" model.

handshake = hardware

sm_retry = 1

Fișierul de configurare original este /etc/gnokiirc.