Hey guys,
As a software developer myself I feel a bit embarrassed that I need to ask this, but I really can't think of the answer myself. Here goes:
Why do we always need the latest sources from Samsung to be able to build an AOSP rom?
The way I see it, unless the kernel's internal APIs that Samsung's device drivers use have changed dramatically between, say, Froyo and Gingerbread, wouldn't it be possible to simply check out AOSP, paste the driver source files from Froyo into the appropriate folder in the kernel tree, and compile? Even if the kernel's internal APIs have changed a bit, they would be minor and well documented changes, so it should only be a moderately difficult task to fix the Froyo sources to work with Gingerbread. Sure, the drivers would still be "Froyo quality," but they seem to work pretty well to me. I'd be happy with a Gingerbread AOSP build w/ Froyo drivers.
It's kind of like what VMWare's tools do in a Linux guest OS - if you update your distro's kernel, the ABI is broken and you just recompile the modules. Same VMWare source code, different kernel, but it works.
Related
Ok I admit that this might be a silly question, but here it goes:
In the froyo open source kernel from samsung open source release center, there is a file called 'drivers'. Are these the drivers from the phone's hardware? If that's the case then it is possible to compile the 2.3 kernel based on those drivers (provided that you download the 2.3 kernel from google).
SO now that the source for ICS is out I have a question. Please excuse my ignorance as I am still trying to learn a few things.
The main question is if a kernel can be made for the note directly from the source and then the current modem files be flashed to it to make it work or do we have to wait for Samsung to release a version built of the source with custom drivers. I guess I am just not sure if the source contains drivers for some hardware or if it is all custom added on top of the rom.
Hey guys i was just wondering what the big problem with the hardware acceleration on all of those ICS build are. for what i understand its a kernel problem. amazon build upon android 2.3 with an 2.6 kernel. the new ICS needs a kernel 3+ for driver and open gl to do the hardware acceleration. i'm i right?
in this state i do wonder, if it is possible to get hardware acceleration on ics. is it possible to build a 3+ kernel for the kindle? where is the problem, its only man hour that we need, or is for example the kernel signed to prevent flashing?
I know that they guys at the dev section are doing an amazing job so far, and to this point im very glad to have so many good dev working on the kindle. i do not ask for an date, like: in 3 days there will be an ics build with HWA.
im looking for some insight in the dev roadmap for example what is missing for the mentioned HWA.
thanks so far :>
It will come with time - man hours are indeed what's needed. No signed kernel problem. Needs a lot of hacking to get the new kernel to work.
yeah i would also like to know this
kernel 3.0 is not required for HW acceleration.
watch this video.
http://www.youtube.com/watch?feature=player_embedded&v=6Ug-HNK9XVE(4:50)
This tablet running fine on 2.6.39 kernel with hardware acceleration.
We have only 2.6.35 kernel... (older than 2.6.39)
Just developers can not yet solve the problem.
Android 3.0 kernel is definitely not needed for hardware acceleration. Teamhacksung had it working with a 2.6.35 kernel before they moved to a 3.0 kernel for their supported galaxy s devices.
For hw accelerated ui drawing you will need updated pvr drivers and modified fb drivers.
For hw accelerated video decoding, you will need updated dss bridge drivers, and updated codecs specifically for the IVA processor in the omap 4. I don't know if it is a requirement for our devices, but on the aries(hummingbird) platform they had to modify their framebuffer drivers to have more overlay buffers.
It just a toss up of whether it is easier to get a working 3.0 kernel, or back port all of the udpates.
I guess its time for me to get a VM setup and start hacking away. Or at the very least start comparing parts of our 2.6.35 kernel with the pandaboard, and gnex 3.0.8 kernel.
woolbeo said:
Android 3.0 kernel is definitely not needed for hardware acceleration. Teamhacksung had it working with a 2.6.35 kernel before they moved to a 3.0 kernel for their supported galaxy s devices.
For hw accelerated ui drawing you will need updated pvr drivers and modified fb drivers.
For hw accelerated video decoding, you will need updated dss bridge drivers, and updated codecs specifically for the IVA processor in the omap 4. I don't know if it is a requirement for our devices, but on the aries(hummingbird) platform they had to modify their framebuffer drivers to have more overlay buffers.
It just a toss up of whether it is easier to get a working 3.0 kernel, or back port all of the udpates.
I guess its time for me to get a VM setup and start hacking away. Or at the very least start comparing parts of our 2.6.35 kernel with the pandaboard, and gnex 3.0.8 kernel.
Click to expand...
Click to collapse
After buying the Kindle Fire just recently, I was looking up HWA and found your post. Thanks for the detailed response, much appreciated.
Hashcode is working hard on a 3.0 kernal and is keeping updates on his progress in this thread. He could be weeks away from debugging the kernal he is developing
My understanding is, for HWA to work running ICS, the 3.0 kernel is required. Yes, there are other ROMS that have HWA working but they are not ICS.
That is correct, the current kernel doesn't allow for the changes made in android 4.0. If you need HWA for daily use, stick with a gingerbread rom. Otherwise support and wait for Hashcodes work on the new kernel.
Sent from my Amazon Kindle Fire using xda premium
Hello
For the past couple (weeks) I've been trying to compile Android 10 for tenderloin using the Android 9 sources but it's not going so well. First thing I ran into multiple sepolicy errors and I feel as if I fixed them in inappropriate ways but the errors went away. Other errors regarding camera and audio and such, that are regarding that tenderloin no longer uses the legacy audio format. Made me confused because I used the device sources form Evervolv and DIrty unicorns and if i'm correct they built it exactly the same way they uploaded it. After these errors were wrapped up, I got a error at zipping the rom that it could not zip due to failure of being able to read build.prop. This made me believe that the sources are not correctly formatted. If anyone can help me find a manifest, I can build for all you guys. Please keep tenderloin alive!
Now, I did something and I'm getting plenty of perl errors. Maybe I'm just very unlucky. I'm gonna attempt to reinstall on a fresh drive on my server.
If its anyone's concern, I was building lineage 17.1. I noticed for example, Lineage's "qcom-device" repo was shaped completely differently than Evervolvs qcom-device repo.
This led me to thought that Android 10 is going to be extremely difficult because of all the upstream dev changes that was pushed to Q. If any of you would like, I could probably push out March patches Pie rom because over there I'm mostly safe of complying with the source.
My manifest shape
DirtyUnicorn's device-tree
DirtyUnicorn's device-tree-common
DirtyUnicorn's htc-msm8960-kernel
Evervolv's vendor
And dirty unicorn's atheros wlan driver
I have been changing up the device tree so much, it almost looks ridiculous . From what I heard lots of properties on the device tree haven't been touched for years. Maybe tomorrow I can try Evervolv's Q rom. If you guys can help me build up my manifest, we can push out a fully working Q rom for tenderloin. And it would be just in time when Android 11 comes out. Thank you everyone!
I wish that I could offer any help, but I never tried to compile any Android ROM or for the HP_TP.
To my knowledge the only users that I know that could offer some insight on the process would be:
@flintman
@elginsk8r
Also the LuneOS project could offer some help:
https://pivotce.com/tag/luneos/
If Android Q(10) can not be ported to the HP_TP, then at least P(9) is a good ROM to keep updating that could provide many years of App support.
Theres no reason why exactly it cant,, because lots of roms I hear were built off the original TP sources (From 2011!). It was only around 2016 when guys around here had to change it up so much that they should've been so surprised that it worked. I can try and temporarily maintain P roms until the boys around here push out sources for Q!
djared704 said:
Theres no reason why exactly it cant,, because lots of roms I hear were built off the original TP sources (From 2011!). It was only around 2016 when guys around here had to change it up so much that they should've been so surprised that it worked. I can try and temporarily maintain P roms until the boys around here push out sources for Q!
Click to expand...
Click to collapse
To my limited knowledge is all about Hardware -->> Drivers -->> ( Kernel ).
The reason that Bluetooth and camera does not work on newer Android version is due to the old (proprietary drivers) and the Kernel. That takes more dedication and work than the ROM. The same rules applies to the desktop, older processors does not support certain features and the Operating System will not run. It is possible to disable the features in the kernel so that it does not check the hardware and make it run, but it will be unstable.
Everything could be possible with plenty of time, knowledge and dedication.
HP_TOUCHPAD said:
To my limited knowledge is all about Hardware -->> Drivers -->> ( Kernel ).
The reason that Bluetooth and camera does not work on newer Android version is due to the old (proprietary drivers) and the Kernel. That takes more dedication and work than the ROM. The same rules applies to the desktop, older processors does not support certain features and the Operating System will not run. It is possible to disable the features in the kernel so that it does not check the hardware and make it run, but it will be unstable.
Everything could be possible with plenty of time, knowledge and dedication.
Click to expand...
Click to collapse
When I look at the tenderloin source, the script to gather the camera driver is disabled. Camera isnt a huge deal though because its only 1.3 MP. However we use the MSM 8960 kernel from HTC and that is the one m7,, but the one m7 is a SD 600 device so it loses sense. I was gonna get some help with one of my kernel developer buddies to dev a kernel for android 10 for tenderloin. If you see the one m7 has Lineage 17.1 available and even though it doesnt have same chipset, if im correct both chipsets went off of the same assembly line process. Lineage 17.1 for the one m7 also packages it as a "uimage" which is what we use. I believe this was only a very small select of devices. Yeah about that ive been getting so many complaints during build about "mkimage" which should've been a prebuilt tool in the lineage source. Don't know why they removed it, or if our developers added it in by their selves, etc. Anyways I fixed that error by just "allowing" mkimage in one of the permission files in my environment. But yeah i went as far as the build packaging the ROM and it complaining it cannot read build.prop. Note the build.props are generated by the environment , not the source (even though the device data is gathered by the source, its not what im talking about). I even go to the directory it was complaining about and it was all there. One of my friends suggested a permission error. I changed permissions to 777 (rw to all users) and it would still output that error. By that point I trashed my build meaning I may of done something wrong early on. I will let someone else continue building 10 but I will continue building 9 with latest patches.
It will be extremely impressive if any kernel developer will update the HP Touchpad Kernel or tweak it for future release, well everything will stop once Android becomes 64 only.
I am sure you are very well aware, but I will suggest using this built:
https://forum.xda-developers.com/hp-touchpad/development/rom-evervolv-hp-touchpad-t3923512
I was able to do the following playing around recompiling the Kernel. I recompile almost all the ROM and incorporated the same kernel changes.
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773
The Ramdisk is also very easy to unpack and repack:
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-novacom-repair-android-t3960435
There is no need to get the original Camera or Bluetooth working, only sound and WiFi.
HP_TOUCHPAD said:
It will be extremely impressive if any kernel developer will update the HP Touchpad Kernel or tweak it for future release, well everything will stop once Android becomes 64 only.
I am sure you are very well aware, but I will suggest using this built:
https://forum.xda-developers.com/hp-touchpad/development/rom-evervolv-hp-touchpad-t3923512
I was able to do the following playing around recompiling the Kernel. I recompile almost all the ROM and incorporated the same kernel changes.
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-optimize-android-swap-t3901773
The Ramdisk is also very easy to unpack and repack:
https://forum.xda-developers.com/hp-touchpad/general/hp-touchpad-novacom-repair-android-t3960435
There is no need to get the original Camera or Bluetooth working, only sound and WiFi.
Click to expand...
Click to collapse
I think I probably stated somewhere, but Evervolvs "device" tree would just spit out hundreds of errors, and I fixed this by switching to Dirty Unicorns device tree. I also tried flintman's device tree and it didn't spit out many errors. Thanks for this though.
djared704 said:
I think I probably stated somewhere, but Evervolvs "device" tree would just spit out hundreds of errors, and I fixed this by switching to Dirty Unicorns device tree. I also tried flintman's device tree and it didn't spit out many errors. Thanks for this though.
Click to expand...
Click to collapse
I have only recompile the Kernel and all of them work, but the correct branch must be use. I can not say about building a ROM, never done it.
But Evervovs Pie by elginsk8r works very well and stable as it uses the same kernel, but the framework is different. I guess elginsk8r will be the only that can guide you on the right direction or flintman.
Have fun learning, it takes a lot of TIME!
I see installation instructions for a ROM (which is the Android OS, right?) and I see references to a kernel as well. What is the difference? Am I supposed to install both at the same time, or does the ROM carry the kernel, or how does it work?
Android is similar to mainstream linux operating systems in that the ROM is like the OS portion of a linux distro.
the Kernel is the portion that interfaces between the OS and the hardware.
Pretty much all Roms (there may be exceptions but I cant think of any) come prepackaged with a kernel as well.
so installing the ROM will install the kernel automatically and has the benefit of installing the kernel the developer intended.
There are separate Kernels available that have specific features you may prefer. (overclocking for CPU/GPU, specific modules loaded for emulation if running a linux distro within android etc.)
to install them you would install the rom (And its default kernel) then flash the kernel of your preference over it.
If you are just starting out I would just install the Rom and its default kernel unless you have a very specific use case.
hopefully that helps
There are often more pieces as well due to proprietary code:
ROM - the OS itself often either based on AOSP, the manufacturer software or Lineage (or a mix)
Kernel - refers to the open source linux kernel that controls hardware that it supports.
Firmware - includes manufacturer proprietary code for hardware that is not open source.
Modem - includes proprietary code for modem hardware.
it breaks down further but generally you will start with a stick manufacturer installation including all parts.
then you can flash a custom rom and kernel (Usally as a complete package)
Modem and firmware updates would still come from the manufacturer. (Most roms will tell you if a specific firmware or modem is needed, the modem usually doesnt matter as much anymore but in the early years it was important)
Thanks for the information!