maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   OS2008 / Maemo 4 / Chinook - Diablo (https://talk.maemo.org/forumdisplay.php?f=29)
-   -   Preempt option kernel killing wireless (https://talk.maemo.org/showthread.php?t=22723)

Craig@dcs 2008-08-11 00:00

Preempt option kernel killing wireless
 
Hey,

Been playing around with recompiling my n810 kernel with the preempt option. Annoyingly the wireless module doesnt load. I remember seeing a 2007OS with preempt option enabled. Anyone have any experiences or suggestions about this problem??

Craig

Johnx 2008-08-11 17:31

Re: Preempt option kernel killing wireless
 
I assume you recompiled just the kernel and not the modules? I would assume that cx3110x needs to be recompiled with preempt support...

igor 2008-08-11 19:55

Re: Preempt option kernel killing wireless
 
I'm surprised that it even works so far.
When I tried 1 year ago, it would just lock immediately and reboot.

allnameswereout 2008-08-11 21:46

Re: Preempt option kernel killing wireless
 
What does dmesg say after you attempted to load the module?

Please let me know your experience with the preempt kernel :)

Craig@dcs 2008-08-13 19:53

Re: Preempt option kernel killing wireless
 
Sorry for the delay, work stuff got in the way. The issue appears to be a mismatch with the following modules:

[ 3.992187] umac: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 4.031250] cx3110x: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 10.390625] fuse: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 19.648437] g_file_storage: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 30.835937] JFFS2 warning: (725) jffs2_sum_write_sumnode: Not enough space for summary, padsize = -89

Anyone have some ideas on how to resolve this?

Craig

Benson 2008-08-13 20:04

Re: Preempt option kernel killing wireless
 
Quote:

Originally Posted by Craig@dcs (Post 213414)
Sorry for the delay, work stuff got in the way. The issue appears to be a mismatch with the following modules:

[ 3.992187] umac: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 4.031250] cx3110x: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 10.390625] fuse: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 19.648437] g_file_storage: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '
[ 30.835937] JFFS2 warning: (725) jffs2_sum_write_sumnode: Not enough space for summary, padsize = -89

Anyone have some ideas on how to resolve this?

Craig

Quote:

Originally Posted by Johnx (Post 212411)
I assume you recompiled just the kernel and not the modules? I would assume that cx3110x needs to be recompiled with preempt support...

(That, and all other modules, I think.)

Craig@dcs 2008-08-13 22:22

Re: Preempt option kernel killing wireless
 
Well, it currently works, just without wireless support. All the other modules load fine.

allnameswereout 2008-08-14 18:17

Re: Preempt option kernel killing wireless
 
Hmm my suggestion is to just rename the kernel version to not being -preempt because then the versions match. At least, that is my theory. Yes, its incorrect and ugly, but it should work.

(Or recompile the modules if possible, but I think you used the config from /proc hence is not different except preempt... am I correct?)

Benson 2008-08-14 21:37

Re: Preempt option kernel killing wireless
 
IIUC, the kernel version is completely unrelated to the version magic, which is a system to ensure modules are compatible or don't load; it works by having each module have version/config info of all interfaces that it depends on. So you're not seeing any other issues with other modules that don't have code depending on the preempt option, but those four modules (and maybe others you haven't tried loading yet) do, and won't load. I think recompiling those four modules would be sufficient, but I'd rebuild them all if I was doing it, to save trouble later with any modules you haven't tested yet.

BTW, does plugging it into USB and using it as a card reader still work? I think that'll be gone too.

qwerty12 2008-08-15 14:46

Re: Preempt option kernel killing wireless
 
Quote:

Originally Posted by Benson (Post 213884)
BTW, does plugging it into USB and using it as a card reader still work? I think that'll be gone too.

For me it does but I did a little more than just editing the .config.

What I have done so far:
1. Enabled preempt using make menuconfig.
2. Flashed it.
3. Replaced as much modules as I can in the initfs with the new ones compiled with PREEMPT.
4. Switched on tablet. Tablet rebooted. Enabled no-lifeguard-reset with flasher. Now tablet stays on. Now I'm Pimpin.

Problem:
I'm trying to recompile the cx3110x **** with the Makefile tweaked to point to my PREEMPT kernel sources instead. Instead, a lot of symbols can't be found.

Here's my syslog for that:
Aug 15 12:49:06 Nokia-N800-23-14 kernel: Linux version 2.6.21-omap1 (faheem@faheem-desktop) (gcc version 3.4.4 (release) (CodeSourcery ARM 2005q3-2)) #1 PREEMPT Fri Aug 15 11:05:30 BST 2008
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.671875] cx3110x: Unknown symbol prism_softmac_service
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.671875] cx3110x: Unknown symbol prism_softmac_frame_rx
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol prism_softmac_frame_tx
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol prism_softmac_describe
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol frame_to_skb
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol frame_skb_alloc
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol prism_softmac_destroy
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.679687] cx3110x: Unknown symbol prism_softmac_parse_bra
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.687500] cx3110x: Unknown symbol prism_softmac_conf
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.687500] cx3110x: Unknown symbol prism_interconnect_message_query
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.695312] cx3110x: Unknown symbol skb_to_frame
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.695312] cx3110x: Unknown symbol sm_net_device
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.695312] cx3110x: Unknown symbol prism_softmac_create
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.695312] cx3110x: Unknown symbol prism_softmac_trap
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.695312] cx3110x: Unknown symbol prism_driver_frame_free
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.703125] cx3110x: Unknown symbol prism_driver_free
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.703125] cx3110x: Unknown symbol prism_interconnect_message_handle
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.703125] cx3110x: Unknown symbol prism_softmac_frame_tx_done
Aug 15 12:49:07 Nokia-N800-23-14 kernel: [ 4.703125] cx3110x: Unknown symbol frame_skb_free

If by somechance, I manage to fix those errors, think this will make a difference?:
"Aug 15 12:52:50 Nokia-N800-23-14 kernel: [ 4.625000] umac: version magic '2.6.21-omap1 mod_unload ARMv6 ' should be '2.6.21-omap1 preempt mod_unload ARMv6 '"

qwerty12 2008-08-15 15:08

Re: Preempt option kernel killing wireless
 
Ok, using the idea of allnameswereout, I've compiled an PREEMPT kernel with the wireless working. But I have no way to prove it's preempt because I removed the preempt string :D

Of course, I have no way of telling if it's preempt so feel free to treat this like BS :)

What I just said about the /proc thing wasn't true :). I just compiled another PREEMPT kernel with PREEMPT in the uname like normal and those proc entries were still not there. This still could be very likely a PREEMPT kernel.

allnameswereout 2008-08-15 20:33

Re: Preempt option kernel killing wireless
 
Yes, I've used that trick before with proprietary kernel modules (IIRC NVidia kernel module didn't like the different name) while I didn't want to recompile it.

What uname returns isn't that important. It doesn't say much. For example, you could call your Linux kernel 2.6.30 if you really wanted to.

You can definetely check if PREEMPT (RT) is enabled:

Code:

# cat /proc/sys/kernel/kernel_preemption
This should return 1.

See this article for more in-depth details.

You can also do some benchmarks.

You can share how it 'feels'. This is also worth something. No NIT is the same, so if you'd share your build other people can test and/or benchmark as well.

Ironially I'm not sure what kind of kernel I'm running right now, but it made the NIT a lot more responsive... uname tells me no useful information though. Case in my point for my 2nd point in this post.

PREEMPT (RT) should work very well on the current NITs with OMAP2. Look here. It has been ported to Linux/ARM (OMAP) since 2005.

qwerty12 2008-08-16 06:12

Re: Preempt option kernel killing wireless
 
Quote:

Originally Posted by allnameswereout (Post 214164)
You can definetely check if PREEMPT (RT) is enabled:

Code:

# cat /proc/sys/kernel/kernel_preemption
This should return 1.

See this article for more in-depth details.

You can also do some benchmarks.

You can share how it 'feels'. This is also worth something. No NIT is the same, so if you'd share your build other people can test and/or benchmark as well.

PREEMPT (RT) should work very well on the current NITs with OMAP2. Look here. It has been ported to Linux/ARM (OMAP) since 2005.

We aren't using PREEMPT (RT) (which is enabled with CONFIG_PREEMPT_RT), we are just using plain PREEMPT (which is enabled with CONFIG_PREEMPT) :)

/proc/sys/kernel/kernel_preemption does not exist on the nits when using preempt.
I thought it was my versioning that may have removed it but when I flashed a proper preempt kernel (with the uname showing it was preempt), that proc entry still wasn't there.

Anyway, here is my patch to enable PREEMPT and trick the versioning:
http://pastebin.com/ffc8f11b

EDIT: I'd try that CONFIG_PREEMPT_RT patch but it has disappeared off the internet :)

Craig@dcs 2008-08-16 12:13

Re: Preempt option kernel killing wireless
 
What a great response! The mention of using preempt rt is particularly interesting. Is anyone one else interested / going to give it a try? Once i finish this paper im writing i will give it a go, just been swamped since i made the original post.

Craig

allnameswereout 2008-08-16 14:42

Re: Preempt option kernel killing wireless
 
Quote:

Originally Posted by qwerty12 (Post 214318)
We aren't using PREEMPT (RT) (which is enabled with CONFIG_PREEMPT_RT), we are just using plain PREEMPT (which is enabled with CONFIG_PREEMPT) :)

/proc/sys/kernel/kernel_preemption does not exist on the nits when using preempt.
I thought it was my versioning that may have removed it but when I flashed a proper preempt kernel (with the uname showing it was preempt), that proc entry still wasn't there.

Anyway, here is my patch to enable PREEMPT and trick the versioning:
http://pastebin.com/ffc8f11b

EDIT: I'd try that CONFIG_PREEMPT_RT patch but it has disappeared off the internet :)

Hi qwerty12,

I believe the PREEMPT (RT) kernel is called linux-rt

The webpage is http://rt.wiki.kernel.org

The advantage of this kernel is that you can finetune the performance while it runs ;)

allnameswereout 2008-08-16 14:45

Re: Preempt option kernel killing wireless
 
Quote:

Originally Posted by Craig@dcs (Post 214372)
What a great response! The mention of using preempt rt is particularly interesting. Is anyone one else interested / going to give it a try? Once i finish this paper im writing i will give it a go, just been swamped since i made the original post.

Craig

Yes, I am, however I don't want to lose my current kernel (its fast :)) and don't know anymore which one it is. How can I find this out?

Maybe a wiki page which contains all the kernel changes / options (with links) is a good idea?

I also don't have ScratchBox installed anymore. And because there is a new version in the making I am waiting for that. But I am also willing to try Mamona...

[edit]Nevermind, I think I'm using Fanoush his SDHC kernel. I used KVM to create a i386 VM, and installed SB2-beta on it... unfortunately maemo.research.nokia.com doesn't resolve...[/edit]


All times are GMT. The time now is 17:34.

vBulletin® Version 3.8.8