Friday, April 4, 2008

Why NDISwrapper Didn't Work in Heron

The article doesn't apply anymore, NDISwrapper does work in Hardy Heron, you can find the fix here.

NDISwrapper is a free software driver wrapper that enables the use of Microsoft Windows drivers for wireless network devices (cards, USB modems, and routers), on Unix-like operating systems. Ndiswrapper works by implementing the Windows kernel and NDIS APIs, and dynamically linking the driver to this implementation.

With the release of Hardy Heron, I tried getting NDISwrapper working, as it was my prefered method of wireless on my Dell 1501. I tried a bunch of different methods but nothing worked for me. I was reading linux.slashdot.org today when I came across this article.

It explains why I was unable to get ndiswrapper to work in Hardy Heron. A change in the 2.6.24 kernel broke ndiswrapper by accidentally removing its access to GPL-only symbols. Without access to GPL-only symbols NDISwrapper is unable to implement the Windows kernel and NDIS APIs and link the driver.

Pavel Roskin attempted to patch the kernel to allow NDISwrapper to access those GPL-only symbols but Linus Torvalds shot down his patch. He stated, "I'm not seeing why ndiswrapper should be treated separately. If it loads non-GPL modules, it shouldn't be able to use GPLONLY symbols." He then went on to state, "ndiswrapper itself is *not* compatible with the GPL. Trying to claim that ndiswrapper somehow itself is GPL'd even though it then loads modules that aren't is stupid and pointless. Clearly it just re-exports those GPL ONLY functions to code that is *not* GPL'd."

Linus makes a excellent point, if NDISwrapper is going to abuse the use of GPL-only sysmbols by exporting them to code that is not GPL then they should not have access to GPL code. While it saddens me that the faster method of using the Broadcom card in my Dell Inspiron 1501 is gone, I do believe in the GPL.

Until then there's always:
sudo apt-get install b43-fwcutter
edited by pHreaksYcle

11 comments:

Levi said...

Strange...I am using ndiswrapper with kernel 2.6.24 on Arch Linux, and I don't believe it has been patched to work. The only thing I had to do was make sure ndiswrapper loaded before b44 in the modules, because ssb conflicts with ndiswrapper.

Earl Bastos said...

Ditto. Running 8.04 beta and ndiswrapper is the only driver that works on my Insipiron 1501. Same steps as levi.

Jason said...

I am using ndiswrapper not for my built in Wifi, but for my D-Link DWA-130, until all the issues get fixed with the internal one. So is it only the built-in wireless driver that isn't working, because my D-Link is working fine.

Cesar said...

How do you load the ndiswrapper before something else?

tom wright said...

i think either linus backed down or the ubuntu kernel was patched

this will get it working (it's an unrelated problem):
http://ubuntuforums.org/showthread.php?t=734003&highlight=ndiswrapper+hardy

shrewd.user said...

i have 8.04 now working again with wireless (deleted the keyring, fixed my logging on issues now works perfectly with the new network manager etc)

i'm fairly sure NDIS does and will always work, NDIS is derived from wine and if NDIS wasn't GPL compliant then neither is wine or a lot of things.

anyway the reverse engineered driver works fantastically here, i much prefer it to NDIS (not sure about resource usage though.)

Tim said...

Me too. I followed this post

http://ubuntuforums.org/showthread.php?t=734003

Tim said...

Also, Linus accepted the patch.

http://kernel.org/pub/linux/kernel/v2.6/testing/ChangeLog-2.6.25-rc4

adi said...

I agree with Linus for gpl-ndiswrapper issue, but on the other hand Im left with no solution for my dell 6400 broadcom chipset 4328 (draft N) to connect. ndis has been the only way to connect to the world. maybe levi can post some detailed howto make ndis start before b44 on ubuntu hardy?
thanks.

http://myddewji13.blogspot.com/ said...

ndiswrapper worked fine on my hardy install... it didn't however work in a clean install...i had to clean install gutsy..set up ndiswrapper and then upgrade..that seemed to be the fix although if one looks at the forums there are a number of other alternatives

Jim Natron said...

I guess one could replace the minipci card...

http://ubuntuforums.org/showthread.php?t=598372