2004-01-06 13:05:36

by Valentijn Sessink

[permalink] [raw]
Subject: HiSax freezes 2.6.0-test11

Hello list,

My 2.6.0-test11 "hisax" module freezes my PC, but seems to handle
interrupts, as ICMP and keyboard leds keep functioning. I sent mail to kkeil
and kai.germaschewski and to the ISDN mailing list, but no reply. I'm
willing to test and/or hunt for the bug, but don't know where to look. As
this interrupt behaviour seems rather specific, maybe someone could help me
out where to look?

I tested three HiSax cards: a Sedlbauer speed card, a Sedlbauer
Speed Win (both ISA cards, the first is non-PnP, the second PnP), and a HFC
PCI card (Dolphin PCTA128). The Sedlbauer cards do:

Sedlbauer: resetting card
Sedlbauer: speed card/win: defined at 0x280-288 IRQ 5
get_drv 0: 1->2
put_drv 0: 2->1
get_drv 0: 1->2
put_drv 0: 2->1
get_drv 0: 1->2
put_drv 0: 2->1
... this repeats, totalling to 9 times
Sedlbauer Speed Card: IRQ 5 count 0
get_drv 0: 1->2
put_drv 0: 2->1
get_drv 0: 1->2
put_drv 0: 2->1
... etcetera, 9 x "get_drv... put_drv".

Then a freeze occurs. Please note that this is "modprobe hisax irq=5
io=0x280", just as the previous kernel.

The HFC card is less chatty, but it detects IRQ4, then freezes after "IRQ 4
count 0"

Reading from the source, this is from config.c. line 766,
printk(KERN_INFO "%s: IRQ %d count %d\n", CardType[cs->typ],
cs->irq, irq_cnt);

but I don't know enough about IRQ handling (and more generally, kernel
programming) to grasp what's going on here. I tried two kernel
configurations, the last one without CAPI support (as there's no CAPI for my
ISDN cards anyway), but that doesn't help.

I'd be glad to solve this, but don't know where to look now. You probably
know what's going on - do you have patches that I can try? I'm willing to
recompile my kernel and/or perform tests.

HW info: IBM Aptiva with Cyrix processor, 3 PCI and 3 ISA slots, one
harddisk. Most of the on board hardware is turned off (no parport, no
serial, no USB). This machine used to run a rather ancient 2.2.16 (which is
no problem as it doesn't have any outside connections and runs no user
services), ISDN worked under that. The machine runs Debian 3.0 with
module-init-tools. I compiled the kernel with gcc version 2.95.4
20011002 (Debian prerelease). If recompiling with gcc3.2 is necessary,
please say so.
CONFIG_ISDN=m
CONFIG_ISDN_PPP=y
CONFIG_ISDN_PPP_VJ=y
CONFIG_ISDN_MPP=y
CONFIG_ISDN_PPP_BSDCOMP=m
CONFIG_ISDN_AUDIO=y
CONFIG_ISDN_TTY_FAX=y
# CONFIG_ISDN_DRV_LOOP is not set
CONFIG_ISDN_DRV_HISAX=m
CONFIG_HISAX_EURO=y
all passive hisax cards are "y", rest is "n". If you need the complete
kernel info or if you need other information, please say so.

=======
On a completely unrelated sidenote and very low on my priority list: I had
some problems with 3c509 on 2.6.0. Compiling CONFIG_PNP=Y, CONFIG_ISAPNP=N
resulted in a non working driver (I assume this is by design). Then "rmmod
3c509" on a working driver resulted in oopses and a - when configured with
IP addresses on a local network - a real panic. It seems the unload code
leaves things around - if I find time I'll try to find out where.

Best regards,

Valentijn
--
http://www.openoffice.nl/ Open Office - Linux Office Solutions
Valentijn Sessink [email protected]


2004-01-07 19:52:15

by Paolo Ornati

[permalink] [raw]
Subject: Re: HiSax freezes 2.6.0-test11

On Tuesday 06 January 2004 14:05, Valentijn Sessink wrote:
> Hello list,
>
> My 2.6.0-test11 "hisax" module freezes my PC, but seems to handle
> interrupts, as ICMP and keyboard leds keep functioning. I sent mail to
> kkeil and kai.germaschewski and to the ISDN mailing list, but no reply.
> I'm willing to test and/or hunt for the bug, but don't know where to
> look. As this interrupt behaviour seems rather specific, maybe someone
> could help me out where to look?

It also freezes on my PC... it seems very broken!
When I wrote to LKML asking for help Simon Cahuk <[email protected]>
suggested me to try mISDN ( ftp.isdn4linux.de )
... and it seems to work (for me).

MORE INFO (quoted from Simon Cahuk)
_____________________________________________________________________
What you need:

- 2.6.0-test9-bk22 (or later) or 2.4.20 kernel? (or later)
- I4L patch for 2.6.0-test9-bk22 (patches cleanly test10 and test11)
- mISDN (mISDN-CVS tarball or mISDN direct from CVS server)
- supported ISDN card.

Download and extract the mISDN-CVS tarball from ftp.isdn4linux.de/snapshots.
Unpack it.
Then make a symbolic link to your kernel source:

cd /usr/src
ln -sf your_kernel_source linux

Go to your mISDN source and run from there:
./std2kern

Patch your kernel (I4L patch):

cd /usr/src/linux
zcat path_to_the_I4L_patch.gz | patch -p1

This will copy the mISDN stuff to your kernel source. Please check that
your /usr/src/linux link exists before you run std2kern.

Configure your kernel as usually and enable the following:

CONFIG_ISDN_BOOL=y
CONFIG_ISDN_CAPI=m
CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
CONFIG_ISDN_CAPI_MIDDLEWARE=y
CONFIG_ISDN_CAPI_CAPI20=m
CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
CONFIG_ISDN_CAPI_CAPIFS=m
CONFIG_MISDN_DRV=m
CONFIG_MISDN_MEMDEBUG=y
CONFIG_MISDN_AVM_FRITZ=y # if you have an AVM Fritz card
CONFIG_MISDN_HFCPCI=y # if you have a HFPCI card
CONFIG_MISDN_SPEEDFAX=y # if you have a SPEEDFAX card
CONFIG_MISDN_W6692=y # if you have a W6692 card
CONFIG_MISDN_DSP=y

Reboot your machine and boot the new kernel.

Here is a script (from Karsten) to load the modules:

#!/bin/sh
if [ $# -ge 1 ]; then
DEBUG=$1
else
DEBUG=0
fi
#INSMOD_PARA=-m
MEXT=.ko
cd /lib/modules/`uname -r`/kernel/drivers/isdn/hardware/mISDN
#modprobe capidrv
modprobe capi
insmod ${INSMOD_PARA} mISDN_core${MEXT} debug=${DEBUG} >/tmp/m_core.mod
insmod ${INSMOD_PARA} mISDN_l1${MEXT} debug=${DEBUG} >/tmp/m_l1.mod
insmod ${INSMOD_PARA} mISDN_l2${MEXT} debug=${DEBUG} >/tmp/m_l2.mod
insmod ${INSMOD_PARA} l3udss1${MEXT} debug=${DEBUG} >/tmp/m_l3u.mod
insmod ${INSMOD_PARA} mISDN_capi${MEXT} debug=${DEBUG} >/tmp/m_capi.mod
insmod ${INSMOD_PARA} mISDN_isac${MEXT} >/tmp/m_isac.mod
insmod ${INSMOD_PARA} avmfritz${MEXT} debug=${DEBUG} protocol=2 > /tmp/
avmfritz
.mod

Then mount capifs:
mkdir /dev/capi
mount -t capifs capifs /dev/capi


or add to fstab:
capifs /dev/capi capifs defaults
0
0

Now run pppd:

pppd call isdn/arcor.

If ps ax shows
<PID> ? S 0:00 pppd call isdn/arcor

then kill pppd with kill -9 <PID> and run pppd again. Then should ps ax
show:
<PID> capi/0 S 0:00 pppd call isdn/arcor.
_____________________________________________________________________


Example of isdn/arcor file:
_____________________________________________________________________
With CAPI you use pppd. Edit your /etc/ppp/peers/isdn/arcor file and start:

pppd call isdn/arcor. You disconnect with killing the pppd pid.

My arcor:

sync
noauth
user USERNAME
plugin userpass.so
password PASSWORD
defaultroute
plugin capiplugin.so
number 088932331
protocol hdlc
ipcp-accept-local
ipcp-accept-remote
/dev/null

Capiplugin comes with capi4k-utils.

Simon
_____________________________________________________________________


BYE

--
Paolo Ornati
Linux v2.4.23


Attachments:
(No filename) (3.75 kB)
i4l-t9bk22.gz (2.99 kB)
Download all attachments