Attend XDA's Second Annual Developer Conference, XDA:DevCon 2014!
5,742,650 Members 39,104 Now Online
XDA Developers Android and Mobile Development Forum

[KERNEL][GPL] oppo Kernel - Experimental

Tip us?
 
paperWastage
Old
(Last edited by paperWastage; 6th June 2013 at 03:27 AM.)
#1  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
Default [KERNEL][GPL] oppo Kernel - Experimental

I got lazy to work on this...

Faux is porting his kernel changes for this device. Go follow him instead

http://forum.xda-developers.com/show....php?t=2310374
http://www.oppoforums.com/threads/ke...4-may-31.2743/





Guide to building kernel from source

WARNING: Flash new kernels at your own risk
I am not responsible for any bricked devices

My Github branch experimental

I am porting over changes that faux123 made to his nexus 4 kernel : https://github.com/faux123/mako/tree/jb_mr1.1_exp

You'll need to use fastboot to flash kernels. I need to sudo as root for fastboot to work properly

Code:
Select Code
adb reboot bootloader
sudo -s
fastboot devices
fastboot flash boot bootimage.img
fastboot reboot

To reset to original kernel (if something goes wrong and your device doesn't boot)
Code:
Select Code
Charge your phone to at least 50%
Download original kernel (download original firmware, extract the boot.img file)
Hard power-off phone (hold power button for >15s)
Boot into bootloader (hold power + up key)
On computer - fastboot flash boot boot.img
Releases:
Current Device:
Oppo Find 5 - experimental kernel
The Following 8 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
(Last edited by paperWastage; 1st June 2013 at 09:59 PM.)
#2  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
Changelog


  • v0.0.2-experimental-cm-10.1 - 2013-6-1
    Code:
    Select Code
    Changelog:
    Basically, this contains all the changes made, merged into the CM10.1 kernel source (commit c02191a5db58bd9f69d2f5d3e239ea9ea64b7345 on May 1)
    
    Compatibility: should work with any CM-10.1-based ROM (eg PAC, PA...)
    
    Download  | Mirror
  • v0.0.3-experimental - 2013-4-8
    Code:
    Select Code
    Changelog:
    - Merged 2 commits from Qualcomm to fix msm_hsic_host wakelocks issue
    - https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=41d004c4eaa5565cb8d9113862c3cef1e51be648
    - https://www.codeaurora.org/gitweb/quic/la/?p=kernel/msm.git;a=commit;h=6f199aa800253a69e5679d1057823039f1bd65c9
    DO NOT USE v0.0.3 - Read This ... if you still really really really want those changes, linky
  • v0.0.2-experimental - 2013-3-17
    Code:
    Select Code
    Changelog:
    - Merged voltage control from "faux123":https://github.com/faux123/mako/tree/jb_mr1.1_exp
    --- min 800000 mV, max 1350000 mV
    (use any CPU undervolting app to undervolt)
    
    Compatibility: should work with any stock Oppo rom
    
    Download | Mirror
    Version String: Linux version 3.4.0-perf-g94395fc (tte@tte) Github tag v0.0.2
  • v0.0.1-experimental - 2013-3-16
    Code:
    Select Code
    Changelog:
    - Merged Intellidemand governor from "faux123":https://github.com/faux123/mako/tree/jb_mr1.1_exp
    (use any CPU controller app to change your governor)
    
    Compatibility: should work with any stock Oppo rom
    
    Download | Mirror
    Version String: Linux version 3.4.0-perf-g7850320 (tte@tte) Github tag v0.0.1
Current Device:
Oppo Find 5 - experimental kernel
The Following 4 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
(Last edited by paperWastage; 13th April 2013 at 12:46 AM.)
#3  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
List of bugs/new features requested

Tracker

Want to build the kernel from scratch?

http://forum.xda-developers.com/show....php?t=2192805
Current Device:
Oppo Find 5 - experimental kernel
The Following 3 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
drvsbsm
Old
#4  
Senior Member
Thanks Meter 75
Posts: 278
Join Date: Jan 2012
Location: Ohio
I posted this in you other thread I think I should erase and keep it here, I don't know if this will help you out at all but it looks like some good information to have.

Nice it looks like development is off to a great start! I also have the Droid DNA which is the same S4Pro CPU/GPU, the kernel I'm running on the DNA has the following options. The lowest setting for underclocking is down to 192MHz and has enabled overclock at 1.9GHz. Force GPU render for 3d @ 500mhz / 450mhz and 2d @ 300mhz. I have been using this kernel on my Droid Dna and it runs really fast and battery last all day.

Here is a link to some information that might be useful to you as I don't understand all of it myself http://forum.xda-developers.com/show....php?t=2021714

Quote:
What is msm_mpdecision?

100% kernel based multi core decision! (should cpu1 be online or not?)
This replaces your /system/bin/mpdecision binary which is renamed by the installer to mpdecision_backup.

Check /sys/kernel/msm_mpdecision/conf/ for the configuration.
Quote:
startdelay = time until mpdecision starts doing it's magic (70000)
delay = time between checks (500)
pause = if something else plugs in the cpu, fall asleep for 10000
scroff_single_core = if the screen is off, don't plug in cpu1 (1)
nwns_threshold_up = runqueue threshold, if this is reached cpu1 will be hotplugged (35)
nwns_threshold_down = runqueue threshold, if this is reached cpu1 will be unplugged (5)
twts_threshold_up = time threshold, this amount of time must have passed (250)
twts_threshold_down = same as above (250)
enabled = enable(1) or disable(0) mpdecision. This does not affect scroff_single_core!
idle_freq = a value against that will be checked if a core +/- is requested. (486000)
If cpu0 is below that value and a core up of cpu1 is requested, nothing will happen.
If cpu1 is above that value and a core down of cpu1 is requested, nothing will happen. (otherwise it would now put down cpu1 even though it is still working)
Quote:
What is msm_thermal?
Quote:
Kernel based 3-phase thermal control!
This replaces your /system/bin/thermald binary which is renamed by the installer to thermald_backup.

Check /sys/kernel/msm_thermal/conf/ for the thermal configuration

allowed_max_high = highest threshold (phase 3)
allowed_max_low = remove the throttling if we cooled down to this (clr_thrshold)
allowed_max_freq = max frequency if throttled (limit)

[...]mid[...] = same as above, just for phase 2
[...]low[...] = Lowest threshold (phase 1)

check_interval_ms = how often shall we check? (sampling rate)
Default: 1000ms (=1sec)
Quote:
What is ARM Topology:
Quote:
ARM Topology allows individual queue'ing of tasks to cores by the scheduler, For intelligent load balancing and more data crunching power. This has come from the Linaro Team you can view the most recent patch at from http://patches.linaro.org/9894/ all patches at http://patches.linaro.org/project/linux-arm-kernel/
The Following 4 Users Say Thank You to drvsbsm For This Useful Post: [ Click to Expand ]
 
CoopZor
Old
#5  
CoopZor's Avatar
Senior Member
Thanks Meter 45
Posts: 779
Join Date: Aug 2009
Location: Bilzen
Default Re: [KERNEL][GPL] oppo Kernel - Experimental

Anyone who tried this new kernel?
I'm hoping to have my oppo next week.

Where are the Rom`s ? It's so quiet here@xda

Verstuurd van mijn GT-N7000 met Tapatalk
 
paperWastage
Old
(Last edited by paperWastage; 17th March 2013 at 09:49 PM.)
#6  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
Now - Voltage Control...

Next step - Gamma Control

Current Device:
Oppo Find 5 - experimental kernel
The Following 2 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
Entropy512
Old
#7  
Senior Recognized Developer
Thanks Meter 24127
Posts: 13,144
Join Date: Aug 2007
Location: Owego, NY

 
DONATE TO ME
Quote:
Originally Posted by drvsbsm View Post
I posted this in you other thread I think I should erase and keep it here, I don't know if this will help you out at all but it looks like some good information to have.

Nice it looks like development is off to a great start! I also have the Droid DNA which is the same S4Pro CPU/GPU, the kernel I'm running on the DNA has the following options. The lowest setting for underclocking is down to 192MHz and has enabled overclock at 1.9GHz. Force GPU render for 3d @ 500mhz / 450mhz and 2d @ 300mhz. I have been using this kernel on my Droid Dna and it runs really fast and battery last all day.

Here is a link to some information that might be useful to you as I don't understand all of it myself http://forum.xda-developers.com/show....php?t=2021714
Underclocking to 192 MHz is pointless on a device with properly working cpuidle unless you can reduce voltage significantly compared to 384.

In fact due to the nature of how cpuidle works, 192 can actually consume more power, because it's better to have the CPU in a deeper idle state.

There's an old but still relevant and good paper on it from IBM... Look through Ezekeel's posts back around late 2011 and you'll probably find the link.

Slight possibility that I might get a Find5 to do a CM bringup, but highly unlikely at this point. I'm not a big fan of GPL noncompliance. (The fact that it took over a month to release is a bad sign. The fact that it required work to get it to even compile is a worse sign - who knows where else the source does not match the released binaries???)
*so much sig updating needed*

My Github profile - Some Android stuff, some AVR stuff

An excellent post on "noobs vs. developers"

A few opinions on kernel development "good practices"

Note: I have chosen not to use XDA's "friends" feature - I will reject all incoming "friend" requests.

Code:
<MikeyMike01> Smali is a spawn of hell
<shoman94> ^^^ +!
Code:
<Entropy512> gotta be careful not to step on each other's work.  :)
<Bumble-Bee> thats true
<jerdog> compeete for donations
The Following 2 Users Say Thank You to Entropy512 For This Useful Post: [ Click to Expand ]
 
paperWastage
Old
(Last edited by paperWastage; 18th March 2013 at 12:48 AM.)
#8  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
Quote:
Originally Posted by Entropy512 View Post
Slight possibility that I might get a Find5 to do a CM bringup, but highly unlikely at this point. I'm not a big fan of GPL noncompliance. (The fact that it took over a month to release is a bad sign. The fact that it required work to get it to even compile is a worse sign - who knows where else the source does not match the released binaries???)
well, they had 2 configs: 12025_debug_defconfig and 12025_release_defconfig

debug version compiled fine, release version didn't compile properly

from the logs and the flags, it looks like the device is running the debug version (debug version has the CONFIG_OPPO_DEBUG_ASSERT=y, and those debug statements show in the kernel logs)

that saying, I didn't like their 1 month wait either


EDIT: able to expose gamma to sysfs interface. However, I have disabled modifying the value for now (Nexus 4 uses a checksum to ensure the values don't exceed a certain range. I don't know the range for our devices yet)

I have emailed faux123 to update his FauxClock app to support our gamma function calls at /sys/devices/platform/mipi_orise.2049

https://github.com/ngvincent/android...8fd743e3acc18f
Current Device:
Oppo Find 5 - experimental kernel
The Following User Says Thank You to paperWastage For This Useful Post: [ Click to Expand ]
 
Entropy512
Old
#9  
Senior Recognized Developer
Thanks Meter 24127
Posts: 13,144
Join Date: Aug 2007
Location: Owego, NY

 
DONATE TO ME
Quote:
Originally Posted by paperWastage View Post
well, they had 2 configs: 12025_debug_defconfig and 12025_release_defconfig

debug version compiled fine, release version didn't compile properly

from the logs and the flags, it looks like the device is running the debug version (debug version has the CONFIG_OPPO_DEBUG_ASSERT=y, and those debug statements show in the kernel logs)

that saying, I didn't like their 1 month wait either


EDIT: able to expose gamma to sysfs interface. However, I have disabled modifying the value for now (Nexus 4 uses a checksum to ensure the values don't exceed a certain range. I don't know the range for our devices yet)

I have emailed faux123 to update his FauxClock app to support our gamma function calls at /sys/devices/platform/mipi_orise.2049

https://github.com/ngvincent/android...8fd743e3acc18f
Are you sure those are even gamma values you're tweaking? I don't think those commands are particularly standardized... (e.g. they're display-specific)
*so much sig updating needed*

My Github profile - Some Android stuff, some AVR stuff

An excellent post on "noobs vs. developers"

A few opinions on kernel development "good practices"

Note: I have chosen not to use XDA's "friends" feature - I will reject all incoming "friend" requests.

Code:
<MikeyMike01> Smali is a spawn of hell
<shoman94> ^^^ +!
Code:
<Entropy512> gotta be careful not to step on each other's work.  :)
<Bumble-Bee> thats true
<jerdog> compeete for donations
 
paperWastage
Old
(Last edited by paperWastage; 18th March 2013 at 04:06 AM.)
#10  
Senior Member - OP
Thanks Meter 363
Posts: 752
Join Date: Mar 2009
Location: NJ
Quote:
Originally Posted by Entropy512 View Post
Are you sure those are even gamma values you're tweaking? I don't think those commands are particularly standardized... (e.g. they're display-specific)
https://github.com/ngvincent/android..._orise_1080p.c

#lines 155 onwards

they look like gamma values for r,g,b (could be gamma + something else)... nexus 4 has 10 values in array, oppo has 25 in array

probably should contact oppo / the LCD manufacture and get the specs on these... for the Nexus 4, faux123 added a checksum calculation to ensure it doesn't go too far and destroy the display itself

list of hardware that I'm still updating Device Hardware Documentation


EDIT: both the Xperia Z and Nexus 4 have two sets of 15-digit numbers for r,g,b - one is for positive, one is for negative
For oppo, I assume the sole set of 25-digit numbers for r,g,b contains both positive and negative

Xperia has 4 different display panels. don't know what oppo has... of course, oppo has the Orise 1080p panel driver, but the panel itself?

Code:
Select Code
Xperia Z:
mipi_dsi_panel_r63306_tmd_mdw30.o
mipi_dsi_panel_r63306_sharp_ls043k3sx04.o
mipi_dsi_panel_r63311_sharp_ls050t3sx01.o
mipi_dsi_panel_r63311_jdc_mdy70.o

EDIT2: most likely a toshia WUXGA or CHIMEI_WUXGA display... only ones that are 1080p
Code:
Select Code
       select FB_MSM_MIPI_TOSHIBA_VIDEO_WVGA_PT
        select FB_MSM_MIPI_TOSHIBA_VIDEO_WSVGA_PT
        select FB_MSM_MIPI_TOSHIBA_VIDEO_WUXGA
        select FB_MSM_MIPI_RENESAS_VIDEO_FWVGA_PT
        select FB_MSM_MIPI_RENESAS_CMD_FWVGA_PT
        select FB_MSM_MIPI_TRULY_VIDEO_WVGA_PT
        select FB_MSM_MIPI_NOVATEK_VIDEO_QHD_PT
        select FB_MSM_MIPI_NOVATEK_CMD_QHD_PT
        select FB_MSM_MIPI_NT35510_VIDEO_WVGA_PT
        select FB_MSM_MIPI_NT35510_CMD_WVGA_PT
        select FB_MSM_MIPI_ORISE_VIDEO_720P_PT
        select FB_MSM_MIPI_ORISE_CMD_720P_PT
        select FB_MSM_MIPI_NT35516_VIDEO_QHD_PT
        select FB_MSM_MIPI_NT35516_CMD_QHD_PT
        select FB_MSM_MIPI_SIMULATOR_VIDEO
        select FB_MSM_MIPI_CHIMEI_WXGA
        select FB_MSM_MIPI_CHIMEI_WUXGA
and one of these orise drivers

Code:
Select Code
OTC3202A	3.3V	90	LVDSX2	RSDS	WUXGA	-	-	V	16.7M	-	TQFP64
OTC3203A	2.3V ~ 3.6V	90	LVDSX2	RSDS	WUXGA	-	-	V	16.7M	-	TQFP100
need to do some debugging tomorrow
Current Device:
Oppo Find 5 - experimental kernel

The Following 2 Users Say Thank You to paperWastage For This Useful Post: [ Click to Expand ]
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes