Kobo Arc 10HD Tablet Wiki - tdro/android_device_kobo_macallan GitHub Wiki

Index

Downloads

Last System Version: cm-12.1.1-20160827-UNOFFICIAL-macallan.zip
Last Kernel Version: cm-kobo-10hd-kernel-r9.zip
Last Recovery Version: cm-kobo-10hd-twrp-3.0.2.0-r2.img
Other: drm patch download (forum post)

Unofficial Cyanogenmod Zips
Recovery Images
Kernel Zips
Original ROM

Issues

Global Issues

  • Random system lockup
  • DRM module not working correctly
  • VPN service not working (kernel missing vpn uid routing, patch forthcoming)
  • Smart cover partially enabled (does not sleep with covered, but wakes when uncovered, kernel controls this somewhere)
  • Notification lights broken (don't currently have the source code to fix this)
  • Sometimes screen constantly wakes up during charge (system trying to suspend indefinitely, but fails while charging)
  • Camera working but lacks compatibility (not every app works well with the camera)
  • Lag in some animations (cpu/gpu/resolution problem)

App Related Issues

  • Geekbench not working
  • Google maps not working

Todo

  • Google play compatibility (autogen build.prop file was not correct)
  • Optimize CPU frequencies for new governor
  • Fix video stuttering
  • Application cleanup
  • Make overclock optional (soft limit on max frequency, reduces heating)
  • Optimize GPU frequencies
  • Fix miscellaneous battery calculations
  • Enable Selinux (maybe not)

Description

Fstab partition map

Mount Point Type Source
1 /recovery emmc /dev/block/platform/sdhci-tegra.3/by-name/SOS
2 /boot emmc /dev/block/platform/sdhci-tegra.3/by-name/LNX
3 /system ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
4 /cache ext4 /dev/block/platform/sdhci-tegra.3/by-name/CAC
5 /misc emmc /dev/block/platform/sdhci-tegra.3/by-name/MSC
6 /staging emmc /dev/block/platform/sdhci-tegra.3/by-name/USP
7 /metadata emmc /dev/block/platform/sdhci-tegra.3/by-name/MDA
8 /data ext4 /dev/block/platform/sdhci-tegra.3/by-name/UDA
9 /sdcard vfat /dev/block/platform/sdhci-tegra.0/by-num/p1

Block partition map

SOS -> /dev/block/mmcblk0p1
DTB -> /dev/block/mmcblk0p2
LNX -> /dev/block/mmcblk0p3
APP -> /dev/block/mmcblk0p4
CAC -> /dev/block/mmcblk0p5
MSC -> /dev/block/mmcblk0p6
USP -> /dev/block/mmcblk0p7
MDA -> /dev/block/mmcblk0p8
UDA -> /dev/block/mmcblk0p9

Proc partitions

Size Source
15392768 mmcblk0
8192 mmcblk0p1 [/recovery]
4096 mmcblk0p2
8192 mmcblk0p3 [/boot]
786432 mmcblk0p4 [/system]
524288 mmcblk0p5 [/cache]
2048 mmcblk0p6 [/misc]
32768 mmcblk0p7 [/staging]
2048 mmcblk0p8 [/metadata]
13993984 mmcblk0p9 [/data]
4096 mmcblk0boot1
4096 mmcblk0boot0

Boot & device tree binary partition hashes

md5sum Block partition
8c39c9dc4470e30168855c02c5b72c8f /dev/block/mmcblk0boot0
89a89de78c55d96c17142ec36ebf3785 /dev/block/mmcblk0boot1
69c4d120061122b7863fb960712f8495 /dev/block/mmcblk0p2

Tweaks

FPS Limit

The system has a default FPS limit (30) to save battery power. Higher FPS is good for bench-marking and smoother performance. Sometimes increasing the FPS limit may result in screen tearing. The FPS limit persists across reboots. It can be set to any desired value;

setprop persist.sys.NV_FPSLIMIT 60
setprop persist.tegra.NV_FPSLIMIT 60

Touch Screen

The touchscreen can be re-calibrated on demand. This re-aligns the sensor coordinates, and may mitigate some touch inaccuracies. The touchscreen is briefly disabled during calibration. To calibrate the touchscreen;

cat /sys/bus/i2c/drivers/fts_ts/1-0038/ftsclb;
cat /sys/bus/i2c/drivers/fts_ts/1-0038/ftsuniformity;

Internal Volume

The system by default does not have the internal speaker and headset volumes set to their maximum output. The internal volume is not the android system volume but the low level audio output. To set both the headphone and speaker output to the maximum internal volume;

alsa_amixer sset Speaker 31
alsa_amixer sset HP 31;

GPU Control

The system has a 2D and 3D gpu that is controlled by a scaling governor called 'pod'. The scaling is sometimes slow. To select other frequencies, the GPUs have to be overridden. Overriding the GPU frequencies automatically disables the 'pod' governor.

To get the available clock rates;

cat /d/clock/c2bus/possible_rates
240000 300000 384000 468000 528000 564000 600000 (kHz)

cat /d/clock/c3bus/possible_rates
204000 252000 324000 408000 (kHz)

To set override the GPU clocks;

echo "1" > /sys/kernel/debug/clock/override.c2bus/state;
echo "600000000" > /sys/kernel/debug/clock/override.c2bus/rate;

echo "1" > /sys/kernel/debug/clock/override.c3bus/state;
echo "408000000" > /sys/kernel/debug/clock/override.c3bus/rate;

CPU Cluster Control

The system has two CPU clusters that are utilized under different conditions. The "G" cluster is the general CPU cluster that includes 4 cores utilizing a large range of frequencies. The "LP" cluster is the low power cluster that consists of a 5th low power shadow core utilizing a select range of frequencies. The "LP" cluster is responsible for flat lining that battery usage, and can allow the system to have almost no battery drain.

To view the active cluster;

cat /sys/kernel/cluster/active

To set the "LP" cluster;

echo "0" > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable;
echo "0" > /sys/devices/system/cpu/cpu1/online;
echo "0" > /sys/devices/system/cpu/cpu2/online;
echo "0" > /sys/devices/system/cpu/cpu3/online;
echo "LP" > /sys/kernel/cluster/active;

To switch back to the "G" cluster, online any of the offline cores to remove the low power condition or re-enable the hotplugging driver.

⚠️ **GitHub.com Fallback** ⚠️