[OCKERNEL - PATCHED/OPTIMIZED DRIVERS] EternityProject Kernel for LG Optimus 2x P990

Search This thread

kholk

Retired Recognized Developer
May 20, 2007
2,293
3,829
Torino
Welcome to the EternityProject Optimus2x Kernel Thread!


What is it?
It is a kernel with some updates on Tegra2 and Cortex A9 management drivers.

Why should I flash it?
You should flash it only if you know what are you doing.
If you know what are you doing, you shouldn't ask this question.

Flashing methods:
1. Copy boot-new.img in /sdcard, then on your phone's root terminal type:
Code:
dd if=/dev/zero of=/dev/mmcblk0p5
dd if=/sdcard/boot-new.img of=/dev/mmcblk0p5

OR

2. Copy boot-new.img into your nvflash folder and do this:
Code:
nvflash --bl fastboot.bin --download 10 boot-new.img

OR

3. Download the update.zip version and flash it through ClockWorkMod Recovery.

Installing wireless.ko (Only for methods 1 and 2):
Code:
adb shell mount -o remount,rw /dev/block/mmcblk0p1 /system
adb push wireless.ko /system/lib/modules/
adb shell chmod 777 /system/lib/modules/wireless.ko

Features:
-- EXT4 Partition support
-- Stock frequencies
-- Optimized/Modified Tegra 2 Drivers
-- Modified Cortex-A9 (Tegra 2 core)'s cache behavior. Great results on tests.

Changelog:
Code:
1.5c:
- Battery management: Reverted to old calculation method
1.5b:
- Power management: Accelerate grace period if last non-dynticked CPU
- Touchscreen management: One event per tap (no double-events)
- Touch events: Debug messages disabled
- Touch events: Added finger release event
- SPI: Building without LPRINTK (performance optimization)
- Touch buttons: Enabled virtual buttons
- Battery management: Read by 1% steps // Percentage reading by voltage (Important: Be sure to reset Android batt calibration file for better reading)
1.4:
- BFQ I/O Scheduler enabled as default iosched.
1.3:
- Clock and Voltage control through PimpMyCpu enabled (Thanks to Cpasjuste)
- Anticipatory CPU Scheduler
- Max clock: 1.3GHz 1.2mV
1.2:
- Updated to Linux 2.6.32.27
- New SLAB Allocator
- Deadline CPU Scheduler
- Motorola Olympus Board Supported on kernel tree
1.1:
- Updated to Linux 2.6.32.20
- Optimizations in scheduler
1.0S:
- ALSA: Support for concurrent playback/record
- Support for ALSA (for my upcoming project - Moto Webtop port on Optimus 2x)
- Flush L1 cache instead of wiping page per page
- Added parameter checking to memory functions on GPU code
- Optimized SDIO suspend handler
- ThumbEE instructions support enabled
- Thumb-2 code optimizations
- NEON instruction support

Experimental branch: Changelog:
Code:
v2.3:
- Reboot issue fixed. Device won't powerdown.
- Subsystem suspend and resume implemented
- Clocksource updated to reflect the changes
- Sched optimizations
- CIFS Support enabled.
v2.2:
- timer: Separate clocksource and sched_clock
- usb: host: tegra: Fix enumeration after lp0
- tegra: enable kfuse
- staging: android: lowmemorykiller: Ignore shmem pages in page-cache
- tegra: cpufreq thermal throttling cleanups
- Tegra ALSA: Fix Playback crash after Record
- Tegra ALSA: Fix for kernel panic when dealing with DMA
- tegra: clock: Add function to set SDMMC tap delay
- tegra-aes: AES Crypto Hardware Acceleration implemented
- tegra: registering tegra-avp device
- tegra: Add speedo-based process identification
- tegra: duplicate vde clock for aes in tegra2_clocks
- tegra: hardware arbitration semaphore support
- tegra: add VDE and arb semaphores to iomap.h
- video: tegra: support output pin polarities setting
- tegra: Prevent requeuing in-progress DMA requests
v2.1:
- Max AP clock: 1.4GHz
- Semaphores implementation
- Gingerbread (CM7) support
- Battery readings are now okay.
v2.0:
- Max AP clock: 1.2GHz
- Cache management: Don't wipe data. Overwrite it instead.
- ASM routines optimizations
- Support for latest version of PimpMyCpu
- GPU drivers updated to latest snapshot version.
- Build optimizations
- Code optimizations of 1.x branch implemented
- Kernel version: 2.6.32.39
- New codebase initialized.

Clock Table (v1.x):
Code:
- 1300MHz 1200mV
- 1200MHz 1100mV
- 1000MHz 1000mV
- 900MHz 950mV
- 750MHz 875mV
- 650MHz 850mV
- 500MHz 800mV
- 300Mhz 750mV



Download:
EternityProject Kernel --Experimental Branch-- v2.3 Gingerbread -update.zip for CWM: MegaUpload
EternityProject Kernel --Experimental Branch-- v2.3 FroYo -update.zip for CWM: MegaUpload

EternityProject Kernel v1.5c -update.zip for CWM: MegaUpload



Old Versions:
EternityProject Kernel --Experimental Branch-- v2.2 Gingerbread -update.zip for CWM: MegaUpload
EternityProject Kernel --Experimental Branch-- v2.2 FroYo -update.zip for CWM: MegaUpload
EternityProject Kernel --Experimental Branch-- v2.1 Gingerbread -update.zip for CWM: MegaUpload
EternityProject Kernel --Experimental Branch-- v2.1 FroYo -update.zip for CWM: MegaUpload
EternityProject Kernel --Experimental/Unstable Branch-- v2.0 -update.zip for CWM: MegaUpload
EternityProject Kernel v1.5b -update.zip for CWM: MegaUpload
EternityProject Kernel v1.4 -update.zip for CWM: MegaUpload
EternityProject Kernel v1.3 -update.zip for CWM: MegaUpload
EternityProject Kernel v1.2 -update.zip for CWM:MegaUpload
EternityProject Kernel v1.1 -update.zip for CWM: MegaUpload
EternityProject Kernel v1.1: MegaUpload
EternityProject Kernel v1.0S - update.zip for CWM: MegaUpload
EternityProject Kernel v1.0S: MegaUpload
WiFi Module for Kernel 1.0S: MegaUpload


Kernel source code: Gitorious

Configuring kernel:
Code:
LG P990 (Optimus 2X - LG Star Rev.F):
make P990_EternityPRJ_defconfig ARCH=arm

LG P999 (T-Mobile G2x - LG Star TMOUS):
make P999_EternityPRJ_defconfig ARCH=arm


Enjoy!

The Eternity Project Developer
--kholk
 
Last edited:

vanahaim

Senior Member
Sep 18, 2009
245
20
Prague
MegaUpload says to me: The file you are trying to access is temporarily unavailable. Please try again later. :(

EDIT: Sorry, I'm impatient, it's all right. I'm trying .. Thanks.
 
Last edited:

kholk

Retired Recognized Developer
May 20, 2007
2,293
3,829
Torino
It is common. I've uploaded it like 2 minutes ago, let MU process it :)

Quick advice: Refresh the page every 10 secs
 

emprize

Senior Member
Jan 15, 2007
1,300
135
can you upload to other hosting as mirror? or can someone do it? megaupload blocked my country
 

Renegade_Rulez

Senior Member
Mar 21, 2006
289
25
This is getting very exciting :), tomorrow I will finally receive my 2x and it won't be using the original kernel for long :)
 

vanahaim

Senior Member
Sep 18, 2009
245
20
Prague
Flashed and everything ok for now..

EDIT: I have noticed problem with wifi.. Error when enabling.

It was fast.. Thanks :)

I´m trying..
 
Last edited:

vicster

Senior Member
Nov 18, 2007
78
1
Copenhagen
Interesting project !

Is there a deeper Change Log to be found, to see exactly what optimizations and changes that have been applied ?

Kind Regards
Vicster
 

Top Liked Posts

  • There are no posts matching your filters.
  • 38
    Welcome to the EternityProject Optimus2x Kernel Thread!


    What is it?
    It is a kernel with some updates on Tegra2 and Cortex A9 management drivers.

    Why should I flash it?
    You should flash it only if you know what are you doing.
    If you know what are you doing, you shouldn't ask this question.

    Flashing methods:
    1. Copy boot-new.img in /sdcard, then on your phone's root terminal type:
    Code:
    dd if=/dev/zero of=/dev/mmcblk0p5
    dd if=/sdcard/boot-new.img of=/dev/mmcblk0p5

    OR

    2. Copy boot-new.img into your nvflash folder and do this:
    Code:
    nvflash --bl fastboot.bin --download 10 boot-new.img

    OR

    3. Download the update.zip version and flash it through ClockWorkMod Recovery.

    Installing wireless.ko (Only for methods 1 and 2):
    Code:
    adb shell mount -o remount,rw /dev/block/mmcblk0p1 /system
    adb push wireless.ko /system/lib/modules/
    adb shell chmod 777 /system/lib/modules/wireless.ko

    Features:
    -- EXT4 Partition support
    -- Stock frequencies
    -- Optimized/Modified Tegra 2 Drivers
    -- Modified Cortex-A9 (Tegra 2 core)'s cache behavior. Great results on tests.

    Changelog:
    Code:
    1.5c:
    - Battery management: Reverted to old calculation method
    1.5b:
    - Power management: Accelerate grace period if last non-dynticked CPU
    - Touchscreen management: One event per tap (no double-events)
    - Touch events: Debug messages disabled
    - Touch events: Added finger release event
    - SPI: Building without LPRINTK (performance optimization)
    - Touch buttons: Enabled virtual buttons
    - Battery management: Read by 1% steps // Percentage reading by voltage (Important: Be sure to reset Android batt calibration file for better reading)
    1.4:
    - BFQ I/O Scheduler enabled as default iosched.
    1.3:
    - Clock and Voltage control through PimpMyCpu enabled (Thanks to Cpasjuste)
    - Anticipatory CPU Scheduler
    - Max clock: 1.3GHz 1.2mV
    1.2:
    - Updated to Linux 2.6.32.27
    - New SLAB Allocator
    - Deadline CPU Scheduler
    - Motorola Olympus Board Supported on kernel tree
    1.1:
    - Updated to Linux 2.6.32.20
    - Optimizations in scheduler
    1.0S:
    - ALSA: Support for concurrent playback/record
    - Support for ALSA (for my upcoming project - Moto Webtop port on Optimus 2x)
    - Flush L1 cache instead of wiping page per page
    - Added parameter checking to memory functions on GPU code
    - Optimized SDIO suspend handler
    - ThumbEE instructions support enabled
    - Thumb-2 code optimizations
    - NEON instruction support

    Experimental branch: Changelog:
    Code:
    v2.3:
    - Reboot issue fixed. Device won't powerdown.
    - Subsystem suspend and resume implemented
    - Clocksource updated to reflect the changes
    - Sched optimizations
    - CIFS Support enabled.
    v2.2:
    - timer: Separate clocksource and sched_clock
    - usb: host: tegra: Fix enumeration after lp0
    - tegra: enable kfuse
    - staging: android: lowmemorykiller: Ignore shmem pages in page-cache
    - tegra: cpufreq thermal throttling cleanups
    - Tegra ALSA: Fix Playback crash after Record
    - Tegra ALSA: Fix for kernel panic when dealing with DMA
    - tegra: clock: Add function to set SDMMC tap delay
    - tegra-aes: AES Crypto Hardware Acceleration implemented
    - tegra: registering tegra-avp device
    - tegra: Add speedo-based process identification
    - tegra: duplicate vde clock for aes in tegra2_clocks
    - tegra: hardware arbitration semaphore support
    - tegra: add VDE and arb semaphores to iomap.h
    - video: tegra: support output pin polarities setting
    - tegra: Prevent requeuing in-progress DMA requests
    v2.1:
    - Max AP clock: 1.4GHz
    - Semaphores implementation
    - Gingerbread (CM7) support
    - Battery readings are now okay.
    v2.0:
    - Max AP clock: 1.2GHz
    - Cache management: Don't wipe data. Overwrite it instead.
    - ASM routines optimizations
    - Support for latest version of PimpMyCpu
    - GPU drivers updated to latest snapshot version.
    - Build optimizations
    - Code optimizations of 1.x branch implemented
    - Kernel version: 2.6.32.39
    - New codebase initialized.

    Clock Table (v1.x):
    Code:
    - 1300MHz 1200mV
    - 1200MHz 1100mV
    - 1000MHz 1000mV
    - 900MHz 950mV
    - 750MHz 875mV
    - 650MHz 850mV
    - 500MHz 800mV
    - 300Mhz 750mV



    Download:
    EternityProject Kernel --Experimental Branch-- v2.3 Gingerbread -update.zip for CWM: MegaUpload
    EternityProject Kernel --Experimental Branch-- v2.3 FroYo -update.zip for CWM: MegaUpload

    EternityProject Kernel v1.5c -update.zip for CWM: MegaUpload



    Old Versions:
    EternityProject Kernel --Experimental Branch-- v2.2 Gingerbread -update.zip for CWM: MegaUpload
    EternityProject Kernel --Experimental Branch-- v2.2 FroYo -update.zip for CWM: MegaUpload
    EternityProject Kernel --Experimental Branch-- v2.1 Gingerbread -update.zip for CWM: MegaUpload
    EternityProject Kernel --Experimental Branch-- v2.1 FroYo -update.zip for CWM: MegaUpload
    EternityProject Kernel --Experimental/Unstable Branch-- v2.0 -update.zip for CWM: MegaUpload
    EternityProject Kernel v1.5b -update.zip for CWM: MegaUpload
    EternityProject Kernel v1.4 -update.zip for CWM: MegaUpload
    EternityProject Kernel v1.3 -update.zip for CWM: MegaUpload
    EternityProject Kernel v1.2 -update.zip for CWM:MegaUpload
    EternityProject Kernel v1.1 -update.zip for CWM: MegaUpload
    EternityProject Kernel v1.1: MegaUpload
    EternityProject Kernel v1.0S - update.zip for CWM: MegaUpload
    EternityProject Kernel v1.0S: MegaUpload
    WiFi Module for Kernel 1.0S: MegaUpload


    Kernel source code: Gitorious

    Configuring kernel:
    Code:
    LG P990 (Optimus 2X - LG Star Rev.F):
    make P990_EternityPRJ_defconfig ARCH=arm
    
    LG P999 (T-Mobile G2x - LG Star TMOUS):
    make P999_EternityPRJ_defconfig ARCH=arm


    Enjoy!

    The Eternity Project Developer
    --kholk
    3
    Kernel v1.5c released.

    Changelog:
    - Reverted to old battery percentage calculation method.
    3
    Kernel updated to v1.4.
    Changes:
    -- Introducing BFQ IO Scheduler support as default choice for iosched.

    This will eliminate the random slowdowns when doing file operations (like installing apps on the Market or copying files) and will speedup Database IO operations (R/W).
    This kernel doesn't support the latest version of PimpMyCpu.


    Enjoy!

    The Eternity Project Developer
    --kholk
    3
    Undervolting Results

    Here are my undervolting results. I have invested a huge amount of time to find out these numbers. Now I wanna share them to help some of you with undervolting/overclocking.

    attachment.php


    attachment.php


    The needed voltage is the value, at which the device seems to be stable. To verify this, I played 15 minutes of Dungeon Defenders in with every Clock-step, which seems to be e very good stress- and stability test. Anyhow, I cannot guarrantee that these values will be stable under all circumstances.
    Notice the downward-kink at 750 MHz? This seems a little bit strange for me, as clock rate and stable voltage should be in a linear ratio, but I double and tripple tested this and the numbers are correct.

    For my everyday-voltages, I added at least 50 mV at each step to ensure, everything is completely stable. I also made the rise more linear, to keep the difference between two voltage-steps under 100 mV as recommended by NVidia. I have tested this setting for several days now and had no single crash.

    I hope, I could give you some idea of how low you can go with undervolting and how much bettery saving potential there is. I can not guarantee these numbers will work for you, because every chip is different.
    Perhaps, you first should try my stable numbers. I if they don't work for you, you can try to add an identical amount of voltage (e.g. 25 or 50 mV) to every step to make them stable.

    EDIT: @ Kholk: Will there be a 1.4 Kernel version with Pimp my CPU support?
    2
    The missing vibration it simply not enabling the TSP driver in the config. WRT USB, I used the LG USB gadget drivers rather than the generic ones.

    P