Teles 16.3C PnP ISDN-kort
      i Linux RedHat
             eller Redhat.





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

Dette er en beskrivelse av hvordan jeg fikk opp mitt Teles 16.3C PnP isdn kort i Linux RedHat 7.0 eller senere. Stort sett blir fremgangsmåten den samme med 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 når du kjører "pnpdump". 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.

Først: Du finner mye generellt om ISDN på www.linux.no sin temaside: http://www.linux.no/isdn.html

Likeledes er det mange tips og veiledninger å finne på denne linux-siden, inkl. QT Isdn Linux som er et grafisk verktøy for oppsett av isdn: http://www.linuxnorge.com.

For mange som kjører KDE har kISDN vært et godt alternativ: http://www.millenniumx.de.
Det ser ikke ut som om denne siden er helt oppdatert for øyeblikket.

RedHat 7.x kommer med verktøyet "isdn-config", som kan være til hjelp ved oppsett av isdn-kort. ISA PnP kort må likevel på forhånd være satt opp med "isapnp-tools".

Teles 16.3C isdn-kort har gitt mange nye Linux-brukere problemer. Spesiellt for dette kortet er at det er ISA PnP.
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.




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. På RedHat ser du om den allerede er installert ved en "rpm -qa|grep isdn4k-utils". Du finner forøvrig også denne pakken som tar.gz her - dersom du ønsker å kompilere den selv: ftp://ftp.suse.com/pub/isdn4linux/v2.2/isdn4k-utils.tar.gz .

Hvis du velger å kompilerer pakken selv:

Filene i isdn4k-utils pakkes ut, pakken konfigureres og kompileres slik det er forklart i README. Du kan bruke "make menuconfig". Det er fordel å velge vekk så mye som mulig før kompileringen.

Under "General configuration" velger du vekk "Build programs which needs X11 installed" - det trenger vi ikke.
Under "Runtime configuration tools" trenger vi bare "isdnctrl".
Under "Card configuration tools" her trenger vi egentlig ingenting - fjern alt.
Fjern alt under "Tools for monitoring activity"
Under "Applications" trenger vi "ipppd", velg bort "vbox".
Dokumentasjonen kan du beholde hvis du vil :-)

Når du er ferdig med dette, kjør:
"make" og
"make install"




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. Hos http://www.linuxnorge.com finner du også god veiledning om hvordan du installerer ny kjerne.
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 "Code maturity level options" må du velge:
[*] Prompt for development and/or incomplete code/drivers

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 gjøres med isapnptools. Denne pakken følger vanligvis med distribusjonen din.
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 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".
Moduler lastes med kommandoen "modprobe".Bruk først kommandoen "depmod -a", (lager module-dependency informasjon for modprobe). 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:

depmod -a
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 xterm-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 isapnp-tools 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:

search .no
nameserver 193.212.1.11
nameserver 193.212.1.10


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 /etc/ppp/pap-secrets 640")

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)
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 /sbin istedet for /usr/sbin.

#!/bin/sh

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

/usr/sbin/isdnctrl addif ippp0
/usr/sbin/isdnctrl addphone ippp0 out 81007007    # Din ISP's telefonnr
/usr/sbin/isdnctrl eaz ippp0 62530679       # Ditt telefonnr
/usr/sbin/isdnctrl l2_prot ippp0 hdlc          # Layer-2 protocol hdlc
/usr/sbin/isdnctrl l3_prot ippp0 trans         # Layer-3 protocol trans
/usr/sbin/isdnctrl encap ippp0 syncppp
/usr/sbin/isdnctrl huptimeout ippp0 300    # Hangup-time 300sek
/usr/sbin/isdnctrl chargehup ippp0 off
/usr/sbin/isdnctrl secure ippp0 on
/usr/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

/usr/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 /etc/isdn.start. Den er gjort kjørbar med kommandoen "chmod +x /etc/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 xterm-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 xterm-vindu med "tail -f var/log/messages" så du ser når Telenor ringes opp. (Selv har jeg gått vekk fra automatisk oppringning - jeg bruker istedet et program som heter masqdialer. Med dette programmet kan 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 andre isdn-kort - med små modifikasjoner. Det er "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.

Kort som er ISA PnP: Disse kortene blir funnet og satt opp av "pnpdump". Generellt gjøres det slik: "pnpdump -c > /etc/isapnp.conf". Oftest får man da laget en /etc/isapnp.conf som er ferdig til bruk. Noen ganger må man fjerne "CHECK" i linjen med IO-adressen - se over. Deretter settes kortet opp med "modprobe". Pass på at du velger riktig korttype - og bruker IO og irq fra /etc/isapnp.conf.

ISA-kort som ikke er PnP: Her slipper du pnpdump/isapnp. Du finner IO-adresse og irq f.eks. fra Windows - hvis du har det på samme maskin, fra "jumper-settinger" på kortet, eller fra opplysninger fra "cat /proc/pci". Der finner du kortet beskrevet - oftest som nettverkskort. Korttype, IO-adresse og irq skal inn i "modprobe".

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





Denne siden er oppdatert 16.04.2001