[Gen9 Android Development] carefreeway:
Extracts from dmesg about overheating during startup of the tablet.

<3>[ 2.405059] thermal_sensor_set_temp: no cooling agents for domain cpu

...

<6>[ 70.165710] omap_cpu_thermal_manager:sensor 81600 avg sensor 77935 pcb

<6>[ 70.165893] 0, delta 19095 hot spot 100695

<6>[ 70.166046] omap_cpu_thermal_manager: hot spot temp 100695 - going into alert zone

<6>[ 70.915802] omap_cpu_thermal_manager:sensor 79000 avg sensor 78135 pcb

<6>[ 70.915893] 0, delta 18191 hot spot 97191

<6>[ 70.916107] omap_cpu_thermal_manager: hot spot temp 97191 - going into monitor zone

...

<6>[ 79.675018] omap_cpu_thermal_manager:sensor 82000 avg sensor 78595 pcb

<6>[ 79.675140] 0, delta 19235 hot spot 101235

<6>[ 79.675354] omap_cpu_thermal_manager: hot spot temp 101235 - going into alert zone

...

<6>[ 80.675170] omap_cpu_thermal_manager:sensor 76600 avg sensor 78805 pcb

<6>[ 80.675323] 0, delta 17355 hot spot 93955

<6>[ 80.675506] omap_cpu_thermal_manager: hot spot temp 93955 - going into monitor zone

...

<6>[ 89.426452] omap_cpu_thermal_manager:sensor 82000 avg sensor 78365 pcb

<6>[ 89.426605] 0, delta 19235 hot spot 101235

<6>[ 89.426757] omap_cpu_thermal_manager: hot spot temp 101235 - going into alert zone

...

<6>[ 93.176940] omap_cpu_thermal_manager:sensor 79000 avg sensor 78820 pcb

<6>[ 93.177093] 0, delta 18191 hot spot 97191

<6>[ 93.177276] omap_cpu_thermal_manager: hot spot temp 97191 - going into monitor zone

...

<6>[ 101.178070] omap_cpu_thermal_manager:sensor 67800 avg sensor 78100 pcb

<6>[ 101.178375] 0, delta 14293 hot spot 82093

<6>[ 101.178649] omap_cpu_thermal_manager: hot spot temp 82093 - going into safe zone

...

<6>[ 101.678131] omap_cpu_thermal_manager:sensor 72800 avg sensor 77855 pcb

<6>[ 101.678283] 0, delta 16033 hot spot 88833

<6>[ 101.678436] omap_cpu_thermal_manager: hot spot temp 88833 - going into monitor zone

...

<6>[ 104.928619] omap_cpu_thermal_manager:sensor 67400 avg sensor 77095 pcb

<6>[ 104.928802] 0, delta 14154 hot spot 81554

<6>[ 104.929077] omap_cpu_thermal_manager: hot spot temp 81554 - going into safe zone

We see that OMAP4460 gets overheated, up to 100,695 degrees of C, during initial start of the device. Also, there are no such daemon in Archos's firmwares after version 4:

<3>[ 8.378143] init: cannot find '/system/bin/thermaldaemon', disabling 'thermaldaemon'

What should we do? I think that all alternative firmwares have wrong or not the best frequency governor for this CPU family (they usually have interactive one). I think that the best governor for OMAP4 is hotplug.

Extract from Documentation:

2.7 Hotplug

-----------

The CPUfreq governor "hotplug" operates similary to "ondemand" and

"conservative". It's decisions are based primarily on CPU load. Like

"ondemand" the "hotplug" governor will ramp up to the highest frequency

once the run-time tunable "up_threshold" parameter is crossed. Like

"conservative", the "hotplug" governor exports a "down_threshold"

parameter that is also tunable at run-time. When the "down_threshold"

is crossed the CPU transitions to the next lowest frequency in the

CPUfreq frequency table instead of decrementing the frequency based on a

percentage of maximum load.

The main reason "hotplug" governor exists is for architectures requiring

that only the master CPU be online in order to hit low-power states

(C-states). OMAP4 is one such example of this. The "hotplug" governor

is also helpful in reducing thermal output in devices with tight thermal

constraints.

Auxillary CPUs are onlined/offline based on CPU load, but the decision

to do so is made after averaging several sampling windows. This is to

reduce CPU hotplug "thrashing", which can be caused by normal system

entropy and leads to lots of spurious plug-in and plug-out transitions.

The number of sampling periods averaged together is tunable via the

"hotplug_in_sampling_periods" and "hotplug_out_sampling_periods"

run-time tunable parameters.

To activate hotplug governor you should add this strings (from Archos firmware's init file) into init.archos_init.rc right after "add symlink for HDCP key" strings inside "on fs":

# switch CPUfreq from interactive to hotplug

write /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor hotplug

write /sys/devices/system/cpu/cpufreq/hotplug/down_threshold 30

This will diminish overheating and will give the ability to hotplug/unplug auxiliry CPU core based on CPU load.

It's hard to solve overheating problem on hardware level for this tablet.

Also you can remove thermaldaemon from init. And also I found that boost don't work even with interactive governor (adb logcat *:E):

E/PowerManagerService( 915): Invalid boost duration: 0

E/TI OMAP PowerHAL( 915): Error opening /sys/devices/system/cpu/cpufreq/interactive/boostpulse: No such file or directory

E/TI OMAP PowerHAL( 915): Error opening /dev/cpuctl/cpu.notify_on_migrate: No such file or directory