[opensuse-programming] 32-bit kernel module compilation
Hello list, I'd like to compile a 32-bit kernelmodule (ndiswrapper) on a 64-bit (AMD) System. My idea is to use the 32-bit runtime environment because I've got only a 32-bit Driver for a wlan card. The manufacturer is not planning to release a 64-bit driver for that card. Will my idea work and where do I find information about compiling 32-bit software on a 64-bit linux box using gcc? Best Regards, Oliver --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming-de+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming-de+help@opensuse.org --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org
On Wednesday 20 June 2007 17:28, Oliver Block wrote:
Hello list,
I'd like to compile a 32-bit kernelmodule (ndiswrapper) on a 64-bit (AMD) System. My idea is to use the 32-bit runtime environment because I've got only a 32-bit Driver for a wlan card. The manufacturer is not planning to release a 64-bit driver for that card. Will my idea work and where do I find information about compiling 32-bit software on a 64-bit linux box using gcc?
Oliver, 64bit kernels (x86-64) support running 32 bit (i386) user programs. They do NOT however support the same for kernel modules. The whole kernel and its modules and any functions called in the kernel context must be compiled for x86-64. So there is no way to call your i386 NDIS driver from an x86_64 kernel via ndiswrapper! Simplest solution is to buy a wlan card that is directly supported by your Linux distribution! GCC simply needs the -m32 option genarate i386 code. That said the hardest part of doing cross compilation is usually getting the programs build system/scripts to do this for you. Best, Michael --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org
On Wed, Jun 20, 2007 at 06:19:01PM +0200, Michael Stevens wrote:
On Wednesday 20 June 2007 17:28, Oliver Block wrote:
Hello list,
I'd like to compile a 32-bit kernelmodule (ndiswrapper) on a 64-bit (AMD) System. My idea is to use the 32-bit runtime environment because I've got only a 32-bit Driver for a wlan card. The manufacturer is not planning to release a 64-bit driver for that card. Will my idea work and where do I find information about compiling 32-bit software on a 64-bit linux box using gcc?
Oliver,
64bit kernels (x86-64) support running 32 bit (i386) user programs. They do NOT however support the same for kernel modules. The whole kernel and its modules and any functions called in the kernel context must be compiled for x86-64.
So there is no way to call your i386 NDIS driver from an x86_64 kernel via ndiswrapper!
Simplest solution is to buy a wlan card that is directly supported by your Linux distribution!
GCC simply needs the -m32 option genarate i386 code. That said the hardest part of doing cross compilation is usually getting the programs build system/scripts to do this for you.
The FAQ talks about it: http://ndiswrapper.sourceforge.net/joomla/index.php?/component/option,com_op... Can I use ndiswrapper in 64-bit mode for AMD64? Yes. Can I use 32-bit Windows driver in 64-bit mode? No. Ciao, Marcus --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-programming+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-programming+help@opensuse.org
participants (3)
-
Marcus Meissner
-
Michael Stevens
-
Oliver Block