lyncd

Overclocked Android kernel for Optimus V

Now that LG has corrected its source code, I’ve built my overclocked Android kernel for the Virgin Mobile Optimus V, a phone that’s nearly identical to my Sprint Optimus S and that also runs on Sprint’s 3G CDMA network. If your V needs a speed boost or extra driver support, keep reading!

Before you install, you might want to read more about the kernel’s features and design goals in my post about the S kernel. The Optimus V is not identical to the S (there are a couple of minor hardware differences between the phones, such as swapped Home and Menu buttons), but unlike some other kernels released for the V (such as ports of Xionia), mine is not a ported S kernel, it is a native V kernel. So, it is a drop-in replacement for the stock LG kernel.

If that didn’t make sense (“I thought you said to read about your kernel for the S, what gives?”), I’ll put it another way. Think of my kernel only as a changeset to the original (add overclock, add interactive cpu scaling, add TUN/TAP network and EXT filesystem drivers as modules; subtract debugging, ethernet and other unnecessary bloat; build the whole thing with a better toolchain). The S kernel is that changeset applied to the official LS670 sources from LG. The V kernel is that changeset applied to the official VM670 sources.

The end result is a kernel that is perfect for your Optimus V running either the stock OS or any LG-based ROM — that means, at present, Android 2.2.x or Froyo-based ROMs. But not perfect for Cyanogen or other Gingerbread/Android 2.3-based OSes. Just like you shouldn’t run a Gingerbread/2.6.35.7 kernel on a Froyo-based OS, you shouldn’t run this Froyo/2.6.32.9 kernel on a Cyanogen-based OS. Got it?

Of course, that’s just for now. As soon as LG does its official release of Gingerbread/2.3 for these phones, I’ll update this kernel from the new official sources.

Get it

This kernel has survived its initial shakedown on the Android Central forums, but if you choose to install it, the standard disclaimers apply: No warranties expressed or implied, it’s your responsibility to understand exactly what you’re doing, so if you kill your phone I assume no responsibility.

Requirements: To start with, you’ll need to have rooted your phone. You’ll also need a custom recovery. I’ve used koush’s AnyKernel template to package the .zip, so you should be able to flash this kernel over top of the stock LG OS or any custom ROM.

So, if you understood all of that, the rest should be easy. Download picasticks kernel picasticks-07a.zip, copy it to /sdcard/, reboot your phone to your custom recovery, and flash the .zip. Reboot and enjoy!

Home and Menu keys: These hardware keys are mapped by the kernel, but the mappings can also be reassigned in the file thunder_keypad.kl. If you have previously installed a custom ROM/kernel on your V, chances are that it contained an incompletely ported S kernel with the keys swapped, and this bug “fixed” by reswapping the key assignments in the thunder_keypad.kl keymap. My kernel, built for the V, doesn’t require this hack. So, my .zip installer includes a script that checks for a swapped mapping, and if found, replaces your keymap file with an original, unmodified copy. It should only do this if it finds the Menu key (139) incorrectly mapped to Home, but ignore other custom key assignments. In any case, if you’re concerned about your customized thunder_keypad.kl being overwritten, just back it up before flashing the kernel.

Source code

As we have learned from LG, source code release is an important part of distributing software covered by the GPL!

I’m not going to publish a giant tarball (yet) since it’s 100% LG source + my changeset, which I’ve made into a single patch. Therefore, to duplicate my build source:

  1. LG source code is here (search for “VM670″ to get Optimus V source).
  2. Apply this patch to the kernel tree, i.e.: cd lg_kernel && patch -p1 < kernel.diff

And here are my changes to the LG kernel configuration .config.

Both patches, by the way, are the same as the ones I'm using for the S, so these links are to the same files (that's what I meant earlier about applying the same changeset to both kernels!).

For more information and full credits, see my original post.

Changelog

07 released 2011-04-18
Adds ext2/ext3/ext4 filesystem drivers as modules. Includes original Optimus V keymap file thunder_keypad.kl and script to check the phone's current keymap for swapped Home/Menu keys and, if found, replace with the original.
06 released 2011-04-14
Initial public release for Optimus V (no known bugs or issues).

Filed under: Code.  Tagged: , , , .

1 comment »