[prev in list] [next in list] [prev in thread] [next in thread] 

List:       comedi
Subject:    Re: Installation problems with Suse 9.x
From:       Ian Abbott <abbotti () mev ! co ! uk>
Date:       2005-07-05 16:04:45
Message-ID: 42CAAF9D.3010801 () mev ! co ! uk
[Download RAW message or body]

On 05/07/05 12:13, Ian Abbott wrote:
> On 05/07/05 11:07, Ian Abbott wrote:
> 
>>On 04/07/05 23:28, mel jones wrote:
>>
>>>When I do "modprobe ni_pcimio" I get
>>>- from  tail /var/log/messages:
>>>
>>>Jul  1 08:23:24 r6d -- MARK --
>>>Jul  1 08:28:57 r6d kernel: comedi: no version for "struct_module"
>>>found: kernel tainted.
>>>Jul  1 08:28:57 r6d kernel: comedi: unsupported module, tainting kernel.
>>>Jul  1 08:28:57 r6d kernel: comedi: version 0.7.70 - David Schleef
>>><ds@schleef.org>
>>>Jul  1 08:28:58 r6d kernel: 8255: unsupported module, tainting kernel.
>>>Jul  1 08:28:58 r6d kernel: mite: unsupported module, tainting kernel.
>>>Jul  1 08:28:58 r6d kernel: Available NI device IDs: 0x2a60
>>>Jul  1 08:28:58 r6d kernel: comedi_fc: unsupported module, tainting kernel.
>>>Jul  1 08:28:58 r6d kernel: ni_pcimio: unsupported module, tainting kernel.
>>>
>>>comedi_config will associate ni_pcimio with /dev/comedi0.
>>>
>>>Are these messages important or do they just indicate some 2.4 / 2.6
>>>variation? How do I fix them? 
>>
>>
>>Those messages are probably due to a missing 'Modules.symvers' file in
>>the top-level kernel sources directory.  For SuSE 9.x, you have to
>>install the 'kernel-ksyms' package for your kernel to get that file.
>>Try installing 'kernel-syms', then rebuild comedi with 'make clean',
>>'make', 'make install'.
> 
> 
> At least that worked for SuSE 9.1, but it looks like things have changed
> for SuSE 9.2/9.3.  The 'kernel-syms' package now installs to a different
> place than the 'kernel-source' package.  In face it installs to the same
> place as the 'kernel-default', 'kernel-smp' or 'kernel-bigsmp' package
> and looks a bit redundant.
> 
> It looks like you are meant to use the
> '/usr/src/linux-2.6.x-x.x-obj/$ARCH/$FLAVOR' directory as your kernel
> source directory for when building external modules, but that probably
> won't work for comedi, as it doesn't use the usual kbuild method of
> building 2.6 kernel modules.  Instead, you'll probably have to use the
> 'first method' for building external modules as described in the
> '/usr/share/doc/packages/kernel-source/README.SUSE' file (at least for
> SuSE 9.2) in the 'BUILDING ADDITIONAL (EXTERNAL) MODULES' section, up to
> and including the 'make modules_prepare' command in step 3.

After more experiments on my Gentoo system, using a SuSE 9.2 kernel,
I've managed to compile, install and modprobe the comedi modules without
  having to add extra 'INCLUDES' to the Makefile, but I haven't found a
quick way to get rid of the "unsupported module, tainting kernel"
messages.  It should still work despite those messages, if you can live
with it, and you can get rid of them if you can spare the time.

Here's what I've done on my Gentoo system:

* Installed SuSE 9.2's kernel-default-2.6.8-24.10.i586.rpm and
kernel-source-2.6.8-24.10.i586.rpm (after first converting them to
.tar.gz files as Gentoo doesn't use RPM).

* cd /usr/src/linux-2.6.8-24.10

* cp ../linux-2.6.8-24.10-obj/i386/default/.config .

* make oldconfig

(Alternatively, you could try 'make cloneconfig' instead of the above
two commands.)

* make prepare_modules

* If you want to avoid tainting the kernel when you modprobe the comedi
modules later, you'll need a 'Module.symvers' file.  I tried copying the
one from '../linux-2.6.7-24.10-obj/i386/default/Module.symvers', but
that made no difference for, possibly because I'm using a slightly
different version of gcc than was used to build the kernel.  It might
work for a proper SuSE installation though.  (On my Gentoo system, I had
to run 'make' to regenerate the kernel with my compiler then install and
run that kernel and its modules to avoid tainting the kernel when I
modprobed the comedi modules later.)

* cd /path/to/comedi-0.7.70

* ./configure --with-linuxdir=/usr/src/linux-2.6.8-24.10

(Without the --with-linuxdir option, it would end up using
'/usr/src/linux-2.6.8-24.10-obj/i386/default' or whatever, which results
in all those compile errors which you needed the 'INCLUDES' line to get
rid of.  You shouldn't need the 'INCLUDES' line with the above
--with-linuxdir option.)

* make

* make install

* modprobe ni_pcimio

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti@mev.co.uk>        )=-
-=( Tel: +44 (0)161 477 1898   FAX: +44 (0)161 718 3587         )=-



_______________________________________________
comedi mailing list
comedi@comedi.org
https://cvs.comedi.org/cgi-bin/mailman/listinfo/comedi
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic