It seems that the wireless ioctl buffer for the "GET range" have been changed its size for kernel 2.6.x. As result the request buffer is to small for the request. Reproducible: Always Steps to Reproduce: 1.Boot kernel 2.6.x 2.Compile wavemon 3.Execute wavemon -> fatal error: could not get range information. /var/log/messages: --------------------- cut ----------------------- Mar 30 16:16:22 notebook ipw2100: U ipw2100_wx_get_range GET Range Mar 30 16:16:22 notebook eth1 (WE) : Buffer for request 8B0B too small (308<564) --------------------- cut ----------------------- Actual Results: wavemon does not work Expected Results: The opposite - it should work The compile step should use include path /lib/modules/'uname-r'/build/include in case of running a 2.6.x kernel sys-kernel/linux-headers-2.4.19-r1 installed below output of 'emerge info': Gentoo Base System version 1.4.3.13 Portage 2.0.50-r1 (default-x86-1.4, gcc-3.3.2, glibc-2.3.2-r9, 2.6.4-gentoo-r1) ================================================================= System uname: 2.6.4-gentoo-r1 i686 Intel(R) Pentium(R) M processor 1400MHz Autoconf: sys-devel/autoconf-2.58-r1 Automake: sys-devel/automake-1.7.7 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O3 -mcpu=pentium4 -march=pentium3 -pipe" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.1/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O3 -mcpu=pentium4 -march=pentium3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acpi acpi4linux apm arts avi berkdb cdr crypt cups dga directfb doc dvd encode esd fbcon foomaticdb gdbm gif gnome gpm gtk gtk2 hbci i8x0 imlib irda java jpeg kde lcd libg++ libwww linguas_de linguas_en mad mikmod motif mozilla mpeg ncurses nls oggvorbis opengl oss pam pcmcia pdflib perl png ppds python qt quicktime readline sdl slang spell ssl svga tcltk tcpd tiff truetype usb x86 xml2 xmms xv zlib"
Yup, this problem is a nasty one that won't really go away until 2.6 kernel headers are used in /usr/include/linux... We could edit the ebuild to use /usr/src/linux/include, but then when someone moves back to 2.4, it dies, etc, etc. Ultimately it's a headers vs. running kernel issue, that's nasty regardless. I suppose you could have a versioned binary depending on the kernel version detected, and have /usr/bin/wavemon -> /usr/bin/wavemon-v2.6 or -> /usr/bin/wavemon-2.4, but this is still not a good solution. Let me ponder this more, any input from you would be great.
I placed a suggestion inside the bug report. As /lib/modules/'uname -r'/build points always (?) to the actual kernel source tree - why not use/add -I/lib/modules/'uname -r'/build/include as compile option. This should solve the problem in either case of kernel version.
There's many problems with that approach. First, gentoo's policy is to use the kernel found at /usr/src/linux to determine the version, NOT what uname -r returns. THis is because many times things are compiled on hosts other than the final destination, etc. Beyond that, this does nothing to solve the problem where someone has a machine that uses both a 2.4 and a 2.6 kernel. Either one is broken, or the other is. For now, i supposed we can change the include to use /usr/src/linux/include so it at least works on a 2.6 only system, but utlimately there needs to be a better solution.
Okay. Marking WONTFIX as there are easy to use 2.6 kernel headers that work fine now for this.