De Winmodems-en-Linux HOWTO Alexandre J., alexandre12@mageos.com, Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org v1.0, april 2000 Dit document helpt gebruikers met een Winmodem het onder Linux werkend te krijgen. ______________________________________________________________________ Inhoudsopgave 1. Wat zijn Winmodems ? 1.1 Dit zijn modems... 1.2 ...zijn niet gelijk aan echte modems ! 1.3 Hoe weet ik of ik een Winmodem heb? 2. ISA of PCI ? 2.1 PCI ? 2.2 of ISA ? 3. Installeren van een modemdriver 3.1 De LT WinModem (van Lucent) 3.2 Het LTMODEM programma (OpenSource driver) 4. Het einde... 4.1 Licentie, Copyright 4.2 Contact 4.3 Bronnen ______________________________________________________________________ 1. Wat zijn Winmodems ? 1.1. Dit zijn modems... Een Winmodem, wordt net als andere modems, gebruikt voor het benaderen van telefoonservices, zoals BBS, Internet, Voice, Fax, enz. Hij wordt aangesloten op een telefoonlijn en het wordt gekenmerkt door zijn snelheid. Als je meer over modems wilt leren, raad ik je de Modems- HOWTO aan. 1.2. ...zijn niet gelijk aan echte modems ! Maar het zijn WINmodems. Dat wil zeggen dat ze voor de werking ervan Windows nodig hebben. Waarom? Gewoonweg omdat ze dom zijn. Ze hebben speciale software nodig, om al hun taken te kunnen volbrengen. Wie software zegt, zegt OS, en de drivers die met de modem worden meegeleverd zijn voor 99%, exclusief voor het MS-Windows platform. Maar met de democratisering van Linux, besloten een aantal fabrikanten, zoals LT en Motorola, een linux driver voor hun modems te maken. Maar ze hebben de linux filosofie niet begrepen: de drivers die ze leveren functioneren wel, maar ze behoren tot de onder de GPL. Dat betekent dat de broncode niet beschikbaar is. Dus een aantal 'hackers' besloten een Open Source driver te schrijven, maar ze weten niet zoveel over die modems, omdat de fabrikanten de specificaties voor die modems niet vrij willen geven, dus bevinden de OpenSource drivers zich vaak in de alpha of beta status. 1.3. Hoe weet ik of ik een Winmodem heb? · 1. Probeer de naam van de seriële poort waar je modem op is aangesloten te achterhalen (bijvoorbeeld onder Windows of MSDOS: COM1 COM2, ...) De naam van je modem is onder Linux /dev/ttySx, de x staat hier voor het nummer van de seriële poort onder DOS - 1. Voorbeeld: Onder DOS: COM1, onder Linux ttySx, met x=1-1, dus ttyS0 2e voorbeeld: Onder DOS: COM3, onder Linux ttyS2 enzovoort · 2. Maak een symlink van /dev/ttySx naar /dev/modem, door het typen van ___________________________________________________________________ rm -f /dev/modem ln -s /dev/ttySx /dev/modem ___________________________________________________________________ · 3. Download en installeer het package minicom. Start dan op 'minicom -s'. Kies voor 'Serial Port Setup', typ 'A' voor het instellen van het dan met Enter. Typ Esc, en kies voor 'save setup as dfl, kies dan 'Exit'. Wacht eventjes, typ dan 'AT' en als de modem met 'OK' antwoordt, dan heb je GEEN Winmodem, dan heb je een standaardmodem... Als de initialisatietijd te lang duurt, dan heb je een Winmodem. Gebruik dit document om te proberen het aan de gang te krijgen. Log in als root. · 4. Ga uit Minicom door het intikken van CTRL+A, dan X. 2. ISA of PCI ? 2.1. PCI ? Ok, je hebt dus een Winmodem... Maar er zijn twee typen Winmodems: ISA en PCI. Om 't nog iets moeilijker te maken, de twee interfaces zijn nogal verschillend. Dus zullen we eerst moeten testen of je een PCI of ISA-modem hebt. Ten eerste moet je je kernel configureren. Tijdens de make *config, moet je op de volgende vragen 'yes' antwoorden: · In Loadable module support: (je moet het modutils packages hebben geïnstalleerd; Zie de Kerneld-HOWTO) · In General setup: Kies 'Any' in 'PCI Access Mode' (CONFIG_PCI_GOBIOS) · In Filesystems Als je je kernel nooit eerder opnieuw hebt gecompileerd, zal de kernel van je distributie dit wellicht allemaal al bevatten. Als je het wilt hercompileren en je hebt dit nog nooit gedaan, lees je de Kernel- HOWTO. We gaan er nu vanuit dat je nieuwe kernel is geïnstalleerd. Geef nu het commando 'cat /proc/pci'. Als je de naam van je modem in de regels geretourneerd door het commando ziet, dan heb je een PCI- Winmodem. Ga naar 'Het installeren van de driver' 2.2. of ISA ? Als je het niet kunt vinden, heb je wellicht een ISA-modem. Hoe weet je dit zeker ? Ondersteuning van ISA is niet in de kernel aanwezig (de 2.4.* kernel heeft dit wel, maar het bevindt zich nog in een niet-stabiele versie...). Het is sofware van derden, genaamd isapnp waarmee het kan worden gedaan. Eerst moet je er zeker van zijn dat je dit package hebt geïnstalleerd. Als je het niet hebt, moet je het package isapnptools downloaden en installeren. Zodra isapnptools is geïnstalleerd, starten we een speciaal programma op - pnpdump - waarmee je computer wordt geïnspecteerd op ISA-devices. Het probeert dan de gebruikte bronnen door de devices te raden en drukt deze af naar het bestand /etc/isapnp.conf. Vervolgens wijzig je dit bestand en start je een ander programma op, isapnp, wat het isapnp.conf bestand inleest en je devices automatisch configureert. Eh ? Het maakt veel lawaai ? Volg dan deze stappen: · 1. Start 'pnpdump > /etc/isapnp.conf'. · 2. Wijzig het met je favoriete teksteditor · 3. Zoek naar de sectie waarin je modem wordt beschreven.item>4. Debecommitarieer een aantal regels in het bestand (Verwijder het #-teken aan het begin van de regel. Je hebt nodig: 1 regel '(IO 0 ...)' 1 regel '(INT 0 ...)' 1 regel '(DMA 0 ...)' 1 regel '(DMA 1 ...)' 1 regel '(IO 1...)' · 5. Verwijder in alle IO regels de '(CHECK)' · 6. Start 'isapnp /etc/isapnp.conf op. Als je foutmeldingen krijgt, wijzig je het bestand isapnp.conf en probeer je wat parameters te veranderen. Als je geen foutmeldingen krijgt, wijzig je isapnp.conf en haal je in de sectie van je modem het commentaarteken weg voor de regel '(ACT Y)'. Start 'isapnp /etc/isapnp.conf' dan weer op. Het moet antwoorden met ''Naam van je modem Enabled OK'' · 7. Voeg isapnp /etc/isapnp.conf toe aan /etc/rc.d/rc.local, door het typen van: 'echo "isapnp /etc/isapnp.conf" >> /etc/rc.d/rc.local'. Het is handig voor het bij het iedere keer opstarten automatisch con figureren. Mocht dit van hulp zijn, dan is hier een uittreksel van mijn /etc/isapnp.conf bestand. (Ik heb commentaar in dit bestand geplaatst en het oorspronkelijke commentaar laten voorafgaan door ##): ______________________________________________________________________ # Snip details ... ## (DEBUG) (READPORT 0x0203) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING # Identificatie van mijn modemkaart ## Card 1: (serial identifier e2 00 00 01 00 05 50 c3 1e) ## Vendor Id GVC5005, Serial Number 256, checksum 0xE2. ## Version 1.0, Vendor version 0.1 ## ANSI string -->LT Win Modem<-- ## ## Logical device id HSM0140 ## Device support I/O range check register # # We willen de GVC5005/256 kaart configureren (CONFIGURE GVC5005/256 (LD 0 # I/O Base address 0x03f8, with a range of 8 (IO 0 (SIZE 8) (BASE 0x03f8) ) # IRQ 4 (INT 0 (IRQ 4 (MODE +E))) # DMA 5 (DMA 0 (CHANNEL 5)) # DMA 7 (DMA 1 (CHANNEL 7)) # I/O Base Address 2 0x0100, range 8 (IO 1 (SIZE 8) (BASE 0x0100) ) # Name of the card (NAME "GVC5005/256[0]{LT Win Modem }") # Activeer het (ACT Y) # Einde configuratie )) ######## De parameters voor mijn andere ISA-devices ############## ## Retourneert alle kaarten terug naar de "Wait for Key" status (WAITFORKEY) ______________________________________________________________________ 3. Installeren van een modemdriver Je hoeft deze sectie niet helemaal door te lezen; lees gewoon dat gedeelte dat met je modem overeenkomt. Het beschrijft thans slechts hoe je een LT-Modem installeert met behulp van de Lucent en OpenSource driver. Als je een andere Winmodem-driver hebt geschreven of gebruikt, Open of Closed Source, kun je me mailen (alexandre12@mageos.com), en zal ik het in deze sectie opnemen. 3.1. De LT WinModem (van Lucent) URL: http://www.linmodems.org/linux568.zip Auteur: Lucent Technologies Licentie: Non-GPL Ondersteunt: ISA/PCI modems, met een Lucent chipset (Mars familie) Features: Kernel module; simuleert een seriële poort. Doet PPP, Fax en Voice Huidige versie (zover ik weet): 5.68 Documentatie: README Benodigd: Een 2.2.12 of hogere RedHat kernel; laadbare module ondersteuning Gebruik: Unzip het package ('unzip linux568.zip'), en start ./ltinst. Dat is alles ! Problemen: · Je hebt geen kernel geschikt met ltmodem. Haal de 2.2.12 kernel op vanaf ftp.kernel.org, compileer en installeer het. · 2.2.12-20 kernel niet hebt. Het is slechts een waarschuwing en het betekent niet dat het modem niet zal werken. · · Je hebt geen lt modem of daaraan verwant geïnstalleerd · Als je een ISA-modem hebt, is het niet door isapnp geconfigureerd · Als je een PCI-modem hebt, werd de PCI-ondersteuning niet in de kernel geconfigureerd. 3.2. Het LTMODEM programma (OpenSource driver) URL: http://www.close-u-net.com Auteurs: Richard Close en Pavel Machek License: GPL Ondersteunt: ISA/PCI modems, met Lucent chipsets (Mars familie) Feature: User-space driver; doet Voice calls; geen PPP (V90) Huidige versie (zover ik weet): 0.9.2 Documentatie: README Benodigdheden: GNU C Compiler, automake Hoe het te gebruiken: · PCI: make ; make install - Gebruik dan het programma 'ltmodem' om met de modem te communiceren · ISA: (lees het bestand README.ISA) mv Makefile Makefile.PCI ; mv Makefile.ISA Makefile ; wijzig config.h en vul de juiste waarden voor je modem in (I/O Address, DMA, IRQ) ; make ; make install - Gebruik dan het programma 'ltmodem' om met het modem te communiceren. Problemen: "Sorry, ik kan geen modem vinden...": · Je hebt geen LT modem · Je hebt een ISA-modem die niet door isapnp is geconfigureerd · Je hebt een ISA-modem geconfigureerd; maar ltmodem werd niet als ISA gecompileerd · Je hebt een PCI-modem zonder PCI-ondersteuning in de kernel opgenomen · Je hebt een PCI-modem en een juiste kernel, maar ltmodem werd niet als PCI gecompileerd 4. Het einde... 4.1. Licentie, Copyright Copyright (C) 2000 Alexandre J. Dit programma is vrije software; je kunt het redistribueren en/of wijzigen onder de voorwaarden van de GNU General Public Licentie zoals gepubliceerd door de Free Software Foundation; óf versie 2 óf (naar keuze) enige latere versie. Dit programma werd gedistribueerd in de hoop dat het van nut zou zijn, maar ZONDER ENIGE GARANTIE; zelfs zonder de impliciete garantie van VERKOOPBAARHEID of GESCHIKTHEID VOOR EEN BEPAALD DOEL. Zie de GNU General Public Licentie voor meer details. Je zou samen met dit programma een kopie van de GNU General Public Licentie moeten hebben ontvangen; als dit niet zo is, schrijf dan naar de Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 4.2. Contact Als je ideeën hebt over dit document, email me dan alsjeblieft: alexandre12@mageos.com. 4.3. Bronnen · De homepage van het Linmodems project: http://www.linmodems.org · De homepage van het LTModem project: http://www.close-u-net.com · De homepage van Lucent Technologies: http://www.lucent.com · De Linux Kernel: http://www.kernel.org · De homepage van isapnptools: http://www.roestock.demon.co.uk/isapnptools · De homepage van het LDP (voor het ophalen van HOWTO's): http://www.redhat.com/mirrors/LDP