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
Modifying your nand adress space is okay, but that means that you have to modify your recovery along with the new rom each time you want to flash a new one.
What I propose is a new, flexibile approach (mainly for devs).
This is just a placeholder atm, but once I get some free time, I'll write about making compressed partitions (mainly static data) using squashfs (this has been done to a certain extent in the past for /system/lib/modules), but adding a bit of flexibility with unionfs/aufs.
The advantages are numerous, as are the uses.
For example: no need for complex apps2sd scripts!
Just mount your unionfs in /data and mount-bind that to another folder on the SD partition of your choice, and voila, apps2sd.
;]
This is of course synonymous to modifying the initrd, but a few lines of really simple script and it's done.
I have successfully tested that with /system, and have to further test with /data
I also have to test unionfs / aufs and make a choice. The ideal one without hesitation is aufs, which has practically superseeded unionfs, but there are a few stability issues involved in the 2.6.29 patches.
There are a few knowledgeable (real) devs around (dunno about any in the Hero forum though), so they probably know what I'm writing about.
You know who you are, so just drop in a post in this thread in case you you would have some ideas regarding the implementation.
n.b. I might have to rewrite that post. It's 01:40 and I'm really tired after my training and work.
placeholder and a note:
I have patched the reverse-patched kernel (desirec) for this.
I've run into trouble building the official htc-release 2.6.29 kernel with aufs.
>edit 201008181214<
I've successfully patched the tattoo 3G/Slide kernel to build a healthy Hero kernel with aufs.
It kindda hangs in the beginning, but runs just fine afterwards.
Prolly due to my OC settings.
>leak<
I am also playing around with kernel hacking, since I want to get 2.6.32 on the Hero. Epic wip.
good concept. I'm curious about performance - this would compress read/write on the fly, right? cpu resources etc, no problem there? no major lag issues in real use (startup doesn't matter much which you mentioned).
No I'm not a rom dev, but I AM a full time career developer.
by the way - I never found a workaround for the audio issue I had with your froyo rom. But it was a good project and I'm happy it's working well for you.
dkelley said:
good concept. I'm curious about performance - this would compress read/write on the fly, right? cpu resources etc, no problem there? no major lag issues in real use (startup doesn't matter much which you mentioned).
No I'm not a rom dev, but I AM a full time career developer.
by the way - I never found a workaround for the audio issue I had with your froyo rom. But it was a good project and I'm happy it's working well for you.
Click to expand...
Click to collapse
I am puzzled as well (audio issue).
You might've noticed that I'm no longer as active in the Hero forum.
I'm done with mdpi devices.
;]
In any case:
I have been working these past few days on optimising the kernel (I have based my work on the tattoo kernel) and aufs is working atm.
adwinp said:
placeholder and a note:
I have patched the reverse-patched kernel (desirec) for this.
I've run into trouble building the official htc-release 2.6.29 kernel with aufs.
Click to expand...
Click to collapse
you should use ninpo's repo, most uptodate kernel sources with a lot of fixes/patches included (http://github.com/Ninpo/kernel-hero/). aufs compilation worked at the first try.
I am also playing around with kernel hacking, since I want to get 2.6.32 on the Hero. Epic wip.
Click to expand...
Click to collapse
ninpo works with elemag on porting 2.6.34, they already made a lot in porting the board files.
btw nice idea with overlaying the file system, I think a lot of nand protected device use that already? (Desire, Wildfire..) http://forum.xda-developers.com/showthread.php?t=748025
unfortunately I have nearly no spare time to play around, but I'm very interested to see how the compressed squashfs affects cpu load and thus the overall phone performance.
found an old but still interesting thread, so even cyanogen experimented with it, maybe there are unresolved issues?
http://forum.xda-developers.com/showthread.php?t=523662
http://groups.google.com/group/andr...36603d429a/646a017892783e2b?#646a017892783e2b
As a matter of fact, Elemag PM'd me about his work.
To be frank, I am only playing around with this out of boredom, till I buy myself a hdpi device (I am waiting for the Glacier, hopefully)
;]
Thx for the links.
I can see that I was not the only one. lol
Despite a totally different approach, Maxisma's posts about a bigger data partition got me thinking, and ultimately reminded me of some work I did in the past with linux livecd's, which gave me the idea to try it on android.
To answer your question: decompressing squashfs is very fast, with little additional load/overhead (although, running a lot of running apps/widgets on our poor 528MHz/729MHz cpu in addition to a compressed system is generally a bad
idea)
I have another idea (from my linux administrating experience as well ;]) I would like to implement, but that would only work on newer devices, which have a lot of RAM.
My idea is to modify the init.rc in order to copy over the SYSTEM: partition ENTIRELY into RAM (essentially create a tmpfs mount point), do a switch_root, and let android take it from there.
This would of course also mean redefining the ANDROID_ROOT env variable to point to the new location.
A further modification would be to mount the WHOLE /system and /data into RAM (provided it fits and leaves enough for runtimes), and THEN further mount aufs in order to write to disk - or write to tmps, but, in the case of aufs, no further work is required, but in the case of tmpfs, you just have to #find all newer files than $uptime (taken from uptime, obviously), and recompress it to the original compressed fs.
That WORKS on a few linux systems I tried.
whew. a lot of ideas, but no device to test on.
;]
Hello Comm. and Devs,
For our Archos there are now many custom rom-images and experimental distris of linux and so on and every "rom" has its own kernel and init which have to be flashed and it seems it is only possible to have one kernel and one init.
I want to test as many roms, plasma, ics alpha, ubuntu, 3.2.80 with busybox and adobe, etc. for shorter or for everytime. And when Archos brings ICS finally i want to upgrade of course, without losing apps and settings etc.
Now i am on rooted 3.2.79 with chainfire 3d and i dont know if it makes senes to upgrade to 3.2.80 custom rom from surdu. Okay, vibrator and so on and some goodies, sounds nice, therefore i want to test and perhaps revert it later.
Which roms are compatibel with each other and which not?
Which rom is how much recommend?
What are the differences between these inits (kernel seems often to be the same seen by its size i think) - is there the possibility and the evidence to merge the inits somehow?
Or is there a kind of general initramfs one could take for most roms?
What rom has which kernel in which version and same for initfs?
What are there for possibilities that every image gets it adequate kernel and initfs?
Many of us want multi boot which i think is not really (?) supported for gen9 .
What should be done for compatibility if i want a kind of multiboot?
It would be nice if this would give a set of infos for us all.
Well, no, kernels are not the same. We're not 100% sure for Archos ones, they're currently closed source, but looking at what they fixed in the different releases, I believe there have been changes. Plasma is definitely using a different kernel, ics will require a completely new 3.0 kernel and probably require clear data.
So what you're looking for is not really possible, not matching kernel with firmware is not a good idea. The only exception would be Ubuntu, but that's it.
what about multi-boot menu from open aos?
There are roumors that people have it work but it is not supported.
Dont want to mess all up.
Do you know something or have experiences?
svennimann said:
what about multi-boot menu from open aos?
There are roumors that people have it work but it is not supported.
Dont want to mess all up.
Do you know something or have experiences?
Click to expand...
Click to collapse
Sorry - about this with multiboot i see there is already a thread.
Hello everybody,
I don't know if this has been done already, but I couln't find it so I thought why not make a version of my own.
Next to WhiteXP i'm also working on a version of CyanogenMOD 7.2, but with a different approach.
In my oppinion before even trying to release something it's important to have a permanent and working version of instead of the stock recovery.
The difference between this phone and many other phones is the fact that the recovery is included in the boot.img file.
My own phone for example, a Samsung Galaxy S Plus, has a seperate standalone recovery.img.
Because I don't own this phone myself I hope another developer can test if this is working properly.
I didn't change the kernel or important boot files other than the recovery itself, so booting into android shouldn't be a problem and remember it's build upon the stock kernel for now.
Here is the downloadable boot.img: http://depositfiles.com/files/90ye57wtm
The kernel should be flashable through the existing CWM which is already posted in the forums with this file:
http://depositfiles.com/files/e21qacxo9
Hopefully somebody is willing to give me some feedback.
Greetings PsychoGame
Hello
Here I am again with a little update.
This version doesn't seem to work okay, it gets into a bootloop.
I will try to fix these problems at a later time.
Greetings
Psycho Game
Thanks...for your work merge CWM into stock kernel...:thumbup:
Sent from my GT-S5360 using xda app-developers app
Here's a little update of the work i'm doing right now.
As I already said I'm also working on a version of CyanogenMod myself.
The problem is not anymore the availability of the drivers, because BroadCom released their drivers to the public.
In my opinion the next bottleneck is the Kernel. I didn't own a Galaxy Y at first, but I recently bought one to make it easier to test different configurations.
My main phone is a Samsung Galaxy S Plus which already has a realy stable CM9 version, but also the kernel is already updated to version 3 from 2.6.35.14.
This is also my goal ultimatly, but the Galaxy Y uses RFS filesystem in combination with FSR. These are closed source modules from Samsung, which make it difficult to update kernels.
There is a known hack that you can alter the version in the make file of the kernel to 2.6.35.7 while it realy is patched up to 2.6.35.14, but i'm not very fond of such hacks.
I'm a daily linux user already since the year 2000 or so, and build many kernels for Linux computers from source. I can say I have good knowledge of the compilation proces and what's going on in the kernel.
Now back to what i'm doing at the moment:
I already converted the complete galaxy y to EXT4 file system, incl. the EFS partition, and yes I still have my IMEI data etc. so this is considered done [status: complete]
Next step is getting rid of the RFS & FSR kernel modules, which are proprietary [status: complete]
At the moment I'm busy updating the kernel to version 2.6.35.14 the proper way, so I have a stable base kernel to build CM on [status: WIP]
After this I will add CWM recovery to the updated kernel, and make sure everything works as it should, like ADB in recovery mode, formatting, and all these things. [Status: Planned]
When CWM recovery functions as it should work, the proces of building CWM into the Galaxy Y can begin [Status: WIP -> Stalled until kernel stable].
This is a little update on the things I have in mind.
If you like it, please post a comment, that also lifts my spirit in the lots of things that have to be done.
Greetings
Psycho Game