Announcements

ILLEGAL CONTENT I'd like to just reaffirm MoDaCo's position regarding piracy and illegal content in the light of some recent questions / postings. Posts will be censored by myself or my moderation team if the contain or link to: Illegal / pirated / cracked software or sites that host such softwareNintendo emulators / ROMs or sites hosting them (in light of Nintendo's legal stance)CUSTOM ROMS You may discuss and post links to custom device ROMs on MoDaCo, provided the following rules are adhered to: ROMs must not contain any illegal 3rd party software (this includes trial versions included without permission)ROMs must give full credit to the original authorISSUES If you have any issues with this policy, please contact PaulOBrien directly via PM.

Please note that selling items on the forum directly is not allowed by the forum rules. There is a forum for eBay auctions whereby you can list the items on eBay and link to them there. This is the ONLY forum for this type of activity. You may also advertise links to the eBay forum in your signature. Please note that selling directly in contravention of these rules will result in a warning / suspension / ban.

61 posts in this topic

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.

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

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.

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.

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.

bcm4329 module for WiFi. No user-visible changes.

/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.

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.

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

Known issues:

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.

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.

Share this post

Link to post

Share on other sites

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.

Share this post

Link to post

Share on other sites

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?

Share this post

Link to post

Share on other sites

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.

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 8 Jun 2013 by errmsg

1

Share this post

Link to post

Share on other sites

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.

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.

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).

Share this post

Link to post

Share on other sites

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.

Share this post

Link to post

Share on other sites

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.

0

Share this post

Link to post

Share on other sites

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.

Share this post

Link to post

Share on other sites

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.