- From: Ian Abbott <abbotti_at_mev.co.uk>
- Date: Tue, 05 Jul 2005 17:04:45 +0100
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_at_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 _at_ MEV Ltd. E-mail: <abbotti_at_mev.co.uk> )=- -=( Tel: +44 (0)161 477 1898 FAX: +44 (0)161 718 3587 )=-
Received on 2005-07-05Z15:04:45