ARCHIVED: [Kernel] Picasticks OC kernel built from LG source for Optimus V

Status
Not open for further replies.

Kiernon

Total homewrecker.
Mar 29, 2011
138
12
0
Visit site
864?! That is *amazing*, man. You definitely got the golden ticket of hardware for this device!

Also: Seconded on very fast boot times on the Aphrodite/picasticks combo. It easily boots to desktop faster than my i7 970. :p

Oh, and shutdown time is snappy as well.
 

sdxben

Well-known member
Feb 19, 2011
122
11
0
Visit site
Ok...Back with more testing.
Picastcks PME kernel with AOSP0415. It all works fine with the exception of the accelerometer not working. I even used mmarz's optimusv_stock_crap zip to put the native drivers back on after flashing a aosp0415 but before piccasticks pme.

The phone works great with no other problems. However any oc'ing past 864 just hangs the phone than reboots it. Oh well...At least I get to say that I tried all that I could. I can't wait to hear if anybody WILL be able to oc past 864 because this is the ONLY kernel that allows it. Thank you again Picasticks for working on the experiment with me!
 

LeslieAnn

Android Developer
Feb 8, 2011
2,895
1,720
0
Visit site
Ok...Back with more testing.
Picastcks PME kernel with AOSP0415. It all works fine with the exception of the accelerometer not working. I even used mmarz's optimusv_stock_crap zip to put the native drivers back on after flashing a aosp0415 but before piccasticks pme.

The phone works great with no other problems. However any oc'ing past 864 just hangs the phone than reboots it. Oh well...At least I get to say that I tried all that I could. I can't wait to hear if anybody WILL be able to oc past 864 because this is the ONLY kernel that allows it. Thank you again Picasticks for working on the experiment with me!

Put the system/lib/hw/sensors.thunderc.so from Aphrodite EP, Harmonia or stock OV, that should fix it, that causes most of the issues with the accelerometer. I don't knoew if Marzz pack includes it, if so, then Rodimus has something strange going on. Which wouldn't surprise me.
 

mmarz

Well-known member
Mar 9, 2011
1,130
447
0
Visit site
Put the system/lib/hw/sensors.thunderc.so from Aphrodite EP, Harmonia or stock OV, that should fix it, that causes most of the issues with the accelerometer. I don't knoew if Marzz pack includes it, if so, then Rodimus has something strange going on. Which wouldn't surprise me.

That's exactly what my zip includes, from the stock rom too. Strange. No matter. We have a new favorite rom in town. ;)
 

Takenover83

Well-known member
Mar 7, 2011
499
76
0
Visit site
Test.
For some reason, I can not click page 13 of this thread... I can only view page 1. Tried in IE and Chrome. This is a androidforumcentral first.

edit: Only way I got to the last page of the thread, was by making this reply.
Edit2: Working fine now. Move along...
 
Last edited:

Kreatur3

Well-known member
Mar 2, 2011
660
40
0
Visit site
Test.
For some reason, I can not click page 13 of this thread... I can only view page 1. Tried in IE and Chrome. This is a androidforumcentral first.

edit: Only way I got to the last page of the thread, was by making this reply.
Edit2: Working fine now. Move along...

Haha, I was having the same issue which annoyed me a lot. Once I made a reply to another thread I was able to get back to this last page just to see that someone else was having the same issue.
 

LeslieAnn

Android Developer
Feb 8, 2011
2,895
1,720
0
Visit site
That is a bug in Vbulletin.

If someone makes a post that starts a new page, then deletes it, it will still show the page number, but you cannot get to it as there is no post on it. As soon as someone posts again, it corrects the problem.
 

Takenover83

Well-known member
Mar 7, 2011
499
76
0
Visit site
I haven't tried it for anything either, but my guess is that your link2sd app isn't loading the kernel modules, and you probably need at least ext2 support. You can load the ext2 module by doing "insmod /system/lib/modules/ext2.ko", and then try your script.

What config file do you need to edit to auto load the module at boot time? If I load it like above, wouldn't that only load the module on demand?

Edit: I can not get it to work. Here is what I tried.
Code:
# insmod /system/lib/modules/jbd2.ko
insmod /system/lib/modules/jbd2.ko
# insmod /system/lib/modules/ext4.ko
insmod /system/lib/modules/ext4.ko
insmod: init_module '/system/lib/modules/ext4.ko' failed (No such file or direct
ory)
I know the module is there, as I can pull it just fine and can see it when I "ls /system/lib/modules/"
 
Last edited:

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
Ok, thank you! I am writing this up as I am testing. I made a backup of my system than switched to the aphrodite extra pure edition with your amazing Picasticks PME edition.

You're welcome, glad you like it.

I am running stable so far at 864 and I love all the governors you put into this kernel (I haven't seen this many before)

Yeah, I just leave 'em all in, I figure that's a user choice. Code-wise they take up only a tiny bit of space.

At 864 with AnTuTu benchmark I am getting about 100-200 lower score than I did on AOSP 415. My Linpack score is slightly less, but not by much. Only scoring 620 on Quadrant, much lower than I could on AOSP.

Keep in mind these aggregate benchmarks are mostly not related to the kernel. Stuff like the speed of your NAND (these vary) and SD card.

Better to look specifically at CPU benchmarks like the "native" benchmark in SetCPU. Or, the individual Antutu numbers (but even there JIT and other things vary).

Ok time to try higher...
FAIL at 883 ondemand :( It just Hangs!
But I love how quick this Boots up...faster than any other rom/kernel combo I have tried before. Looks like my testing will be sped up.
FAIL at 941 ondemand :( It just Hangs!

Glimmer of Hope-- I hit up 883 conservative...functions fine until I push it with a benchmarker. I can run at 922mhz conservative too! BUT obviously not stable.

When doing this you just want to use "performance" which locks the CPU at the high number. Running it at 883 on conservative just means the CPU wasn't actually clocked at 883, sorry. :(

Ok, thank you for the effort with these new frequencies and I absolutely LOVE LOVE LOVE the boot up time. I am talking 10seconds or less- sometimes my phone on aosp takes that long to fully wake up from screen off with that kernel still polling for speed.

One thing where my kernel is the best is boot time (not really intended, but nice). The reason is that it is a lot smaller (by about a meg vs. Xionia) in disk usage and memory usage. So, there is just less stuff to read off the NAND, explode to the ramdisk, and then load into memory. The "intentional" part of this was just to use less RAM ... a meg isn't much but it's a little more space for user programs.

There still may be a software bug (or fundamental hardware incompatibility) with the extra freqs I added to acpuclock.c (since no one has confirmed stable @883 yet). I'll post the extra freq code here in case somebody smarter than me spots a bug:

Code:
        // begin picasticks untested freqs
        { 1, 883200, ACPU_PLL_0, 5, 0, 176640, 3, 7, 122880 },
        { 1, 902400, ACPU_PLL_0, 5, 0, 180480, 3, 7, 122880 },
        { 1, 921600, ACPU_PLL_0, 5, 0, 184320, 3, 7, 122880 },
        { 1, 940800, ACPU_PLL_0, 5, 0, 188160, 3, 7, 122880 },

Since my phone can't stabilize at 864, it's pretty impractical for me to work on this further (I can run the code fine, but can't test the high freqs) but maybe somebody will have an idea.

p.s. also jealous of the 864!
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
Does the kernel support "/system/etc/init.d/" boot scripts, such as data2ext?
This isn't the kernel, there's a file you need to add a couple of lines to in the ramdisk (I believe it's init.rc and that you need to do this to it ...

Code:
@@ -314,6 +314,8 @@
     setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
     setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
 
+    start sysinit
+
     class_start default
 
 ## Daemon processes to be run by init.
@@ -365,6 +367,10 @@
     onrestart write /sys/power/state on
     onrestart restart media
 
+service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
+    disabled
+    oneshot
+
 service media /system/bin/mediaserver
     user media
     group system audio camera graphics inet net_bt net_bt_admin net_raw

... but don't quote me on that as I've never actually implemented it). I've just been diffing ramdisks a lot recently.

My kernel uses AnyKernel updater, so it just preserves whatever ramdisk is already on your phone.
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
What config file do you need to edit to auto load the module at boot time? If I load it like above, wouldn't that only load the module on demand?

Edit: I can not get it to work. Here is what I tried.
Code:
# insmod /system/lib/modules/jbd2.ko
insmod /system/lib/modules/jbd2.ko
# insmod /system/lib/modules/ext4.ko
insmod /system/lib/modules/ext4.ko
insmod: init_module '/system/lib/modules/ext4.ko' failed (No such file or direct
ory)
I know the module is there, as I can pull it just fine and can see it when I "ls /system/lib/modules/"

I'm not the best one to help you with this as I don't use ext4 (or 2 or 3).

For ext4 you possibly also need to load mbcache.ko (I compiled ext4 with metadata support, so whether that requires you to load mbcache in *all* cases or only if you're using metadata, I don't know, but you can easily try it). This worked for me:

Code:
# cd /system/lib/modules
# ls
mbcache.ko
jbd2.ko
jbd.ko
ext4.ko
ext3.ko
ext2.ko
tun.ko
wireless.ko
# insmod mbcache.ko
# insmod jbd2.ko
# insmod ext4.ko
# lsmod
ext4 200051 0 - Live 0xbf048000
jbd2 48278 1 ext4, Live 0xbf034000
mbcache 5284 1 ext4, Live 0xbf02d000
wireless 172356 0 - Live 0xbf000000
#

Once you get it working, there are several .sh scripts that are run at boot time to which you can add things. Many ROMs also enable normal sysinit init.d (see last post) which lets you just put your stuff (load mods, do mounts) in a separate file.
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
I have a request. Could you include this fix/workaround for the multitouch bug, or create your own fix?
[DEV][UPDATE: 2-10-11][Optimus One multitouch fixes] - xda-developers

If you hadn't noticed it yet, all the kernels have the following bug: http://forum.androidcentral.com/optimus-v/76840-multitouch-issues.html#post823153
I'll take another look at it, no promises. When I last looked at this (a month or so ago) in the S threads, I don't know that the patch was working consistently on our phones. I don't know that our hardware is necessarily even supposed to support true multitouch.

In general my attitude on this kernel is not to fork from LG source code except when the patch is super-solid.

FYI to everybody, the Optimus One / P500 is slightly different from us, it's the older MSM7227 to our 7627 ... 7200 and 7600 datasheets explain some of the differences.
 

Takenover83

Well-known member
Mar 7, 2011
499
76
0
Visit site
This isn't the kernel, there's a file you need to add a couple of lines to in the ramdisk (I believe it's init.rc and that you need to do this to it ...

Code:
@@ -314,6 +314,8 @@
     setprop net.tcp.buffersize.edge    4093,26280,35040,4096,16384,35040
     setprop net.tcp.buffersize.gprs    4092,8760,11680,4096,8760,11680
 
+    start sysinit
+
     class_start default
 
 ## Daemon processes to be run by init.
@@ -365,6 +367,10 @@
     onrestart write /sys/power/state on
     onrestart restart media
 
+service sysinit /system/bin/logwrapper /system/xbin/busybox run-parts /system/etc/init.d
+    disabled
+    oneshot
+
 service media /system/bin/mediaserver
     user media
     group system audio camera graphics inet net_bt net_bt_admin net_raw

... but don't quote me on that as I've never actually implemented it). I've just been diffing ramdisks a lot recently.

My kernel uses AnyKernel updater, so it just preserves whatever ramdisk is already on your phone.

I thing I am out of my league on this one. To have success, wouldn't the boot.img need modified? Me simply pulling and pushing init.rc and editing would be pointless right? (being ramdisk)

BTW, these commands did get ext4 up and running.

Code:
insmod /system/lib/modules/mbcache.ko
insmod /system/lib/modules/jbd2.ko
insmod /system/lib/modules/ext4.ko
 
Last edited:

Delphis

Well-known member
Mar 21, 2011
86
12
0
Visit site
I thing I am out of my league on this one. To have success, wouldn't the boot.img need modified? Me simply pulling and pushing init.rc and editing would be pointless right?

Yes, it requires modifying the boot.img which is different than a nandroid yaffs image. I saw something on XDA about this. There are Perl scripts to split the image but I have not really edited or recombined it yet.

Here's a wiki page if you're interested: http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
 

aznkaz

Member
Apr 23, 2011
9
1
0
Visit site
I can run 864 stable, but as soon as I bumped it up to 883 it rebooted. I keep it at 806 though for battery life (according to mmarz's battery optimization thread).

Hopefully someone can hit 883.
 

asadullah

Well-known member
Oct 23, 2010
480
182
0
Visit site
If your curious about splitting a boot.img to change the ramdisk check out this video here.

@picasticks I was wondering if you could make a kernel that ran at certain speeds? I remember this guy decad3nce used to do it in the hero cdma section?
 

picasticks

Well-known member
Feb 28, 2011
136
58
0
Visit site
If your curious about splitting a boot.img to change the ramdisk check out this video here.

Delphis' link is also a good one, splitting and repacking the boot image is actually very fast one you get the routine down (and/or script it).

Relevant details for our phones are that the boot partition is mtd0 and the mkbootimg command to repack the boot image is:

mkbootimg --kernel $1 --ramdisk $2 --cmdline 'mem=477M console=ttyMSM2,115200n8 androidboot.hardware=thunderc' --base 0x12200000 -o $3

But it is good to go through Delphis' linked guide as you will learn how to find all these parameters for yourself. I also wrote a thing that explains where to find the base address.

@picasticks I was wondering if you could make a kernel that ran at certain speeds? I remember this guy decad3nce used to do it in the hero cdma section?

Short answer: It depends on the speeds. What speeds do you have in mind? Also I am curious why you would want to do this.

FYI all clocks speeds 600 MHz and higher run at one voltage level and speeds below it at another (technically there are different power levels but the voltage is the same).

So, personally I have been running at 480-825 MHz interactive for a week or so. Obviously the cpufreq governor chosen is going to impact how much time you spend at 480 (the lower power level) vs. 600+. Anecdotally I would say that ondemand results in slightly more time at 480 (the cpu isn't automatically jumping to max clock out of idle) but that's not to say that performance/Watt isn't better under interactive.
 
Status
Not open for further replies.