Related
Hi All,
Running rooted Hero with Modaco 2.5.1 rom ( thanks Paul )
Was hoping someone could ( simplistically ) answer a few question for me.
As I understand it - one of the things holding back development of Hero ROMS is that HTC haven't released the kernel for the Hero.
1) What exactly IS the kernel in the greater scheme of things?
2) When are HTC likely to release it?
3) When it is released, what new things will it allow developers to do?
4) Anything else relevant to it worth knowing?
TIA
Look at these:
1. The kernel is the Operating System for the phone, it runs everything.
2. That is the magic question...
3. It'll allow more development in terms of mods. we'll be able to change alot more and get more out of the phones.
I'm sure others will have more detailed explanations.
Regarding question 2:
I've gotten response from HTC support the other day that the release is planned but no sure date could be given.
Date: 5th of October
My question:
Hello there, I realize that this might not be the normal kind of request you guys get, but here goes. This is probably not your average request and might require escalation. I was wondering when the source code for the Hero kernel was gonna be available at developer.htc.com?
Click to expand...
Click to collapse
Answer:
Hello
This is quite a normal question we get here at HTC. The source code is something that will becoming soon. We have had contact with those far higher than my self or are planning on adding the source code as soon as possible. I have not been given a time scale but bases on the code for the two other handsets i should expect it in the next couple of weeks.
Hope this helps.
Click to expand...
Click to collapse
So, educated guess would be around the release of the Hero in the US.
Some if I have this right -
The kernel is the basic underlying OS of the phone, and a ROM sits on top of this end gives us the end user experience ( and Sense UI is within the ROM ).
Am I right in thinking the kernel is linux based?
And a big magic question - when the kernel is released, will people be able to modify it and get the bluetooth working properly?
Sorry if it's a bit basic - but interesting to me....
The Kernel is not the OS (As most people understand an OS to be) (OS meaning Operating System)
It's at the core of the OS but is not the OS. You can keep the same build of an OS but update the kernel and vica versa. It is (put simply) what converts the hardware calls from the OS into something the hardware understands.
So (using current issues as explanation) The OS tries to load the GPS and the kernel isn't configured with the right settings the GPS won't load. Similarly if you try and use the trackball and it's not setup in the kernel then it won't do anything.
The OS will still work fine with other things but until the kernel has the right settings put into it it just won't see the parts of the phone it's not set up to.
Here is a technical description of a Kernel.
http://www.linfo.org/kernel.html
I'm sure I've just made it as clear as dishwater but if not I hope it's helped.
J-Zeus said:
Some if I have this right -
The kernel is the basic underlying OS of the phone, and a ROM sits on top of this end gives us the end user experience ( and Sense UI is within the ROM ).
Click to expand...
Click to collapse
Not exactly. To add to what akirainblack has said already...ROM stands for Read Only Memory. In this context it is a bit different as it is the complete package that makes up the Kernel, the OS and anything that is pre-installed to the phone. When you run the RUU (Rom Update Utilitiy) on your PC is completely refreshes the system software in your phone - Kernel, OS and any pre-installed apps - just as if you had bought it from the shop like that.
J-Zeus said:
Am I right in thinking the kernel is linux based?
Click to expand...
Click to collapse
Yes.
Hmmm...
simple question... when the kernel is available... would we be able to get a white taskbar on the Hero?
//Nik
When the kernel source is available, we should be able to rebuild Android completely from the source code repositories and do practically whatever you want.
Regards,
Dave
foxmeister said:
When the kernel source is available, we should be able to rebuild Android completely from the source code repositories and do practically whatever you want.
Regards,
Dave
Click to expand...
Click to collapse
Including getting Bluetooth working?
J-Zeus said:
Including getting Bluetooth working?
Click to expand...
Click to collapse
In theory, yes. In practice, the situation is a little more complicated, but at the very least I'd imagine it would be possible to get BlueX, or something like it, working on rooted Heros fairly quickly.
Regards,
Dave
Given that this is a Linux kernel, aren't HTC required by the GPL to make the source available to all Hero owners?
This is covering the same ground, but is another way to look at things regarding the kernel and the OS. The kernel abstracts the specifics of the hardware from the Android system. For example, when the Android system requests that the bluetooth hardware be enabled, the kernel can translate that request so that it works with the particular hardware of the phone - as the bluetooth hardware of the Magic may be different from the bluetooth hardware of the Hero. So the kernel, is an interface that translates and Android call to the specific hardware level controls necessary. The kernel sits between the hardware and the Android system.
It also means that releasing the kernel will not allow us to make changes to the Hero Android user interfaces. If we want to change colours, icons and so on in the Hero ROM, we would need the source code for their "tweaked" Android and maybe to some degree their TouchFlo software. I doubt they would give that away. It would allows us however, to tweak the kernel, or transplant the driver code for specific hardware pieces in the Hero, to a newer version kernel.
I understand that the release of the hero kernel, could help me with my cause (getting 1.5/1.6 'clean' android on my hero without any htc apps/front ends).
Somebody suggested contacting HTC and asking for it to be released.
I have a few questions regarding that:
1) Has this happened before? That HTC released an android kernel?
2) Did this happen after the request?
3) Who should we contact to get it? (which HTC division)
4) Is there a possibility that they don't want to release it, because it would allow people to copy parts of the proprietary interface?
E2K said:
1) Has this happened before? That HTC released an android kernel?
Click to expand...
Click to collapse
Take a look at http://developer.htc.com/
The Dream and Magic sources are available.
E2K said:
4) Is there a possibility that they don't want to release it, because it would allow people to copy parts of the proprietary interface?
Click to expand...
Click to collapse
The HTC Sense UI won't be included in the kernel source.
They dont have to release the source of them.
New question
Is it possible to create a new donut kernel (2.6.29) with the changes they made to the 1.5 kernel (2.6.27)?
Looks like they send you the hole kernel, not just some patches and new drivers...
mopodo said:
Take a look at http://developer.htc.com/
The Dream and Magic sources are available.
Click to expand...
Click to collapse
So this means that we could compile or 'cook' a working vanilla android 1.5 for the HTC hero, with everything working fully?
HTC HAS to release the kernel source as required under the GPL license that the kernel was released under. It is indeed a linux kernel and it contains the necessary parts to work the hardware along with extra drivers and modules (stupid monolithic kernels).
Here's what I don't get (and hopefully somebody will clarify this for me). Why hasn't anybody tried building android with the current kernel available? Android has the ability to be built around a pre-compiled kernel (it does this if you do a straight make right after repo sync with the pre-compiled dream kernel). You'd only need to re-build the wlan.ko module for the new kernel and the gps module would be compiled against the specified kernel, so it should work.
If I had Hero, I'd test it (if you want to trade your Hero for my G1, hit me up ), but there's no reason it shouldn't work.
Up to now, I've only seen ports, and those are hard to make work because of the pre-compiled files, so that leads to loads of file-swapping and finger-crossing, but an AOSP make should still work. Anybody wanna try it (or post me a hero kernel and I'll compile you a stock donut build to test).
jubeh said:
HTC HAS to release the kernel source as required under the GPL license that the kernel was released under. It is indeed a linux kernel and it contains the necessary parts to work the hardware along with extra drivers and modules (stupid monolithic kernels).
Here's what I don't get (and hopefully somebody will clarify this for me). Why hasn't anybody tried building android with the current kernel available? Android has the ability to be built around a pre-compiled kernel (it does this if you do a straight make right after repo sync with the pre-compiled dream kernel). You'd only need to re-build the wlan.ko module for the new kernel and the gps module would be compiled against the specified kernel, so it should work.
If I had Hero, I'd test it (if you want to trade your Hero for my G1, hit me up ), but there's no reason it shouldn't work.
Up to now, I've only seen ports, and those are hard to make work because of the pre-compiled files, so that leads to loads of file-swapping and finger-crossing, but an AOSP make should still work. Anybody wanna try it (or post me a hero kernel and I'll compile you a stock donut build to test).
Click to expand...
Click to collapse
Hi, thank you for this information. You make it sound like it's possible
I tried searching for the Hero Kernel, but I could only find this:
http://developer.htc.com/
The hero is not listed (maybe it shares a lot with the magic kernel?).
edit: this post dating from september 10 stated that HTC would "release the kernel source soon".
This was more than a month ago though..
edit2: calling HTC Netherlands right now..
edit3: after explainig the need for the kernel, I've been on hold for 10 minutes now..
edit4: more than 18 minutes now
edit5: after 26 minutes I hang up
Well I have a Hero running Modaco 2.2. I could post this kernel (where?) Or it surely could be extracted from one of the ROMs available on this very site
SquiffSquiff said:
Well I have a Hero running Modaco 2.2. I could post this kernel (where?) Or it surely could be extracted from one of the ROMs available on this very site
Click to expand...
Click to collapse
I could be wrong, but I believe there is a difference between the 'kernel', and the 'kernel source'. The second one is needed when you want to compile the kernel.
Speaking as one who has compiled kernels in the past there are three components required here:
The kernel source- this is typically available from http://kernel.org/ If HTC have made any changes to the source of the kernel itself then these should be apparent in their distribution of the kernel source
The relevant configuration file '.config' which should accompany their distribution of the kernel source and permit you to compile any other kernel as a drop in replacement.
Source code and makefiles for any custom kernel modules ('drivers' in windows terminology) In Linux these have to be compiled together with the kernel.
To use a cookery analogy:
The kernel source is the raw ingredients. It can be set up for anything from a supercomputer to a DVD player depending on how you use it. The kernel config is the method which will allow you to bake the type of cake you intend. The modules sources are any of HTC’s own custom ingredients required for everything to work. THe kernel is the finished cake which you eat.
The last couple of hours I've been frantically trying to cook together a working ROM.
So far, this is what i've done:
*Replacing 2.6.33 kernel with Paul's "Custom Kernel" which is 2.6.29.
*Replacing&editing init scripts
Especially with the init scripts, my question is, are these the main parts of concern regarding a port?
In other words, am i on the right track, or is this much harder than i think? :S
Btw i don't think i'll get done with this before a ROM gets released, its just for interests sake
I thought the main problem was Froyo needing a 2.6.33 kernel and having to port Desire specific code into a 2.6.33 kernel so replacing it with 2.6.29 wouldn't work
Se the other froyo thread, I posted some quick instructions on how to boot a semi-working rom. There's no service and graphics are glitchy, also no wifi but that is just a matter of copying the right module, I didn't bother doing that.
There should be no dependency on a specific kernel version, but 2.6.33 is faster. I have also been trying to port cyanogen's 2.6.33 kernel but it's not as easy as it seems, there are many caveats and it did not boot yet.
deovferreira said:
Se the other froyo thread, I posted some quick instructions on how to boot a semi-working rom. There's no service and graphics are glitchy, also no wifi but that is just a matter of copying the right module, I didn't bother doing that.
There should be no dependency on a specific kernel version, but 2.6.33 is faster. I have also been trying to port cyanogen's 2.6.33 kernel but it's not as easy as it seems, there are many caveats and it did not boot yet.
Click to expand...
Click to collapse
Could the fact that MoDaCo's boot.img from rootedupdate.zip works, be related to it having an extra stage attached besides kernel and ramdisk?
I tried unpacking & repacking the boot.img you mention. And it doesn't boot
deovferreira said:
Se the other froyo thread, I posted some quick instructions on how to boot a semi-working rom. There's no service and graphics are glitchy, also no wifi but that is just a matter of copying the right module, I didn't bother doing that.
There should be no dependency on a specific kernel version, but 2.6.33 is faster. I have also been trying to port cyanogen's 2.6.33 kernel but it's not as easy as it seems, there are many caveats and it did not boot yet.
Click to expand...
Click to collapse
Could you post a link to this kernel?
I have managed to make it boot other kernels, by writing my own boot.img packing scripts.
edit: uploaded wrong file -_-
froyo kernel is 2.6.32
i'm almost sure this is the source code http://android.git.kernel.org/?p=kernel/msm.git;a=shortlog;h=refs/heads/android-msm-2.6.32-nexusonec
cyanogen have also used 2.6.34
Kali- said:
froyo kernel is 2.6.32
i'm almost sure this is the source code http://android.git.kernel.org/?p=kernel/msm.git;a=shortlog;h=refs/heads/android-msm-2.6.32-nexusonec
cyanogen have also used 2.6.34
Click to expand...
Click to collapse
Thanks for the link.
So, as the Desire source code is available, it's mainly a matter of porting kernel code? What about RIL and "acoustic" libraries htc ? hmm.... When i booted Froyo with r1.1 MCR custom kernel, 3G/EDGE and calling worked fine. There was graphic glitches though. Framebuffer port?
gr0gmint said:
Thanks for the link.
Click to expand...
Click to collapse
i made a mistake,
http://android.git.kernel.org/?p=kernel/msm.git;a=shortlog;h=refs/heads/android-msm-2.6.32
this is "probably" the right kernel (with few patch to bcm 4329 wifi) i have just compared to the nexus config.gz (2.6.32.9, CFQ Scheduler ...)
sorry but there is no froyo tag in the git
Dear all,
Did anyone succeed extracting kernel configuration from I9000XXJP3? Kernel version is 2.6.32.9, the vermagic is "2.6.32.9 mod_unload ARMv7"
extract-ikconfig doesn't work on it.
I succeeded extracting a zImage gzipped payload, but it seems not to contain any configuration in it (see attached).
/proc/config.gz doesn't exist, Samsung open source package (downloaded from Samsung open source site) contains only Android 2.1 Eclair or previous versions.
My target is to build tun.ko and, eventually, ext3/ext4 modules to make them working in Samsung Galaxy S I9000 with rooted I9000XXJP3.
Any idea?
Without froyo source code or a good Samsung Kernel (es. for himem capable) I think is impossible to play good with theses beta roms.
Ciao
Any news? I need tun.ko for jp3 too..
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
redsh said:
I have tried to compile the 2.6.32.9 kernel editing the .config in 2.6.9, the module tun.ko is accepted by the device, but I get a kernel panic!
Click to expand...
Click to collapse
Did you use the stock linux kernel? Or the common from android.kernel.org?
I'm trying the same thing actually. Isn't there any default config for the processor that might work? I tried with the config from .29 but when loading the module it says wrong format.
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
bilboa1 said:
try to build 2.6.32 with the 2.6.29 config ("yes" all missing stuff)
turn on your galaxy, adb push the tun.ko
try to load it, it will say "missing symbols" blabla
find the config options that match those symbols, enable them, recompile, try again
Click to expand...
Click to collapse
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
miki4242 said:
Great to see some people who are hacking the kernel! Keep it up!
But I'm afraid it is not going to be as easy as dropping aries_rev03_defconfig as .config in a 2.6.32 kernel tree and doing 'make oldconfig'. That's because many of Samsung's changes have not been included in the newer mainline kernel versions yet.
Samsung added quite a lot of low-level board support for their dev boards (and for the SGS, of course), did some customization and added a few drivers which you will need to forward-port to the newer kernel.
Please have a look at this thread, in which I've started a breakdown of the Samsung patches against Android Eclair's 2.6.29 kernel.
The best course of action I think is to git clone Android's kernel from AOSP, checkout the android-2.6.29 branch, apply Samsung's patches to that, then attempt to rebase your tree to a newer kernel version. (Note, you may want to start with small steps, to get a feel for what you're up against )
Note that there probably will be lots of merge conflicts which you need to resolve, and after dealing with all those, you also have to make sure that everything else that's merged still works as expected, but at least that will show you the amount of work involved. You will basically be doing all the work that Samsung is doing right now for their kernel for FroYo. It will be interesting to follow their progress on the mailing lists and on IRC.
Click to expand...
Click to collapse
Yes that would be a lot of work. Maybe its better to just wait until they release the kernel from froyo. I read that they release their opensource stuff rather fast. But just for adding a module like ext4 I don't think you need those patches, because imho they didn't touch the fs of the kernel. We just need an adaquate kernel config and adding modules should be possible.
Phlogiston said:
Thats exactly what I did, but I got wrong module format... which is a fatal error. I need to invest further in the used config... maybe i did not pick up the right one properly..
Click to expand...
Click to collapse
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Yes i've set the subversion as well but without the patches from samsung its impossible it seems. We need to wait and hope that they release the froyo kernel sources soon....
bilboa1 said:
Make sure you're using the same kernel version number and build number, because samsung kernels do not have the option to load incorrect module versions
Click to expand...
Click to collapse
Are you sure they set CONFIG_MODVERSIONS? It's off in the downloadable sources.
Just compare the output of `modinfo -F vermagic <yourmodule>` to `modinfo -F vermagic <modulewhichloads>` or to /proc/version .
did this get solved yet? I google'd for the tun.ko file for my i9000 using jp3 but nothing yet... if you have a proper one for the MoDaCo version here please attach it! ~
I think I saw someone's post with tun.ko for FroYo beta somewhere in these forums, I mean i9000 Android Dev. One of the guys here has found a way to compile kernel for jp* here. I am sure.
I actually found it attached somewhere in the forum and it was 1,5447 mb big I think it was... but it still didn't work for me so I presumed the kernel or something must have been wrong.
Hi fellows,
I was thinking, why should we stuck on 2.6.35 kernel? If we want to have a possibility to update our devices, we must have our kernels up-to-date, right?
Last night, I did a couple of scripts that can generate patches from a git tree from a start commit until an end commit. And another that can apply these patches to another tree and list the ones that wasn't applied correctly.
So, I thought if I get all patches from, let's say, 2.6.38 android kernel_common tree from 2.6.35 version commit until the HEAD and apply it to our 2.6.35 kernel, then we should get something like a 2.6.38 kernel, am I right?! I know that our kernel tree is something like a Frankenstein tree, it is a 2.6.35 with some patches from newer kernels, but these patches we can just ignore.
Last time I try to update 2.6.35 to 2.6.36 using this approach, I saw that I need to apply more than 10k patches and it will take something like a day to do here in my machine. After, the patches that wasn't applied correctly should be check. So, firstly, I want to verify if anyone see something wrong in my approach, it will save me a lot of time
Let's discuss!!!
Thanks,
Ronan
Wont porting over Kernel 3.x a be a better thing
http://git.kernel.org/?p=linux/kernel/git/kgene/linux-samsung.git;a=summary
We can diff out this n our current source(2.6.35 GB Update2), and then patch
The overcome kernel is patched with latest patches (as far as I can remember) however it wont't boot therefore it had to be spoofed with 2.6.35 to get boot. Maybe Alterbridge86 can shed more light on this.
DarkPal said:
The overcome kernel is patched with latest patches (as far as I can remember) however it wont't boot therefore it had to be spoofed with 2.6.35 to get boot. Maybe Alterbridge86 can shed more light on this.
Click to expand...
Click to collapse
He's right. My kernel is patched up to 2.6.35.13 BUT I have to spoof the kernel version as 2.6.35.7. I suspect no matter what you patch the kernel to, it will always need to be spoofed because of Samsung's proprietary crap. The RFS drivers, amongst other things, are proprietary so we use the precompiled modules from an existing initramfs. Obviously Samsung is using the 2.6.35.7 source, so those modules will not load if the source is reporting a higher version than 2.6.35.7.
I imagine you could patch the kernel up to whatever you want, however the hard part is getting the patches. I don't believe an incremental patch exists to go from 2.6.35 to 2.6.36, 37, etc.
The only thing I think you could do is get full source trees for 2.6.35 and 2.6.36 and then do a manual diff on them, creating your own patch, then try and patch that in to the samsung kernel source.
alterbridge86 said:
I imagine you could patch the kernel up to whatever you want, however the hard part is getting the patches. I don't believe an incremental patch exists to go from 2.6.35 to 2.6.36, 37, etc.
The only thing I think you could do is get full source trees for 2.6.35 and 2.6.36 and then do a manual diff on them, creating your own patch, then try and patch that in to the samsung kernel source.
Click to expand...
Click to collapse
Patches used to be availabe before kernel.org went down, i have all patches for 2.6.32.x(incremental), or maybe they are still there are i just overlooked them
Telling my point again, porting Kernel 3.0 would be better than 2.6.3x
Alterbridge86,
I wrote a script that can take all patches from a kernel tree from a specifc commit up to HEAD. It uses the log and format-patch. So, it is easy now to clone android kernel common tree, switch to, let's say, 2.3.38 branch, and take all the patches from 2.6.35 release until HEAD.
I actually got it from 2.6.36 branch (+ 11000 patches). Basically, I have the incremental patch. Now i just need some time to apply it all using another script rejecting everything that can't be patched flawlessly, built it, and verify if this "2.6.36" version works.
Now, why doesn't try 3.0? Well, i need to test the concept. The number of patches to go from 2.6.35 to 2.6.36 is more than 11000. I just can imagine how many patches exist from 2.6.35 to 3.0. I just don't have the computational power here to do this...
Anyway, I am a little out of time by now. When I have news, i will post here.
Thanks for all the advices,
Ronan
Sent from my GT-P1000L using xda premium
Bringing the thread back to life
Over days, i've tried to port 3.0, but before that, we'll have to get MTD working with 2.6.35
Tree :
https://github.com/sgt7/p1000-kernel-cm9/tree/mtd
Kernel panic
<3>[ 0.418810] samsung-onenand s5pc110-onenand: cannot get clock
<4>[ 0.418936] samsung-onenand: probe of s5pc110-onenand failed with error -2
Logs : http://pastie.org/3275285 (Thanks @ Techomancer)
Any ideas ? (havent been able to focus on this lately due to studies)
Hello, any News on porting the new Kernel?
Sent from my GT-P1000 using XDA
I kind of feel as if this should be a very basic topic and that I should not be having to post a new thread on it... but, out of curiosity, does anyone know whether or not the Android kernel-- which as we all know is a flavour of the Linux kernel-- can be updated through "patching" as the regular Linux kernel can? The reason I am asking is that I greatly prefer to run my device with a custom kernel that has extra features over the stock kernel, however, it seems like every custom kernel that is released is released as a one-shot deal, and that the only way to have a kernel that continues to be updated with fresh source is to run the kernels that are provided with the nightly ROM builds.
Of course, I could go the route of learning how to build my own kernels and add features to them.. but I guess my basic question is, does there exist any form of "general patch" that is periodically released by Google, or the Linux Kernel foundation, etc., that will bring your current kernel up-to-date with the latest system-wide changes (secuturity & stability fixes, etc), while leaving the bulk of the kernel and the kernel configuration in place? Or is that a totally unrealistic and impractical concept? I do build my own kernels from source for my laptop, but I know very little about compiling a kernel for android.. anyway, if there are any kernel devs still on this device's forum, what do you guys think?
Any feedback from knowledgeable individuals much appreciated.. thank you!
No. You would have to build the kernel and flash it yourself. You can usually find HTC's kernel source on their website for each device. You take that kernel and manually patch the updates yourself.