Thread: [Ndiswrapper-general] loadndisdriver and older and newer versions of the driver
Status: Beta
Brought to you by:
pgiri
From: Brian J. M. <br...@in...> - 2006-08-09 15:19:45
|
I have several kernels that I boot for different tasks and need ndiswrapper in all of them. However the different kernels have different versions of ndiswrapper -- different and incompatible with the single version of loadndisdriver on the machine currently. For example, my current kernel, a 2.6.17ish kernel, I have: ndiswrapper version 1.21 loaded (preempt=3Dno,smp=3Dno) and of course, a matching loadndisdriver (utils 1.8) and all is working fine. However in another kernel, a 2.6.12ish kernel built with gcc 3.3.x I have: ndiswrapper version 1.6 loaded (preempt=3Dno,smp=3Dno) and the utils 1.8 version of loadndisdriver doesn't work with it. In my syslog messages file I get: loadndisdriver: loadndisdriver: main(638): version 1.8 doesn't match driver= version -a=20 :-( Certainly, I'd like to simply build ndiswrapper 1.21 for that 2.6.12ish kernel, but it seems that ndiswrapper 1.21 requires gcc >=3D 3.4 which makes a module that won't load in my 2.6.12ish kernel which was built with gcc 3.3. So it seems I am stuck with the 1.6 ndiswrapper version on that 2.6.12ish kernel. So, now to the real question: why is loadndisdriver not backward compatible to previous versions of the driver? It that a technical limitation? Is there any solution to this problem? Barring backward compatibility in loadndisdriver, what if the ndiswrapper driver tried to call loadndisdriver with the kernel driver (or maybe utils version is more appropriate) version post fixed (i.e. loadndisdriver-1.6) before trying to call a generic loadndisdriver binary? Then a loadndisdriver binary for each used kernel module could be installed simultaneously. Thots? b. --=20 My other computer is your Microsoft Windows server. Brian J. Murrell |
From: Brian J. M. <br...@in...> - 2006-08-09 15:33:40
|
On Wed, 2006-08-09 at 10:31 -0400, Brian J. Murrell wrote: >=20 > Barring backward compatibility in loadndisdriver, what if the > ndiswrapper driver tried to call loadndisdriver with the kernel driver > (or maybe utils version is more appropriate) version post fixed (i.e. > loadndisdriver-1.6) before trying to call a generic loadndisdriver > binary? Then a loadndisdriver binary for each used kernel module could > be installed simultaneously. I have a [proof-of-concept] wrapper script that seems to be able to do just this: #!/bin/bash =20 # ugly hack since the API of loadndisdriver changed after 1.6 # hopefully future additions to the command line can be put on the = end if [ "$1" =3D "0" -o "$1" =3D "1" ]; then version=3D$2 else version=3D$3 fi =20 exec /sbin/loadndisdriver-$version $@ Perhaps the wrapper is indeed *the* solution. The cost of a fork()/exec() for a single driver load is low. Thots? b. --=20 My other computer is your Microsoft Windows server. Brian J. Murrell |
From: Giridhar P. <pg...@ya...> - 2006-08-09 16:40:56
|
--- "Brian J. Murrell" <br...@in...> wrote: > I have a [proof-of-concept] wrapper script that seems to be able to do > just this: Latest debian package does something similar. However, this approach is not ideal: The .conf files installed are also different for different versions, so a particular version of loadndisdriver may not be able to read .conf files installed by another version. If you want to use gcc 3.3, install ndiswrapper version 1.15. That should also work with latest loadndisdriver. Giri __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |