Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 52399 - Kwifimanager applet crashes (sig 11) if wifi module already installed.
Summary: Kwifimanager applet crashes (sig 11) if wifi module already installed.
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: Gentoo KDE team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-05-29 15:24 UTC by Stonie R. Cooper
Modified: 2005-03-06 09:03 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stonie R. Cooper 2004-05-29 15:24:40 UTC
PCMCIA Orinoco card installed, and pcmcia startup script correctly detects and configures.  Launching the kwifi applet results in a Krash window with Sig 11, attempts to launch kwifimanager result in terminal output "Alarm clock" and an exit without starting the GUI.

If I stop the pcmcia service, the kwifimanager application will come up, but, of course, sees no device and doesn't correctly detect one.  The kwifi applet does not crash, but has no signal level on the panel.  With either or both executed, and I start the pcmcia server, they both crash.

Reproducible: Always
Steps to Reproduce:
1. Boot with pcmcia boot script correctly detecting orinoco pcmcia card.
2. Login as root or other.
3. Attempt to start applet or application for kwifimanager.

Actual Results:  
Applet crashes, kwifimanager exits with "Alarm clock." 

Expected Results:  
Kwifi applet sticks on panel with signal strength info, and kwifimanager 
starts and shows device and signal.
Comment 1 Michael W. Holdeman 2004-06-10 13:37:31 UTC
Same result here using ndiswrapper module to drive the broadcomm internel in my Dell. Unload the ndiswrapper module and kwifimanager comes up fine. Reload the module and it crashes with SIG11

Mike
Comment 2 Markus Moll 2004-07-11 16:56:39 UTC
I emailed the author of kwifimanager because of this error.
Now I have found a possible cause of it.

Do "grep WIRELESS_EXT /usr/include/linux/wireless.h" and "grep WIRELESS_EXT /usr/src/linux/include/linux/wireless.h" differ on your system (on mine it's WE 15 (linux-headers-2.4.21) vs WE 16 (gentoo-dev-sources-2.6.7))?

Both declare a "struct iwrange", but with WIRELESS_EXT 16 it's considerably larger than with WIRELESS_EXT 15.
Now the wireless-tools use /usr/src/linux/include/linux/wireless.h while kdenetwork uses /usr/include/linux/wireless.h, but in wirelesstools.cpp:77 calls 
iw_get_range_info(skfd, ifname, &(info->range)) >= 0)

This function (from iwlib/wireless-tools) fills info->range, but assumes it's the much larger struct and thus writes beyond it, probably destroying the kde memory management (info is allocated dynamically).

The problem may be resolved by replacing /usr/include/linux/wireless.h with /usr/src/linux/include/linux/wireless.h
This resolution works on my system.
Comment 3 Alexandros Karypidis 2004-08-31 12:03:12 UTC
For the record (and people who end up here while searching for a solution to this problem) I just want to note that the work-around in comment #2 for some reason fails on my system. I had to temporarily replace the entire directory /usr/include/linux (with linux-headers contents) by /usr/src/linux/include/linux (I created a symbolic link). This is what the developers recommend in the respective bug-report filed at their site (http://sourceforge.net/tracker/index.php?func=detail&aid=936734&group_id=52104&atid=465722).

If instead, I replacing just wireless.h with the one from the sources used to create the kernel, it causes the compilation of kdenetwork to fail with:

Making all in kwireless
make[1]: Entering directory `/local/var/tmp/portage/kdenetwork-3.2.3-r1/work/kdenetwork-3.2.3/wifi/kwireless'
/usr/qt/3/bin/uic -L /usr/kde/3.2/lib/kde3/plugins/designer -nounload -o propertytablebase.h ./propertytablebase.ui
/usr/qt/3/bin/moc ./kwireless.h -o kwireless.moc
/bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3.2/include -I/usr/qt/3/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT -D_FILE_OFFSET_BITS=64  -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -O2 -march=athlon-xp -fomit-frame-pointer -pipe -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -c -o kwireless.lo kwireless.cpp
/usr/qt/3/bin/moc ./kwirelesswidget.h -o kwirelesswidget.moc
/bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3.2/include -I/usr/qt/3/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT -D_FILE_OFFSET_BITS=64  -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -O2 -march=athlon-xp -fomit-frame-pointer -pipe -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -c -o kwirelesswidget.lo kwirelesswidget.cpp
/usr/qt/3/bin/moc ./linuxwirelesswidget.h -o linuxwirelesswidget.moc
/bin/sh ../../libtool --silent --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I/usr/kde/3.2/include -I/usr/qt/3/include -I/usr/X11R6/include   -DQT_THREAD_SUPPORT  -D_REENTRANT -D_FILE_OFFSET_BITS=64  -Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings -DNDEBUG -DNO_DEBUG -O2 -O2 -march=athlon-xp -fomit-frame-pointer -pipe -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION  -c -o linuxwirelesswidget.lo linuxwirelesswidget.cpp
In file included from /usr/include/iwlib.h:135,
                 from linuxwirelesswidget.cpp:18:
/usr/include/linux/wireless.h:441: error: variable or field `__user' declared
   void
/usr/include/linux/wireless.h:441: error: parse error before `*' token
/usr/include/iwlib.h: In member function `virtual void
   LinuxWireLessWidget::poll()':
/usr/include/iwlib.h:331: error: too many arguments to function `int
   iw_get_stats(int, char*, iwstats*)'
linuxwirelesswidget.cpp:129: error: at this point in file
make[1]: *** [linuxwirelesswidget.lo] Error 1
make[1]: Leaving directory `/local/var/tmp/portage/kdenetwork-3.2.3-r1/work/kdenetwork-3.2.3/wifi/kwireless'
Comment 4 Timo Maier 2004-09-19 02:35:09 UTC
Same crash here, KDE 3.3, Orinoco Card.
Comment 5 Thomas Witzel 2004-09-25 14:55:08 UTC
I found that temporary linking /usr/src/linux/include/linux to /usr/include/linux did let me rebuild kdenetwork and I have a working version of kwifimanager now.
Comment 6 Thomas Witzel 2004-09-26 13:25:17 UTC
Actually just emerge linux26-headers (after removal of linux-headers) is alot better and solves this problem too.
Of course you have to re-emerge kdenetwork after installing the new headers.
Comment 7 Gregorio Guidi (RETIRED) gentoo-dev 2005-01-16 07:32:16 UTC
It seems recent versions of wireless-tools changed this situation, and all
should be ok now, but I can be wrong. Can someone give version 27 and above a 
try?
Comment 8 Alexandros Karypidis 2005-01-17 04:18:17 UTC
Hi,

I'm using sys-kernel/linux26-headers-2.6.8.1-r2, kde-base/kdenetwork-3.3.2 and net-wireless/wireless-tools-27.

All is ok.

If I'm not mistaken though, we're looking for a setup with 2.4 headers, right?
Comment 9 Gregorio Guidi (RETIRED) gentoo-dev 2005-01-17 04:42:23 UTC
yes, 2.4 headers.
Comment 10 Gregorio Guidi (RETIRED) gentoo-dev 2005-03-06 09:03:19 UTC
Assuming all is ok now.