Jump to content

loading ... il.o.gz will taint the kernel: no license


Steve Scrimpshire
 Share

Recommended Posts

Ok, I just installed MDK 9.1 (what a nightmare, but that's another story) and one of the modules that I have to install and load is a proprietary module for my Linksys HPNA (Home Phoneline network card) and after compiling the module using the instructions I attempt to load it:

$ insmod -n il

Using /lib/modules/2.4.20/kernel/net/hpna/il.o.gz

Warning: loading /lib/modules/2.4.20/kernel/net/hpna/il.o.gz will taint the kernel: no license

 See http://www.tux.org/lkml/#export-tainted for information about tainted modules

 

I know that the -n switch does not actually load it, but if I do actually load it, it loads with warnings and everything freezes up, only thing I can do is push the power button (good thing I have ReiserFS). I have no understanding of the solutions I have read while googling (something about exporting with a switch or something) and even if I did, there is no GPL license code to pass. Any ideas? My fiancee will kill me if I can't get the network up.

 

Note, this is the same 2.4.20 generic kernel that I used in 8.1 (MDK's 2.4.x kernel will not boot on my machine due to some config problems and my Kadoka MoBo) where the module loaded fine.

Link to comment
Share on other sites

A new problem with this. I recompiled my kernel with gcc-3.* so that I could rebuild the NVIDIA_kernel stuff and now I cannot even use the il.o driver because it is built using another precompiled *.o file that was compiled on gcc-2.* gggrrrrrrrrrrrrrrrrrrrrrrrrr

 

Is there a way to 'uncompile' the required *.o files and recompile them using gcc-3.*?

Link to comment
Share on other sites

just recompile the driver, it'll replace the *.o files. (or it should)

 

i don't think you can "uncompile" things-that is, aside from reverse engineering...which isn't really uncompiling in the sense you are looking for.

Link to comment
Share on other sites

Well, it's not as simple as just recompiling. Here's an synopsis:

 

Inside the directory that I download, there are these files (among others):

 

linux_osl.c

il_linux.c

il.c

something.h

something-else.o

 

(If I remember right, I'm not at home right now)

If I compile, I get:

 

linux_osl.o

il_linux.o

il.o

 

which I'm supposed to copy to my /lib/modules/2.4.20/kernel/net/hpna directory and gzip. If I remove something-else.o, then il.c will not compile, saying that it includes something-else.o which it cannot find and there is no something-else.c to recompile (make sense?). I'm definitely trying to compile with a gcc-3.* compiler, but I'm assuming that something-else.o is compiled with a gcc-2.* compiler and that is why I get the cross-compilation errors when I try to insmod il after compiling it.

Link to comment
Share on other sites

Googling for your particular problem, it seems that you are not alone in this matter. Your card seems incompatible with gcc 3.xx based distro such as RH 8.0 and MDK 9.0 up. However, I found something interesting in my googling.

http://groups.yahoo.com/group/jreceiver_us...er/message/1845

 

Why don't you email that person and ask for that updated driver? Who knows, maybe he has more information or even better, a source driver :)

Link to comment
Share on other sites

Wow. Thanks DragonMage! I thought *I* was the king of googling and could find anything, but I turned up nothing (or maybe I got frustrated and didn't see it). I've got an email into support@linksys.com as well, but I still need help with this 'tainting' issue.

Link to comment
Share on other sites

Well, I emailed that guy from the yahoo group. His problem was in October and he has since gone with a hardware solution and no longer has the driver in his possession and said it was compiled already for one specific kernel version. Bummer.

Link to comment
Share on other sites

That's the problem with non-open source driver I'm afraid.. I guess you are stuck with using gcc 2.9x if you want to use your HPNA..

 

Anyway, why so dead set with HPNA anyway? I mean, regular ethernet cards are really cheap and cables are not exactly expensive either. Yeah.. wireless networking is pretty expensive on the other hand.

Link to comment
Share on other sites

Here's an update. I downgraded to gcc 2.96 and recompiled my kernel and the driver. Now, I don't get the wrong compiler error when I try to load it. I do, however, get a kernel oops and my system hangs:

May 31 18:24:19 localhost kernel: eth0: Broadcom InsideLine10(tm) PCI Network Adapter 2.34.0.2 

May 31 18:24:19 localhost kernel: Unable to handle kernel paging request at virtual address 00010000 

May 31 18:24:19 localhost kernel: printing eip: 

May 31 18:24:19 localhost kernel: d8d708f5 

May 31 18:24:19 localhost kernel: *pde = 00000000 

May 31 18:24:19 localhost kernel: Oops: 0000 

May 31 18:24:19 localhost kernel: CPU: 0 

May 31 18:24:19 localhost kernel: EIP: 0010:[reiserfs+414058974/674299904] Tainted: P 

May 31 18:24:19 localhost kernel: EIP: 0010:[<d8d708f5>] Tainted: P 

May 31 18:24:19 localhost kernel: EFLAGS: 00010006 

May 31 18:24:19 localhost kernel: eax: 00000001 ebx: 00000202 ecx: 00010000 edx: 00010000 

May 31 18:24:19 localhost kernel: esi: cac5c000 edi: 00000000 ebp: d17f7f08 esp: d17f7efc 

May 31 18:24:19 localhost kernel: ds: 0018 es: 0018 ss: 0018 

May 31 18:24:19 localhost kernel: Process ifplugd (pid: 1861, stackpage=d17f7000) 

May 31 18:24:19 localhost kernel: Stack: 00000202 d17f7f5c 000089f1 d17f7f28 d8d6fac9 cac5c000 00000001 00010000 

May 31 18:24:19 localhost kernel: 00000202 00000004 ce06ee00 bffffd90 c01e4d09 ce06ee00 d17f7f5c 000089f1 

May 31 18:24:19 localhost kernel: 00000000 d17f7f5c 000089f1 c01e4f75 d17f7f5c 000089f1 d17f7f5c 00000000 

May 31 18:24:19 localhost kernel: Call Trace: [reiserfs+414055346/674299904] [dev_ifsioc+857/880] [dev_ioctl+597/848] [sock_ioctl+30/48] [sys_ioctl+375/400] 

May 31 18:24:19 localhost kernel: Call Trace: [<d8d6fac9>] [<c01e4d09>] [<c01e4f75>] [<c01dd5be>] [<c0141977>] 

May 31 18:24:19 localhost kernel: [system_call+51/56] 

May 31 18:24:19 localhost kernel: [<c010890f>] 

May 31 18:24:19 localhost kernel: 

May 31 18:24:19 localhost kernel: Code: 8b 1a eb 09 8d b4 26 00 00 00 00 31 db 83 f8 0f 0f 87 18 02

 

Now, if I rename /sbin/ifplugd to /sbin/ifplugd.old and insmod il then rename it back, I do not get the kernel oops, but nothing pertaining to network interfaces works. ppp0 won't come up, ifconfig won't work (just hangs). If I try to run ifplugd, it tells me that an instance of ifplugd is already running for interface eth0. I'm getting closer, I can smell it.

Link to comment
Share on other sites

Hmmm...I hadn't changed anything except not gzipping the *.o files one I put them in /lib/modules/2.4.20/kernel/drivers/net/hpna, but now when I try to insmod il, it tells me it is not an ELF file. How can I compile it as an ELF file? Maybe that's why I got the kernel oops.

 

Edit: I'm back with more info. Recompiled the modules and don't get the ELF error, but still get the kernel oops. I'm assuming this is going to be a problem with ifplugd but I'm not allowed to remove it:

# urpme ifplugd

removing package basesystem-9.0-3mdk will break your system

removing package makedev-4.0.1-1mdk will break your system

removing package ifplugd-0.13-3mdk will break your system

removing package util-linux-2.11x-3mdk will break your system

removing package kernel-2.4.21.0.13mdk-1-1mdk will break your system

removing package vixie-cron-3.0.1-55mdk will break your system

removing package SysVinit-2.84-2mdk will break your system

removing package libldap2-2.0.27-5.3mdk will break your system

removing package initscripts-7.06-12.1mdk will break your system

removing package passwd-0.68-1mdk will break your system

removing package rpm-helper-0.9-1mdk will break your system

removing package libsasl7-1.5.28-5mdk will break your system

removing package libuser1-0.51-6mdk will break your system

removing package sysklogd-1.4.1-4mdk will break your system

removing package pam-0.75-30mdk will break your system

removing package rpm-4.0.4-28mdk will break your system

removing package coreutils-4.5.7-1mdk will break your system

removing package utempter-0.5.2-10mdk will break your system

removing package console-tools-0.2.3-42mdk will break your system

removing package mkbootdisk-1.4.5-4mdk will break your system

removing package libuser-0.51-6mdk will break your system

removing package mkinitrd-3.1.6-37mdk will break your system

Nothing to remove

Link to comment
Share on other sites

Ok, after having relaxed a little bit and doing some more Google-ing, I figure that ifplugd is just not compatible with my driver. I'm going to try downloading the *.tar.gz version of ifplugd and recompiling it. If this doesn't work, does anyone know of a way to disable ifplugd and just going back to the 8.1 way of handling the interfaces?

 

Edit: After having tried to debug this with ksymoops, it appears that it is the il module requesting a memory address that is out of range or something (I'm not very knowledgable in this area). So, since the il module works with the 2.4.20 kernel in 8.1 and this is actually a kernel oops, I'm assuming there are modifications to the kernel that allow ifplugd to do its thing properly, so I'm going to try upgrading my kernel and see how it goes. The il driver is not listed in the supported drivers of ifplugd, but it's also not a very common driver, so he may not even know about its existence. Maybe I'll get lucky and a kernel upgrade will work.

 

By the time this is over, I may be able to write my own driver. :wink:

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...