[Kernel][GPL] Development 3.0 Kernel

Search This thread

Quarx

Inactive Recognized Developer
Jun 19, 2007
1,322
18,789
0
29
Omsk
www.quarx2k.ru
Current state of 3.0 Kernel

WiFi/Thether/p2p - 100%
TouchScreen - 100%
Video Codec/hw 720p/ION stuff - 100%
Display/DSS - 100%
Phone/3G data - 100%
Sound/FM-Radio - 100%
F2FS support - 100%
GPU OC 266mhz - 100%

Bluetooth - 95%

USB - 98%, otg bugged.
Sensors - 98%, Need test all sensors, looks like all sensors works:)
Camera - 85%, Preview/Photo(Red have random problem)/Panorama works for both lenses. Video rec not work yet.

Overclock CPU- 0%, not implemented.

For CM10,10.1,10.2 < 07.11.13 users:
To install KitKat, need update recovery. Do not forget reboot, after install recovery.
http://defy.bytekiste.de/cm11-nightly-defy+/update-recovery.zip

Tips:
Do not format System and Cache to F2FS!!!
1. To use f2fsl "/system/bin/mkfs.f2fs /dev/block/mmcblk1p25" or format via TWRP (Advanced wipe menu).
2. To restore ext4, in recovery unmount data, mount system, and do via adb shell /system/bin/make_ext4fs /dev/block/mmcblk1p25 or format via TWRP (Advanced wipe menu).
3. If you have 0 bytes free bug, reformat data to f2fs or ext3/4.
4. 1.1 Ghz can be enabled in performance settings.
If you liked this project, you can donate :)
Donate to Quarx
PayPal: [email protected]
---------------------------------------
Donate to Blechd0se
PayPal: [email protected]

Download: http://quarx2k.ru/index2.php?dir=buildbot/roms/defy-cm11.0-3.0

Sources of kernel availabe here(branch p-android-omap3-3.0): https://github.com/Quarx2k/jordan-kernel/tree/p-android-omap3-3.0
 
Last edited:

Blechd0se

Inactive Recognized Developer
Sep 19, 2012
459
4,507
0
Stuttgart
Changelog:

17.11:
  • Added timer slack controller
  • Added dynamic fsync
  • Added proportional rate reduction for TCP
  • Added opensource camera driver (mt9p012)
  • Added syspanic driver for panic_daemon
  • Added sync framework (together with ION its part of androids graphical "project butter")
  • Switched to SLUB allocator
  • Enabled ram console Support
  • Synced binder to mainline version (~3.10)
  • Fixed reboot while incoming or outcoming call (fix proximity sensor in general)
  • Many small performance patches and fixes for better android support all over the place

Logs or it didn't happen! If you want to report a problem, be sure to post a log file!
Here is a small guide when we need which log file and how to get it.

Old Changelog;

  • Added new extra_free_kbytes tuable (4.4 compatibility)
  • Added our Interactive Governor from 2.6.32 for additional performance
  • Added a basic display control driver
  • Added a dynamic writeback control interface
  • Enabled cgroups for memory (4.4 compatibility)
  • Enabled deadline and changed tunables to the same as on 2.6.32
  • Enabled xattr and fs security for ext3/4
  • Patched up trim (ext3/4) to the latest mainline version
  • Switched to XZ compression for a smaller kernel image
  • Reclaimed some RAM from logger and vram
  • *Fixed the wakeup delay and the "funny" screen on resume


TODO:
  • Add Overclock driver
  • Fix kpanic with pvr and dss (solved?)
  • Fix sleep problem

How To Build

Code:
git clone https://github.com/Quarx2k/jordan-kernel.git
cd jordan-kernel
git checkout --orphan p-android-omap3-3.0
git pull https://github.com/Quarx2k/jordan-kernel.git p-android-omap3-3.0
export CROSS_COMPILE=/path/to/your/toolchains/arm-eabi-4.6/bin/arm-eabi-
export ARCH=arm
make mapphone_defconfig
make -j12


Sys-Values explanation;

Let me explain some of this features a little bit. 3.0.8 offers completely new opportunities to do some magic stuff.
One thing i developed a while back ago is a dynamic writeback driver with a sys-interface. It uses the earlysuspend kernel api
to flush dirty pages more frequent when in suspend, while display is on it avoids it to give a more fluid user interface.
Can be controlled via the following command;
echo 1 > /sys/devices/virtual/misc/writeback/writeback_enabled
(1 for enabled = default, 0 for disabled)

Also new; a basic display driver! As i tried to fix some things in our dss driver i noticed that we have different panel configurations.One is for all defy green and one for defy red lense users. I exposed those values to user space so that they can be changed. The
new default one are those, which are used on the red lense defy. In theory there could be 256 values (0-255), however could only find the
following as useful. This is not the final gamma control i wanted to have, but at least it gives some control. If someone knows the proper
addresses for gamma values, i can add them too :)
echo xx > /sys/class/misc/display_control/display_brightness_value
(0 will set the screen to almost 0,
9 will set the screen to some kind of blue-washed colors,
31 will set the screen to more warmer colors = default)

In order to run 4.4 more fluid, google made a guide and also published some recommended patches. One of them let you change
the VM's behavior to have a minimum amount of free memory. Also controllable over a interface;

echo 8192 > /proc/sys/vm/extra_free_kbytes

8192 means 8 MB of free ram (in any case).
 
Last edited:

niksy+

Senior Member
Jan 16, 2012
1,357
1,082
0
@Quarx @Blechd0se About the camera... Quarx, you asked in a post somewhere about our opinions on whether you guys should try to set it up with an open-source driver or with the old Moto driver. Maybe you could tell us what would be the advantages and disadvantages of which one and we could even vote if you want us to? :D

I'm guessing that we could get more out of the camera with an open-source driver, but it would be harder to set-up than the Moto driver?
 
M

mariosanoguera

Guest
@Quarx @Blechd0se About the camera... Quarx, you asked in a post somewhere about our opinions on whether you guys should try to set it up with an open-source driver or with the old Moto driver. Maybe you could tell us what would be the advantages and disadvantages of which one and we could even vote if you want us to? :D

I'm guessing that we could get more out of the camera with an open-source driver, but it would be harder to set-up than the Moto driver?

its a 5mp camera, so we should go for the old moto drivers, easiest stuff to do right? :p
 

niksy+

Senior Member
Jan 16, 2012
1,357
1,082
0
I shouted "YES!!" out loud when I saw the commit about headset and microphone fixes! :D *edit* But the call speaker maybe isn't fixed just yet :/ Still, gotta try the new build when it shows up ^_^

(that's this one - https://github.com/Quarx2k/android_...mmit/8f5a44ca04ba1c005cb1ac2409639b62f6260d4e )

Combined with Blechd0se's stability fixes (especially this one that fixes the "deep sleep death" - https://github.com/Quarx2k/jordan-kernel/commit/f6b6de228a09f46ab7d6eff70f9225f88e7d3515 ) the next build is going to be very usable imho :)
 
Last edited:

Blechd0se

Inactive Recognized Developer
Sep 19, 2012
459
4,507
0
Stuttgart
I shouted "YES!!" out loud when I saw the commit about headset and microphone fixes! :D *edit* But the call speaker maybe isn't fixed just yet :/ Still, gotta try the new build when it shows up ^_^

(that's this one - https://github.com/Quarx2k/android_...mmit/8f5a44ca04ba1c005cb1ac2409639b62f6260d4e )

Combined with Blechd0se's stability fixes (especially this one that fixes the "deep sleep death" - https://github.com/Quarx2k/jordan-kernel/commit/f6b6de228a09f46ab7d6eff70f9225f88e7d3515 ) the next build is going to be very usable imho :)

Yes Quarx is doing a very good job here, still struggling with a last few bugs. Anyway, its progress! Also the huge battery drain should be fixed,
i disabled kmemleak. 3.0 is such a nice base to work with, no need to do hacky things, it just works out of the box.
Next version will have timer_slack controller (its working perfectly). Also many fixes for crashes and memory leaks.

One big thing is still the display. Although wakeup delay is gone for me, dss/pvr crashes sometimes. Its very random.
Also overclocking has two sides; on the one side its much easier to understand, on the other side it doesn't work as expected (can't overclock
to 1200mhz for example). But we have finally a nice voltage/frequency table.
 

mayur2j

Senior Member
Sep 8, 2011
99
12
0
OTG!!

In the description it says USB: 98%, "OTG" bugged. Does this mean we can connect pen drives, mouse and keyboards to our defy with this kernel?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 226
    Current state of 3.0 Kernel

    WiFi/Thether/p2p - 100%
    TouchScreen - 100%
    Video Codec/hw 720p/ION stuff - 100%
    Display/DSS - 100%
    Phone/3G data - 100%
    Sound/FM-Radio - 100%
    F2FS support - 100%
    GPU OC 266mhz - 100%

    Bluetooth - 95%

    USB - 98%, otg bugged.
    Sensors - 98%, Need test all sensors, looks like all sensors works:)
    Camera - 85%, Preview/Photo(Red have random problem)/Panorama works for both lenses. Video rec not work yet.

    Overclock CPU- 0%, not implemented.

    For CM10,10.1,10.2 < 07.11.13 users:
    To install KitKat, need update recovery. Do not forget reboot, after install recovery.
    http://defy.bytekiste.de/cm11-nightly-defy+/update-recovery.zip

    Tips:
    Do not format System and Cache to F2FS!!!
    1. To use f2fsl "/system/bin/mkfs.f2fs /dev/block/mmcblk1p25" or format via TWRP (Advanced wipe menu).
    2. To restore ext4, in recovery unmount data, mount system, and do via adb shell /system/bin/make_ext4fs /dev/block/mmcblk1p25 or format via TWRP (Advanced wipe menu).
    3. If you have 0 bytes free bug, reformat data to f2fs or ext3/4.
    4. 1.1 Ghz can be enabled in performance settings.
    If you liked this project, you can donate :)
    Donate to Quarx
    PayPal: [email protected]
    ---------------------------------------
    Donate to Blechd0se
    PayPal: [email protected]

    Download: http://quarx2k.ru/index2.php?dir=buildbot/roms/defy-cm11.0-3.0

    Sources of kernel availabe here(branch p-android-omap3-3.0): https://github.com/Quarx2k/jordan-kernel/tree/p-android-omap3-3.0
    122
    Changelog:

    17.11:
    • Added timer slack controller
    • Added dynamic fsync
    • Added proportional rate reduction for TCP
    • Added opensource camera driver (mt9p012)
    • Added syspanic driver for panic_daemon
    • Added sync framework (together with ION its part of androids graphical "project butter")
    • Switched to SLUB allocator
    • Enabled ram console Support
    • Synced binder to mainline version (~3.10)
    • Fixed reboot while incoming or outcoming call (fix proximity sensor in general)
    • Many small performance patches and fixes for better android support all over the place

    Logs or it didn't happen! If you want to report a problem, be sure to post a log file!
    Here is a small guide when we need which log file and how to get it.

    Old Changelog;

    • Added new extra_free_kbytes tuable (4.4 compatibility)
    • Added our Interactive Governor from 2.6.32 for additional performance
    • Added a basic display control driver
    • Added a dynamic writeback control interface
    • Enabled cgroups for memory (4.4 compatibility)
    • Enabled deadline and changed tunables to the same as on 2.6.32
    • Enabled xattr and fs security for ext3/4
    • Patched up trim (ext3/4) to the latest mainline version
    • Switched to XZ compression for a smaller kernel image
    • Reclaimed some RAM from logger and vram
    • *Fixed the wakeup delay and the "funny" screen on resume


    TODO:
    • Add Overclock driver
    • Fix kpanic with pvr and dss (solved?)
    • Fix sleep problem

    How To Build

    Code:
    git clone https://github.com/Quarx2k/jordan-kernel.git
    cd jordan-kernel
    git checkout --orphan p-android-omap3-3.0
    git pull https://github.com/Quarx2k/jordan-kernel.git p-android-omap3-3.0
    export CROSS_COMPILE=/path/to/your/toolchains/arm-eabi-4.6/bin/arm-eabi-
    export ARCH=arm
    make mapphone_defconfig
    make -j12


    Sys-Values explanation;

    Let me explain some of this features a little bit. 3.0.8 offers completely new opportunities to do some magic stuff.
    One thing i developed a while back ago is a dynamic writeback driver with a sys-interface. It uses the earlysuspend kernel api
    to flush dirty pages more frequent when in suspend, while display is on it avoids it to give a more fluid user interface.
    Can be controlled via the following command;
    echo 1 > /sys/devices/virtual/misc/writeback/writeback_enabled
    (1 for enabled = default, 0 for disabled)

    Also new; a basic display driver! As i tried to fix some things in our dss driver i noticed that we have different panel configurations.One is for all defy green and one for defy red lense users. I exposed those values to user space so that they can be changed. The
    new default one are those, which are used on the red lense defy. In theory there could be 256 values (0-255), however could only find the
    following as useful. This is not the final gamma control i wanted to have, but at least it gives some control. If someone knows the proper
    addresses for gamma values, i can add them too :)
    echo xx > /sys/class/misc/display_control/display_brightness_value
    (0 will set the screen to almost 0,
    9 will set the screen to some kind of blue-washed colors,
    31 will set the screen to more warmer colors = default)

    In order to run 4.4 more fluid, google made a guide and also published some recommended patches. One of them let you change
    the VM's behavior to have a minimum amount of free memory. Also controllable over a interface;

    echo 8192 > /proc/sys/vm/extra_free_kbytes

    8192 means 8 MB of free ram (in any case).
    74
    Looking at Quarx's GitHub, there hasn't been any commit on the 3.0 and 3.1 kernel for about a month now. I'm wondering if Quarx has dropped this project because of his recent development for the ASUS PadFone S. :(

    This would be really sad because the 3.0 kernel project for the Defy has made a great success and almost all parts are working by now. Also the possibilities of the 3.1 kernel, thanks to the sources we got from the Moto 360, haven't been used yet.

    Therefore I would like to ask @Quarx: Is the 3.0 / 3.1 kernel development for the Defy dead or is it just interrupted because of your recent work for the PadFone S? If you plan to continue the development, when would this be the case?

    Please don't get me wrong: I'm sure that every Defy user who ever used a CyanogenMod build on his Defy is grateful for every single line of code that you ever wrote for this great little phone! But if we want to keep it alife, I'm sure that only a working 3.0 / 3.1 kernel would really bring new life to our beloved Defy. :)
    3.10 Currently have problems with CPCAP, which cant be solved yet.
    Also i got a work. This just eat whole my time... and only free 3-5h per day.
    Work with Asus PadFone S almost ended, already everything fixed in cm12. I bought its because of LTE and can't use 4.4, that's why i start make 5.0 :)

    Current version of 3.0 not have Telephony Problem, but need more tests. But it have problem with battery and red camera.
    First CM12 for Defy will be with 3.0, but need fix RIL part. In 5.0, bionic very changed and many closed Defy binaries stop working.
    I know all want fast CM12, but time really not enough. :(
    55
    Audio, camera, RIL, SGX - proprietary parts.
    In 3.0 we made opensource audio lib and will use open camera libs.
    53
    I'll just post a kernel changelog of the current CM11 Build;

    • Added timer slack controller
    • Added dynamic fsync
    • Added proportional rate reduction for TCP
    • Added opensource camera driver (mt9p012)
    • Added syspanic driver for panic_daemon
    • Added sync framework (together with ION its part of androids graphical "project butter")
    • Switched to SLUB allocator
    • Enabled ram console Support
    • Synced binder to mainline version (~3.10)
    • Fixed reboot while incoming or outcoming call (fix proximity sensor in general)
    • Many small performance patches and fixes for better android support all over the place

    RAM console is a pretty big change, it allows much better debugging. So whenever you encounter any random reboot,
    boot into android and run cat /proc/last_kmsg. This will give you a dmesg-output which contains your crash :)
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone