Internal ISDN TA

  • Thread starter old.Reverend Flatus
  • Start date
O

old.Reverend Flatus

Guest
Ok, so it's about time I had another go at trying to get my internal ISDN card to work with Linux. I have no problem with my external TA as it is connected to the serial port so I can treat it just like a modem. However, I just don't seem to be able to get the internal card to work. It is recognised by the system but when I try to load the driver it just gets unloaded again immediately. Am I missing something here? Any help much appreciated.
 
T

Testin da Cable

Guest
hmmm wierd. can you give some more info as to what flavor, kernel,make of card etc?
thanks
 
O

old.Reverend Flatus

Guest
Thanks...
As it's easter, I have four days off work (woohoo!) so I've got time to run through the install again. I'll post the results here. Perhaps it's something obvious but I've read the various how-tos with no joy.
 
T

Testin da Cable

Guest
hmm. well, good luck and happy easter :)
 
O

old.Reverend Flatus

Guest
Here we go then...

Ok, so I'm using RedHat 6.0 (kernel 2.2.5) running on a AMD K62/450 with 16M memory and .5G drive (yep, this is the budget firewall box). The ISDN card is by ASUScom.

Loading the ISDN subsystem seems ok -

Code:
thebutler(root):~$ modprobe isdn
thebutler(root):~$ lsmod
Module                  Size  Used by
isdn                   86188   0  (unused)
slhc                    4328   0  [isdn]
tulip                  25252   1  (autoclean)

and DMESG shows -

Code:
ISDN subsystem Rev: 1.55/1.47/1.55/1.33/1.10/1.2 loaded

But attempting to load the card driver gives this error -

Code:
thebutler(root):~$ modprobe hisax type=12 protocol=2 io=0xe000 irq=11
/lib/modules/2.2.5-15/misc/hisax.o: init_module: Device or resource busy

and DMESG shows -

Code:
PPP: version 2.3.3 (demand dialling)
PPP line discipline registered.
HiSax: Driver for Siemens chip set ISDN cards
HiSax: Version 2.8
HiSax: Revisions 2.18/2.7/2.5/2.13/2.7
HiSax: Total 1 card defined
HiSax: Card 1 Protocol EDSS1 Id=HiSax (0)
HiSax: Asuscom ISDNLink driver Rev. 1.2
ISDNLink: defined at 0xe000 IRQ 11
ISDNLink: resetting card
ISDNLink: ISAC version : 2086/2186 V1.1
ISDNLink: HSCX version A: A1  B: A1
ISDNLink: wrong HSCX versions check IO address
HiSax: Card ISDNLink not installed !
ISDN-subsystem unloaded
PPP: ppp line discipline successfully unregistered

I think I'm using the correct address and interrupt (Bus 0, device 8) -

Code:
thebutler(root):~$ cat /proc/pci
PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Acer Labs Unknown device (rev 4).
      Vendor id=10b9. Device id=1541.
      Slow devsel.  Master Capable.  Latency=32.
      Non-prefetchable 32 bit memory at 0xe0000000 [0xe0000000].
  Bus  0, device   1, function  0:
    PCI bridge: Acer Labs Unknown device (rev 4).
      Vendor id=10b9. Device id=5243.
      Slow devsel.  Master Capable.  Latency=32.  Min Gnt=6.
  Bus  0, device   7, function  0:
    ISA bridge: Acer Labs M1533 Aladdin IV (rev 180).
      Medium devsel.  Master Capable.  No bursts.
  Bus  0, device   8, function  0:
    Network controller: Unknown vendor Unknown device (rev 2).
      Vendor id=1043. Device id=675.
      Medium devsel.  IRQ 11.  Master Capable.  Latency=16.  Max Lat=16.
      I/O at 0xe000 [0xe001].
      Non-prefetchable 32 bit memory at 0xe5000000 [0xe5000000].
  Bus  0, device  10, function  0:
    Ethernet controller: LiteOn LNE100TX (rev 32).
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Latency=32.
      I/O at 0xe400 [0xe401].
      Non-prefetchable 32 bit memory at 0xe5001000 [0xe5001000].
  Bus  0, device  15, function  0:
    IDE interface: Acer Labs M5229 TXpro (rev 32).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=32. Min Gnt=2.Max Lat=4.
      I/O at 0xf000 [0xf001].

but interrupt 11 isn't registered!? -

Code:
thebutler(root):~$ cat /proc/interrupts
           CPU0
  0:      29679          XT-PIC  timer
  1:         50          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  8:          2          XT-PIC  rtc
 10:        552          XT-PIC  eth0
 13:          1          XT-PIC  fpu
 14:      43585          XT-PIC  ide0
NMI:          0

I found a reference to this error -
ISDNLink: HSCX version A: A1 B: A1
ISDNLink: wrong HSCX versions check IO address
in some ISDN documentation, but no clue as to the solution!

Any ideas? And a happy easter to you too!
 
T

Testin da Cable

Guest
gah, I hate that "Device or resource busy" stuff. you won't believe how many times I've seen that :-(

I have a question [and a suggestion :)] tho:
q: are you sure, very sure that you're using the correct driver [that doesn't have the dreaded 'known bug' syndrome]? it's obvious that your card is recognised but it might fial due to driver error. this has happend to me before [with a graphics card and a raid controller] and was solved by using a different driver set.

s: it's possible that your card is supported by one of the later kernels, have you checked? perhaps www.kernel.org can help out. you have a reasonably quick cpu so compiling a 'test' kernel won't take ages :) unless other circumstances define you have to run 2.2.5 of course.

good luck!
 
O

old.Reverend Flatus

Guest
Hmmm, well I don't know whether the driver is correct or not, it's the one that came with the installation. I have tried one or two other drivers but with no joy. I guess it's a case of experimenting with a new kernel, not had to compile one before though. I guess I could try and get a copy of the driver source code and have a play.

One question though, why is the card not showing as using interrupt 11 in /proc/interrupts, does that depend on the driver being loaded succesfully?

Anyway, thanks for the suggestions...
 
T

Testin da Cable

Guest
hmm, first the interrupt. I know that some cards will not initialise fully [and claim resources] until their drivers tell them to. most times they're comms cards too so my guess is that that is it.

I'd advise compiling the latest kernel to check if it will work with that before scrolling thru a pile of C [tho somehow I believe you'd have a better idea of what you're looking for than humble me hehe :)]

also I took the liberty of looking up 'isdn' at www.freshmeat.net and some other stuff too. lots of stuff turned up so you'd might want to check that out ;)
 
O

old.Reverend Flatus

Guest
Interesting...

I tried a different distribution, Mandrake 7.2 but got the same result! The hisax driver is different to the one that came with RedHat but I got the same error.

Investigations continue...
 
T

Testin da Cable

Guest
just a quick one: have you tried putting the card in a different slot? seems strange, might work, might not.
more tomorrow as I'm really busy at workies worse luck heh
 
O

old.Reverend Flatus

Guest
Strange...

When you load the driver you have to pass it certain parameters including 'type' which identifies the card and, according to the documentation my card is type 12. Last night I tried experimenting with different values for 'type' in the hope that I could find another card type that was compatible. Mostly I found that the driver wouldn't load because it couldn't detect the card, but I did manage to get it to load using some values. However, when I tried to use isdnctrl I got an error /dev/isdnctrl not found or something like that. But, using type=35 not only loaded the driver but allowed me to address /dev/isdnctrl! By this time it was about one in the morning so I went to bed but I will be having another go at it tonight.
So it looks as if the card is either telling lies or it has a different specification to a 'normal' asuscom card or something like that.

Watch this space............
 
O

old.Reverend Flatus

Guest
Deep joy!

Yeeeeeeehaaaaaaaaaaaaa!

After a lot of reading, experimenting and sheer bloody-minded stubborness I finally got it working. What I did was...

1. Loaded the driver telling it my card type is 35, this seems to be another asuscom type which my card obviously is.
Code:
modprobe hisax type=35 protocol=2
2. Set up the ISDN sub-system which took bloody ages because I had to understand how it works first.
Code:
isdnctrl addif ippp0
isdnctrl eaz ippp0 01273559719
isdnctrl addphone ippp0 out 08450798667
isdnctrl encap syncppp
isdnctrl huptime ippp0 0
isdnctrl dialmode ippp0 manual
isdnctrl l2_prot ippp0 hldc
3. Installed the ISDN replacement for pppd, ipppd.
4. Edited my firewall to point at ippp0 instead of ppp0.
5. Edited pap-secrets to include an entry for ippp0.
6. Put all the above in my start-up script.

Now the connection is established with a simple -
Code:
isdnctrl dial ippp0
and disconnected using -
Code:
isdnctrl hangup ippp0

However, there is still one thing that I need to sort out. When I disconnect the line the ippp0 interface should come down but it doesn't! The connection is dead but the interface stays up which sort of implies that something else is still using it.
 
T

Testin da Cable

Guest
wheee hehe

great! :D:D:D
glad you got it to work m8, shows what some perseverance can do hehe :D excelent job

as to the if, how about adding [ifdown ippp0] to your 'disconnect' script?
that should pull it down quite nicely :)
 
O

old.Reverend Flatus

Guest
More...

Yep, I shall have to do something like that.

I still have a few other problems to sort out -

1. The connection to Demon works fine but when I connect to Barrysworld I get a shed load of messages about compression not being on (can't remember exactly - I'm at work right now) but the connection works although my usual 30ish ping is now 50ish.
2. I use masq-dialler to start and stop the connection from my Windows boxes and it has stopped behaving itself. The main problem being ipppd is a bit broken in places so the normal methods that masq-dialler uses to detect the connection don't work anymore. I shall have to do some fiddling around with it.
3. I have a static IP address with Demon. This means I can put extra rules in my firewall that deal specifically with address spoofing and stuff. However, the Barrysworld dial-up gives me a dynamic address which means I need to find a way of re-running the firewall using the dynamic address (or maybe just removing those rules).

Anyway, all this is very interesting but it's keeping me out of the pub! MUST HAVE BEER!
 
O

old.Reverend Flatus

Guest
Solved the compression problem, had to load the driver isdn_bsdcomp, hasn't improved the ping much though.
Mmmm, more beer
 
L

linx

Guest
I've only just seen this thread, so you might have sorted the problems out by now.

I'd suggest that rather than using IP of your connection in your firewall rules that you use the device instead (ie ippp0 or whatever). For example:

# Deny incoming trafic spoofed to appear as local
$IPCHAINS -A input -d 127.0.0.0/24 -i $DEVICE -j DENY -l
$IPCHAINS -A input -d 192.168.0.0/24 -i $DEVICE -j DENY -l

where $IPCHAINS is initialised to the path to the ipchains binary, and $DEVICE to your dialup device.

If you sort the ping issue out then let me know - both of my Asus cards (ISA and PCI) give higher pings in Linux than in Windows, so I wonder if maybe the drivers need optimising or have a dodgy buffering system which doesn't send data immediately or something.

As you found out, the Asuscom driver is not for your card - it is for the ISA card only. The PCI version of the card is either a Winbond W6692 (like mine) or a HFC 2BDS0, so you need to use type 35 or type 36.

I've written a dodgy ISDN dialup script - http://www.linx.barrysworld.net/isdndial if you are interested. Any improvements welcome :)
 
O

old.Reverend Flatus

Guest
Thanks for the interest...I've sorted out most of the problems now. Thing is, when I have the time to do stuff I end up 'testing' by playing games, the next thing I know it's two hours later and I'm still playing!

I discussed the ping problem with a work colleague, he suggested it's most likely down to the processing overhead of masquerading, I'm not sure myself.

Like Mr TDC said, it's great to have another Linux user posting here, we need all the help we can get!

One last thing (I can't remember where I saw this)
In a world without borders and boundaries, who needs windows and gates!
 
T

Testin da Cable

Guest
LOL! now that's a good quote :D:D:D

and as to
[Thing is, when I have the time to do stuff I end up 'testing' by playing games, the next thing I know it's two hours later and I'm still playing!]

tribes2 for Linux is out!!!

wahey :D
 

Users who are viewing this thread

Top Bottom