[KERNEL][AOSP/Samsung/Ports][ArchiToolchain 5.2.0][1/10/15]ArchiKernel V2.1[GT-I9300]
Thread originale : ArchiKernel
Basato sulle fonti Samsung Update14 (Non sulle smdk4x12)
Linux 3.0.31
Compilato con Linaro 4.9.2 gnueabihf toolchain
Ottimizzazioni ArchiDroid
Compatibile con tutti le ROM sia AOSP che Samsung
E molte altre cose impressionanti che non hanno tempo di elencare
Quote:
- Fully optimized for Samsung Galaxy S3 (-marm -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp)
- Compiled with O3 optimization level (-O3)
- Performed interprocedural pointer analysis and interprocedural modification and reference analysis (-fipa-pta)
- Performed loop invariant motion on trees. It also moved operands of conditions that are invariant out of the loop, so that we can use just trivial invariantness analysis in loop unswitching. The pass also includes store motion (-ftree-loop-im)
- Created a canonical counter for number of iterations in loops for which determining number of iterations requires complicated analysis. Later optimizations then may determine the number easily (-ftree-loop-ivcanon)
- Performed induction variable optimizations (strength reduction, induction variable merging and induction variable elimination) on trees (-fivopts)
- Tried to reduce the number of symbolic address calculations by using shared “anchor” symbols to address nearby objects. This transformation can help to reduce the number of GOT entries and GOT accesses on some targets (-fsection-anchors)
- Assumed that loop indices do not overflow, and that loops with nontrivial exit condition are not infinite. This enables a wider range of loop optimizations even if the loop optimizer itself cannot prove that these assumptions are valid (-funsafe-loop-optimizations)
- Moved branches with loop invariant conditions out of the loop (-funswitch-loops)
- Attempted to avoid false dependencies in scheduled code by making use of registers left over after register allocation. This optimization most benefits processors with lots of registers (-frename-registers)
- Re-ran common subexpression elimination after loop optimizations are performed (-frerun-cse-after-loop)
- Didn't keep the frame pointer in a register for functions that don't need one. This avoids the instructions to save, set up and restore frame pointers; it also makes an extra register available in many functions (-fomit-frame-pointer)
- Made a redundant load elimination pass performed after reload. The purpose of this pass is to clean up redundant spilling (-fgcse-after-reload)
- Ran a store motion pass after global common subexpression elimination. This pass attempts to move stores out of loops (-fgcse-sm)
- Eliminated redundant loads that come after stores to the same memory location, both partial and full redundancies (-fgcse-las)
- Constructed webs as commonly used for register allocation purposes and assigned each web individual pseudo register. This allows the register allocation pass to operate on pseudos directly, but also strengthens several other optimization passes, such as CSE, loop optimizer and trivial dead code remover (-fweb)
- Performed tail duplication to enlarge superblock size. This transformation simplifies the control flow of the function allowing other optimizations to do a better job (-ftracer)
NOTE IMPORTANTI:
1. Non installare sulla linea precedente di ArchiKernel (1.X) o su qualsiasi altro kernel custom. Installare SOLO su kernel stock o sulle precedenti versioni di test di AK 2.0;
2. AK 2.0 è basato interamente sui sorgenti Samsung del Note II (N7100);
3. Synapse è la nuova app per la gestione dei settaggi e verrà installata insieme al kernel.
AK 2.0 è disponibile in 4 varianti, divise in due categorie: AOSP e Samsung. Le varianti AOSP sono per le ROM AOSP, come CyanogenMod, OmniROM, mentre le varianti Samsung sono per le ROM Samsung, come ROM stock, port dal Note II (N7100), etc.
AOSP:
a) AOSP - Per le ROM AOSP con i blob MALI versione 29. Dovrebbe funzionare con tutte le ROM Lollipop basate sui sorgenti CyanogenMod di JustArchi (ad esempio la ArchiDroid 3.1) e con le altre simili (come la NamelessROM)
b) AOSP-OLD - Per le ROM AOSP con i blob MALI versione 23. Dovrebbe funzionare con le vecchie ROM KitKat come la CyanogenMod 11
Se per caso dovessi selezionare la variante AOSP sbagliata, non preoccuparti, l'unica cosa a cui andresti incontro sarebbe una schermata nera all'avvio della ROM, basta flashare l'altra variante successivamente.
Nota: Entrambe le varianti AOSP hanno abilitato SELinux enforcing. Se il kernel dovesse bloccare l'avvio al logo Samsung Galaxy S3, allora significa che la ROM non ha l'adeguato contesto di sicurezza SELinux (non supporta SELinux enforcing). Siccome è un potenziale problema di sicurezza, JustArchi non ha intenzione di supportare le ROM senza SELinux. L'ultima CM11 e CM12.1 hanno l'adeguato contesto SELinux.
SAMSUNG:
a) SAMSUNG - Per le ROM Samsung con i blob MALI versione 23. Dovrebbe funzionare con tutte le ROM stock di Samsung per i9300, con i port dal Note II (N7100) e derivate
b) SAMSUNG-NEW - Per le ROM Samsung con i blob MALI versione 29. Dovrebbe funzionare con tutte le ROM ported basate sulla ROM del SGS3 coreano (ad esempio la back-to-n00t e derivate)
Come sopra, se dovessi selezionare la variante SAMSUNG sbagliata, basta flashare quella corretta successivamente.
ArchiKernel utilizza il metodo AnyKernel, perciò non ha bisogno di essere aggiornato con update di mantenimento per la ramdisk. Questo è il motivo per cui dovrebbe funzionare con tutte le ROM, anche con quelle non supportate ufficialmente, purchè la variante corrisponda.