View Source:
EiconIsdnCard
You are viewing an old revision of this page.
View the current version.
!!Notes for getting the Eicon DIVA Server BRI-2M ISDN card working with a 2.4 linux kernel. !Overview I was given an Eicon ISDN card and asked to get it working on a linux box, for use as a dial-in modem server. These are my notes from that process. Note: Armin Schindler, the Linux maintainer for this driver, has noted that [www.melware.net|http://www.melware.net] is the only URL that is guaranteed to exist in the future. So, if any of these links don't work, go there. First you need the drivers from: http://isdn4linux.org/~armin/divas/ There appear to be some drivers here: http://www.eicon.com/worldwide/products/MediaGateways/DivaServerforLinux.htm But I didn't use them, I think they are outdated. Here's a somewhat useful FAQ: http://www.melware.de/en/320408000000000________cnt=rfnbr22.htm#FAQ%20DIVAC Get firmware files from: ftp://ftp.isdn4linux.org/pub/isdn4linux/utils/eicon/firmware/ You want the file ''protocols_all.tar.bz2''. Contents of this file go in ''/usr/share/eicon''. !Building the source I got this card working on a ~RedHat 9 machine with kernel 2.4.20. You need to make a few changes in the sources to get them to compile, due to changes in signal handling from ~RedHat's inclusion of NPTL. Here's a diff: <verbatim> diff -u ./divasmain.c /usr/src/linux/drivers/isdn/eicon/divasmain.c --- ./divasmain.c 2003-10-10 07:45:56.000000000 -0400 +++ /usr/src/linux/drivers/isdn/eicon/divasmain.c 2003-10-14 14:04:53.0000 00000 -0400 @@ -585,7 +585,12 @@ /* Set to RealTime */ current->policy = SCHED_RR; current->rt_priority = 99; - current->nice = -20; + +#define Sigmask_lock sighand->siglock + + strcpy(current->comm, pisr->dpc_thread_name); @@ -595,9 +600,9 @@ break; if (signal_pending(current)) { /* we may want to do something on signals here */ - spin_lock_irq(¤t->sigmask_lock); + spin_lock_irq(¤t->Sigmask_lock); flush_signals(current); - spin_unlock_irq(¤t->sigmask_lock); + spin_unlock_irq(¤t->Sigmask_lock); } else { (*(pisr->callback)) (pisr, pisr->callback_context); } --- ./i4lididrv.c 2003-10-10 07:45:56.000000000 -0400 +++ /usr/src/linux/drivers/isdn/eicon/i4lididrv.c 2003-10-14 13:57:04.0000 00000 -0400 @@ -322,15 +322,18 @@ strcpy(current->comm, "kdiva2i4ld"); + +#define Sigmask_lock sighand->siglock + for(;;) { down_interruptible(&diva_thread_sem); if(!(atomic_read(&thread_running))) break; if(signal_pending(current)) { /* we may want to do something on signals here */ - spin_lock_irq(¤t->sigmask_lock); + spin_lock_irq(¤t->Sigmask_lock); flush_signals(current); - spin_unlock_irq(¤t->sigmask_lock); + spin_unlock_irq(¤t->Sigmask_lock); } else { run_task_queue(&tq_divad); } </verbatim> Remove the files in ''/usr/src/linux/drivers/isdn/eicon'' and replace with the source files you have downloaded. Follow these instructions: http://isdn4linux.org/~armin/divas/HowTo_install_on_Debian.txt for info on how to build the drivers and a kernel which supports isdn. !modules.conf Your modules.conf should contain the following: <verbatim> alias char-major-43 diva2i4l below diva2i4l divas post-install divas /sbin/divactrl load -f NI -s 2 -1spid 21255522220101 -2spid 21255522220101 </verbatim> That loads the right modules and downloads the firmware to the card whenever you attempt to use the ISDN tty device (''/dev/ttyI0''). The firmware is one of the files in ''/usr/share/eicon'' (program finds the right one automatically). It also sets your SPIDS (ISDN telephone numbers) and protocol (NI was the correct one for us in the US, your protocol will depend on what country you are in). SPIDS are assigned by whoever you get your ISDN service from. !ISDN modem setup You can use the isdn modem similarly to an analog modem by interacting with the device ''/dev/ttyI0''. See the man page for ''ttyI'' for details. To test with minicom (or any other terminal emulator) tell it to use the port ''/dev/ttyI0''. Then, feed the ISDN device an init string like you would an analog modem: <verbatim> AT&E5552222&B512+FCLASS=8S14=10 </verbatim> the number after &E is the phone number the isdn device is connected to, minus area code. This can be found in ''/etc/syslog'' when you try to connect. If it's not set, you see this in your syslog: <verbatim> kernel: isdn_tty: call from 2125553333 -> 5552222 ignored </verbatim> and you will see the following in your terminal emulator: <verbatim> NO MSN/EAZ </verbatim> if you try to dial out. The ''S14=10'' is important too - that sets the ISDN card to act as an analog modem. If you successfully set up the ISDN card and attempt to call in to it, you will see this in syslog: <verbatim> kernel: isdn_tty: call from 2125553333, -> RING on ttyI0 </verbatim> and this in minicom: <verbatim> CALLER NUMBER: 2125553333 RING </verbatim> !Loaded Modules lsmod should show these modules loaded: <verbatim> diva2i4l 62452 1 (autoclean) divas 88712 0 (autoclean) divadidd 13568 0 (autoclean) [diva2i4l divas] isdn 138144 1 (autoclean) [diva2i4l] slhc 6756 0 (autoclean) [isdn] </verbatim> !mgetty setup Your ''/etc/mgetty+sendfax/mgetty.cnf'' should contain the following: <verbatim> port ttyI0 init-chat "" \d\d\d+++\d\d\dATZ OK AT&E5552222&B512+FCLASS=8S14=10 OK modem-type data </verbatim> and add the following to ''/etc/inittab'' to enable mgetty on the isdn port ''ttyI0'': <verbatim> m1:35:respawn:/sbin/mgetty ttyI0 </verbatim> remember to ''killall -HUP init'' to make init re-read inittab. !Other notes Don't use isdnctrl at all. divactrl handles all the setup and control for this card. When you plug the NT1 (isdn terminator box?) into the isdn line, the "LINE" led will glow solid, then start blinking slowly. After you initialize the eicon card, the LINE led will go out. I think if it comes back on that indicates an error condition. The L-BK led never comes on and I have no idea what it does. When you are testing different configs, power cycle the machine to make sure the card and drivers are in a known good state. I had some frustration where I changed settings but the card didn't work until I did that.
Please enable JavaScript to view the
comments powered by Disqus.
HollenbackDotNet
Home Page
Popular Pages
All Categories
Main Categories
General Interest
Geek Stuff
DevOps
Linux Stuff
Pictures
Search
Toolbox
RecentChanges
RecentNewPages
What links here
Printable version
AllPages
RecentChanges
Recent Changes Cached
No changes found
Favorite Categories
ActionPage
(150)
WikiPlugin
(149)
GeekStuff
(137)
PhpWikiAdministration
(102)
Help/PageList
(75)
Help/MagicPhpWikiURLs
(75)
Blog
(69)
Pictures
(60)
GeneralInterest
(44)
LinuxStuff
(38)
Views
View Page
View Source
History
Diff
Sign In