Thread: [Ndiswrapper-general] Errors during making ndiswrapper
Status: Beta
Brought to you by:
pgiri
From: Thibaud H. <hul...@wa...> - 2007-02-14 10:14:22
|
Hello ! When I try to compile ndiswrapper 1.37, I get this warning : This kernel seems to use 4K stack size option (CONFIG_4KSTACKS); many Windows drivers will not work with this option enabled. Disable CONFIG_4KSTACKS option, recompile and install kernel. So, if I do a "cat .config |grep CONFIG_4KSTACKS", I got... nothing ! What is the good option to change ? And when I compile ndiswrapper 1.16 for my dongle (recommended version), I have these errors : warning: passing argument 2 of 'request_irq' from incomatible pointer type error: 'DCHECKSUM_HW' undeclared (first use in this function) error (Each undeclared identifier is reported only once error : for each function it appears in Error 1 Error 2 Thibaud. |
From: Olive <oli...@te...> - 2007-02-14 12:51:48
|
Thibaud Hulin wrote: > Hello ! > When I try to compile ndiswrapper 1.37, I get this warning : > > This kernel seems to use 4K stack size option (CONFIG_4KSTACKS); many > Windows drivers will not work with this option enabled. Disable > CONFIG_4KSTACKS option, recompile and install kernel. > > So, if I do a "cat .config |grep CONFIG_4KSTACKS", I got... nothing ! > What is the good option to change ? Windows use a 12K stacks kernel; linux use by default 8K, but some distribution (RedHat and derivative) use 4K stacks. If you see nothing in your .config you probably have a 8K stack kernel; which is fine for most drivers but might nevertheless cause buffer overflow if the driver uses more stack size. My suggestion is that you try compiling ndiswrapper 1.37 ignoring the warning (if it does not see a CONFIG_4STACK in the kernel configuration, it wrongly assume that the kernel uses 4K stack of memory). In case you nevertheless need to increase the stack size; you can find kernel patches that increase the kernel stack size to 16K here: http://www.linuxant.com/driverloader/wlan/downloads-patches.php Olive |
From: Thibaud H. <hul...@wa...> - 2007-02-14 17:54:36
|
Thanks for your link. I tried to apply the patch with a chmod +x and ./ in the linux folder, but it failed. I don't see doc for that in your site. How can I do simply that ? Olive a écrit : > Windows use a 12K stacks kernel; linux use by default 8K, but some > distribution (RedHat and derivative) use 4K stacks. If you see nothing > in your .config you probably have a 8K stack kernel; which is fine for > most drivers but might nevertheless cause buffer overflow if the driver > uses more stack size. My suggestion is that you try compiling > ndiswrapper 1.37 ignoring the warning (if it does not see a > CONFIG_4STACK in the kernel configuration, it wrongly assume that the > kernel uses 4K stack of memory). In case you nevertheless need to > increase the stack size; you can find kernel patches that increase the > kernel stack size to 16K here: > > http://www.linuxant.com/driverloader/wlan/downloads-patches.php > > Olive > > |
From: Olive <oli...@te...> - 2007-02-14 18:04:04
|
Thibaud Hulin wrote: > Thanks for your link. I tried to apply the patch with a chmod +x and ./ > in the linux folder, but it failed. > I don't see doc for that in your site. > How can I do simply that ? To apply patches, you need to use the command "patch". See "man patch" for more details. Have you tried to compile ndiswrapper ignoring the 4Kstacks warning? As I have told in my previous message, it works most of the time. Also the ndiswrapper web page has a wiki with details about (almost?) all cards. Olive |
From: Olive <oli...@te...> - 2007-02-14 18:11:33
|
> To apply patches, you need to use the command "patch". See "man patch" > for more details. Looking at the patches on the site I mentioned to you the exact command to apply patches should be patch -p1 <patch-file> in the top of the linux kernel source directory. |
From: Thibaud H. <hul...@wa...> - 2007-02-20 14:12:07
|
Hi, > Looking at the patches on the site I mentioned to you the exact command > to apply patches should be > > patch -p1 <patch-file> > > in the top of the linux kernel source directory. I type your command, but the console block when I do it. On the web site, they recommand to use the command dldrconfig --patch file.patch, but I've an error : dldrconfig --patch linux-2.6.19-16kstacks.patch Linuxant DriverLoader for Wireless LAN devices, version 2.36 ERROR: The --patch option can only be used with the generic package in the TAR format of DriverLoader. So, I asked assistance to the webmaster. Waiting an answer, I've changed too the file drivers/usb/core/usb.h to HZ*60. Then, I've verified that CONFIG_4KSTACKS is not active in my .config. So, it's good, because it means that CONFIG_USB_SUSPEND is turned off, isn't it ? I tried with an other linux (now, it's Debian testing 4.0), with the new kernel. When I get on the dongle within ndiswrapper, I've no message. But, when I use it, I've this error : usb 1-1: new full speed USB device using uhci_hcd and address 2 usb 1-1: device descriptor read/64, error -71 And see above for dmesg |grep usb. So, is it necessary to apply the patch or is it an other problem ? Finally, I get a cat /var/log/messages, but I've only this line : Feb 20 14:30:21 localhost kernel: usb 1-1: new full speed USB device using uhci_hcd and address 2 Thanks a lot, Thibaud. ----------------- |dmesg |grep usb| ----------------- usb usb1: wakeup_rh (auto-start) usb 1-1: new full speed USB device using uhci_hcd and address 2 usb 1-1: uhci_result_common: failed with status 440000 usb 1-1: uhci_result_common: failed with status 440000 usb 1-1: uhci_result_common: failed with status 440000 usb 1-1: device descriptor read/64, error -71 usb 1-1: uhci_result_common: failed with status 440000 usb 1-1: uhci_result_common: failed with status 440000 usb 1-1: uhci_result_common: failed with status 440000 usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) usb usb1: wakeup_rh (auto-start) usb usb1: suspend_rh (auto-stop) |
From: Olive <oli...@te...> - 2007-02-20 18:34:32
|
Thibaud Hulin wrote: > Hi, > >> Looking at the patches on the site I mentioned to you the exact command >> to apply patches should be >> >> patch -p1 <patch-file> >> >> in the top of the linux kernel source directory. > I type your command, but the console block when I do it. On the web > site, they recommand to use the command dldrconfig --patch file.patch, > but I've an error : > > dldrconfig --patch linux-2.6.19-16kstacks.patch > Linuxant DriverLoader for Wireless LAN devices, version 2.36 > ERROR: The --patch option can only be used with the generic package in > the TAR > format of DriverLoader. The command is patch -p1 < patch-file (type < exactly as in my command). drlconfig if for driverloader (a commercial version of ndiswrapper); you should not use it with ndiswrapper. After having patched the kernel, you have to activated the corresponding option in the kernel configuration. Now I do not know every driver and if it will work. Have a look at: http://ndiswrapper.sourceforge.net/mediawiki/index.php/List Olive |