[Q] Kernel 3.0 Development?

Search This thread

soshite

Senior Member
Feb 16, 2012
80
25
Layton
So, my question is, why do we want the 3.0 Kernel for Nook Tablet again? From what I recall, there were absolutely no changes from kernel 2.6 to 3.0, other than the naming. Only the "alpha-manliness", and the shuffle of old drivers or something along those lines.

Any Ducati stuff is provided in acclaim_update.zip isn't it?

Anyways, if someone could answer that, that'd be great.
 

Prof. Penguin

Member
Apr 25, 2012
16
10
Ok, I am not part of the dev team and I got my NT too late to have read the original reasoning behind development of a 3.0 kernel but after a bit of research I think I may have at least part of the picture.

The main reason for the development of a 3.0 kernel is to gain access to the Ducati hardware integrated into the OMAP 4430 that the NT uses. With the 2.6 kernel we can use only the dual core Cortex A9 part of the processor but if we can develop a Ducati driver it will allow use to use the Cortex M3 dual core (four cores total) for hardware video acceleration.

This is proving to be a challenge because TI will not release the source for the Ducati related kernel elements; they will only give us a binary version which is crippled for our device because it uses the wrong watchdog timer (GPtimer 11 vs GPtimer 10 which we need).

This all requires Kernel 3.0 because the binary for Ducati is built using this kernel. Aside from that, ICS is built for the 3.0 kernel branch and we should be keeping up (if not one step ahead) if possible.

That is what I've gotten so far but if any devs want to step in and correct, clarify, or add anything else, please feel free. Thanks guys for all your hard work!
 

Demetris

Recognized Developer
Aug 15, 2008
3,096
9,471
47
Limassol
Android ICS v4 was build upon kernel v3 and also the framework (api's)
It provides some elemental changes over Gingerbread like HWA of the gui so in plain words it takes the burden off the cpu and uses the gpu like Nvidia VDPAU (Video Decode and Presentation API for Unix)
http://en.wikipedia.org/wiki/VDPAU
And Windows DXVA V2
http://msdn.microsoft.com/en-us/library/windows/desktop/cc307941(v=vs.85).aspx
http://en.wikipedia.org/wiki/DirectX_Video_Acceleration
Hardware-accelerated 2D drawing

All Android-powered devices running Android 4.0 are required to support hardware-accelerated 2D drawing. Developers can take advantage of this to add great UI effects while maintaining optimal performance on high-resolution screens, even on phones. For example, developers can rely on accelerated scaling, rotation, and other 2D operations, as well as accelerated UI components such as TextureView and compositing modes such as filtering, blending, and opacity.
As everyone thinks that no changes where made on kernel transportation to v3 from 2.6, later on many arm optimizations where sync to git from different sources that help to make the v3 kernel more feature full over v2.6.
For starters,
Linaro is pushing more and more advancements to the git for v3.
Ubuntu decided to support arm hardware in Server and Userbase because of those changes.
They are putting out a Plasma tablet with Arm Cortex A9 cpu 512mb Ram with kde Plasma interface as well as pushing theirs code onto the git also.
So in the v3 kernel we see things done right.
Another proof that kernel v3 done miracles to arm is the XBMC project.
Now we have an xbmc version for arm also.
This is no coincidence at all.
 
Last edited:

boomn

Senior Member
Feb 2, 2011
275
83
An important factor to all this is that Android does not run on a stock Linux kernel. The source code for each Android release also includes a large number of Android-specific changes to the Linux kernel, including custom features and even entire subsystems. Each release of the Android OS is developed hand-in-hand with a specific kernel version and its changes, and ICS was developed around a modified 3.0.1 kernel. Using an older kernel version could potentially require work in patching newer changes into an old kernel or hacking in workarounds instead of just focusing on drivers. This is why most ROMs aren't just jumping straight to the newest Linux 3.3 either. I don't know any specifics about what changes are important though

Many drivers available from all these outside sources have been built around this same Android 3.0.1 kernel version too, so the chances of issues are much smaller if you stick to the same version

Also, to clarify about the Linux numbering: you're correct that the 3.0 version itself didn't include any big changes over 2.6.39 so as to keep the focus on simply replacing "2.6" with "3" while sticking with the same development process. However since they started the 2.6 branch many years ago they have constantly added new features, new frameworks, and all kinds of significant changes in the 2.6.X/3.X sub-versions as the code became ready. There wasn't simply a 2.6 kernel there were many 2.6 kernels, and it changed a lot over time from the initial 2.6.0 version just as it continues to evolve with each 3.X version
 
  • Like
Reactions: soshite and Aleq

soshite

Senior Member
Feb 16, 2012
80
25
Layton
Android ICS v4 was build upon kernel v3 and also the framework (api's)
It provides some elemental changes over Gingerbread like HWA of the gui so in plain words it takes the burden off the cpu and uses the gpu like Nvidia VDPAU (Video Decode and Presentation API for Unix)
http://en.wikipedia.org/wiki/VDPAU
And Windows DXVA V2
http://msdn.microsoft.com/en-us/library/windows/desktop/cc307941(v=vs.85).aspx
http://en.wikipedia.org/wiki/DirectX_Video_Acceleration
Hardware-accelerated 2D drawing

All Android-powered devices running Android 4.0 are required to support hardware-accelerated 2D drawing. Developers can take advantage of this to add great UI effects while maintaining optimal performance on high-resolution screens, even on phones. For example, developers can rely on accelerated scaling, rotation, and other 2D operations, as well as accelerated UI components such as TextureView and compositing modes such as filtering, blending, and opacity.
As everyone thinks that no changes where made on kernel transportation to v3 from 2.6, later on many arm optimizations where sync to git from different sources that help to make the v3 kernel more feature full over v2.6.
For starters,
Linaro is pushing more and more advancements to the git for v3.
Ubuntu decided to support arm hardware in Server and Userbase because of those changes.
They are putting out a Plasma tablet with Arm Cortex A9 cpu 512mb Ram with kde Plasma interface as well as pushing theirs code onto the git also.
So in the v3 kernel we see things done right.
Another proof that kernel v3 done miracles to arm is the XBMC project.
Now we have an xbmc version for arm also.
This is no coincidence at all.

Sounds good. But the nook Tablet is running Gingerbread, and it gets Ducati features. Doesn't that mean a 2.6 Kernel suffices the Ducati Susbsystem? Does moving to Kernel 3.0.x make it easier to crack Ducati? Hmm.
 

boomn

Senior Member
Feb 2, 2011
275
83
Sounds good. But the nook Tablet is running Gingerbread, and it gets Ducati features. Doesn't that mean a 2.6 Kernel suffices the Ducati Susbsystem? Does moving to Kernel 3.0.x make it easier to crack Ducati? Hmm.

Ducati wasn't the point because as you pointed out it already works with the original kernel, and it not working yet with this 3.0 kernel is an unfortunate side effect of the real goal.

Moving to a newer Android kernel apparently makes it much easier to get proper graphics acceleration working for apps and general user interface components. This hardware acceleration of the UI is why ICS can feel so much smoother than Honeycomb or Gingerbread. Without the proper kernel I think they have to resort to dirtier hacks into the rest of ICS to make it run properly. I'm admittedly a little fuzzy on the details though
 
Last edited:

Demetris

Recognized Developer
Aug 15, 2008
3,096
9,471
47
Limassol
Lets just say that moving to Kernel v3 will make full use of our hardware, something GB doesn't do right now.
 

Aleq

Senior Member
Apr 6, 2008
264
101
This hardware acceleration of the UI is why ICS can feel so much smoother than Honeycomb or Gingerbread.
AFAIK Honeycomb has already the UI acceleration. But I haven't had any device with HC, is ICS really much smoother then HC? I didn't think so.
 

boomn

Senior Member
Feb 2, 2011
275
83
AFAIK Honeycomb has already the UI acceleration. But I haven't had any device with HC, is ICS really much smoother then HC? I didn't think so.

I was mistaken and you are correct. However, something under the hood was definitely changed or tweaked in regards to acceleration and how it is used because ICS does feel much smoother and more responsive throughout than Honeycomb did
 

boomn

Senior Member
Feb 2, 2011
275
83
I searched a bit and found this helpful article. Here are the most relevant quotes:

Android 3.0 Honeycomb gave developers the ability to turn on hardware acceleration, but it wasn’t toggled by default.

According to Romain Guy and Chet Haase (Android engineers):

“With this new pipeline, all drawing operations performed by the UI toolkit are carried out using the GPU. You’ll be happy to hear that Android 4.0, Ice Cream Sandwich, brings an improved version of the hardware-accelerated 2D rendering pipeline to phones, starting with Galaxy Nexus. In Android 4.0 (API level 14), hardware acceleration, for the first time, is on by default for all applications.”
 

Top Liked Posts

  • There are no posts matching your filters.
  • 4
    Ok, I am not part of the dev team and I got my NT too late to have read the original reasoning behind development of a 3.0 kernel but after a bit of research I think I may have at least part of the picture.

    The main reason for the development of a 3.0 kernel is to gain access to the Ducati hardware integrated into the OMAP 4430 that the NT uses. With the 2.6 kernel we can use only the dual core Cortex A9 part of the processor but if we can develop a Ducati driver it will allow use to use the Cortex M3 dual core (four cores total) for hardware video acceleration.

    This is proving to be a challenge because TI will not release the source for the Ducati related kernel elements; they will only give us a binary version which is crippled for our device because it uses the wrong watchdog timer (GPtimer 11 vs GPtimer 10 which we need).

    This all requires Kernel 3.0 because the binary for Ducati is built using this kernel. Aside from that, ICS is built for the 3.0 kernel branch and we should be keeping up (if not one step ahead) if possible.

    That is what I've gotten so far but if any devs want to step in and correct, clarify, or add anything else, please feel free. Thanks guys for all your hard work!
    3
    Android ICS v4 was build upon kernel v3 and also the framework (api's)
    It provides some elemental changes over Gingerbread like HWA of the gui so in plain words it takes the burden off the cpu and uses the gpu like Nvidia VDPAU (Video Decode and Presentation API for Unix)
    http://en.wikipedia.org/wiki/VDPAU
    And Windows DXVA V2
    http://msdn.microsoft.com/en-us/library/windows/desktop/cc307941(v=vs.85).aspx
    http://en.wikipedia.org/wiki/DirectX_Video_Acceleration
    Hardware-accelerated 2D drawing

    All Android-powered devices running Android 4.0 are required to support hardware-accelerated 2D drawing. Developers can take advantage of this to add great UI effects while maintaining optimal performance on high-resolution screens, even on phones. For example, developers can rely on accelerated scaling, rotation, and other 2D operations, as well as accelerated UI components such as TextureView and compositing modes such as filtering, blending, and opacity.
    As everyone thinks that no changes where made on kernel transportation to v3 from 2.6, later on many arm optimizations where sync to git from different sources that help to make the v3 kernel more feature full over v2.6.
    For starters,
    Linaro is pushing more and more advancements to the git for v3.
    Ubuntu decided to support arm hardware in Server and Userbase because of those changes.
    They are putting out a Plasma tablet with Arm Cortex A9 cpu 512mb Ram with kde Plasma interface as well as pushing theirs code onto the git also.
    So in the v3 kernel we see things done right.
    Another proof that kernel v3 done miracles to arm is the XBMC project.
    Now we have an xbmc version for arm also.
    This is no coincidence at all.
    2
    An important factor to all this is that Android does not run on a stock Linux kernel. The source code for each Android release also includes a large number of Android-specific changes to the Linux kernel, including custom features and even entire subsystems. Each release of the Android OS is developed hand-in-hand with a specific kernel version and its changes, and ICS was developed around a modified 3.0.1 kernel. Using an older kernel version could potentially require work in patching newer changes into an old kernel or hacking in workarounds instead of just focusing on drivers. This is why most ROMs aren't just jumping straight to the newest Linux 3.3 either. I don't know any specifics about what changes are important though

    Many drivers available from all these outside sources have been built around this same Android 3.0.1 kernel version too, so the chances of issues are much smaller if you stick to the same version

    Also, to clarify about the Linux numbering: you're correct that the 3.0 version itself didn't include any big changes over 2.6.39 so as to keep the focus on simply replacing "2.6" with "3" while sticking with the same development process. However since they started the 2.6 branch many years ago they have constantly added new features, new frameworks, and all kinds of significant changes in the 2.6.X/3.X sub-versions as the code became ready. There wasn't simply a 2.6 kernel there were many 2.6 kernels, and it changed a lot over time from the initial 2.6.0 version just as it continues to evolve with each 3.X version