Linux - Wireless NetworkingThis forum is for the discussion of wireless networking in Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
First off, thanks for this site. It has been a real help.
I am trying to install a Zonet ZEW1602 802.11g wireless PCI card into a machine running Fedora Core 2 (FC2). The card is on the HCL. This is a internet kiosk, so the OS is installed as lean as possible. I have a Realtek RTL-8139/8139C/8139C+ ethernet card installed and working properly.
I was not able to locate a Linux driver for this card, so I read from the forum that I could use NDISwrapper to emulate a Windows environment and use the Windows XP driver. I downloaded ndiswrapper-1.48 and read the INSTALL file, following its instructions exactly. My first error was relate to the kernel. It must be at least 2.6.6 or later. I was running the original 2.5.3-1 kernel that FC2 ships with. I upgraded to 2.6.10-1.
I followed the instructions again. The second error I received was from the gcc not being installed. So, I installed gcc-3.3.7-1 using YUM. Consequently, ndiswrapper requires gcc-3.4 or later.
Next, I downloaded gcc-3.4.6 from gcc.gnu.org. I followed all of the instructions in the INSTALL folder exactly. I received no errors while building or installing this version of gcc, although it did take about 12+ hours to complete the install.
I followed the instructions again for ndiswrapper-1.48 and got the following errors to which I have come to a dead end on:
Quote:
[root@localhost ndiswrapper-1.48]# make
make -C driver
make[1]: Entering directory `/home/udder/Desktop/ndiswrapper-1.48/driver'
make -C /lib/modules/2.6.10-1.771_FC2/build SUBDIRS=/home/udder/Desktop/ndiswrapper-1.48/driver
make[2]: Entering directory `/lib/modules/2.6.10-1.771_FC2/build'
CC [M] /home/udder/Desktop/ndiswrapper-1.48/driver/crt.o
CC [M] /home/udder/Desktop/ndiswrapper-1.48/driver/hal.o
CC [M] /home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.o
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_infra_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: (Each undeclared identifier is reported only once
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: for each function it appears in.)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_iw_auth_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:587: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:588: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:592: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:595: error: `IW_AUTH_KEY_MGMT_PSK' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:599: error: `IW_AUTH_ALG_SHARED_KEY' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_ndis_auth_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:635: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:636: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:640: error: `IW_AUTH_KEY_MGMT_PSK' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:646: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:659: error: `IW_AUTH_ALG_SHARED_KEY' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_iw_encr_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:700: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:702: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:705: error: `IW_AUTH_CIPHER_WEP40' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:705: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `add_wep_key':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:841: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `remove_key':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:872: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:873: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `ndis_priv_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:1544: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:1545: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `wpa_associate':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2186: error: `priv_mode' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2190: error: syntax error before "else"
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2208: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2211: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2215: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2237: error: too many arguments to function `set_encr_mode'
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `wpa_set_priv_filter':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2284: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2287: error: too many arguments to function `set_priv_filter'
make[3]: *** [/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.o] Error 1
make[2]: *** [_module_/home/udder/Desktop/ndiswrapper-1.48/driver] Error 2
make[2]: Leaving directory `/lib/modules/2.6.10-1.771_FC2/build'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/udder/Desktop/ndiswrapper-1.48/driver'
make: *** [all] Error 2
I could normally proceed further, but I found no error that seems fixable. It all seems to be errors in the code of the NDISwrapper program. Any help you can give would be appreciated! Here is my system specs:
OK, to eliminate the issue of gcc not being installed correctly, I installed gcc34 via YUM. I then renamed my gcc file in /usr/bin/ and created a link to gcc34 called gcc. This, in effect, calls gcc34 everytime gcc is called. Here are my errors again while making ndiswrapper, which appear to be the same:
Quote:
[root@localhost ndiswrapper-1.48]# make
make -C driver
make[1]: Entering directory `/home/udder/Desktop/ndiswrapper-1.48/driver'
make -C /lib/modules/2.6.10-1.771_FC2/build SUBDIRS=/home/udder/Desktop/ndiswrapper-1.48/driver
make[2]: Entering directory `/lib/modules/2.6.10-1.771_FC2/build'
CC [M] /home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.o
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_infra_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: (Each undeclared identifier is reported only once
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:164: error: for each function it appears in.)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_iw_auth_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:587: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:588: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:592: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:595: error: `IW_AUTH_KEY_MGMT_PSK' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:599: error: `IW_AUTH_ALG_SHARED_KEY' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_ndis_auth_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:635: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:636: error: `IW_AUTH_KEY_MGMT_802_1X' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:640: error: `IW_AUTH_KEY_MGMT_PSK' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:646: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:659: error: `IW_AUTH_ALG_SHARED_KEY' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `set_iw_encr_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:700: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:702: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:705: error: `IW_AUTH_CIPHER_WEP40' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:705: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `add_wep_key':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:841: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `remove_key':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:872: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:873: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `ndis_priv_mode':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:1544: error: `IW_AUTH_WPA_VERSION_WPA2' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:1545: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `wpa_associate':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2186: error: `priv_mode' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2190: error: syntax error before "else"
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2208: error: `IW_AUTH_CIPHER_CCMP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2211: error: `IW_AUTH_CIPHER_TKIP' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2215: error: `IW_AUTH_CIPHER_WEP104' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2237: error: too many arguments to function `set_encr_mode'
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c: In function `wpa_set_priv_filter':
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2284: error: `IW_AUTH_WPA_VERSION_WPA' undeclared (first use in this function)
/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.c:2287: error: too many arguments to function `set_priv_filter'
make[3]: *** [/home/udder/Desktop/ndiswrapper-1.48/driver/iw_ndis.o] Error 1
make[2]: *** [_module_/home/udder/Desktop/ndiswrapper-1.48/driver] Error 2
make[2]: Leaving directory `/lib/modules/2.6.10-1.771_FC2/build'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/home/udder/Desktop/ndiswrapper-1.48/driver'
make: *** [all] Error 2
Here is my current gcc spec with the gcc34 link:
Quote:
[root@localhost ndiswrapper-1.48]# gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.0/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-languages=c,c++,objc,java,f77 --host=i386-redhat-linux
Thread model: posix
gcc version 3.4.0 (Red Hat Linux 3.4.0-1)
If the headers are needing updating, how would I go about doing that? Also, what is the wireless tools package called in YUM?
OK, I downloaded ndiswrapper-1.1 and went through the install process. Everything installed fine. I loaded the driver from the Zonet CD and the driver was recognized. Hardware was detected and present. However, when I go to load the module, I get the following error:
Apparently the last FC2 kernel was compiled before gcc-3.4 came out, because the actual kernel was compiled with gcc-3.3:
Quote:
[root@localhost root]# modinfo ndiswrapper
parm: if_name:Network interface name or template (default: wlan%d)
parm: proc_uid:The uid of the files created in /proc (default: 0).
parm: proc_gid:The gid of the files created in /proc (default: 0).
parm: debug:debug level
parm: hangcheck_interval:The interval, in seconds, for checking if driver is hung. (default: 0)
author: ndiswrapper team <ndiswrapper-general@lists.sourceforge.net>
version: 1.1
license: GPL
vermagic: 2.6.10-1.771_FC2 686 REGPARM 4KSTACKS gcc-3.4
depends:
srcversion: 881AF1E1C667DB53A4B9938
[root@localhost root]# cat /proc/version
Linux version 2.6.10-1.771_FC2 (bhcompile@porky.build.redhat.com) (gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)) #1 Mon Mar 28 00:50:14 EST 2005
According to the NDISwrapper FAQ, the kernel and NDISwrapper have to be compiled with the same version of GCC. They fail to mention this in the install instructions.
So, now my question is "Where can I find a precompiled kernel that will work with Fedora Core 2 (FC2) and was compiled with gcc-3.4?" I know I can download kernels from kernel.org, but will they work with my current FC2 installation? It took me 12+ hours to build/install gcc-3.4.6, so I'd rather not recompile the current kernel myself. Thanks in advance for your help.
I think it's more a matter of compiling ndiswrapper against the right kernel with the right tool chain. glibc and gcc are only part of the equation and you're mixing various bits from different eras.
Given that FC2 has been out of the support window for a long time and that the nature of the Fedora development/release cycle does not lend itself well to stable commercial applications, are you open to switching out the distro? RHEL or CentOS, if you're a Red Hat fan, maybe.
To be honest, I could care less what distro is being used. As in the first post, this is simply an internet kiosk. As long as the internet works, I'm fine with it. However, I have spent countless hours ensuring a stable/error-free install of FC2 on this machine (actually 2) as well as customizing all of the settings, and I don't want all of that work to go down the drain. The only reason I am fooling with NDISwrapper in the first place is to keep from running a cable to these stations, which would only save a few hours of work (looks like I'm already in the hole :-|). Also, these machines are primitive, so I needed a distro with minimal system requirements. I am running 500MHz processors with 256MB RAM and 3.2GB HDDs. As you can see, not just any ole' OS will work.
As to the issue at hand, I have an older gen NDISwrapper running on FC2. The driver loads properly. I just need to get this versionmagic issue resolved. I guess I could try to recompile the older version of NDIS with gcc-3.3. How would I go about reconfiguring the machine to point to gcc-3.3 instead of gcc-3.4?
Ok, I have successfully compiled, installed, and loaded NDISwrapper version 1.1 on another machine. I haven't yet tested the connection, but it did load the driver. Now, I need to know how to revert back to gcc-3.3 on this machine so I can recompile NDIS.
Windows driver couldn't initialize the device (C0000001)
I ended up just uninstalling all gcc versions and removing their directories/binaries. I then installed gcc-3.3 via yum. I recompiled NDISwrapper-1.1 using gcc-3.3. Everything installed fine this time. modprobe ndiswrapper gives no errors, however the Windows drivers are not working. I have tried two different ones (from the install CD and from NDISwrapper website). Here is my error message from dmesg:
Quote:
ndiswrapper version 1.1 loaded (preempt=no,smp=no)
ndiswrapper: driver netmw125 (Customer,12/30/2005,3.2.3.2) loaded
PCI: Enabling device 0000:00:0b.0 (0000 -> 0002)
PCI: Found IRQ 11 for device 0000:00:0b.0
PCI: Setting latency timer of device 0000:00:0b.0 to 64
ndiswrapper: using irq 11
ndiswrapper (ndiswrapper_add_one_pci_dev:188): Windows driver couldn't initialize the device (C0000001)
ndiswrapper: probe of 0000:00:0b.0 failed with error -22
ndiswrapper version 1.1 loaded (preempt=no,smp=no)
ndiswrapper: driver mrv8000c (Marvell,02/22/2005,3.1.1.7) loaded
PCI: Enabling device 0000:00:0b.0 (0000 -> 0002)
PCI: Found IRQ 11 for device 0000:00:0b.0
PCI: Setting latency timer of device 0000:00:0b.0 to 64
ndiswrapper: using irq 11
ndiswrapper (ndiswrapper_add_one_pci_dev:188): Windows driver couldn't initialize the device (C0000001)
ndiswrapper: probe of 0000:00:0b.0 failed with error -22
This chipset is on the HCL and on NDIS website as compatible. Is recompiling the kernel for < 4K_STACKS my only option? If so, do I need the kernel-source or kernel-sourcecode rpm?
All of the threads I found seemed to be connected with very old versions of NDISwrapper, for whatever that's worth.
A couple of thoughts:
Although I think this thing is fixable, you could be tinkering for a long time to hit on the right combination of compatible parts. Alternatively, you could get a more compatible card, say one with an Atheros chipset. Another option is to get a wireless Ethernet adapter or a router configured in bridge mode to eliminate any reliance on wireless drivers.
In hindsight, I would definitely have purchased different cards. In my experience, Fedora has always had the right drivers for any device I threw at it built-in, so I didn't really think anything about getting a particular card--I figured Fedora would support it, regardless.
I am unsure how setting up a wireless card in "bridge mode" would eliminate the need for wireless drivers. If the wireless card is installed, the OS needs to know what to tell it and how to tell it what it needs to know--that's what the driver does. Right?
I am pretty sure that this one is not related to IRQs since ACPI finds an IRQ that is not used by any other device. My error messages were not the same as the linked thread. That leads me to believe that HIGHMEM support is my solution, which I assume is the STACK issue in Fedora.
HIGHMEM and STACK are different. Both kernel options, though, and changing either requires a recompile.
A wireless Ethernet adapter is an external device that plugs into the wired NIC. It is managed via web browser. The only driver required is for the NIC which is trivial on most cases. For a kiosk, physically securing the device would be the only issue. Some wireless routers have a "bridge mode" which lets them act as Ethernet adapters. Generally, that's a cheaper way to go. Router = $50 or less. Wireless Ethernet adapter = $100 or more.
Okay, I am definitely interested in this option. I have several wireless routers at my disposal. If I could connect both kiosks' NIC to a single router and "bridge" it with the broadband router, that would be great! My knowledge of wireless networks is probably at an intermediate level, though. Could you point me in the right direction to getting this type of network setup properly? Most of my networking classes in college were from a programming (software) standpoint. Thanks in advance.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.