module compilation on 2.6
Rick Stevens
rstevens at vitalstream.com
Fri Jun 18 23:51:15 UTC 2004
Fred Fedora wrote:
> Rick,
> Thanks for explaining. Is there some sample makefile which ahieves this
> trick somewhere on teh web? I just downloaded ATMEL code from
> sourceforge to find if they have some clues.
If you got the at76c503a sources, take a look at the Makefile in the
top directory. Essentially, it says:
It's a 2.4-style make if "/lib/modules/`uname -r`/build/Rules.make"
exists. If it doesn't exist, it's a 2.5/2.6 make
Simple enough. You'd have to look at the rest of the Makefile to see
what it does as far as picking up the right headers (HINT: it uses the
kernel Makefile to set things up by using "make -C" and setting the
"SUBDIRS" variable). This really isn't the forum for a tutorial on just
how the 2.6 kernel build scripts work.
> */Rick Stevens <rstevens at vitalstream.com>/* wrote:
>
> Fred Fedora wrote:
> > Rick,
> > Thanks for the reply. Should the module code be physically located
> > inside the kernel source tree(/usr/src/linux-kernel-version??)?
> > I had a module built outside kernel tree on 2.4. Things compiled
> OK. I
> > want to check itout (using the same make commands) on 2.6 and I get
> > bunch of errors.
> > Is irq_vectors.h automatically picked by kernel using some variable?
>
> If the module's source is designed correctly, it'll look for the kernel
> headers it needs by looking at /lib/modules/`uname -r`/build. Under
> 2.4, this is generally a symlink to the actual kernel source directory.
> In 2.6, it's typically a directory that contains all of the necessary
> source (headers and whatnot) to build your module.
>
> The trick is that the module MUST be designed with 2.6 in mind. A quick
> search for the! file you have problems with lists four "irq_vectors.h"
> files based on the basic system architecture, "mach-default",
> "mach-visws, "mach-voyager" and "mach-pc9800". The module's Makefile
> must understand this to grab the right file.
>
> So providing the module is 2.6-aware, yes, you should be able to build
> your module outside the kernel source tree. I know it works as I've
> built several drivers that way (for example, the atmel driver for
> atmel-based wireles LAN cards).
>
> > */Rick Stevens /* wrote:
> >
> > Fred Fedora wrote:
> > > Is module compilation diffrent for 2.6 kernel from 2.4? I am get
> > tons of
> > > erros.
> > > Any hints?
> > > (irq_vectros.h not found etc. are my errors).
> >
> > 2.6 kernel building is a lot different. Your best bet is to do it
> > from ground zero:
> >
> > # cd /usr/src/linux-whatever
> > # make mrproper
> > # make xconfig -or- m! ake gconfig -or- make menuconfig
> > (load an existing config file or set things up as you wish)
> > (save this new config)
> > # make
----------------------------------------------------------------------
- Rick Stevens, Senior Systems Engineer rstevens at vitalstream.com -
- VitalStream, Inc. http://www.vitalstream.com -
- -
- Millihelen, adj: The amount of beauty required to launch one ship. -
----------------------------------------------------------------------
More information about the fedora-list
mailing list