Next Previous Contents

7. trouble: Troubleshooting

7.1 trouble_22memory: I can't start ISDN on my machine with kernel 2.2.x. I get the error messages "init_module: Device or resource busy" and "isdn: Could not allocate device-struct.".

This seems to be a memory problem. While 2.0.x kernels may work on low memory/slow hardware (the author's answering machine is a 386 and used to run with 4MB of RAM), at least 16MB, if not more, seem to be required to run 2.2.x kernels. You can try to reduce ISDN_MAX_DRIVERS, ISDN_MAX_CHANNELS in include/linux/isdn.h, compile ISDN4LINUX into the kernel, or start and then exit a large program to ease those problems.

7.2 trouble_strategy: My isdn4linux doesn't work! How do I best go about finding the problem?

The following steps are recommended:

  1. Check everything is working when booting. Are there unusual error messages in /var/log/messages? Are all programs active that should be started at boot (check with ps, or fuser /dev/xxx)? HiSax won't start if something isn't right. The old Teles driver, on the other hand, will appear to start even if it is not working. See the questions under Troubleshooting Teles.
  2. Try calling with a telephone. The number should be shown in /var/log/messages. Otherwise, perhaps the driver was incorrectly started?!
  3. As a next step we'll try to get the telephone or fax to ring by dialing ourself using a ttyI device with minicom. First we have to change the service recognition with the ATS18=1 command to audio. Now you can get the telephone to ring by dialing ATDxxxxxx, where xxxxxx is your own MSN.
  4. Next we try to transmit data via ISDN. Open 2 different consoles as root, and on each run "minicom -s"... in the first set "Serial Port Setup Serial Device" to /dev/ttyI0, and the other to /dev/ttyI1. Then choose "Exit" and start the modem emulation with "ATZ" and "AT&Exxxxxx" (where xxxxxx is your own MSN without the area code). Then you can start. On the first console you can dial your own number with ATDxxxxxx. On the second console you should now see "CALLER NUMBER: xxxxxxx" and "RING". Accept the call on the second console with "ATA", and you should then see the message "CONNECT 64000/X.75" on both consoles. You can then send characters to the other console by typing (to see the characters on your own console, turn on local echo).
  5. Next, try calling a known ISDN BBS. If you don't know of any, try Gernot (see "Are there sites that offer guest access where I can test my isdn4linux setup?"). If you have problems with the modem emulation, see "Troubleshooting Modem Emulation"
  6. Fifth, try configuring the network interface or ipppd. Experience shows that they cause beginners (and not only beginners!) the most problems. To make things easier and you're happy with asyncPPP (to see what asyncPPP means, see the question "pppd, ipppd, syncPPP, asyncPPP - what is that? What should I use?"), you can use the normal pppd with modem emulation (i.e. /dev/ttyI*).
  7. Ensure that you set up your authentication configuration properly (see questions in section pap.
Otherwise, it is highly recommended that use an example script form the HowTo (see the question "Where can I find scripts and other information on configuring i4l?"). For testing you can try your own provider or of the guest accounts (see "Are there sites that offer guest access where I can test my isdn4linux setup?"). The latter have the advantage of being able to see the log files as well as a stable, working configuration. For example, if accessing via ipppd doesn't work, you can log in via modem or modem emulation to find out what happened on the other side. Not all providers are so cooperative.... :-)

7.3 trouble_boot: How can I tell whether my ISDN card has been corrected recognized?

  1. Check for error messages in the boot messages (you can review them at any time with the command dmesg.
  2. For the HiSax driver: During booting a message kernel: HSCX version A:5 B:5 and kernel: channels 2 should appear. A:4 B:4 is also okay. Other values (in particular A:??? B:???) mean the card is not recognized correctly. HiSax is only loaded if the hardware can be found and the appropriate interrupts can be generated. This means the card is installed correctly in the computer, and there are no hardware conflicts. It does not mean that everything will work (e.g. twisted cables, broken cables, terminators).
  3. Check that the interrupts are registered correctly. Check with
    cat /proc/interrupts
    

    The following entry indicates that the card is configured on interrupt 11, and so far has received 3 interrupts:
    11:        3 + hisax
    
    When you call yourself, the number of received interrupts should increase.
  4. Check the io ports with
    cat /proc/ioports
    

7.4 trouble_isdncause: I get an error message like "cause: E1234" (or similar)?

Just have a look at man isdn_cause to find out what the problem is.

7.5 trouble_notelrings: Neither my telephone nor my fax machine ring when I call them with isdn4linux?

Isdn4linux sets "digital data" as it's own service when it calls out. The switching station will not route such calls to analog devices like a telephone or a fax machine.

7.6 trouble_guestaccess: Are there sites that offer guest access where I can test my isdn4linux setup?

The following information is quite old. Please tell me if you find out that the guest sites are not available any more:

The following sites offer guest access for modem emulation or IP:

7.7 trouble_unload: I can't unload my ISDN modules ("isdn: Device or resource busy"), even so I closed all ISDN applications?

In this case "fuser -v /dev/isdn* /dev/ippp* /dev/cui* /dev/ttyI*" is very helpful. This helpful program shows, which processes are using those devices.

Sporadic errors of this type can be fixed by inserting sleep commands between the unloading commands. As a very, very last resort, there are two secret telesctrl commands to adjust the module counter:
telesctrl id 3 1  --- dec module_count
telesctrl id 4 1  --- inc module_count

Please use with appropriate caution and on your own risk!

7.8 trouble_tcpdump: Why does my tcpdump not work for ip packets going over ISDN? How can I get a tcpdump patched for ISDN?

The reason is that tcpdump does not always understand the special encapsulations that are possible with isdn4linux, especially syncppp. To change this, you need to patch tcpdump.

Michael Stiller michael@toyland.ping.de wrote on 23 Oct 1996:

Tip for ftp:

ftp://ftp.gwdg.de/pub/misc/isdn/linux/isdn4linux-gwdg

There is the patch: "tcpdump-3.0.4-1-isdn.dif.gz"

and the rest is at:

/pub/linux/mirrors/funet/PEOPLE/Linus/net-source/tools/tcpdump-3.0.4-1.tar.gz

You might need to hack some, depending on the name of your ISDN interface (mine is bri0). By default, it recognizes only isdn* and isdnY* as interface names.

Henning Schmiedehausen henning@pong.iconsult.com further wrote on 30 Oct 1996:

After finding the patch from Eberhard Moenkeberg at ftp.gwdg.de cannot dump cisco HDLC, I made my own patch for tcpdump-3.0.4 that asks the interface which encapsulation it used and sets itself accordingly. The patch is against a tcpdump-3.0.4-1.tar.gz distribution, for example at
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/tools
This patch recognizes rawIP, ISDN-IP and CISCO-HDLC and can dump these packets.
(The patch was attached to the message - it should be easy to find in the mailing list archive - Ed.)

Sascha Ottolski sascha@alzhimer.isdn.cs.tu-berlin.de gave the following tip on 5 Nov 1996:

This is a isdn4k-utils-2.0/tcpdump-3.0.3-isdn.diff ! It work, if one makes some changes: In the file tcpdump-3.0.3-isdn/libpcap-0.0/pcap-linux.c after patching you find the following: else if (strncmp("ppp", device, 3) == 0) Either you name your ppp devices pppX instead of ipppX, or change this line, e.g. else if (strncmp("ippp", device, 4) == 0) ^^^^ ^^ Then tcpdump will also recognize syncPPP. At least it does for me.

7.9 trouble_locatecrash: My isdn driver crashes my machine! Since I've configured it as a module, the addresses change each time it's loaded. How can I find out where the driver is crashing?

The driver should be loaded with the command "insmod -m". The output has to be transformed somewhat to be a form similar to System.map. You can do it like this:


insmod -m isdn.o | sort | sed -e 's/   / T /g' |
                   egrep '.* T (a-z,A-Z,_)+'  /etc/isdn/isdn.map
cat /System.map /etc/isdn/isdn.map  /iSystem.map

(The line ending with "|" has to have the following text on the same line!) iSystem.map should then be used instead of System.map for finding the error.

7.10 trouble_lotsdebug: My hard disk becomes very active when isdn4linux run. How can I turn this off?

Check whether the reason for the hard disk activity is caused by the amount of messages written into the logfile. If this is the case, you can reduce the output by:


isdnctrl verbose 0

and/or by removing the "debug" option for ipppd.

7.11 trouble_outofbuffers: I get messages like "HSCX RME out of buffers", "HSCX RFP out of buffers", "HSCX B EXIR 10" in the syslog?

These errors happen when i4l is not able to process its buffers fast enough. They are often caused by bad sound cards or their drivers when they disable the interrupts too long! It may also happen on old hardware (happened to the author of this FAQ when using vbox on an old 386-25 with only 4MB RAM). You may be able to work around it by increasing the number and size of the buffers. Check the source code header files for definitions like:


#define HSCX_RBUF_ORDER 1 
#define HSCX_RBUF_BPPS 2 
#define HSCX_RBUF_MAXPAGES 3 

The first two influence the size, the last one the maximum number of buffers.

7.12 trouble_noresetinit: After a soft reset, my card does not initialize correctly.

After you stopped your system with the reboot command or with Ctrl-Alt-Del, press the reset button (=hard reset). Sometimes the card needs to receive a hardware signal to reinitialize properly.

7.13 trouble_xosview: xosview doesn't show any network activity since installing i4l.

Peter Hettkamp Peter.Hettkamp@kassel.netsurf.de wrote:

xosview reacts, at least for me with version 1.4, to the IP accounting in the kernel. So, configure, if necessary build a new kernel, then couple with: ipfwadm -A -a -S your-ip-address-here -D 0.0.0.0/0 ipfwadm -A -a -D your-ip-address-here -S 0.0.0.0/0 (I don't know who it works with variable IP addresses. I have a fixed address.)

7.14 trouble_unknownhost: When I for example from a W95 box call up a page with Netscape, I only get the answer "unknown host".

What is entered on the "Win95 box" for the name server? As long as the router has no name server of its own, then the provider's name server of course has to be entered on all computers on the LAN.

7.15 trouble_noroute: Addresses are now found, but now I get "no route to host".

Please check:

7.16 trouble_nolocalnet: After booting, my local network can no longer be reached. I use the network interface ippp0 with ifconfig 0.0.0.0; the default route points to ippp0.

Wolfgang Barth wrote on 5 Jan 1997:

I've noticed that after the first connection via ippp0 that the local network can again be reached. Then the address 0.0.0.0 is no longer listed in ifconfig for ippp0, but instead the address assigned from the pool by the PPP partner. This was already discussed in de.comp.os.linux.networking, along this possible solution: Simply set ippp0 to a dummy IP number from the pool. Then the local network will have problems after booting, even with the default route, and the IP number in ifconfig will be overwritten anyway.


Next Previous Contents