De Winmodems-en-Linux HOWTO

Alexandre J., alexandre12@mageos.com, Vertaald door: Ellen Bokhorst, bokkie@nl.linux.org v1.2, 29 april 2001

In dit document wordt een poging ondernomen gebruikers met een Winmodem te helpen het onder Linux werkend te krijgen.

Inhoudsopgave

1 Wat zijn Winmodems ? 1 1.1 Dit zijn modems... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 ...zijn niet gelijk aan echte modems ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 Hoe weet ik of ik een Winmodem heb? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 ISA of PCI ? 2 2.1 PCI ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 of ISA ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3 ISA en 2.4 kernels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Installeren van een modemdriver 5 3.1 ltmodem 5.78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 De LT WinModem (van Lucent) 5.68 (VEROUDERD) . . . . . . . . . . . . . . . . . . . . . . 5 3.3 Het LTMODEM programma (OpenSource driver) . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Het einde... 6 4.1 Licentie, Copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.2 Contact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.3 Bronnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

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 Modem-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 ‘Closed Source’. Ze zijn gratis, in de betekenis van geld, maar vallen niet onder de GPL. Dat betekent dat de broncode niet beschikbaar is.

Dus een aantal ’hackers’ besloot 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 ’minicom -s’. Kies voor ’Serial Port Setup’, typ ’A’ voor het instellen van het ’Serial Device’, verwijder de hele regel, en typ ’/dev/modem’. Bevestig dit 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: ’Enable loadable module support (CONFIG_MODULES)’, en ’Set version information on all modules for symbols (CONFIG_MODVERSIONS)’ (je moet het modutils packages hebben geïnstalleerd; Zie de Kerneld-HOWTO)

• In General setup: ‘PCI support’ (CONFIG_PCI) Kies ‘Any’ in ‘PCI Access Mode’ (CON-FIG_PCI_GOBIOS) ‘PCI quirks’ (CONFIG_PCI_QUIRKS) ‘Backward compatible /proc/pci’ (CONFIG_PCI_OLD_PROC)

• Als je PCI Device Name Database kunt configureren (wellicht met een 2.4+ kernel), dan kun je hier Y antwoorden, dit maakt het /proc/pci bestand eenvoudiger te begrijpen (CONFIG_PCI_NAMES).

• In Filesystems ‘/proc filesystem support’ (CONFIG_PROC_FS)

Als je je kernel nooit eerder opnieuw hebt gecompileerd, zal de kernel van je distributie dit wellicht allemaal al bevatten. Lees de Kernel-HOWTO als je het opnieuw wilt compileren en dit nog nooit hebt gedaan.

We gaan er nu vanuit dat je nieuwe kernel is geïnstalleerd.

Geef nu de opdracht ‘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 (UPDATED: wanneer je een 2.4.x kernel hebt, kan de kernel het automatisch voor je doen. Sla in dat geval deze sectie over en lees de volgende). Je kunt dit doen met software van derden, genaamd isapnp. 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.

• 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 automatisch configureren bij het iedere keer opstarten.

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)

2.3 ISA en 2.4 kernels

Als je een 2.4 kernel hebt (start ’uname -r’ voor het achterhalen van de kernelversie), hoef je deze lastige op tekstbestand gebaseerde en softwarepakket van derde installatie niet uit te voeren, aangezien de kernelserie 2.4 een vergelijkbare methode introduceert voor PCI, en hiermee het isapnptools package verouderd is. Voor het kunnen benutten van deze mogelijkheid, moet je ’Y’ of ’M’ antwoorden op de ’Plug and Play support’ (CONFIG_PNP) en ’ISA Plug and Play support’ (CONFIG_ISAPNP) tijdens het configureren van de kernel. Ook hier je kernel opnieuw compileren en installeren. Als je ’M’ antwoordde op ISA Plug-and-Play support, dan voer je tevens een ’modprobe isapnp’ uit. Je moet hiervoor een driver hebben die compliant is met deze nieuwe device toegangsmethode (bv. de ltmodem 5.78, lees de volgende sectie).

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 ltmodem 5.78

URL: http://www.tux.org/pub/dclug/marvin/ltmodem-5.78e.tar.gz

Auteur: Lucent

Licentie: Non-GPL

Ondersteunt: ISA/PCI modem, met een Lucent chipset (Mars family)

Mogelijkheden: Kernel module; simuleer een seriële poort. Doet PPP,

Fax en Voice

Huidige versie: 5.78e

Documentatie: README-1ST

Benodigd: 2.2.x or 2.4.x; ISA PNP Support; Loadable module support; C Compiler

Hoe het te gebruiken: Lees README-1ST. Het is zeer duidelijk.

Problems:

• Unresolved symbols: xxx_isapnp_xxxx: start modprobe isapnp.

• Device or resource busy: je modem is niet compliant met de driver

Opmerkingen: Lucent probeer deze keer problemen met de kernelversie en distributie te voorkomen door in de source van een aantal elementen te voorzien.

3.2 De LT WinModem (van Lucent) 5.68 (VEROUDERD)

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:

• ’insmod: ltmodem: Unresolved symbol(s) *****’: Je hebt geen kernel geschikt met ltmodem. Haal de 2.2.12 kernel op vanaf ftp.kernel.org, compileer en installeer het.

• ’Warning: kernel version mismatch...": Dit komt doordat je de 2.2.12-20 kernel niet hebt. Het is slechts een waarschuwing en het betekent niet dat het modem niet zal werken.

• ‘ltmodem: init_module: device or resource busy’:

• 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.3 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.99 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, 2001 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