View Full Version : Linux Kernel Update N900
mail_e36
03-08-2010, 09:39 AM
I'm fairly new to Linux and I would like to understand if it will be possible to upgrade the Linux kernel version at some point, while retaining the Maemo N900-specific functionality (such as camera support, proprietary drivers, etc).
The current version for the N900 seems to be 2.6.28-omap1 (you can get this by running "cat /proc/version" at the command line).
Any thoughts are appreciated.
Matan
03-08-2010, 09:43 AM
There are no proprietary kernel drivers in the N900. This means that it is possible to upgrade the kernel, if someone will have enough motivation and time for porting some things that are missing from mainline kernel.
acvetkov
03-08-2010, 09:45 AM
http://kernel.org/
have fun :)
Edit: Why do you want to upgrade the kernel? Missing some function:confused:
TA-t3
03-08-2010, 10:45 AM
No, you can't use a kernel from kernel.org and expect it to work properly on the N900. Instead, look for that other thread where kernel upgrades / additions are discussed. (In short, there are omap-specific kernel repositiories out there, and nokia-spedific versions in addition to that. Those versions are not (yet) merged to upstream kernel.org.)
Most likely it's not the kernel version and modules that will be your biggest problems, but the firmware. The camera, the wifi, the gsm module (and perhaps there are other parts) all use a proprietary firmware to function. You might find some dead ends if you deviate from the kernel they have been developed for.
mail_e36
03-08-2010, 11:43 AM
The last poster brings up a good point.
What are the changes Nokia will update the kernel along with a firmware upgrade? Or are these two completely different concepts, and we cannot expect nokia to update the kernel?
craftyguy
03-08-2010, 11:55 AM
The last poster brings up a good point.
What are the changes Nokia will update the kernel along with a firmware upgrade? Or are these two completely different concepts, and we cannot expect nokia to update the kernel?
My guess is that they will probably not update the kernel unless:
1) it fixes a serious bug
2) it adds some major feature
Upgrading the kernel would take a lot of resources on their end to update all the device firmware and insure that it is working properly with the new kernel (a lot of work they already did for the current kernel when they were developing the device before launch)
mail_e36
03-08-2010, 01:10 PM
so it's probably safe to say that the N900 will only have the 2.6.28-omap1 kernel for life. I guess most of us could live with that. I'm sure some homebrewers will update the kernel on their devices, but possibly end up loosing functionlity. Kind of like the Windows Mobile devices which run Android by dual-booting.
craftyguy
03-08-2010, 01:18 PM
so it's probably safe to say that the N900 will only have the 2.6.28-omap1 kernel for life. I guess most of us could live with that. I'm sure some homebrewers will update the kernel on their devices, but possibly end up loosing functionlity. Kind of like the Windows Mobile devices which run Android by dual-booting.
Why couldn't you live with that? There's a great thread in these forums already with several developers compiling modules for the existing kernel. Is there some feature you require that is not implemented until a later kernel release??
Flandry
03-08-2010, 01:18 PM
http://talk.maemo.org/showthread.php?t=43420
egoshin
03-08-2010, 02:14 PM
There are no proprietary kernel drivers in the N900. This means that it is possible to upgrade the kernel, if someone will have enough motivation and time for porting some things that are missing from mainline kernel.
Do you know that list? And if you point to sources of that it would be excelent. Even the binaries *may* help... as long as it can be ported like windows network card drivers. Sometime just adjustment of kernel version can be enough.
Edit: Why do you want to upgrade the kernel? Missing some function:confused:
For example, kernels >= 2.6.32 have less crappy I/O scheduler:
http://kernelnewbies.org/Linux_2_6_32#head-e07f19bb79beab04cb9e68b942c9041b490b71db
craftyguy
03-08-2010, 02:36 PM
For example, kernels >= 2.6.32 have less crappy I/O scheduler:
http://kernelnewbies.org/Linux_2_6_32#head-e07f19bb79beab04cb9e68b942c9041b490b71db
FTA: "but it can cause noticeable performance issues"
I'd be more interested in what this is. I'm not aware of the N900 doing THAT many background writes that it would benefit from this feature, especially if it can hurt performance elsewhere..
406NotAcceptable
03-08-2010, 06:19 PM
Under the same link "1.10. Run-time Power Management" looks of particular benefit to a mobile device. Later kernels are typically more efficient.
Strange there are Cortex based amendments and a few N810 patches in that release. I guess with the Android devices running A8s improvements will be passed down to the main release, but if the N900 doesn't move along it will miss out on the benefits.
craftyguy
03-08-2010, 06:30 PM
You could always backport the useful patches against mainline to the version running on the N900. Would probably be a lot easier than dealing with broken firmware,etc that is out of our hands :)
b-man
03-08-2010, 07:00 PM
tell me - in more technically detailed terms, how would upgrading the kernel cause serious compatibility issues with firmware? Heck, Luke-Jr was able to get a 2.6.32+ kernel booting on the Nokia N800/N810, even the N770 was able to run newer kernels! - I don't see why it's not the same for the N900. Sure the N900 has diffrent hardware - but i don't see how it's not possible.
Come on, guys!, where is your maemo spirit! I know this community can do it! :D
I think this thread should be merged with the one Flandry pointed to.
egoshin
03-08-2010, 07:17 PM
tell me - in more technically detailed terms, how would upgrading the kernel cause serious compatibility issues with firmware? Heck, Luke-Jr was able to get a 2.6.32+ kernel booting on the Nokia N800/N810, even the N770 was able to run newer kernels! - I don't see why it's not the same for the N900. Sure the N900 has diffrent hardware - but i don't see how it's not possible.
Come on, guys!, where is your maemo spirit! I know this community can do it! :D
I doubt that standard Linux kernel has a driver to communicate with cell/3G firmware developed by Nokia.
It is just example. But there is another issue - some changes in N900 kernel may not go through to Linux kernel mainline, there is no guarantee that Linus (or his helpers) accept that.
craftyguy
03-08-2010, 07:30 PM
tell me - in more technically detailed terms, how would upgrading the kernel cause serious compatibility issues with firmware? Heck, Luke-Jr was able to get a 2.6.32+ kernel booting on the Nokia N800/N810, even the N770 was able to run newer kernels! - I don't see why it's not the same for the N900. Sure the N900 has diffrent hardware - but i don't see how it's not possible.
Come on, guys!, where is your maemo spirit! I know this community can do it! :D
Booting a kernel and booting a kernel to an environment that uses all hardware as it was intended are two totally different things :)
I have no question that the latest mainline kernels could boot on the N900, but I would easily take an older Nokia-supported-with-drivers kernel than a new one that has non-functional hardware because Nokia does not support it.
I think this thread should be merged with the one Flandry pointed to.
I disagree. That thread is about hacking the existing kernel version shipping on the N900 (that is supported by Nokia's device firmware). This thread is about exploring the idea of completely replacing the currently shipping version with the latest kernels that are not supported by Nokia's closed-source device firmware
b-man
03-08-2010, 07:34 PM
I doubt that standard Linux kernel has a driver to communicate with cell/3G firmware developed by Nokia.
This is true - but couldn't we patch the drivers from fremantle's current kernel to the newer kernel?
It is just example. But there is another issue - some changes in N900 kernel may not go through to Linux kernel mainline, there is no guarantee that Linus (or his helpers) accept that.
This is also verry true - but couldn't we host our own kernel source? I'm sure it can be done, but i'm a bit concerned about the resources required to accomplish this. :(
edit: perhaps http://gitorious.org/ ?
wmarone
03-08-2010, 07:37 PM
kernels that are not supported by Nokia's closed-source device firmware
I don't think the bootloader gives a damn, and any device firmware simply needs to have it provided to the kernel at build time. The firmware doesn't care about the kernel, after all.
Termana
03-08-2010, 08:25 PM
There seems to be a lot of naysayers in this thread. It is completely possible to port the changes up from the .28 kernel to a .33 kernel. If you read my signature, you can see I've been able to make most of the features of the n810 work with my .33 kernel, and the n810 is not mainlined, and it is not properly supported in linux-omap. If I owned an n900, I would be working on this, but I don't :P which is why I'm working on the n810 kernel.
Still, a .28 kernel isn't too bad - remember Android devices only run .29
craftyguy
03-08-2010, 08:31 PM
I don't think the bootloader gives a damn, and any device firmware simply needs to have it provided to the kernel at build time. The firmware doesn't care about the kernel, after all.
Ok, then go for it :)
b-man
03-08-2010, 08:50 PM
There seems to be a lot of naysayers in this thread. It is completely possible to port the changes up from the .28 kernel to a .33 kernel. If you read my signature, you can see I've been able to make most of the features of the n810 work with my .33 kernel, and the n810 is not mainlined, and it is not properly supported in linux-omap. If I owned an n900, I would be working on this, but I don't :P which is why I'm working on the n810 kernel.
Still, a .28 kernel isn't too bad - remember Android devices only run .29
That's exactly my point :)
Sure the kernel my not be supported entierly by upstream linux-omap, but that doesn't mean we can't host our own kernel source. And sure newer kernels may not provide all of the drivers - but keep in mind that all of the kernel drivers/modules in maemo5 are open source, so there's nothing really stoping you from applying driver patches from the current kernel to newer kernels. ;)
egoshin
03-08-2010, 09:24 PM
I don't think the bootloader gives a damn, and any device firmware simply needs to have it provided to the kernel at build time. The firmware doesn't care about the kernel, after all.
Unfortunately - NO. Change from PR1.0 to PR1.1 can't be reversed due to change in firmware - the old PR1.0 doesn't support the new firmware and Nokia doesn't distribute the old firmware. After you do upgrade from PR1.0 to PR1.1 once you have a new firmware in cell/3G and return to PR1.0 doesn't revert that firmware.
In short words - API between firmware and driver changes.
FTA: "but it can cause noticeable performance issues"
"...so people who only care about throughput (ie, servers)..."
I'd be more interested in what this is.
Basically, the "performance degradation" is that you get an interactive user interface, but copying some file might take 30 seconds, instead of let's say 25 seconds.
The thing is, no normal user cares whether some file copies a couple seconds faster or slower. What does matter is the perceived speed of the device. You don't want to be missing your phone calls, because the OS is currently busy with some disk operations and can't be bothered to show the phone UI. And even if that UI eventually is displayed, you can't use it, because all your input has 10 second lag.
For example, take a look at the two browsers of N900. While the Firefox may load and render the web page faster than Microb (when measured with a clock), it's the latter one that feels fast and responsive.
I'm not aware of the N900 doing THAT many background writes that it would benefit from this feature, especially if it can hurt performance elsewhere..
Start copying something to the phone using scp and try to use the phone at the same time. Or start downloading podcasts using gPodder.
wmarone
03-09-2010, 05:14 PM
Unfortunately - NO. Change from PR1.0 to PR1.1 can't be reversed due to change in firmware
Well aware of this.
the old PR1.0 doesn't support the new firmware and Nokia doesn't distribute the old firmware.
PR1.0 and PR1.1 are much, much more than just the kernel.
API between firmware and driver changes.
Unless the code for that is now a closed source module, there is no reason that a new kernel version is impossible. The incompatibility with the old firmware version lies at a level above the kernel.
egoshin
03-09-2010, 08:15 PM
Unless the code for that is now a closed source module, there is no reason that a new kernel version is impossible.
Sure.
The incompatibility with the old firmware version lies at a level above the kernel.
Uhm...m-mm, technically it is not true but I think it is not a case for N900. For new device - may be (I point to DRM possibility).
However, at the end of day I think we can do and run a more newest kernel even with proprietary Nokia modules because the only possible problems here are:
1. module format - solvable, via conversion for exam
2. old kernel APIs which may be excluded from newest kernel (usually - some details) - we can keep it actually or support a conversion middle layer.
damion
05-20-2010, 10:05 AM
The wifi kernel infrastructure changed from .29 to .30 introducing a much easier way to implement Infrastructure mode wifi, which was not dependent on certain wifi chipsets that work with hostap. Things like the PSP require Infrastructure rather than ad-hoc and won't work with the n900's wifi tether mode. I don't know how easy/possible it is to backport that in to .28 or try to make a kernel that works on the n900 work with .30 or higher.
AlMehdi
05-20-2010, 10:16 AM
hmm.. aren't MeeGo using .33? I think i saw somewhere that we would go to .33 later. It where in some blog of a Nokia emploiee. So the work are probably already in the spin.
jlanza
10-06-2010, 05:21 AM
Have you manage to upgrade the kernel to include the new wireless drivers?
Have you manage to upgrade the kernel to include the new wireless drivers?
Can you post a related linked for more detail ?
Stskeeps
10-06-2010, 06:04 AM
We're on 2.6.35 in MeeGo. And don't even bother trying to backport it to run Fremantle, things have moved too much on in kernel interfaces.
jlanza
10-06-2010, 06:42 AM
Can you post a related linked for more detail ?
Which link are you refering to?
We're on 2.6.35 in MeeGo. And don't even bother trying to backport it to run Fremantle, things have moved too much on in kernel interfaces.
So you think it is better to flash my N900 with MeeGo. But then do I have a graphical user interface? Any link to start with?
And which one do I have to install the opensource or the closed for nokia? Do both support wifi?
onion
10-06-2010, 07:18 AM
We're on 2.6.35 in MeeGo. And don't even bother trying to backport it to run Fremantle, things have moved too much on in kernel interfaces.
What interfaces have changed too much, can you give any details?
Stskeeps
10-06-2010, 08:01 AM
Which link are you refering to?
So you think it is better to flash my N900 with MeeGo. But then do I have a graphical user interface? Any link to start with?
And which one do I have to install the opensource or the closed for nokia? Do both support wifi?
Yes, we have UI. http://wiki.meego.com/ARM/Install/MMC and http://repo.meego.com/MeeGo/builds/1.0.99/1.0.99.0.20101001.1/handset/images/meego-handset-armv7l-n900/
We don't distinguish between open or closed anymore. All our blobs are redistributable.
Stskeeps
10-06-2010, 08:02 AM
What interfaces have changed too much, can you give any details?
We don't have /proc/bootreason, for starters, different kernel interfaces which BME uses, different kernel sources for GPU driver.. Camera architecture is also different.
jlanza
10-06-2010, 08:52 AM
Have you tried the iw command in stead of the iwconfig? The difference is the netlink support in mac80211 which was not enabled in 2.6.28
jlanza
10-07-2010, 06:49 AM
Yes, we have UI. http://wiki.meego.com/ARM/Install/MMC and http://repo.meego.com/MeeGo/builds/1.0.99/1.0.99.0.20101001.1/handset/images/meego-handset-armv7l-n900/
We don't distinguish between open or closed anymore. All our blobs are redistributable.
Following your advice I have installed meego. It looks nice but it is toooooo slow on my N900, is it normal?
Besides that, is there any crosscompilation environment like scratchbox?
TA
jlanza
10-08-2010, 12:36 PM
I have compiled kernel 2.6.28 and compat-wireless for the n900, but still i'm not able to get it working.
I have seen in meego that they use wl1251_spi driver, so after compiling and installing I have uploaded this module on the maemo-n900. The result is ... no wlan interface is outhere.
The modules are up and dmesg doesn't display anything strange.
Any idea? I was thinking on coping directly the modules from meego, but as they are from a different kernel version they are not gonna work.
Help is welcome ;)
CU and TA
aligatro
10-08-2010, 02:17 PM
I wonder how hard would it be to port Maemo UI to meego or vise-verse. I dunno about you, but I don't like meego UI very much. It reminds me of Apple's ui. Is this situation is something similar to Android ? I read that it's tied to the system so strong that in order to port, almost everything must be ported.
jlanza
10-11-2010, 03:33 AM
AFAIK I think meego is not tied to anything. I think you can develop your own desktop. Actually I have seen what it is supposed to be the Nokia GUI for the N9.
http://www.xatakamovil.com/sistemas-operativos/un-nuevo-paseo-por-meego-en-un-nokia-n900
I don't remember where I've seen the other link which shows better what I meant.
crasbelize
10-15-2010, 02:15 AM
Quick question guys:
What does the '-R' do?
command: flasher-3.5.exe -F RX-51_2009SE_2.2009.51-1_PR_COMBINED_MR0_ARM.bin -f -R
I tried it both ways; I didn't have any problems both ways.
RobbieThe1st
10-15-2010, 02:36 AM
-R = reboot after flashing
vBulletin® v3.8.2, Copyright ©2000-2012, Jelsoft Enterprises Ltd.