Instaed of updating the other LuPuS kernel thread as Multiboot i'm posting multiboot kernel here on its own thread so any questions problems can be asked and anwsered here, As I don't have the device I'm asking all of you to help eachother out, if or when I can;t respond. Multiboot was created by CosmicDan on the Xperia PLAY thread big props to him for getting this working. I'm just proting it to your ARC & ARCS.
Please read this thread fully before flashing this kernel.
#include /* * Your warranty is now void.. LOL I guess you knew it already. * * I am not responsible for bricked devices, dead SD cards, * thermonuclear war, you getting dumped or you getting fired because your phone * bootloops and alarm does not go off. Please do some research if you have any * concerns about features included in my kernel before using it! YOU and only * YOU are choosing to make these modifications. */ #if You have a question post it in the thread, Instead of Pm'ing me, as other users may experience you problems #endif
Multiboot Aware Info
Ok so first off you must make ROMS multiboot aware by editing the updater-script.
Do NOT install a ROM ZIP in Slot 2 or 3 until it is marked "multiboot-aware". [/U]Otherwise the ROM will format/install to your internal, no matter *what* you do[/B]
To make the changes ill give an example of PACMan ROM
mount("yaffs2", "MTD", "system", "/system"); package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh"); package_extract_file("system/bin/backuptool.functions", "/tmp/backuptool.functions"); set_perm(0, 0, 0777, "/tmp/backuptool.sh"); set_perm(0, 0, 0644, "/tmp/backuptool.functions"); run_program("/tmp/backuptool.sh", "backup"); unmount("/system"); show_progress(0.500000, 0); format("yaffs2", "MTD", "system", "0", "/system"); mount("yaffs2", "MTD", "system", "/system"); package_extract_dir("system", "/system"); symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf"); symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf"); symlink("busybox", "/system/xbin/[", "/system/xbin/[[", "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash", "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
show_progress(0.500000, 0); run_program("/sbin/busybox", "mount", "/system"); run_program("/sbin/busybox", "rm", "-Rf", "/system/*"); package_extract_dir("system", "/system"); symlink("Roboto-Bold.ttf", "/system/fonts/DroidSans-Bold.ttf"); symlink("Roboto-Regular.ttf", "/system/fonts/DroidSans.ttf"); symlink("busybox", "/system/xbin/[", "/system/xbin/[[", "/system/xbin/adjtimex", "/system/xbin/arp", "/system/xbin/ash", "/system/xbin/awk", "/system/xbin/base64", "/system/xbin/basename",
Its just this that needs to be changed the above is an example so people dont get confused
format("yaffs2", "MTD", "system", "0", "/system"); mount("yaffs2", "MTD", "system", "/system");
run_program("/sbin/busybox", "mount", "/system"); run_program("/sbin/busybox", "rm", "-Rf", "/system/*");
- Native App2SD is broken and unreliable. I have tried to fix it but I don't know why it's happening. Do yourself a favor and switch to Link2SD with an ext partition - it's faster, more reliable and allows sharing apps between different slots. (Tip: After installing Link2SD, use it's settings to change 'Default Install Location' to 'Internal' to stop Android ROM from installing apps on SDCard automatically)
- If your ROM has a "Reboot to Recovery" option, using it will load a broken Recovery where no mounts work. I can't fix this, so simply don't use it (just use Vol-Down on normal reboot).
After you made the changes to the ROMS updater script that ROM can now be flashed in Slot 2 or Slot 3.
To get around a ROM not being multiboot aware (if you want to install it in Slot 2 or 3), simply install in Internal (Slot 1) as normal, then set up the second or third slot with "Copy from Internal" instead of "Blank". Then of course you can reformat and reinstall on Internal.
Make sure your SDCard is free of errors. Do a "CHKDSK /f x:" (Check for Errors on x drive and auto-fix) in Windows. Also do this again if you do a battery pull or get hard-reboot in slot 2 or 3 (I will try to add options for this later, see Future Plans section at bottom).
To delete a slot, manually remove the system2/userdata2 (for slot 2) IMG files from the root of your SDCard (will add a maintenance menu option later to do this).
*Never* unmount SDCard in Recovery for Slot 2 and 3. But Mounting USB Storage is 100% fine.
...can't think of anything else right now.
First-time users - Enter Multiboot Menu (Vol-Down key) and go to Internal > Recovery, then format system, data and cache before doing anything else. Very important.
Added Io-schedulers --
- - Noop
Added Governors --
- - lagfree
- + the 5or6 that are there with FXP
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up
CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.
When screen is off, frequency is locked to global scaling minimum frequency
Virtuous is a modded smartassV2 which gives even more battery time then smartassV2
Intellidemand - Thanks to faux123
This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,
and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.
Intellidemand does not jump to highest frequency when screen is off.
Lazy - Thanks to Ezekeel
The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.
Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state
on a step overriding sampling interval.
Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always
select the maximum frequency while the screen is off.
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
A "superbad" super smooth rendition of a highly optimized "smartass" governor!
A "slightly more agressive smart" optimized governor!
- -SLQB - (SLAB allocator with Queue)-(both)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).
- CosmicDan - For the amazing MultiBoot
FXP - Jerpelea - Sources
DooMLoRD - Everything he's done for Xperia
Sinkster - For testing
tempest918 - For the New Logo
Anyone else I have left out
Post 2 Contains Downloads And Changelogs / Whats Included
Kernel Sources Branch jellybean