Hovedside   Linux   Isdnside   Maskinpark   Laptopside   Orkideer   Grønne lenker   Fotogalleri   Slekt   Gjestebok   Hagedagbok   Epost   Pashmina  
TUX LESER AVISEN

 

TELES 16.3C PnP I LINUX





Pingvinene er tegnet av Larry Ewing: lewing@isc.tamu.edu . Han har brukt GIMP i arbeidet med dem.

Jeg har hatt ADSL de siste drøye 2 årene, og bruker bare ISDN-kortet for testformål. Når hjemmesidene nå skulle oppdateres, var jeg derfor i tvil om jeg burde kutte ut denne siden helt. De forskjellige distribusjonene har sine egne verktøy for oppsett av ISDN, ofte er oppsettet av ISDN da helt ukomplisert. Likevel har jeg erfaring med at disse hjelpemidlene ikke alltid virker slik de skal. Jeg har derfor ofte måttet ty til "gamlemåten" for å få brukt ISDN. Det er også ofte spørsmål om oppsett av ISDN.
Derfor er siden her bevart, men hovedvekten er lagt på hvordan sette opp kortet helt manuellt uten et slikt grafisk verktøy. Fremgangsmåten bør derfor virke for de fleste distribusjoner.




Dette er en beskrivelse av hvordan jeg fikk opp mitt Teles 16.3C PnP ISDN-kort i Linux RedHat. Stort sett blir fremgangsmåten den samme med de fleste andre noe nyere distribusjoner.

NB! Hvis du har et nyere ISDN-kort fra Teles, som også går under navnet "Teles 16.3C PnP", kan det hende du har et kort med helt andre egenskaper! Du kan kikke på chip'en på kortet, hvis det står "HFC-SP" (i motsetning til "HFC-S"), så er det altså ikke det samme kortet.
En annen måte å se at dette er et helt annet kort, er hvis du kjører "pnpdump" (isapnptools). Dette nye kortet gir da "TAG 2620" i /etc/isapnp.conf (det gamle: "TAG 2610").
Dette kortet bruker en annen driver. Jeg har ikke selv erfaring med denne nye chipen, men så langt det er mulig har jeg også forsøkt å beskrive hvordan man burde kunne få også dette kortet til å virke.

Teles 16.3C ISDN-kort har gitt mange nye Linux-brukere problemer. Med litt veiledning er det ikke så vanskelig å få til. Siden mange har dette kortet, er det mye hjelp å få på nettet (spesiellt nyhetsgruppen "no.it.os.unix.linux.diverse")

Jeg forsøker her å beskrive hvorledes jeg selv setter opp dette kortet - uten å påstå at dette vil virke for alle andre.
Kortet er sk. ISA-PnP, hvis du bruker en distribusjon med kjerne 2.4 eller senere vil det antagelig ikke skape problemer, da er antagelig støtte for ISA-PnP kompilert inn i kjernen. Med tidligere kjerner må kortet aktiveres med isapnptools før bruk.

RedHat 7.2 og senere:
Kjør "redhat-config-network" (eller "neat") for å konfigurere kortet med irq og io (0x580) under maskinvare, deretter konfigureres ISP mv. under enheter. Oppringning skjer fra samme verktøy, bruk "aktivere".
Dessverre har det vært endel problemer med neat/ISDN, jeg håper at dette bedrer seg. Når det først virker er dette et veldig greit verktøy.




isdn4k-utils:


Dette er en pakke du må installere. Pakken leveres med alle nyere distribusjoner, så du kan bare installere den rett fra CD'n. I RedHat ser du om den allerede er installert ved en "rpm -qa|grep isdn4k-utils". Dersom du ønsker å kompilere pakken selv, finner du den hvis du går inn på hjemmesiden til isdn4linux.




Konfigurering av ny kjerne:


Nyere utgaver av Linux RedHat eller Mandrake har støtte for de aller fleste ISDN-kortene i standard kjerne-moduler. Dersom du har en kjerne som av en eller annen grunn ikke støtter ISDN-kortet ditt må du kompilere ny kjerne.
Hvis du ikke har konfigurert/ kompilert kjerne før bør du først lese Kernel-HOWTO.

Jeg foretrekker å bruke "make menuconfig". Pass på at du får med deg det du trenger i din nye kjerne.
Jeg har med følgende innen "ISDN subsystem --->":

<M> ISDN support
<*> Support Synchronous PPP
<*> Use VJ-compression with synchronous PPP
<*> Support generic MP (RFC 1717)
<M> Support BSD compression

Under "Passive ISDN cards":
<M> HiSax SiemensChipSet driver support
[*] HiSax Support for Euro/DSS1
[*] HFC-S based cards

Hvis du har den nye typen kort (HFC-SP) må du passe på følgende:
Under ISDN må du da ha samme som over, men istedet for "HFC-S based cards" velger du:
[*] HFC-S+, HFC-SP, HFC-PCMCIA cards

Lagre konfigurasjonen, kompilere kjerne og moduler, installere kjernen, starte om.




Pnpdump - isapnp:


ISA PnP kort må initialiseres før de kan tas i bruk.Vi må spesifisere hvilken IRQ/ IO kortet skal bruke. Dette ble tidligere gjort med isapnptools. Denne pakken fulgte tidligere vanligvis med distribusjonen.

Har du kjerne 2.4 og RedHat 7.2 eller senere slipper du dette. Isapnp ordnes her i kjernen - du slipper bryderiet!
Antagelig gjelder dette også andre nyere distribusjoner som benytter kjerne 2.4.

Hvis du bruker kjerne 2.2 eller tidligere eller kjerne 2.4 uten isapnp kompilert inn i kjernen, må altså isapnptools installeres, deretter gjør du følgende: Først må du lage en /etc/isapnp.conf fil. Hvis den filen finnes hos deg fra før, tar du en backup av den! Vanligvis kan du så bruke "pnpdump -c > /etc/isapnp.conf". Dette lager en ferdig /etc/isapnp.conf som ikke skal gi konflikt med io eller irq. Likevel bør du nok se gjennom filen.
På dette kortet skal oftest (alltid?) io være0x580, irq ofte 11, 3, 5, eller 10.

Initialisering av ISA PnP-kortene gjøres deretter oftest av systemet ved oppstart, eller det kan gjøres manuellt med kommandoen "isapnp /etc/isapnp.conf". når isapnptools benyttes.
Distribusjoner som benytter kjerne 2.4 med støtte for isapnp i kjernen vil oftest aktivere isapnp ved oppstart. Her vil du da se om det er aktivert ved en "cat /proc/isapnp". Hvis dette ikke er gjort må det gjøres manuellt, dette er litt vanskeligere å forklare, men jeg håper det fungerer med de fleste distribusjoner.

Nå må ISDN/HiSax modulen lastes med kommandoen "/sbin/modprobe". Dette gjelder uansett om isapnp er satt opp med isapnptools eller om isapnp er kompilert inn i kjernen. Bruk først kommandoen "/sbin/depmod -a", (lager module-dependency informasjon for modprobe. Dette er ikke nødvendig å gjøre hver gang).
Hisax-modulen må lastes med korrekte parametre, TeleS 16.3c PnP er kort-type 14. Bruk samme irq og io som du har i /etc/isapnp.conf (ev. io og irq som du ser i /proc/isapnp kortet er aktivert med):

/sbin/depmod -a
/sbin/modprobe hisax type=14 io=0x580 irq=11 protocol=2


Kort med HFC-SP chip har her istedet type=37, io-adresse og irq vil også være forskjellig, pass på å bruke det som er satt opp i /etc/isapnp.conf.

Bruk et ekstra terminal-vindu ved siden av når du gjør dette, med "tail -f /var/log/messages" gående, så kan du følge med hva kjerne og moduler gjør.
Ta "cat /proc/interrupts" og "cat /proc/ioports" for å se at hisax nå har tatt i bruk irq og io.

NB! Med noen isapnptools har det forekommet feilmeldinger som ser omtrent slik ut når isapnp kjøres: "FATAL - resource conflict allocating 2 bytes of IO at 580". Hvis du får liknende feilmelding - og er sikker på at det ikke skal være noen io-konflikter her - så kan du forsøke å editere på isapnp.conf.
I linjen der du har følgende:
(IO 0 (SIZE 2) (BASE 0x0580) (CHECK))
kan du da forsøke å fjerne (CHECK) - dette har ofte vært det som skulle til!




Filer som må editeres (ev. opprettes)

Dersom du ikke allerede har en fil som heter /etc/ppp/ioptions, må du opprette den. Denne kan være tom.

Filen /etc/resolv.conf må inneholde navneserver(e). For Telenor kan den se slik ut:

nameserver 148.122.208.99
nameserver 148.122.161.3


Du trenger en fil som heter /etc/hosts. Hvis du kjører et lokalt nettverk, har du nok satt den opp uansett. Hvis ikke kan du lage en fil som ser omtrent slik ut:
127.0.0.1 localhost
0.0.0.0 netsurfer

Det er også kjekt med et navn på boksen, dette legger du inn i /etc/sysconfig/network (RedHat), eller muligens i /etc/HOSTNAME på andre distribusjoner.

Filen /etc/ppp/pap-secrets skal inneholde brukernavn og passord. Denne skal se slik ut:

brukernavn * passord

Den skal bare kunne leses av root. ("chown root.root /etc/ppp/pap-secrets" "chmod 600 /etc/ppp/pap-secrets")

Noen isp'er bruker istedet chap, /etc/ppp/chap-secrets settes opp på samme måten.

Filen /etc/conf.modules - kan editeres til bruk for ev. modprobe hisax under oppstart (ellers ikke nødvendig).Legg til følgende linje - med dine egne verdier:

options hisax type=14 io=0x580 irq=11 protocol=2




Script:


Et script som gjør klart ISDN før oppringning kan se slik ut:
(Ta med isapnp og modprobe bare hvis dette ikke er gjort under oppstart. Isapnp benyttes kun ved isapnptools)
Ikke klipp og lim - det går ikke så bra. Du kan heller laste ned script du kan redigere selv her.
I noen distribusjoner kan det hende at "isdnctrl" og "ipppd" ligger i /usr/sbin istedet for /sbin.

#!/bin/sh

isapnp /etc/isapnp.conf
/sbin/modprobe hisax type=14 irq=11 io=0x580 protocol=2

/sbin/isdnctrl addif ippp0
/sbin/isdnctrl addphone ippp0 out 81007007    # Din ISP's telefonnr
/sbin/isdnctrl eaz ippp0 62530679       # Ditt telefonnr
/sbin/isdnctrl l2_prot ippp0 hdlc          # Layer-2 protocol hdlc
/sbin/isdnctrl l3_prot ippp0 trans         # Layer-3 protocol trans
/sbin/isdnctrl encap ippp0 syncppp
/sbin/isdnctrl huptimeout ippp0 300    # Hangup-time 300sek
/sbin/isdnctrl chargehup ippp0 off
/sbin/isdnctrl secure ippp0 on
/sbin/isdnctrl dialmax ippp0 5                # Ringer max 5ggr ved opptatt mv.

/sbin/ifconfig ippp0 0.0.0.0 pointopoint 1.1.1.1 netmask 0.0.0.0
/sbin/route add default ippp0

/sbin/ipppd \
      user DITT_BRUKERNAVN \
      :1.1.1.1 \
      ipcp-accept-remote \
      ipcp-accept-local \
      noipdefault \
      -bsdcomp \
      passive \
      debug \
      noccp \
      defaultroute \
      /dev/ippp0 &

NB! Hvis du kjører et lokalt nettverk, må du endre linjen som starter med /sbin/ifconfig. Min router har f.eks ip-adresse 192.168.1.1 på det lokale nettverket - netmask 255.255.255.0. Denne linjen ser hos meg slik ut:
/sbin/ifconfig ippp0 192.168.1.1 pointopoint 1.1.1.1 netmask 255.255.255.0



Oppringning:


Scriptet ovenfor kjøres før bruk av ISDN. Det er ikke nødvendig å kjøre det om igjen før neste gang maskinen startes om. Hos meg heter denne script-filen /usr/local/sbin/isdn.start. Den er gjort kjørbar med kommandoen "chmod +x /usr/local/sbin/isdn.start". Jeg kjører filen fra /etc/rc.d/rc.local ved oppstart, slik at alt er klart for tilkobling til nettet. Oppringning startes ved "/sbin/isdnctrl dial ippp0". Hangup med "/sbin/isdnctrl hangup ippp0". Ha et terminal-vindu med "tail -f /var/log/messages" gående ved siden av. Ved en vellykket oppringning skal den se omtrent slik ut (Telenor som ISP):

May 10 20:53:26 cactuz kernel: ippp0: dialing 1 81007007...
May 10 20:53:29 cactuz kernel: isdn_net: ippp0 connected
May 10 20:53:29 cactuz ipppd[444]: Local number: 62530679, Remote number: 81007007, Type: outgoing
May 10 20:53:29 cactuz ipppd[444]: PHASE_WAIT -> PHASE_ESTABLISHED, ifunit: 0, linkunit: 0, fd: 7
May 10 20:53:29 cactuz ipppd[444]: Remote message:
May 10 20:53:29 cactuz ipppd[444]: MPPP negotiation, He: No We: No
May 10 20:53:32 cactuz ipppd[444]: local IP address 130.67.22.253
May 10 20:53:32 cactuz ipppd[444]: remote IP address 130.67.22.0

Du må være logget inn som root, eller su, for å kunne ringe opp manuellt. Det er praktisk å legge inn følgende alias i /root/.bashrc:

alias dial='/sbin/isdnctrl dial ippp0'
alias hangup='/sbin/isdnctrl hangup ippp0'

Ved automatisk oppringning kan også bruker få trigget oppringning.




Automatisk oppringning:


Før du setter igang med dette bør du sikre deg at du ikke har programmer som stadig kobler seg opp mot internett. Dette er ikke alltid så lett å vite på forhånd, og du bør følge med i et terminal-vindu med "tail -f var/log/messages" så du ser når Telenor ringes opp. (Selv gikk jeg vekk fra automatisk oppringning - jeg brukte istedet et program som heter masqdialer. Med dette programmet kunne de andre maskinene på nettverket koble seg til routeren - og foreta oppringning.)
Hvis du ønsker automatisk oppringning, legg til følgende i scriptet over:

/sbin/isdnctrl dialmode ippp0 auto # automatisk oppringning

For å få automatisk oppringning til å virke i praksis, la jeg dessuten inn følgende linje sist i min /etc/rc.d/rc.local - som kjøres ved oppstart:

echo "7" > /proc/sys/net/ipv4/ip_dynaddr


Dessuten redigerte (ev.opprettet) jeg /etc/ppp/ip-down.local, slik at den ser slik ut:

#!/bin/bash
/sbin/route add default ippp0
exit 0




Andre ISDN-kort:


"Oppskriften" på denne siden kan brukes til flere andre ISDN-kort - med små modifikasjoner. Det er oppsettet av isapnp og "modprobe" som vil være forskjellig, scriptet forøvrig vil være det samme for alle kort.
Korttypen du skal bruke finner du hvis du leser README.HiSax i din kjernedokumentasjon. Der finner du også annen nyttig informasjon. Du må selvsagt ha støtte for kortet i kjernen din.

PCI-kort: Disse er nokså enkle å sette opp. Som ved de andre kortene må du ha støtte i kjernen for ditt kort. I "modprobe" skal du kun ha korttype og "protocol=2". Ingen IO-adresse eller irq.




Kommentarer til denne siden? Feil eller mangler? Noe som ikke virker?
mailto:haarbye@online.no

POWER-PENGUIN

 


 

Denne siden er oppdatert 29.10.2003


Valid HTML 4.01!