U kijk naar een archiefpagina.
Klik op de link hieronder om de huidige site te bezoeken.
http://www.ct.nl
c't - online: Infra rood op je linux notebook
  F&L Home   Nieuws    c't    MDM   PC Mobiel   Microvisie   IBIS Magazine   Design Your World  

 
nf&llogo.gif (4335 bytes)
F&L-online

c't-home 03/2000

Zoek
in:
In dit nummer
 
Actueel


Listings en programma's
Archief
c't archief
Service
Nabestellen
Printplaten


Drivers
ftp:

abo-service
Abonnement
Overzicht

Jaarintro-abo
intro-abo
studie-abo
65+-abo
IBM-PCPC-abo
HCC-c't-abo
c't-cadeau-abo

 

F&L
Colofon and Copyrights

 

c't magazine
voor
computertechniek

c't 2000-03 On-line

Praktijk Mobile Computing: infraroodverbinding van notebooks onder Linux

Lichtwegen | Het protocol geanalyseerd | Webbronnen | Overgenomen uit iX

AufmacherEn, er was licht ...

Ulrich Jörgens, Michael Kuschke

Vooral notebookgebruikers ondervinden problemen als ze hun systeem in verschillende omgevingen willen gebruiken. Op dit moment is de infraroodtechniek vanwege haar veelzijdigheid eigenlijk de beste keuze, maar bij het gebruik onder Linux ondervind je nog wel wat problemen.

Juist bij mobiele computers bestaat het probleem van ad hoc integraties in wisselende omgevingen. Daarvoor kun je het makkelijkste de infrarood(IR)-interface gebruiken, die bijna elke notebook tegenwoordig heeft. Veel moederborden zijn ook op infrarood voorbereid, terwijl andere apparaten zoals zaktelefoons en palmtops steeds vaker ook een IR-interface krijgen.

Een vereniging van ongeveer 150 fabrikanten, de Infrared Data Association (IrDA),  zorgt voor het bewaken van de standaard zodat de apparaten elkaar ook kunnen begrijpen. Zij streeft naar standaardisering van de fysieke overdracht en de protocollen daarvan. Daarnaast certificeert ze producten die aan de standaard voldoen. De standaard is publiek toegankelijk, je kunt hem op de IrDA-website opzoeken. De standaardkarakteristieken van een IR-dataverbinding zijn:

  • point-to-point-verbindingen met een directe zichtlijn,
  • een overdrachtsafstand tot 1 m bij een hoek van ± 15 graden,
  • verbindingssnelheden van 9600 bit/s tot  4 megabit/s (aan een uitbreiding naar 16 megabit/s wordt gewerkt).

Voor gebruik onder Linux kan je ofwel een ingebouwde IR-interface (diode) danwel een hardware-aanvulling gebruiken. De meeste notebooks beschikken over een geïntegreerde IR-interface; bij desktops zijn er losse interfaces die op een seriële of parallelle poort van de pc worden aangesloten. Sommige mainboards beschikken van huis uit al over een bijbehorende interface.

Sinds versie 2.2.x bevat de Linux-kernel support voor IrDA. Dit vervult voor nieuwere distributies de noodzakelijke basisvoorwaarden met betrekking tot de driver. Voor het gebruik van de IrDA protocolstack zijn er extra componenten nodig. De centrale onderdelen bevinden zich in de irda-utils. De installatie van de IrDA-stack is afgekeken van die van PC Cards - de eigenlijke sturing wordt verzorgt door een user level daemon, de irmanager. Deze neemt met behulp van tools en configuratiebestanden onder /etc/irda de configuratie van de protocolelementen op zich en installeert eventueel netwerk en printer(s) die de IR-interface gebruiken. Als de irda-utils niet worden meegeleverd, moet je ze zelf ophalen en (zie kader vindplaatsen op het web) en compileren.

Inclusief praktische beschouwing

Voor dit artikel hebben wij tests met notebooks van Dell en Siemens uitgevoerd: een Dell Latitude 233 CP en een Scenic Mobile 510AGP,  allebei met een geïntegreerde IR-interface. De irda-utils (versie 0.9.3-pre8) liepen onder kernelversie 2.2.9 zowel op de op Red Hat-gebaseerde Halloween-distributie als ook op SuSE. De kernel werd voorzien van patch-2.2.9-irda2. Het compileren van de in de irda-utils zittende tools irdadump, irdaping en obex vereiste nog meer (deels niet) aanwezige tools. Onder Red Hat ontbrak daarvoor libtool en bij SuSE was autoconf afwezig.

De autoconf.sh scripts bleken statisch op de omgeving van de ontwikkelaars afgestemd. Zo vergelijken ze bij het controleren van de versie van tools zoals libtool de uitvoer van de programma's (optie -version) met vaste versienummers. Zo beklaagt de autoconf.sh van irdadump bij het gebruik van een 1.3.x versie van libtool zich dat libtool versie 1.2 of hoger vereist is. Na het aanpassen van het shellscript werkte het compileren.

Na het compileren van de benodigde tools komt de configuratie van de stack. Hiervoor moeten de bestanden drivers en network onder /etc/irda worden aangepast. De concrete waarden hangen van het betreffende systeem en de chipset af. Onder SuSe werkte IrLAN pas na het wijzigen van het bestand network. Hier moest een geschikte ifconfig-regel in plaats van de ifup/ifdown komen, omdat de irda-utils voor Red Hat geconfigureerd zijn. In Red Hat hoeft alleen het device irlan0 via de netwerkmanager geïnstalleerd worden. Na het starten van de irmanager (irmanager -d1 -s1) beschikten we over een netwerkverbinding die een onverwacht goede performance had. Met niet-gecomprimeerde bestanden was de FTP-transferrate circa 13 KB/s en met gecomprimeerde bestanden lag het nog altijd bij 7 tot 9 KB/s. De verbindingskwaliteit nam snel af naarmate de afstand tot de notebook groter werd: we kregen met weigeringen te maken en de gegevenssnelheid daalde behoorlijk. Bij een afstand van meer dan twee meter was er definitief geen verbinding meer. Zodra de apparaten weer dichter bij elkaar werden gebracht, werd de verbinding weer automatisch tot stand gebracht.

Interrupts zorgen voor problemen

Op de Latitude zorgde de cardmgr voor onverwachte problemen De cardmgr bezet bij ingestoken PCMCIA-netwerkkaart IRQ 3. De IR-poort kan pas na het blokkeren van de interrupt in het bestand /etc/pcmcia/config.opts aangesproken worden. Met de overgebleven IRQ's kon de netwerkkaart niet meer aan de praat worden gebracht. Als je beide tegelijkertijd wilt gebruiken, moet je in sommige gevallen de IR-interface in de BIOS op COM1 in plaats van COM2 zetten. Dat betekent echter wel dat je afziet van de seriële poort.

Behalve notebooks en pc's beschikt echter ondertussen ook een reeks andere apparaten over IR-interfaces, zoals de populaire Palm III. Deze laat zich van huis uit alleen via de cradle met een pc synchroniseren. Voorwaarde voor het verbinding maken met de pc is een ‘Enhanced Infrared Update’, die je gratis kunt downloaden bij 3Com. Deze software implementeert het IrCOMM-protocol, dat een seriële interface emuleert. Daarmee kun je bijvoorbeeld via de infraroodinterface van een zaktelefoon een TCP/IP-verbinding opbouwen. Voor de synchronisatie met een pc ben je er echter nog niet. Het synchroniseren van de objecten vindt bij de Palm III via het IrOBEX-protocol plaats. Uitkomst brengt hier de (kosten met zich meebrengende) software IrLink van IS/Complete. Als de Palm III overeenkomstig geprepareerd (Beam on), ingeschakeld en op de IR-interface van de pc gericht is, duikt hij in de discovery op. Op de notebook geeft cat /proc/net/irda/discovery bij succes bijvoorbeeld de volgende informatie via de Palm weer:

# cat /proc/net/irda/discovery
IrLMP: Discovery log:
    name: Uli Jörgens, hint: PDA/Palmtop IrOBEX , 
saddr: 0x9a4110b7,  daddr: 0x60745746
       

Hiermee is er voldaan aan de technische voorwaarde voor een gegevensuitwisseling, de Palm reageert op de signalen van irdaping. Voor een zinvol gebruik van de verbinding ontbreekt alleen nog de bijbehorende applicatiesoftware. De Pilot Link tools bieden voor dit doel een uitgebreide verzameling van shellcommando's, waarmee nagenoeg willekeurige gegevens tussen Pilot en Linux uitgewisseld kunnen worden. De gebruiker vindt voor praktisch alles een passend programma: van de adressen en afspraken via de installatie van software tot en met het uitlezen van de Palm-ROM.

Het wordt echter pas echt interessant als ook applicaties voor afspraken- en adressenbeheer à la Outlook kunnen synchroniseren. KDE stelt hiervoor kpilot ter beschikking en maakt de datasynchronisatie met de Palm III mogelijk. Deze slaat de gegevens van de zogenaamde conduits zoals ToDo, Adresboek en Agenda in het vcs-formaat op. De conduit-setup legt het pad van de bijbehorende synchronisatiefile vast. Voor korganizer bevindt zich deze meestal op ~/.kde/share/apps/korganizer. Voorwaarde voor kpilot is KDE 1.1.1, onder versie 1.1 konden wij de tool niet installeren. Voor het synchroniseren via de IR-interface dient het device /dev/irnine. Als het nog niet bestaat, moet de gebruiker het met mknod /dev/irnine c 60 64 aanleggen. /dev/irnine emuleert een negenpolige RS-232-interface inclusief hardware flow- en modemcontrole.

De transferrate is weliswaar te vergelijken met die van de cradle, maar bij grotere datahoeveelheden werd sporadisch de verbinding verbroken. Zodoende moesten we meerdere keren een synchronisatie starten eer ze helemaal doorliep. Pas na het resetten door middel van een 'brute' prik in de achterkant kwam de Palm na zo'n verbreking weer tot leven, maar de oorzaak hebben we niet kunnen achterhalen. Momenteel vergt de synchronisatie over de IR-interface naast een flinke dosis geknutsel behoorlijk wat geduld. Als je dat niet hebt, ben je beter af met de aanzienlijk robuustere overdracht via cradle en kabel.

Helaas leverden geen van de pogingen een Windows CE-handheld met Linux-IrDA aan te spreken het gewenste resultaat op. De handheld duikt weliswaar in de discovery van de Linux-computer op, maar de bovenliggende protocollen (TCP/IP) kunnen het niet eens worden. Microsoft blijkt hier noch het met IrLAN vastgelegde pad noch de emulatie van een seriële verbinding door IrCOMM te ondersteunen.

IrDA onder controle

Ook door de experimentele status van de implementatie zijn debugging en diagnose een absolute 'must'. Onder /proc/net/irda zijn er diverse bestanden waarmee de protocollagen op de vingers kunnen worden gekeken:

  • discovery: somt ontdekte IrDA-partnercomputers op.
  • irias: geeft alle geregistreerde diensten met attributen weer.
  • irda_device: geeft informatie over het low level IrDA-device.
  • irlap, irlmp, irlpt_client, irlpt_server, ircomm, irlan en irttp leveren informatie over de instanties van de desbetreffende protocollaag.
Met diverse pseudobestanden onder /proc/sys/net/irda kan de protocolstack direct beïnvloed worden. Met de juiste invoer in deze bestanden kunnen bijvoorbeeld compressie en debugging gestuurd worden. Zo schakelt echo 4 > /proc/sys/net/irda/debug de volledige debugging van de IrDA-stack in. De naam van de Linux-computer in de IrDA-wereld kun je met het bestand devname veranderen. Deze aanpassing voert de irmanager in het kader van de initialisatie zelfstandig uit. Het automatisch ontdekken van infraroodapparauur kun je met 0 of 1 in het bestand discovery omschakelen.

Conclusie

Momenteel is de driverontwikkeling onder Linux nog lang niet volledig. FIR-drivers voor de geteste apparaten waren niet beschikbaar. Helaas is het praktisch onmogelijk om de chipset vast te stellen. Het ingewikkelde protocol doet meer dan wat noodzakelijk is, zodat troubleshooting een tijdrovend karwei wordt.Vergeleken met Windows ben je met Linux echter beter af, want Windows houdt praktisch geen rekening met diagnosemogelijkheden. Zodoende zijn niet alleen onder Linux de toepassingsgebieden van IrDA beperkt. Waarschijnlijk gebruikt slechts een klein deel van de notebook/PDA-bezitters de (bijna) verplichte IrDA-interface. Naast de hardwarevragen zal een eenvoudige integratie in de bijbehorende desktopapplicaties over bruikbaarheid en verspreiding beslissen. Wij vonden alleen het ad hoc netwerk tussen twee overeenkomstig uitgeruste en geconfigureerde pc's zonder dat je eerst kabels moest trekken echt nuttig. Als Bluetooth waarmaakt wat de fabrikanten beloven, zal IrDA op sommige gebieden geduchte concurrentie krijgen. Pluspunten van IrDA zijn de marktverspreiding en de beschikbaarheid van drivers voor heel veel systemen. De ontwikkeling laat zien (met de huidige versie van de irda-utils, 0.9.4, een kernel nieuwer dan 2.2.12 en een patch kan zelfs een Siemens-C25-zaktelefoon aangestuurd worden) dat de Linux-gemeenschap intensief de problemen uit de wereld probeert te helpen. Misschien dat zelfs dit artikel wel iemand stimuleert om hieraan mee te helpen. (avr)


Ulrich Jörgens

werkt bij de Dr. Materna GmbH als adviseur voor systeemmanagement.


Michael Kuschke

is bij NavaraSoft werkzaam als hoofd van de afdeling development.

Begin artikel

Lichtwegen | Het protocol geanalyseerd | Webbronnen | Overgenomen uit iX

Het protocol geanalyseerd 

Zoals je dat van een protocolstack mag verwachten, bestaat die van IrDA uit een groot aantal lagen die op elkaar zijn gebouwd en waarvan er sommige noodzakelijk zijn en sommige optioneel. De afbeelding laat de belangrijkste layers zien, de achterliggende protocollen zijn optioneel.

Protokollstack IrDA

De elementaire fysieke laag is gebaseerd op infraroodlicht. IrDA beschikt in deze laag over verschillende synchrone en asynchrone transfermodi. Afhankelijk van het protocol liggen de huidige snelheden tussen 9600 bit/s en 4 megabit/s. Er wordt gewerkt aan uitbreidingen die ook 16 megabit/s aan (moeten) kunnen.

Boven de fysieke laag ligt het zogenaamde Link Access Protocol (IrLAP). Deze laag bouwt al een foutgecorrigeerde betrouwbare verbinding op en dat wil zeggen dat met flow controll, retransmissie en checksums de overdracht van gegevens wordt veilig gesteld. IrLAP is gebaseerd op aan het medium aangepaste varianten van HDLC respectievelijk SDLC. Het maakt onderscheid tussen de zogenaamde Normal Disconnected Modus (NDM) en de Normal Response Modus (NRM). In de niet-verbonden verbonden modus (NDM) wordt doorlopend naar mogelijke communicatiepartners geluisterd, asynchroon en  met 9600 bit/s, en worden er ‘Ik ben er’-pakketten verstuurd. Bij het ontdekken van een partner onderhandelen beide over de best mogelijke communicatieparameters en brengen een verbinding op IrLAP-niveau in de NRM-modus tot stand.

In deze modus kunnen door de bovenliggende laag, het Link Management Protocol (IrLMP), verbindingen opgebouwd worden. Hierbij biedt IrLMP multiplexing, high-level discovery inclusief conflictresolutie en gebruik van de IAS (Information Access Services) aan. Naast de toegang tot informatie over ontdekte communicatiepartners behoren het opbouwen en afbreken van verbindingen alsmede de gegevensoverdracht tot de diensten van IrLMP. Hierbij maakt IrLMP gebruik van de IAS.

IAS is een soort directorydienst voor hogere protocollen in de IrDA-stack. Hogere protocollen zoals IrLAN of IrCOMM worden met vastgelegde namen aangesproken. IAS biedt opvraagfuncties (query) aan waarmee attributen en toegangspunten voor de hogere protocollen vastgesteld kunnen worden.

Boven de IrLMP-laag ligt een reeks optionele protocolelementen. De hulplaag Tiny TP (TTP) neemt hier een bijzondere plaats in. Deze biedt op generieke wijze flow control voor die op IrLMP baserende protocollen aan. Dit is noodzakelijk, omdat de in IrLAP aangeboden flow control altijd betrekking heeft op de totale verbinding die op dit niveau bestaat. Een gebruik van deze flow control zou dus altijd alle multiplex-verbindingen tegelijkertijd betreffen.

Naast respectievelijk boven TTP bevindt zich een reeks optionele applicatieprotocollen voor speciale toepassingen als printen, LAN-verbinding of objectuitwisseling. Hiervan zullen we nu de belangrijkste opsommen en kort toelichten.

IrCOMM bootst seriële en parallelle interfaces op IrDA na. Zowel de datalijnen als ook de controlelijnen van een 9-polige RS232 interface worden nagebootst, waarbij onderscheid wordt gemaakt tussen 3-wire- en 9-wire-emulaties. Dit protocol wordt bijvoorbeeld gebruikt door zaktelefoons met infraroodinterface voor het realiseren van de modemfuncties.

IrLAN maakt het opbouwen van een netverbinding over de infraroodinterface mogelijk; als partners komen pc's en speciale routers in aanmerking. Zoals we al eerder schreven in dit artikel, is IrLAN een voldoende snel en simpel medium.

IrLPT maakt de communicatie met printers mogelijk die over de bijbehorende uitrusting beschikken. Het protocol is speciaal op dit scenario afgestemd en definiëert een server- en een client-deel. De printer of printerserver implementeert het serverdeel en gebruikers van deze diensten zoals notebooks of PDA's vormen de client-kant.

IrOBEX is een applicatieprotocol voor het uitwisselen van gestructureerde data (Object Exchange Protocol) op basis van IrDA. Het vereenvoudigt het uitwisselen van gegevens tussen applicaties. Objecten zijn bijvoorbeeld bestanden of visitekaartjes. De Palm Pilot gebruikt dit protocol bij de communicatie.

Begin artikel

Lichtwegen | Het protocol geanalyseerd | Webbronnen | Overgenomen uit iX

Webbronnen

IrDA Homepage

Linux IrDA Project

Linux-Infrared-HOWTO

Technische artikelen over IrDA

irda-utils

libtool

IrLINK voor de PalmIII

IR Enhanced Update

Pilot-Link

Bluetooth

Begin artikel

Overgenomen uit iX
© Copyright by F&L Publishing Group B.V.
© Copyright by Verlag Heinz Heise GmbH & Co KG

Heeft u tips of commentaar, stuur dan een mail naar webmaster@fnl.nl

 

U kijk naar een archiefpagina.
Klik op de link hieronder om de huidige site te bezoeken.
http://www.ct.nl