- NOTA AUTORE
- HARDWARE
- PARAMETRI UTILI
- COMPILAZIONE KERNEL
- SOFTWARE NECESSARIO
- SCHEDE ISA-PNP
- PROTOCOLLO
- INSTALLAZIONE
- MESSAGGI DI ERRORE
- FILE DI CONFIGURAZIONE
- ISDNCTRL
- GESTIONE PERMESSI
- NOTE FINALI
0. NOTE AUTORE
In fede posso affermare che l'installazione di una adapter isdn per linux risulta essere una gran seccatura (specialmente in queste afose giornate estive).
Quando una cosa sembra facile in verita' e' difficile
Quando una cosa sembra difficile in verita' e' fottutamente impossibile
Fortuna vuole che il nostro iter rimanga legato alla prima definizione...
Perche' e' preferibile acquistare un adapter isdn interno che una normale periferica
isdn esterna?
Il collegamento isdn tramite periferica esterna utilizza la porta seriale.Questa
possiede una velocita' massima di 115.000 bps , non ci permettera',quindi,
di raggiungere la velocita' di 128.000 bps consentitaci dal collegamento
in Multi Link PPP(Mppp-possibile grazie all'utilizzo di entrambi i canali-).
Utilizzando un adattatore interno , sia ISA che PCI , non saremo soggetti a
questo tipo di limitazione.
Ho cercato , nelle mie capacita' , di descrivere in maniera chiara e semplice
la procedura di installazione....spero di esserci riuscito.
Se cosi' non fosse non l'abbiate a male , sara' per la prossima volta!
1. HARDWARE
Consiglio vivamente di prestare buona attenzione a questo elenco (evitate schede ISA PnP , l'installazione di queste risulta leggermente piu' complessa , trattero' questo argomento nel seguito).
Passive card riconosciute :
Teles 8.0/16.0/16.3 and compatibleActive card supportate:
Teles 16.3c
Teles S0/PCMCIA (old hardware)
Teles PCI
Teles S0Box
Creatix S0Box
Creatix PnP S0
Compaq ISDN S0 ISA card
AVM A1 (Fritz, Teledat 150 ISA)
AVM Fritz PCMCIA
AVM Fritz PnP
AVM Fritz PCI (Teledat 150 PCI)
ELSA Microlink PCC-16, PCF, PCF-Pro, PCC-8
ELSA Quickstep 1000
ELSA Quickstep 1000PCI (new name: ELSA Microlink PCI)
ELSA Quickstep 3000 (same settings as QS1000)
ELSA Quickstep 3000PCI
ELSA PCMCIA
ITK ix1-micro Rev.2 (also: ITK colombus card)
Eicon DIVA 2.0 ISA and PCI (S0 and U interface, no PRO version)
Eicon DIVA Piccola
ASUSCOM NETWORK INC. ISDNLink 128K PC adapter (order code I-IN100-ST-D)
Dynalink IS64PH (OEM version of ASUSCOM NETWORK INC. ISDNLink 128K adapter)
All other ASUSCOM/Dynalink cards
PCBIT-DP (OEM version of ASUSCOM NETWORK INC. ISDNLink)
HFC-2BS0 based cards (TeleInt SA1)
Sedlbauer Speed Card (Speed Win, Teledat 100, PCI, Fax+)
Sedlbauer Speed Star/Speed Star2 (PCMCIA)
Sedlbauer ISDN-Controller PC/104
USR Sportster internal TA (compatible Stollmann tina-pp V3)
ith Kommunikationstechnik GmbH MIC 16 ISA card
Traverse Technologie NETjet PCI S0 card
Dr. Neuhaus Niccy PnP/PCI
Siemens I-Surf 1.0
Siemens I-Surf 2.x (with IPAC => try type 12 asuscom)
Trust PCI
ACER P10
HSR Saphir
Berkom Telekom A4T
Scitel Quadro
Gazel ISDN cards
HFC-PCI based cards
PCI/Winbond W6692 based cards
Note:
PCF, PCF-Pro: up to now, only the ISDN part is supported
PCC-8: not tested yet
Teles PCMCIA is EXPERIMENTAL
Teles 16.3c is EXPERIMENTAL
Teles PCI is EXPERIMENTAL
Teles S0Box is EXPERIMENTAL
Eicon Diva U interface not testedAVM B1
AVM C4
Eicon DIVA Server BRI PCI
Eicon DIVA Server 4BRI
IBM Active 2000 ISDN card
ICN
PCBIT-DPer maggiori informazioni consiglio di controllare il seguente URL: http://www.isdn4linux.de/faq/
2. PARAMETRI UTILI
Prima di iniziare l'installazione e' fondamentale conoscere alcune caratteristiche del nostro adattatore isdn. Consiglio di assegnare da bios irq 3 o 5 alla scheda isdn (ricordo che irq 12 e 15 talvolta non sono supportati da alcune motherboard).
MEMORY BASE ADDRESS
[BIOS----->PnP and PCI Setup]
Avviamo ora il sistema....siamo a conoscenza dell'irq assegnato dalla macchina alla scheda . Sara' necessario ora determinare:
IO PORT
ISAC [dipende da address]
HSCX [dipende da address]
Non sono tutti richiesti , controllate il file:
caino:~ # cat /proc/pci
/usr/src/linux/Documentation/isdn/README.HiSaX
Proseguiamo cercando di indentificare i parametri sopra menzionati.
In shell scrivete:
possiamo da subito constatare che il sistema non riesce ad identificare la scheda isdn.... leggendo attentamente otteremmo le informazioni necessarie.Bus 0, device 11, function 0:
Network controller: Unknown vendor Unknown device (rev 2).
Vendor id=1043. Device id=675.
Medium devsel. IRQ 5. Master Capable. Latency=16. Max Lat=16.
I/O at 0xb400 [0xb401].
Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000].
Controllate che non vi siano conflitti tra periferiche:
caino:~ # cat /proc/interrupts
CPU0controllate anche il file:
0: 106249 IO-APIC-edge timer
1: 5064 IO-APIC-edge keyboard
2: 0 XT-PIC cascade
5: 113 IO-APIC-level HiSax
6: 21 IO-APIC-edge floppy
8: 2 IO-APIC-edge rtc
9: 91 IO-APIC-level aic7xxx
12: 6564 IO-APIC-edge PS/2 Mouse
13: 1 XT-PIC fpu
14: 143285 IO-APIC-edge ide0
NMI: 0
ERR: 0
caino:~ # cat /proc/ioports
0000-001f : dma1E' possibile utilizzare anche il comando:
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc
0080-008f : dma page reg
00a0-00bf : pic2
00c0-00df : dma2
00f0-00ff : fpu
01f0-01f7 : ide0
02f8-02ff : serial(auto)
03c0-03df : vga+
03f0-03f5 : floppy
03f6-03f6 : ide0
03f7-03f7 : floppy DIR
03f8-03ff : serial(auto)
d000-d0be : aic7xxx
d800-d807 : ide0
d808-d80f : ide1
caino:~ # lspci -v
Oppure se preferite:
caino:~ # scanpci -v
'De gustibus non est disputandum'.
3. COMPILAZIONE DEL KERNEL
Al nostro kernel dovranno essere aggiunti i seguenti moduli:
Enable loadable module support (CONFIG_MODULES) [Y/n/?]Come fare a ricompilare il kernel?
Set version information on all symbols for modules (CONFIG_MODVERSIONS) [N/y/?]
Kernel daemon support (e.g. autoload of modules) (CONFIG_KERNELD) [Y/n/?]
Networking support (CONFIG_NET) [Y/n/?] System V IPC (CONFIG_SYSVIPC) [Y/n/?]
Loopback device support (CONFIG_BLK_DEV_LOOP) [Y/m/n/?]
TCP/IP networking (CONFIG_INET) [Y/n/?] IP: accounting (CONFIG_IP_ACCT) [Y/n/?]
Network device support (CONFIG_NETDEVICES) [Y/n/?]
Dummy net driver support (CONFIG_DUMMY) [M/n/y/?]
ISDN support (CONFIG_ISDN) [M/n/y/?]
Support synchronous PPP (CONFIG_ISDN_PPP) [Y/n/?]
Use VJ-compression with synchronous PPP (CONFIG_ISDN_PPP_VJ) [Y/n/?]
Support audio via ISDN (CONFIG_ISDN_AUDIO) [N/y/?]
ICN 2B and 4B support (CONFIG_ISDN_DRV_ICN) [M/m/?]
PCBIT-D support (CONFIG_ISDN_DRV_PCBIT) [N/m/?]
HiSax SiemensChipSet driver support [M/y/n/?]
make dep ; make clean ; make bzImageRicordatevi di riavviare il lilo dopo avere modificato il file /etc/lilo.conf!
make modules ; make modules_install
cp /usr/src/linux/arch/boot.i386/bzImage /boot
caino:~ # lilo -v.
Per maggiori informazioni rimando al kernel-howto.4 SOFTWARE NECESSARIO
Trovate il software necessario per l'installazione della scheda a questo url:
http://www.isdn4linux.de
Una volta scaricato il pkg e' necessario installarlo:
make configPrima di continuare , consiglio di installare la patch per hisax.o (i vecchi
make
make install
kernel potrebbero non avere il modulo). La patch puo' essere trovata al seguente url:
ftp://ftp.franken.de/pub/isdn4linux/kernel/
E' dovere informare che distribuzioni quali Suse (probabilmente pure Redhat e Mandrake) hanno sia i4l che hisax gia' installati.
L'ottimo 'YasT' permette di configurare la scheda senza grossi problemi (evitate crociate per questa affermazione....non sono un utente suse , onore al merito).
Per patchare:
cd /usr/src/linuxPotreste essere possessori di un adapter isdn con chipset HFC (asuscom isdnlink e molti altre versioni OEM).Come comportarsi in distribuzioni(Slackware) che non hanno il modulo hisax.o aggiornato? Recatevi a questo url:
patch -p1 -s < nomepatch
http://http://www.titro.de/isdn4linux/
Trovere sia il modulo gia' compilato (necessita solo di essere inserito in sostituzione al vecchio modulo nella dir /lib/modules/2.2.x -compilato per distribuzioni quali Suse e Red Hat-) sia i sorgenti (in modo da adattarli , ricompilandoli ,a qualsiasi distribuzione).
Ringrazio Mr Sam R. Wu Software Engineer, R&D Department ASUSCOM Network INC per avermi suggerito questo 'modus operandi'.
Non esiste ad oggi supporto automatico per questo tipo di schede. Per poterle utilizzare
dovremmo servirci di isapnp e pnpdump (contenuto nel pacchetto isapnp)
- pnpdump [scan per Pnp card , genera un file skeleton di configurazione]
- pnpdump > /etc/isapnp.conf [indirizziamo in questo file l'output]
- editiamo il file isapnp.conf e lasciamo all'interno solo la periferica di nostro interesse
- isapnp /etc/isapnp.conf
- dovrebbe essere stato creato ora il nuovo file contenete le specifiche della scheda
Sfatiamo un luogo comune: isapnp non puo' essere utilizzato per scheda PCI.
Come fare allora?Si puo' utilizzare pcutils.
Potete scoprire alcune features del prog in questione al seguente url:
http://freshmeat.net/news/1999/01/28/917541046.html
Per vedere come e' stata riconosciuta la card isdn utilizzate
pnpdump -di
Per ulteriori info al riguardo rimando alle faq di isapnp , che potete trovare:
http://www.roestock.demon.co.uk/isapnptools/
Consiglio di leggere anche il seguente documento:
www.linuxdoc.org/HOWTO/Plug-and-Play-HOWTO.html
Tre sono i protocolli utilizzati da adapter isdn per la connessione:
Mi limitero' a trattare solo il protocollo PPP-syncPPP.AsynPPP permettera' di configurare la connessione PPP come siamo portati a fare con modem analogici(sara' necessario utilizzare un differente device).
- protocollo PPP(syncPPP e asyncPPP)
- protocollo rawip/HDLC (protocollo di basso livello)
- X.75
Controlliamo il file txt di hisax:
caino:~ # less /usr/src/linux/Docunmentation/isdn.README.HisaX
Identifichiamo il type del nostro adapter isdn.Sara' ora necessario specificare
al modulo hisax , io , address , mem e type (ricordo che questi parametri sono
stati definiti precedentemente).
Scriveremo:
modprobe hisax type=numero protocol=2 io=0x400b irq=5 id=HiSaxLegenda:
- modprobe:
usato per tentare di caricare i moduli (viene di solito preferito
ad insmod poiche' gestisce le dipendenze tra questi)
- hisax:
il modulo
- protocol:
e' possibile scegliere sia il protocollo 1TR6(tedesco) sia quello
di default EDSS1 (Euro-ISDN)
- io , irq , id:
definiti precedentemente (id=HiSax)
Non sara' necessario reinserire la stringa ad ogni avvio.Se siamo utenti Slackware
bastera' sostituire in /etc/rc.d/rc.modules la riga:
#/sbin/modprobe hisax
con:
/sbin/hisax type=numero protocol=2 io=0x400b irq=5 id=HiSax
Se siamo utenti Suse non avremmo questo problema , Yast aggiornera' automaticamente
il file:
/etc/rc.config
Se usate altre distribuzioni , controllate nella dir /etc/rc.d troverete sicuramente
quello che fa a caso vostro.
Come testare la corretezza dei parametri inseriti senza riavviare il sistema?Inserite i comandi:
caino:~ #init 1
caino:~ #init 2
I servizi di rete , in questo modo , verranno terminati e successivamente riavviati.
Sara' utile fare in modo che il sistema avvi ad ogni boot il subsystem isdn(ovvero carichi automaticamente
, dopo avere riconosciuto il nostro hardware , i moduli isdn necessari alla connessione).
Se siete utenti Slackware
risolverete il problema decommentando all'interno del file /etc/rc.d/rc.modules le seguenti righe:
#/sbin/modprobe isdn
L'avvio successivo vedra' caricato il modulo hisax.Durante la fase di boot dovranno apparire a monitor
diciture simili a:
ISDN subsystem Rev: 1.88/1.74/1.94/1.56/1.17/1.2 loaded
HiSax: Linux Driver for passive ISDN cards
HiSax: Version 3.3a (module)
HiSax: Layer1 Revision 2.36
HiSax: Layer2 Revision 2.20
HiSax: TeiMgr Revision 2.13
HiSax: Layer3 Revision 2.10
HiSax: LinkLayer Revision 2.37
HiSax: Approval certification valid
HiSax: Approved with ELSA Quickstep series cards
HiSax: Approval registration numbers:
HiSax: German D133361J CETECOM ICT Services GmbH
HiSax: EU (D133362J) CETECOM ICT Services GmbH
HiSax: Approved with Eicon Technology Diva 2.01 PCI cards
HiSax: Total 1 card defined
HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
HiSax: HFC-PCI driver Rev. 1.22
HiSax: HFC-PCI card manufacturer: Asuscom/Askey card name: 675
HFC-PCI: defined at mem 0xd4070000 fifo 0xd3868000(0x13868000) IRQ 5 HZ 100
HFC_PCI: resetting card
HFC 2BDS0 PCI: IRQ 5 count 0
HFC 2BDS0 PCI: IRQ 5 count 34
HiSax: DSS1 Rev. 2.19
HiSax: 2 channels added
HiSax: MAX_WAITING_CALLS added
E' necessario gestire l'adapter isnd come una scheda di rete , per fare questo utilizzeremo
il comando ifconfig.
In shell scriveremo:
caino:~ #ifconfig ippp0 192.168.0.99 pointopoint dynamic 192.168.0.1 netmask 255.255.255.255
caino:~ # ifconfig
ippp0 Link encap:Point-to-Point Protocol
inet addr:192.168.0.99 P-t-P:192.168.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP DYNAMIC MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:30
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Il comando route sara' necessario per istruire la nostra rete a redirigere
tutte le richieste tcp/ip non appartenenti al nostro sistema verso l'interfaccia
di rete ippp0
In shell digitiamo:
caino:~ # route add default ippp0Controlliamo che le impostazioni date non contengano errori:
caino:~ # route -nAnche in questo caso possiamo rendere permanenti le modifiche apportate alla tabella
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
192.168.0.1 0.0.0.0 255.255.255.255 UH 0 0 0
ippp0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
Il messaggio di errore tipico proveniente da HiSaX e' composto da due parti:
Il file puo' essere trovato nella dir:
caino:~ # /etc/ppp/ioptions.ippp0
Apriamolo per capire lo scopo della sua esistenza:
#/etc/ppp/options.ippp? # # # /dev/ippp0 #il device a cui facciamo riferimeto user "blackkane" #utente name caino #host macchina necessario solo se si utilizza CHAP ipcp-accept-local #queste righe servono a gestire l'assegnazione ipcp-accept-remote #dinamica di un indirizzo noipdefault defaultroute #redirige routing deafult verso nuovi ip , tutto #cio' che non appartiene alla nostra rete passa a #/dev/ippp0 #useifip #cerca di ottenere ip da interfaccia(solo se si #utilizza ip statico) -vj/-vjcomp/-ac #modelli di compressione sui pacchetti tcp/ip.In #questo modo indichiamo a ipppd di rifiutare #questi modelli di compressione -pc/-bsdcomp #altri modelli mru 1524 #indica il valore massimo in ricezione mtu 1500 #indica il valore massimo in trasmissione #+pap/#+chap #decommentare se si e' server , utile per forzare #l'autenticazione lock #bloccaggio di /dev/ippp0
E' necessario adattare alcuni file che il pacchetto isdn4linux ha installato.E' possibile
trovare questi file di configurazione all'interno della dir:
/etc/isdn/
Inizialmente tratteremo isdn.conf.
#esempio/etc/isdn/isdn.conf # # # [global] countryprefix= + #prefisso nazionale countrycode= xx #codice nazionale areaprefix= 0 areacode= 45 #prefisso di zona , deve essere indicato senza lo 0 (045---->45)
Ricordate che la password deve essere inserita all'interno dei doppi apici.
username * "password"
Inserendo tanti MSN quanti sono i numeri che volete siano risolti dal vostro
# exapmle of /etc/isdn/callerid.conf # copy this file to /etc/isdn/callerid.conf and edit # # More information: /usr/doc/packages/i4l/isdnlog/README #Example: #[MSN] #NUMBER = 3206726 #MSN senza prefisso di zona #SI = 1 #tipo di servizio (1=voice, 7=isdn) #ALIAS = ich #nickname #ZONE = 1 #zone-info: # 0 = Verbindung am internen S0-Bus: # 1 = City (bis 31.12.1995 "Ortszone/Nahzone", bis 20 km) # 2 = Region 50 (bis 31.12.1995 "Regionalzone", bis 50 km) # 3 = Region 200 (bis 31.12.1995 "Weitzone",dann bis 200 km) # 4 = Fernzone (bis 31.12.1995 "Weitzzone ,dann alles ueber 200 km) # 5 = Vis-'a-vis 1 #INTERFACE = ippp0 needed for Chargehup [MSN] NUMBER = num_telef SI = 7 ALIAS = utente/isp ZONE = 1 INTERFACE = ippp0
Il pacchetto isdn4linux installera' l'utility isdnctrl indispensabile per configurare
il sottosistema ISDN e inizializzare il demone IPPPD.
Per potere valutare le potenzialita' reseci disponibili da quesa utility digitiamo in shell:
caino:~#isdnctrl list all
Segue una breve descrizione di quelli che a mio parere sono i comandi piu' utili.
Per attivare e disattivare una connessione di tipo 'manuale' sara' necessario inserire in shell i seguenti comandi:
- isdnctrl addphone ippp0 out num_provider
#numero del provider da chiamare - isdnctrl addphone ippp0 in chiamata_remota
#possibilita' di essere chiamati dall'esterno - isdnctrl addphone ippp0 in mio_numero
#numero assegnatomi da Telecom - isdnctrl system on
#attiva sottosistema ISDN - isdnctrl dialmode ippp0 manual*
#possibilita' di impostare la connessione manualmente - isdnctrl verbose 0/1/2/3
#setta liv log /var/log/messages - isdnctrl secure ippp0 on
#nessun dialogo con num non inseriti con addphone - isdnctrl addif ippp0
#utilizza interfaccia /dev/ippp0 - isdnctrl encap ippp0 syncppp
#incapsulamento(indicazione protocollo per trasportare pkg tcp/ip) - isdnctrl eaz ippp0 mio_numero
#imposta nostro numero telefonico - isdnctrl l2_prot ippp0 hdlc
#protocollo da usare al momento della connessione - isdnctrl l3_prot ippp0 trans
#protocollo da usare al momento della connessione - isdnctrl huptimeout ippp0 0
#dopo quanti secondi viene interrotta la connessione
*la connessione puo' essere attivata sia manualmente che
automaticamente.In questo ultimo caso la connessione sara' in essere quando
verra' generato traffico di rete internet(www , ftp , telent...).
La linea di comando per questa modalita' e' la seguente:
isdnctrl dialmode ippp0 auto
caino:~ # isdnctrl dial ippp0 attiva la connessioneCome unire il tutto in un uno o piu' scripts? Non ricordo quante volte(tante) in ateno ho sentito un mio professore ripetere questo aforisma: La necessita' e' madre di ogni invenzione.Non temete non ho perso il lume della ragione , le esigenze sono molteplici e variano da utente ad utente....insomma arrangiatevi! Potete trovare numerose configurazioni a questo url: http://www.rosat.mpe-garching.mpg.de/~web/ISDN.html
caino:~ # isdnctrl hangup ippp0 disattiva la connessione
La gestione dei permessi per il dial-up e' necessaria qualora avessimo deciso di impostare
il nostro collegamento isdn in maniera 'manuale'(vedi paragrafo 10 per maggiori
informazioni a riguardo).
Possiamo valutare tre possibili stati natura:
Finalmente sono giunto alla conclusione di questo documento.Sebbene l'idea della sua stesura
fosse partita accompagnata da un certo entusiasmo , non nascondo che il progredire del lavoro
porto' con se una crescente sensazione di insofferenza e insoddisfazione(tutto cio'
che ha una durata superiore al semplice week-end mi risulta pesante ehehe).
I miei ringraziamenti vanno al team support della Suse (scusate se ho saccheggiato la vostra
manualistica) , a Mr Sam R. Wu della Asuscom (senza di lei non sarei riuscito ad installare il
vostro adapter isdn sotto Slackware) , alla Gio' al Cervo e al Rene (non temete il cantante e' ancora vivo)
e a tutti coloro che mi hanno in qualche modo aiutato(grazie Stefano) e
sopportato(!?).
Mi scuso sin d'ora per le sicure gaff e sviste (consigli e suggerimenti risulteranno graditi).
Alla prossima , Black.
libero.it-
![]() |
DOCUMENTI: torna all'indice |