Custom kernel for the Motorola Xoom
LATEST RELEASE: ElementalX-Xoom-2.1 (December 10, 2013)
* Standard disclaimer: * Your warranty is now void. Use at your own risk. * In other words: It is your choice to use this software, * I am not responsible for any damage or problems!
Latest version (requires big part mod):
ElementalX-Xoom-2.1-vanilla (no GPU overclock)
Previous version (for those without the bigpart mod)
ElementalX-Xoom-v1.3_vanilla (no GPU overclock)
ElementalX-Xoom-v1.2_vanilla (no GPU overclock)
Install zip from recovery.
You must have an existing working kernel for the ROM you are using, and you must reflash this kernel whenever you change to a different ROM. The reason is that the universal installer injects the ElementalX kernel into whatever boot.img that is currently installed.
Please hit the Thanks button if you download this
If you really like it, please consider buying me a beer
Actually, I won't spend it on beer. I'm saving it up for my next device
dreamcwli for initial kernel source
TDR, kcrudup, bigrushdog and everyone else who came before me
Works on all Xoom models: wingray, stingray and everest. As of version 1.0, it should work on any ROM. I have tested it on EOS4, My Android, CM10.1, CM10, Baked BB8 and Orca. It should work on others, including Android 4.3
The vanilla version does not overclock the graphics. I recommend using the regular version unless you are specifically having issues due to the overclocked graphics.
The config file is located at /etc/elementalx.conf. You can edit this file to change kernel settings. Whatever is set in this file will take effect when the device is booted. A log file is stored at /data/local/tmp/elementalx.log
I totally revamped sweep2wake. To put the screen to sleep, you now have to swipe along the edges. You can swipe anywhere to turn the screen on. There is a new option for sweep2sleep only.
There is also an option called shortsweep (enabled by default) so you don't have to sweep all the way across the screen. You can turn the shortsweep option off.
Doubletap2wake is another new feature. You can turn the screen on by double tapping anywhere on the screen.
If you are one of those with sleep of death from sweep2wake, you might want to try sweep2sleep only and doubletap2wake disabled. Then you can still sweep your screen to sleep, but the touch driver acts completely as stock during suspend.
All these options can be changed in /etc/elementalx.conf so they are automatically set at boot.
zRam creates a compressed block device in RAM that is used as swap. Although it claims some of your RAM as swap, everything written to swap is compressed. This increases the apparent memory available to the system and helps with multitasking. Swap files on disk are very slow, but with zRam the swap is on RAM so it can be read as quickly as regular memory. Even though the data need to be decompressed, modern CPUs can decompress quicker than if it had to be to read from disk. The penalty is cpu usage, which could drain battery; however, this is likely negligable in daily use. I didn't enable this by default because not everyone will want it. This is for heavy multitaskers and will allow you to quickly switch between more apps and have more tabs open in your browser without refreshes.
zRam is disabled by default. If you want to enable it, edit /etc/elementalx.conf
change ZRAM=0 to ZRAM=1 and reboot.
You can check if zRam is working by typing the command "free" into the terminal. You should see the total used and free swap. If these are all 0, then zRam is not enabled.
Intellidemand is the recommended governor, but there are several to choose from. If your ROM has performance settings, check that your desired governor selected.
Max Screen Off Frequency
You can toggle max screen off and change the max screen off frequency by editing /etc/elementalx.conf.
If you want to edit the settings directly, the sysfs entries are at /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_enabled and /sys/devices/system/cpu/cpu0/cpufreq/screen_off_max_freq
Editing those files doesn't persist after a reboot, if you want the setting to persist, edit /etc/elementalx.conf
If you have instability or reboots while the screen is off, disable max screen off frequency.
There is also optional support for the exFAT filesystem. A module has to be loaded for it to work, it is not loaded by default. The option to load it at boot is in /etc/elementalx.conf
December 10, 2013 - ElementalX-Xoom-2.1
-fix power button
December 9, 2013 - ElementalX-Xoom-2.0
-compatible with bigpart mod
-numerous other changes that hopefully make it snappier
September 14, 2013 - ElementalX-Xoom-v1.3
-optional exFAT support
-disable max screen off frequency by default
April 11, 2013 - ElementalX-Xoom-v1.2
-disable MMC deferred resume (thx cyanogenmod team)
April 7, 2013 - ElementalX-Xoom-v1.1
-fix: boot frequency is max 1000MHz
-add toggle for max screen off
-add adjustable max screen off frequency
April 5, 2013 - ElementalX-Xoom-v1.0
-vanilla version does not overclock graphics (oc version is recommended unless you have problems)
-s2w: choose 1 or 2 finger sweep
-s2w: fixed to ensure only single motion is detected
-add ROW scheduler
-ROW is now default scheduler
-automatic process group scheduling
-added Joe's RCU
-screen off max frequency of 486MHz
-cpu1 off when screen is off
-enable extra CIFS stuff
-avoid loadavg moire
-add arm cpu topology
-universal installer is now fully universal
March 18, 2013 - ElementalX-Xoom-v0.8
-optimized build -O3 Linaro 4.7.3
March 11, 2013 - ElementalX-Xoom-v0.7
-fix nvmap.c warning
-fix init script (was stalling during boot)
March 10, 2013 - ElementalX-Xoom-v0.6
-add kernels for all Xoom subtypes
-add kernels for Cyanogenmod 10.1
-add sweep2wake options in /etc/elementalx.conf
-disable gentle fair sleepers
-speed up framebuffer copy
-use glibc memcpy
-use glibc string
-optimized ARM rwsem algorithm
-lower transition latency:
-readahead set to 2048
-noatime, nodiratime by default
-switch do_fsync() to fget_light()
-disable preemption in machine_shutdown
-remove clock sleepable warning
-Drop GFP_COMP for DMA memory allocations
-use memory compaction
-correct check in dev_addr_del()
-fix 32-bit overflow in get_monotonic_boottime
-enable l2 cache data prefetch
-update tegra i2c
-disable preemption when reading CCSIDR
-use kzalloc instead of kmalloc
-switch to kzalloc/vzalloc
February 16, 2013 - ElementalX-Xoom-v0.5
-patched up to dreamwcli's latest source (wifi tether support)
-added dancedance (credit snuzzo and The Captain)
February 12, 2013 - ElementalX-Xoom-v0.4
-sysfs interface for sweep2wake
-added governors: interactiveX2, smartassv2, intellidemand, lagfree, lionheart
-added zRam with Google snappy compression
-fix init.d support
-add init script and config file
February 12, 2013 - ElementalX-Xoom-v0.2
-tweak overclocking and cpufreq driver
-add GPU overclock
-increase readahead to 1024MB
-allow CPU-supported unaligned accesses
-add NTFS write support
February 11, 2013 - ElementalX-Xoom-v0.1
-Initial release (beta)
-based on dreamcwli kernel http://forum.xda-developers.com/show....php?t=1997434
sweep2wake patch: http://goo.gl/ImX9v