Jump to content

[2.6.32.9 kernel]: Working, call for testing


Recommended Posts

Guest errmsg
Posted (edited)

Hello everyone.

It started as a project to learn kernel programming and turned into an updated kernel for my device, Acer Liquid E (512Mb RAM version). I realize I am a bit late to the party but the device is still working, so why not?

This is a milestone before I switch to porting 2.6.35.x kernel as I want to get as close to official CodeAurora/Nexus One kernel as possible first.

Important: This kernel uses default partition scheme from atag (partition.mbn), so if you were using a custom ROM with overridden partition scheme in the kernel then DO NOT try this upgrade. If you are using a stock kernel or MTD layout then everything should be working for you. In other words, you need to use standard Malez recovery image.

GitHub repositories:

/device/acer/a1: https://github.com/r...-device-acer-a1

/kernel: https://github.com/r...roid-kernel-msm

/system/vold: https://github.com/r...orm-system-vold

Please perform a backup of system and boot partitions before flashing the update.

The latest build is acer_a1-kernel-2013-07-03-2.6.32.9-gc8bbbee-update.zip

Pre-built update archives are available here: 2.6.32.9

Tested successfully only on Acer_LiquidE_4.008.08_EMEA_VFIT.

What has changed?

All the available hardware is working the way it was in stock 2.6.29, however there are some differences:

  1. AVR LEDs (the home/search/back/menu buttons) are always on when the screen is on. These are exported as /sys/class/leds/keyboard-backlight and it is expected to be turned on/off by the framework when the ambient light gets lower than certain threshold. At the moment I haven't implemented that. - The latest build mimics 2.6.29 behavior.

  2. Updated libaudio. I made sure that everything is working with all the devices I have. I also fixed the low volume in audio recording software that I've seen on so many early custom ROMs in 2011.

  3. Updated vold. Since top notification leds are exported via /sys/class/leds/{call,notification,battery} and are driven by mainline kernel tca6507 module (+power saving changes), permissions had to be adjusted for /sys/class/leds/{call,notification,battery}/{delay_on,delay_off} files after they are created by timer trigger.

  4. bcm4329 module for WiFi. No user-visible changes.

  5. /proc/last_kmsg - this build has RAM console enabled so the kernel log is available after reboot. kpanic is disabled, so no /sdcard/apanic-* logs are written.

  6. USB Low Power Mode while charging. This should prevent the device from wasting power while charging (i.e. more current goes to the battery, leading to slightly faster charge). Also this should prevent a weird state of A1 powering USB subsystem when nothing is connected.

  7. Top LED driver is completely shut down when no LEDs are on. Negligible power savings, but every bit helps.

Known issues:

  1. TPA2018 (speaker amplifier) is set to maximum gain level when enabled. Due to bad output quality of TPA2018 module Acer decided to set master volume directly, while CodeAurora libaudio/libaudioflinger uses software mixing. You will hear a quiet hissing sound when speaker is working. If you were using max volume on stock acer kernel then you won't hear the difference.
  2. dinfo partition is not exported through /proc/srs0, so "Device Information" will not show up.

The kernel repository has all the history information required for recreating the kernel, feel free to fork.

What needs to be tested?

Please let me know if you happen to find a configuration when the sound or SD card is not working properly or the device reboots or hangs for no good reason. The battery life for me was better or around the same as the stock kernel, so it should not drain your battery more than it used to.

Edited by errmsg
Guest Master_T
Posted

This is VERY interesting!

Do you reckon it could work on ROMs other than the stock? I'm doing a backup now, will try it on the CM7 Remix, I'm curious.

Guest errmsg
Posted

Do you reckon it could work on ROMs other than the stock? I'm doing a backup now, will try it on the CM7 Remix, I'm curious.

It depends on what modifications went into the ROM itself. Most likely the phone will boot but either UI will not show up or some parts of the system will not work properly. In case the ROM is based on a stock acer kernel (or a kernel with minimal userspace-facing modifications) it should work.

Guest Diljeet
Posted

Will it work on Acer Liquis A1(256 MB RAM)?

Should I try?

Guest errmsg
Posted

Will it work on Acer Liquis A1(256 MB RAM)?

Should I try?

I am afraid I don't know, an attempt to start the device by limiting the kernel memory space yields a DSP interaction error and the device reboots.

There were some changes of the physical memory layout between 2.6.29 and 2.6.32 and it would be a bit hard to find the reason as I only have a 512Mb version.

Unfortunately it will not be possible to debug this since the stock acer kernels don't have the ramconsole so any kernel information about the failure (should it happen) is lost on reboot.

Guest Master_T
Posted

Yeah, it doesn't work on the cm7 remix, but I have the A1 so that is probably the reason :(

Guest zabulus
Posted

I've flashed your boot.img on my Acer Liquid E. But it won't starts up, only shows Acer logo and "Froyo. Development version" title, after that phone restarts in recovery. last_kmsg missing in recovery file manager, adb doesn't connect to the phone too. What else information can I provide for you?

Guest errmsg
Posted

I've flashed your boot.img on my Acer Liquid E. But it won't starts up, only shows Acer logo and "Froyo. Development version" title, after that phone restarts in recovery.

Interesting that it decides to switch to recovery. In case of complete crash during the boot it would reboot and bootloop, which is not a good thing too.

I will provide a base 2.6.29 kernel with RAM console enabled to debug such kind of issues shortly.

last_kmsg missing in recovery file manager, adb doesn't connect to the phone too. What else information can I provide for you?

What is the base ROM name/original kernel version, is it a custom firmware? What is the baseband version, you can see that at the fastboot prompt?

You may be able to get a debug output by running adb wait-for-device && adb cat /proc/kmsg in case the debug mode is enabled in case it does not crash earlier than that.

I will test re-flashing to original 4.008.08_EMEA_VFIT now.

Guest Master_T
Posted

It rebooted in recovery for me too. A question: is it made for MalezRecovery or for CWM/TWRP?

Guest zabulus
Posted

What is the base ROM name/original kernel version, is it a custom firmware? What is the baseband version, you can see that at the fastboot prompt?

This is Corasaa's port of the ICS from NexusHD2.

http://www.modaco.com/topic/360632-cm90-repackport-by-corasaaa/

You may be able to get a debug output by running adb wait-for-device && adb cat /proc/kmsg in case the debug mode is enabled in case it does not crash earlier than that.

Ok I'll try and let you know about any progress

P.S. 2 errmsg. Privet Kievlyanam iz Dnepra ))

Guest zabulus
Posted
You may be able to get a debug output by running adb wait-for-device && adb cat /proc/kmsg in case the debug mode is enabled in case it does not crash earlier than that.

Looks like the kernel crashes earlier adb starts. adb haven'twrote any log from kmsg

Guest errmsg
Posted (edited)

Ok, running stock Acer_LiquidE_4.008.08_EMEA_VFIT with updated kernel and libs works as expected, so that means something in the userspace of the repacked ROM can trigger the reboot.

post-839017-0-92101000-1370685158_thumb.

Based on the fact that it has updated adreno libraries it may mean the kernel was modified to support something that froyo_almond 2.6.32 does not. I wish everybody published the links to the kernel sources.

(ru) И Вам привет!

Edited by errmsg
Guest zabulus
Posted

Based on the fact that it has updated adreno libraries it may mean the kernel was modified to support something that froyo_almond 2.6.32 does not. I wish everybody published the links to the kernel sources.

Look at this kernel sources:

https://github.com/thepasto/liquid-chocolate

This is thepasto's kernel used in many ROMs made for liquid.

Also you can look for kernel in another thread: http://www.modaco.com/topic/363086-cm10-rom-acer-liquid-os-4xx-jelly-bean/. It is a forked version of thepasto's kernel to suport JB.

Guest errmsg
Posted

A lightning killing my WAN port on the router has slightly altered my plans, so...

Bad news. I tried to add a RAM console to thepasto's and RomzesRover's kernels but they seem to be heavily modified for my userspace as my system MTD got corrupted after an attempt to boot it. Either these kernels have a driver that is not compatible with the yaffs version in 2.6.32 or something else went horribly wrong. I was able to boot thepasto's kernel only once.

FWIW, having the RAM console is as easy as this patch. These are the sizes and offsets I have selected on my kernels, RAM console steals 128K of physical memory and it is important that nothing else writes to that location.

I will continue working on my fork for the time being and update the original post when I make some progress.

Sorry people, for now it is only compatible with stock Acer latest VFIT firmware and the ROMs based on that version.

Guest zabulus
Posted

It would be great if you continue porting kernel in cherry-picking from upstream way.

Guest errmsg
Posted

It would be great if you continue porting kernel in cherry-picking from upstream way.

Well, that's the kind of plan I have, although I want to avoid cherry-picking. I am now trying to get rid of as many Acer-specific code as possible and then switch to 2.6.35 branch.

Guest zorginho
Posted

Amazing, the liquid is really highlander.

I hope u will do a gingerbread version for the cm7.

Guest errmsg
Posted

Looks like the kernel crashes earlier adb starts. adb haven'twrote any log from kmsg

I believe it is failing because you may be using a custom partition scheme not backed by changes in atag (partition.mbn). Could you please post the /proc/mtd from the ROM you are using?

The default MTD map is provided here for reference.

Guest RomzesRover_R
Posted

good te hear it, Roman

I hope soon we can possible to use this kernel on higher android versions (basecly with cm10)

Guest errmsg
Posted (edited)

The latest build, acer_a1-kernel-2013-06-14-2.6.32.9-g2b0a0c2-update.zip has the Acer workaround for USB Low Power Mode (LPM) on suspend removed - Qualcomm engineers have supposedly fixed the sleep issue in their kernel fork.

Earlier it was possible for A1 to enter a weird state of consuming the battery right after you unplug it from the wall charger (the regular USB charging from a host computer seems to be unaffected). Acer put a workaround for that which definitely stopped working properly on 2.6.32.9 and sometimes I got USB subsystem suddenly powered up in the middle of the night and failing to go to LPM. I got it working without the Acer workaround at the expense of hs_pclk clock always enabled. It's not clear whether that uses more power or not. I haven't noticed a difference though (which is a good thing).

Edited by errmsg
Guest errmsg
Posted

I am switching to the next kernel version, so here's the last 2.6.32 build (unless some critical issue is reported), which can be used as a drop-in replacement for stock 2.6.29.

Features:

  • Fixed the bug with LCD backlight blinking on resume.
  • AVR Keypad Leds light up on keypress/turn off after 10 seconds to mimic 2.6.29 behavior.
  • Headset is less likely to start playing music when it is being plugged in or plugged out.

The overall impression is good. With background transfer enabled the battery gets drained only at 1% a hour. With display on it goes to 5% an hour or more depending on the load.

Guest Master_T
Posted (edited)

I just wanted to report that the kernel works on the liquid A1 (after removing the assert check in updater-script)

I think it didn't work before for me because I was using a rom with a different partition scheme. I flashed the 2.2 bin from scratch and flashed the kernel through malez recovery, and it boots and works correctly.

Does this kernel support OverClock/OverVolt? Incredicontrol says that it doesn't. Can they be enabled?

Would be cool if we manage to make it work on a CM rom, in theory it should work better than the old "hacky" .29 kernel. I was trying to do a port, but the official CM porting guide is very vague and confusing, I'm having all sorts of problems. If anyone with some knowledge wants to help feel free to contact me.

Edited by Master_T
Guest errmsg
Posted

I just wanted to report that the kernel works on the liquid A1 (after removing the assert check in updater-script)

That's great news! Thank you very much! I have removed the assertion check and re-uploaded the image.

Does this kernel support OverClock/OverVolt? Incredicontrol says that it doesn't. Can they be enabled?

I am afraid I don't know. I have never played with these. There's a CONFIG_QSD_SVS which was not defined for mahimahi (Nexus One) but it is on for qsd8650 boards, so I have built a version with QSD_SVS, feel free to test it.

Guest Master_T
Posted

That's great news! Thank you very much! I have removed the assertion check and re-uploaded the image.

I am afraid I don't know. I have never played with these. There's a CONFIG_QSD_SVS which was not defined for mahimahi (Nexus One) but it is on for qsd8650 boards, so I have built a version with QSD_SVS, feel free to test it.

Thanks, I can't test right now because I'm back on my "everyday" rom since I need the phone, but Incredicontrol was lamenting the lack of SVS interface, so I think that might be it.

Guest zabulus
Posted

errmsg, I'm using you kernel from first post of the thread with stock ROM. Works good, but have several issues:

1. There is some kind of sleep of death. If there is some heavy app in memory, i.e. Navitel, smart goes to locked state and can't be unlocked. It doesn't respond to power button.

2. Another minor issue also with locking, I've reproduced today, when attach usb cable to the phone also it can't be unblocked. Phone responds to the power button, I can see turn off power popup, but I was unable to choose something until unplugged cable. This is minor issue.

Today I'll install updated kernel and report you for any issues.

Stock rom with the kernel is very good, except some issues related for userspace, for example unexpected crashes. Battery consuming is good, CPU wents to deep sleep. Interface feels fast. Feel free to ask for additional info.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.