Intro
I wanted to make a thread to document kernel development activities that we're doing. So far, this Ouya forum has been a great place to view what it takes to start developing for a new device!
First of all, alsutton over on GitHub posted the kernel source. It can be found here https://github.com/ouya/ouya_1_1-kernel.
XDA University has some great articles to get started:
http://xda-university.com/as-a-developer/getting-started-building-a-kernel-from-source
http://xda-university.com/as-a-developer/adding-features-to-your-kernel
Things noticed about the stock kernel so far:
-it's cpu governor seems to be permanently set to "performance" (1600Mhz all the time). There might be a way to override this, but in the voltage control app, I wasn't able to change anything (frequency or governor)
Wish List:
-Access to set more governors (could help the Ouya's fan stay off during menu surfing)
-Overclocking (we have a fan...let's break 2Ghz because we need moar hertz. Might help speed up some emulators)
Need more info:
-If we ever overlock, we need a way to view temperature to make sure we're not frying our Ouyas. Just a guess, but it's probably a file we can read from in /dev or /proc
-Just a blind guess after reading the XDA University article on adding overclocking, but SOURCE/arch/arm/mach-tegra/tegra3_clocks.c might be a place to look. It seems to have clock frequency tables. Other devs that have made tegra 3 kernels might know the appropriate files to edit
boot.img details
As an FYI,
for most android devices, the kernel resides in it's own partition on the device. When flashing a new kernel, a new boot.img is flashed to the partition. The boot.img file includes a header, the kernel image (pre-compiled), and the ramdisk. On boot, the kernel takes control and uses the ramdisk files to get things started. The rest of the partitions (including system, data, cache) are mounted and the Android OS is booted (from system).
Here's one way to take a boot.img and dissect it in order to view the ramdisk contents.
http://android-dls.com/wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images
Here's another way as well (thanks, professorpoptarts)
http://forum.xda-developers.com/showthread.php?t=1890912
May I suggest not to try to overclock past known safe values of 1.9ghz?
As for the kernel....it is not set to be at 1.6ghz all the time... its set differently and actually stays and floats at 1ghz until utilization kicks in at to 1.6ghz
You wont be able to change any of these values until you compile your own kernel with the correct voltage/clock settings in place.
-----edit------
To add to that in respects to the 1-1.6ghz range it actually only utilizes those 2 cpu states ( from what I've recorded )
HTCdemon said:
May I suggest not to try to overclock past known safe values of 1.9ghz?
As for the kernel....it is not set to be at 1.6ghz all the time... its set differently and actually stays and floats at 1ghz until utilization kicks in at to 1.6ghz
You wont be able to change any of these values until you compile your own kernel with the correct voltage/clock settings in place.
-----edit------
To add to that in respects to the 1-1.6ghz range it actually only utilizes those 2 cpu states ( from what I've recorded )
Click to expand...
Click to collapse
What are you using to record? I have been using "system panel".
Sent from my SCH-I535 using xda premium
just fyi, I was looking at the init.rc for the 264 OTA, just in case a rom gets flashed that didn't remove this we could always disable the recovery flash at the boot level.
service flash_recovery /system/etc/install-recovery.sh
class main
oneshot
for any other aspiring kernel devs out there:
https://github.com/invisiblek/AnyKernel/tree/ouya
(fyi: this is on the branch named ouya of that repo, make your you add: -b ouya to your git clone or you'll get the branch for a different device)
just throw your zImage in kernel/ and your modules in modules/
make sure when you compile your kernel, you add -fno-pic to your KBUILD_CFLAGS_MODULE in Makefile in the root of your kernel source
otherwise it wont load the modules
wewt!
Just curious.....is anyone else having issues compiling the latest commit?
I reverted back to the previous commit but it still breaks.
Build machine hasnt changed.
Code:
drivers/dma/timb_dma.c: In function 'td_tx_status':
drivers/dma/timb_dma.c:521: error: 'last_complete' undeclared (first use in this function)
drivers/dma/timb_dma.c:521: error: (Each undeclared identifier is reported only once
drivers/dma/timb_dma.c:521: error: for each function it appears in.)
drivers/dma/timb_dma.c:521: error: 'last_used' undeclared (first use in this function)
drivers/dma/timb_dma.c:513: warning: unused variable 'td_chan'
make[2]: *** [drivers/dma/timb_dma.o] Error 1
make[1]: *** [drivers/dma] Error 2
make: *** [drivers] Error 2
HTCdemon said:
Just curious.....is anyone else having issues compiling the latest commit?
I reverted back to the previous commit but it still breaks.
Build machine hasnt changed.
Code:
drivers/dma/timb_dma.c: In function 'td_tx_status':
drivers/dma/timb_dma.c:521: error: 'last_complete' undeclared (first use in this function)
drivers/dma/timb_dma.c:521: error: (Each undeclared identifier is reported only once
drivers/dma/timb_dma.c:521: error: for each function it appears in.)
drivers/dma/timb_dma.c:521: error: 'last_used' undeclared (first use in this function)
drivers/dma/timb_dma.c:513: warning: unused variable 'td_chan'
make[2]: *** [drivers/dma/timb_dma.o] Error 1
make[1]: *** [drivers/dma] Error 2
make: *** [drivers] Error 2
Click to expand...
Click to collapse
Fine here
Now if I just had a working Ouya....we could make some cool stuff =P
Back with a new problem...
Code:
06-29 18:41:21.260: D/WifiService(322): setWifiEnabled: true pid=584, uid=10018
06-29 18:41:21.270: E/WifiHW(107): Failed to open wlan fw path param (No such file or directory)
06-29 18:41:21.270: E/SoftapController(107): Softap fwReload - failed: -1
06-29 18:41:21.270: E/WifiStateMachine(322): Failed to reload STA firmware java.lang.IllegalStateException: command '9 softap fwreload wlan0 STA' failed with '400 9 Softap operation failed (No such file or directory)'
06-29 18:41:21.270: W/CommandListener(107): Failed to retrieve HW addr for wlan0 (No such device)
06-29 18:41:21.270: D/CommandListener(107): Setting iface cfg
06-29 18:41:21.270: E/WifiStateMachine(322): Unable to change interface settings: java.lang.IllegalStateException: command '11 interface setcfg wlan0 0.0.0.0 0 down' failed with '400 11 Failed to set address (No such device)'
06-29 18:41:21.280: V/WifiSetupActivity(584): Setting content visible: true
06-29 18:41:21.280: E/wpa_supplicant(986): nl80211: Could not add multicast membership for scan events: -2 (No such file or directory)
06-29 18:41:21.280: E/wpa_supplicant(986): Failed to initialize driver 'nl80211'
06-29 18:41:21.280: E/wpa_supplicant(986): wlan0: Unsupported driver 'nl80211'
06-29 18:41:21.370: E/WifiStateMachine(322): Failed to start supplicant!
Anyone else having issues with this?
edit:
Looks like it's not loading any modules at all... I had no problems previously with older kernels till 328....anyone know what im missing?
My main issue here, and something I'd like to see done.
The Ouya seems to get hot sometimes during long durations of gameplay, could we put together a method on getting the fan boosting cool air through the device once it gets hot? Or would that be something hardware related as the Ouya can't say; "I'm hot, pour some water on me"?
If this was useful to you, I can only ask of a favor!
Check out my YouTube channel!
http://WWW.YouTube.com/user/TheDarkRosary
Subscribe if you will!
HTCdemon said:
Back with a new problem...
Code:
06-29 18:41:21.260: D/WifiService(322): setWifiEnabled: true pid=584, uid=10018
06-29 18:41:21.270: E/WifiHW(107): Failed to open wlan fw path param (No such file or directory)
06-29 18:41:21.270: E/SoftapController(107): Softap fwReload - failed: -1
06-29 18:41:21.270: E/WifiStateMachine(322): Failed to reload STA firmware java.lang.IllegalStateException: command '9 softap fwreload wlan0 STA' failed with '400 9 Softap operation failed (No such file or directory)'
06-29 18:41:21.270: W/CommandListener(107): Failed to retrieve HW addr for wlan0 (No such device)
06-29 18:41:21.270: D/CommandListener(107): Setting iface cfg
06-29 18:41:21.270: E/WifiStateMachine(322): Unable to change interface settings: java.lang.IllegalStateException: command '11 interface setcfg wlan0 0.0.0.0 0 down' failed with '400 11 Failed to set address (No such device)'
06-29 18:41:21.280: V/WifiSetupActivity(584): Setting content visible: true
06-29 18:41:21.280: E/wpa_supplicant(986): nl80211: Could not add multicast membership for scan events: -2 (No such file or directory)
06-29 18:41:21.280: E/wpa_supplicant(986): Failed to initialize driver 'nl80211'
06-29 18:41:21.280: E/wpa_supplicant(986): wlan0: Unsupported driver 'nl80211'
06-29 18:41:21.370: E/WifiStateMachine(322): Failed to start supplicant!
Anyone else having issues with this?
edit:
Looks like it's not loading any modules at all... I had no problems previously with older kernels till 328....anyone know what im missing?
Click to expand...
Click to collapse
Im getting the exact same problems on a stock OUYA bougth today
lsmod on the adb shell shows the following :
[email protected]:/ $ lsmod
lsmod
cfg80211 179175 0 - Live 0x00000000
inv_mpu_ak8975 3937 0 - Live 0x00000000
inv_mpu_kxtf9 6865 0 - Live 0x00000000
mpu3050 36222 2 inv_mpu_ak8975,inv_mpu_kxtf9, Live 0x00000000
Click to expand...
Click to collapse
I wish i had an Ouya.... i would be all over this
Ouya-XD said:
My main issue here, and something I'd like to see done.
The Ouya seems to get hot sometimes during long durations of gameplay, could we put together a method on getting the fan boosting cool air through the device once it gets hot? Or would that be something hardware related as the Ouya can't say; "I'm hot, pour some water on me"?
If this was useful to you, I can only ask of a favor!
Check out my YouTube channel!
http://WWW.YouTube.com/user/TheDarkRosary
Subscribe if you will!
Click to expand...
Click to collapse
sure through some code already published there are multiple ways to impliment thermal throttling
although that could impact game play
im sure there are also ways to open the unit and have it trigger a fan
im sure you also could make custom heatsink for the unit for those hardcore Overclockers
you wanna look in
tegra3_clocks.c
tegra3_dvfs.c
tegra3_thermal.c
tegra3_throttle.c
cpu-tegra3.c
and a few others
you can improve the GPU clocks and add governors easily as well as change between slab/slub/slob/slqb
this would be something really fun to play with ill try to save up for an ouya
Is this project still active? I would love to contribute in any way possible to an overclocked kernel, but I have never done any kernel development before.
BUS DR1V3R said:
Is this project still active? I would love to contribute in any way possible to an overclocked kernel, but I have never done any kernel development before.
Click to expand...
Click to collapse
I'm waiting till I can afford an ouya then I can code up some stuff
Sent from my SCH-R970 using xda premium
mybook4 said:
Things noticed about the stock kernel so far:
-it's cpu governor seems to be permanently set to "performance" (1600Mhz all the time). There might be a way to override this, but in the voltage control app, I wasn't able to change anything (frequency or governor)
Click to expand...
Click to collapse
Just for reference, I have two Ouya's. One came clocked (retail version) at 1.6, the other came (Kickstarter) clocked at 1.7.
Hello,
I've been trying to encrypt my device for a while now. It always just goes to the encrypting icon, then waits a second and boots into CM12.1 again. Now I've tried to use adb logcat, where I was able to find this when starting encryption, just after all the SIGKILLs:
E/Cryptfs ( 229): Cannot open real block device /dev/block/platform/msm_sdcc.1/by-name/userdata
E/Cryptfs ( 229): Unable to get crypt_ftr_info
E/Cryptfs ( 229): Cannot get size of block device /dev/block/platform/msm_sdcc.1/by-name/userdata
Click to expand...
Click to collapse
I'm using CM12.1 titan linked here. However, I'm fairly certain that this is not a ROM issue, I've had it on all ROMs. Any help would be greatly appriciated.
~ Robin
maybe it really is the encryption footer?
Robin.S said:
I've been trying to encrypt my device for a while now. It always just goes to the encrypting icon, then waits a second and boots into CM12.1 again. Now I've tried to use adb logcat
Click to expand...
Click to collapse
(I'm sorry but it won't let me post links yet, you'll have to fix them below to use, I stripped the schemes, put them between LINK uppercase, and italicized the link text)
I'm getting the same thing, I just tried with 20150505 nightly cm12.1, this seems to a be a known issue, but with very little real information as to the problem. I found LINK forum.cyanogenmod.org/topic/88973-moto-g-cm11-encryption-failed/ LINK this forum post going back to mid 2014, and LINK jira.cyanogenmod.org/browse/CYAN-4532 LINK the linked JIRA bug which seems to indicate that all the Moto G devices (falcon, peregrine, titan), possibly Moto X as well are affected, but nobody seems to know what causes this bug, only vague hints that it may be a "timing related issue" but no other clarifying information in the now more than a year since this bug was posted.
The obvious conclusion is that nobody is encrypting their devices, which I find bizarre. Once Motorola releases a 5.1 factory ROM for this device (which is supposedly imminent -- they've already released for G-2013 and X-2014 I believe), I'll flash it and test that one.
I used logcat -v long and saw the times, the process kills definitely come after the attempts to open the block device fails. I did a logcat -c in one shell and then a vdc cryptfs enablecrypto inplace <password> in another (this is what the encrypt UI initiates), and the after the resulting softboot (it keeps the adb shell alive, and system uptime continues, so this isn't a hard boot), a logcat shows the same sequence:
Code:
[ 05-06 20:06:03.897 230: 287 E/Cryptfs ]
Cannot open real block device /dev/block/platform/msm_sdcc.1/by-name/userdata
[ 05-06 20:06:03.897 230: 287 E/Cryptfs ]
Unable to get crypt_ftr_info
[ 05-06 20:06:03.898 230: 287 E/Cryptfs ]
Cannot get size of block device /dev/block/platform/msm_sdcc.1/by-name/userdata
and then the kills start.
At first, because of the apparent inability to get crypt footer (in the error message), I thought this was lack of the 16k footer mentioned in the aforementioned bug, but LINK review.cyanogenmod.org/#/c/86684/ LINK the patch to include it appears to be long incorporated in LINK github.com/CyanogenMod/android_device_motorola_titan/blob/cm-12.1/BoardConfig.mk LINK our board's version of this file.
However, as I write this, I notice that the size in BoardConfig.mk does not correspond to the one on the device:
Code:
$ readlink /dev/block/platform/*/*/userdata
/dev/block/mmcblk0p38
$ grep mmcblk0p38 /proc/partitions
259 6 5774208 mmcblk0p38
$ bc
((5930598400 / 1024) - 5774208) / 1024
16.9843750000
they appear to differ by slightly more than 16k (the size of the encryption footer). But yet /system corresponds exactly with the line from BoardConfig.mk:
Code:
$ readlink /dev/block/platform/*/*/system
/dev/block/mmcblk0p36
$ grep mmcblk0p36 /proc/partitions
259 4 1130496 mmcblk0p36
$ bc
1157627904 / 1024
1130496.0000000000
so now I'm thinking that really is the problem (the userdata partition needs to have its size extended by 16k). But then there is LINK forum.cyanogenmod.org/topic/104204-xt1039-cm12-nightly-20150123-encryption-of-data-partition-not-working-simply-warm-reboots/ LINK this forum post which claims that the same partition encrypts fine with the stock image.
I didn't factory reset when flashing cm12.1 (from a stock 5.x ROM), which I think recreates the partition (?) So, maybe the partition didn't get resized to the correct value. However if the stock ROM handles this case, I should think CM would too.
What about you? Did you factory reset (including /data) when you installed CM on your Titan? I saw no need to get rid of /data (although I did have to delete some things in /data/misc to get rotation working) when coming from stock ROM and wanted to avoid having to redo everything. Which worked fine... except for this
So I just noticed via Android Studio monitor while testing an app under development during device sleep, that it is continuously and at a good rate*, spamming the logcat log with:
10-21 15:59:43.543 239-239/? E/ccci_fsd(1): Failed to read from FS device (-1) !! errno = 4
I've felt that the battery use during sleep since buying it hasn't been all that great. Perhaps that's why with it continually spending the cpu on this.
This is with the latest official OS version for the Blu R1 with Amazon ads.
*Counted 16 lines in 5 seconds
Search turned up nothing. Device appears to work fine.
Factory reset does nothing as suspected. However, currently it looks to only show up when on battery power (I use wifi ADB and found this problem with device in discharge state during sleep) - it should show with a logcat reader app I suspect.
Eg (discharge)
10-21 14:20:38.236 854-919/? E/native: do suspend true
10-21 14:20:39.448 238-238/? E/ccci_fsd(1): Failed to read from FS device (-1) !! errno = 4
10-21 14:20:39.691 238-238/? E/ccci_fsd(1): Failed to read from FS device (-1) !! errno = 4
10-21 14:20:39.932 238-238/? E/ccci_fsd(1): Failed to read from FS device (-1) !! errno = 4
...
Eg (charge)
10-21 14:21:41.685 854-919/? E/native: do suspend true
10-21 14:23:29.666 1781-1871/? E/MPlugin: Unsupported class:
Anyone have any thoughts?
Nevermind, mystery solved. Found out airplane mode with wifi enabled fixes it.
Looks like it could be from not having a sim card.
Thread closed at the request of the OP.
Hi All,
Need some help in getting my wifi and bluetooth back to normal. It's over a month now and all my attempts have failed! I would really appreciate some ideas here. Thank you, and sorry for long thread.
Phone info:
Samsung galaxy S6 SM-G920T (T-Mobile), firmware version: NRD90M.G920TUVS6FRC1, stock OS with root and TWRP recovery
Situation:
Bluetooth does not turn ON at all
Wifi takes a long time to turn ON, and only way to turn it ON is from settings (quick access tile does not work)
Wifi does not remember any password
All other functions work correctly, and the phone is now lightning fast after factory reset
Details and Steps Taken:
Rooted my phone a month ago, and started changing config. Took OS and app backup only, but no EFS/other partition backup.
Turned OFF "Allow OEM Unlock" - don't ask why
This (I believe) resulted in WIFI not remembering passwords, so after reviewing potential solutions, I changed "Secure.Storage" value in build.prop to "0"
Took backup of WPA_supplicant.conf and deleted the file
Problem was not resolved, and I had to restart the phone
Restart resulted in FRP lock - to resolve this I re-installed the OS from stock firmware from Sammobile; Yet - no luck on wifi and bluetooth, error still persisted
I reviewed the system log and found tons of errors (listed below). Based on errors, I tried:
Copying libbluetooth_jni.so library file to '/system/lib' and '/system/vendor/lib' folders
Changing 'semGetAllowBluetoothMode' value to "True" - this reduced some errors (refer below)
Validating file / folder permissions for the /efs partition - they seem to be appropriate, but I cannot confirm since there is no reference
I have also tried using SmartSwitch - but it doesn't recognize phone in download mode. It backups the apps, etc. though
Also wiped the system partition once using TWRP, and re-imaged. Yet no luck.
My hunch currently for these errors is:
The /efs permissions became incorrect or partition became corrupt due to some configuration I performed
The system lost its encryption key when the "OEM unlock" was disabled, and thus cannot read any files from the /system and /efs partition (the device was NOT encrypted, but I am thinking /efs is always encrypted by system - correct me if I am wrong)
System log snippets:
Bluetooth Related Log:
Bluetooth GATT service:
Code:
BtGatt.GattService: [GSIM LOG]: gsimLogHandler: null, msg: MESSAGE_LOAD_PREF
Bluetooth Adapter Service:
Code:
BluetoothAdapterService: onProfileServiceStateChanged() serviceName=com.android.bluetooth.gatt.GattService, state=12, Message sending
semGetAllowBluetoothMode:
Resolved this error by updating the value to "True" in build.prop. Was this the right fix, or is it supposed to get value = 2.
Code:
DevicePolicyManagerService: semGetAllowBluetoothMode - value retunrs : 2
Wifi error log:
Code:
WifiHW : ##################### set firmware type 0 #####################
WifiHW : ==========[WIFI] SEMCO MODULE ===========
WifiHW : TEMP_FAILURE_RETRY complete
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 208 Softap operation succeeded
WifiMonitor: killSupplicant p2ptrue init.svc.wpa_supplicant=unknown init.svc.p2p_supplicant=unknown
WifiHW : supplicant_name : p2p_supplicant
WifiHW : Unable to open connection to supplicant on "@android:wpa_wlan0": No such file or directory
WifiWatchdogStateMachine: Unhandled message { when=0 what=135173 arg1=2 target=com.android.internal.util.StateMachine$SmHandler } in state NotConnectedState
WifiMonitor: startMonitoring(wlan0) failed!
WifiStateMachine: Failed to setup control channel, restart supplicant
WifiHAL : wifi_event_loop: Read after POLL returned 4, error no = 0
WifiHAL : wifi_cleanup: Read after POLL returned 4, error no = 2
WifiHAL : Event processing terminated
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 219 Softap operation succeeded
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 229 Softap operation succeeded
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 240 Softap operation succeeded
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 248 Softap operation succeeded
WifiHAL : wifi_event_loop: Read after POLL returned 4, error no = 11
NetworkManagement: wifiFirmwareReload Error reloading wlan0 fw in STA mode: event = 200 256 Softap operation succeeded
WifiStateMachine: Failed 6 times to start supplicant, unload driver
WifiStateMachine: sendErrorBroadcast code:10
WifiController: WifiControllerWifi turn on failed
Hello, when I installed Havoc 3.5, I used the lucky patcher to patch the signature and install vanced youtube, I tried to unpatch this, when it seemed done I opened chrome, I could see the 'Welcome to Chrome' screen then I got the error 'Chrome keeps stopping' so I installed another ROM(pixel experience 10.0 plus) and this was repeated so I reinstalled ROM (havoc 2.9) and it is still happening. In all these roms I can open and use Chrome Beta or another browser. How can I fix it? OBS: When I installed the first ROM, Chrome wouldn't open.
Log:
HTML:
time: 1589762984467
msg: java.lang.RuntimeException: An error occurred while executing doInBackground()
stacktrace: java.lang.RuntimeException: An error occurred while executing doInBackground()
at avL.done(PG:15)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at avX.run(Unknown Source:17)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at avQ.run(Unknown Source:3)
at java.lang.Thread.run(Thread.java:919)
Caused by: java.lang.RuntimeException
at cud.d(PG:90)
at cud.a(PG:126)
at avK.call(PG:6)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 5 more