I've built some kernels that can be applied to the MiRaGe CM7 build. Below are the changes of each kernel build.
The 16 BPP frame buffer uses 16 bits per pixel instead of 32 bits per pixel. This reduces the amount of memory used for the screen frame buffer. It also means that when Android updates the screen, it has to move half the amount of data. This has the potential to increase performance. The potential downside is color banding. Using fewer bits for each pixel reduces the number of colors that can be displayed. I haven't noticed a difference in how the screen looks.
Compiling the kernel for speed versus size tells the compiler to use more memory if it will make the code run faster. This tradeoff uses less than 256k more memory (the Nook has 524288k) for the kernel.
By default, the backlight is turned on and off at a base frequency of 128 times per second. If you are at 50% brightness it will be turned on and off 128 times in one second. The 256Hz kernel doubles the rate at which the backlight is turned on and off as some people can see the backlight flashing at 128Hz. Since the switching is done in an interrupt to the processor, there is more overhead at the higher frequency so it's not a free change. Only use if the default screen seems to flicker.
encore_kernel_07302012.zip:
- 16 BPP frame buffer
- Compiled with -O2 instead of -Os (speed instead of size)
encore_kernel_256Hz_07302012.zip:
- same as above and 256Hz backlight instead of 128Hz
encore_kernel_07122012.zip:
- 16 BPP frame buffer
- Compiled with -O2 instead of -Os (speed instead of size)
encore_kernel_256Hz_07122012.zip:
- same as above and 256Hz backlight instead of 128Hz
Attached are CWM zips you can apply to probably any recent MiRaGe build.
The kernel is the engine that drives your rom. It is the core of the system, responsible for drivers, modules and managing the communication between hardware and software, among other responsibilities. You already have one, you just don't have this one made just for you.
Looks like frankusb has put it into a flashable zip, so just flash it over your Mirage rom.
Alternatively, for emmc installs, you could just take out the uImage file from the zip, rename it to kernel and put it in any rom you want.
If you have an sd install, just replace the uImage in your boot partition with his.
I'm not very good at it yet, though, and that's kind. My kernel builds tend to boot and I was able to enable the NAT stuff on my own (before the new .config was pushed) but that's as far as I have gone with it.
I wouldn't mind having a thread where kernel development was discussed, although frankusb, maybe you would rather keep the discussion on your kernel.
For the uninitiated, what does this do? (layman's terms)
- The LEDs that bring light to the screen flash twice faster, so it should be less noticeable, especially at lower brightness levels and a darker room. You might have noticed that cameras (see Youtube) also see the Nook Color flickering.
- The screen is now updated at 60Hz instead of 44 frames per second. Most laptop/desktop LCDs are run at 60Hz. Can make it possible to have smoother graphics. Does give the programs a harder time to keep up if they try to do this, since they need to push 40% more image data per second.
- With half the bits (32 vs 16) to push to the display, graphics get slightly faster. I believe this is optional in Cyanogenmod settings.
---------- Post added at 07:47 AM ---------- Previous post was at 07:31 AM ----------
Over from the Mirage main topic:
Quote:
Originally Posted by Henk Poley
I'm talking about the backlight. On a static image I can distinctly see the corners of the display in a stroboscopic effect when I move the Nook Color by hand. As if the image quickly disappears and then time travels to another spot . It's quite annoying and possibly tiring.
With this kernel build I now see the flickering at a reduced distance when I move the nook color by hand. It does look like half the distance, like it should :P
Still noticeable though.
There is a bug now, that ever so often 100% brightness in RootDim puts the backlight brightness all the way down. I wonder if the unmodified driver has a similar race condition in writing the value to the PWM divider register.
The kernel is the engine that drives your rom. It is the core of the system, responsible for drivers, modules and managing the communication between hardware and software, among other responsibilities. You already have one, you just don't have this one made just for you.
Looks like frankusb has put it into a flashable zip, so just flash it over your Mirage rom.
Alternatively, for emmc installs, you could just take out the uImage file from the zip, rename it to kernel and put it in any rom you want.
If you have an sd install, just replace the uImage in your boot partition with his.
I'm not very good at it yet, though, and that's kind. My kernel builds tend to boot and I was able to enable the NAT stuff on my own (before the new .config was pushed) but that's as far as I have gone with it.
I wouldn't mind having a thread where kernel development was discussed, although frankusb, maybe you would rather keep the discussion on your kernel.
There is a bug now, that ever so often 100% brightness in RootDim puts the backlight brightness all the way down. I wonder if the unmodified driver has a similar race condition in writing the value to the PWM divider register.
You are very observant. This driver has an interesting detail.
There are cases where there is a 1/8 second delay before the brightness level is set.
I've noticed even before my change of frequency that sometimes when it dimmed the screen due to inactivity, it would flash full brightness.
Side note: This driver was originally written by Nokia, probably for either the 770 or N800. The 770 was my first internet tablet.
I wouldn't mind having a thread where kernel development was discussed, although frankusb, maybe you would rather keep the discussion on your kernel.
I'm certainly OK with this thread discussing kernel development. I've been enjoying building the Nook kernel lately.
I doubt there's much to discuss about my particular kernel, at least so far, the changes are very minimal and mostly well known. The LED PWM frequency is the only new change.
Most of us take the simple act of waking up our devices and having a quick glance at the … more
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?