GithubHelp home page GithubHelp logo

electroperf / android_kernel_asus_sdm660-lto Goto Github PK

View Code? Open in Web Editor NEW
8.0 1.0 5.0 992.46 MB

msm-4.4 GPL Kernel Source for Asus SDM660 Family Device ( X00TD, X01BD ) with Full GCC LTO Support.

License: Other

Makefile 0.27% Shell 0.07% C 97.76% Assembly 1.58% C++ 0.03% Perl 0.17% Awk 0.01% Python 0.06% GDB 0.01% Yacc 0.02% Lex 0.01% UnrealScript 0.01% SmPL 0.02% Gherkin 0.01% XS 0.01% Raku 0.01% Roff 0.01% Clojure 0.01% M4 0.01%
kernel asus x00td x01bd electroperf

android_kernel_asus_sdm660-lto's Introduction

Build Guide And Info

Supported Devices

- Asus Zenfone Max Pro M1 (X00T, XOOTD, ASUS_X00TD)
- Asus Zenfone Max Pro M2 (X01BD, X01BDA, ASUS_X01BD)

Default Defconfigs

- Asus Zenfone Max Pro M1 -> asus/X00TD_defconfig symlinked to X00TD_defconfig
- Asus Zenfone Max Pro M2 -> asus/X01BD_defconfig symlinked to X01BD_defconfig

Inline Builds(For Including Along With ROM)

  1. Make sure this commit for enabling inline kernel compilation with newer versions of GCC exists in vendor/<rom> of the source as we will be a using GCC 12 unlike deprecated GCC 4.9 synced from AOSP git, else cherry-pick it.
  2. In your device tree, navigate to BoardConfig makefile
- Drop TARGET_KERNEL_CLANG_COMPILE flag
- Enable TARGET_KERNEL_NEW_GCC_COMPILE flag
  1. Now Clone Eva GCC from @mvaisakh's github
  • Trace through dependencies by adding the followong to rom.dependencies
  {
    "remote": "github",
    "repository": "mvaisakh/gcc-arm64",
    "target_path": "prebuilts/gcc/linux-x86/aarch64/aarch64-elf",
    "branch": "gcc-master"
  },
  {
    "remote": "github",
    "repository": "mvaisakh/gcc-arm",
    "target_path": "prebuilts/gcc/linux-x86/arm/arm-eabi",
    "branch": "gcc-master"
  }
  • Else, just add the following to vendorsetup.sh
# Eva GCC
git clone --depth=1 https://github.com/mvaisakh/gcc-arm64.git -b gcc-master prebuilts/gcc/linux-x86/aarch64/aarch64-elf
git clone --depth=1 https://github.com/mvaisakh/gcc-arm.git -b gcc-master prebuilts/gcc/linux-x86/arm/arm-eabi
  1. Incase you run into the following error during the build:-
[  2% 1811/62106] Building Kernel Image (Image.gz-dtb)
FAILED: /home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ/arch/arm64/boot/Image.gz-dtb
/bin/bash -c "(PATH=/home/workspace/citric/out/host/linux-x86/bin:\$PATH PATH=/home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-/bin:\$PATH PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/bin:\$PATH LD_LIBRARY_PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/lib:\$LD_LIBRARY_PATH PERL5LIB=/home/workspace/citric/prebuilts/tools-citric/common/perl-base BISON_PKGDATADIR=/home/workspace/citric/prebuilts/build-tools/common/bison /home/workspace/citric/prebuilts/build-tools/linux-x86/bin/make  -j8 CFLAGS_MODULE=\"-fno-pic\" CPATH=\"/usr/include:/usr/include/x86_64-linux-gnu\" HOSTCFLAGS=\"-fuse-ld=lld\" HOSTLDFLAGS=\"-L/usr/lib/x86_64-linux-gnu -L/usr/lib64 -fuse-ld=lld\" HOSTCC=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang HOSTCXX=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++ LEX=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/flex YACC=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/bison M4=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/m4 -C kernel/asus/sdm660 O=/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ ARCH=arm64 CROSS_COMPILE=\"/usr/bin/ccache /home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-\" CROSS_COMPILE_ARM32=\"/home/workspace/citric/prebuilts/gcc/linux-x86/arm/arm-eabi/bin/arm-eabi-\"    Image.gz-dtb ) && (if grep -q '^CONFIG_OF=y' /home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ/.config; then                   echo \"Building DTBs\";                         PATH=/home/workspace/citric/out/host/linux-x86/bin:\$PATH PATH=/home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-/bin:\$PATH PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/bin:\$PATH LD_LIBRARY_PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/lib:\$LD_LIBRARY_PATH PERL5LIB=/home/workspace/citric/prebuilts/tools-citric/common/perl-base BISON_PKGDATADIR=/home/workspace/citric/prebuilts/build-tools/common/bison /home/workspace/citric/prebuilts/build-tools/linux-x86/bin/make  -j8 CFLAGS_MODULE=\"-fno-pic\" CPATH=\"/usr/include:/usr/include/x86_64-linux-gnu\" HOSTCFLAGS=\"-fuse-ld=lld\" HOSTLDFLAGS=\"-L/usr/lib/x86_64-linux-gnu -L/usr/lib64 -fuse-ld=lld\" HOSTCC=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang HOSTCXX=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++ LEX=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/flex YACC=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/bison M4=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/m4 -C kernel/asus/sdm660 O=/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ ARCH=arm64 CROSS_COMPILE=\"/usr/bin/ccache /home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-\" CROSS_COMPILE_ARM32=\"/home/workspace/citric/prebuilts/gcc/linux-x86/arm/arm-eabi/bin/arm-eabi-\"    dtbs;             fi ) && (if grep -q '=m' /home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ/.config; then                         echo \"Building Kernel Modules\";                       PATH=/home/workspace/citric/out/host/linux-x86/bin:\$PATH PATH=/home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-/bin:\$PATH PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/bin:\$PATH LD_LIBRARY_PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/lib:\$LD_LIBRARY_PATH PERL5LIB=/home/workspace/citric/prebuilts/tools-citric/common/perl-base BISON_PKGDATADIR=/home/workspace/citric/prebuilts/build-tools/common/bison /home/workspace/citric/prebuilts/build-tools/linux-x86/bin/make  -j8 CFLAGS_MODULE=\"-fno-pic\" CPATH=\"/usr/include:/usr/include/x86_64-linux-gnu\" HOSTCFLAGS=\"-fuse-ld=lld\" HOSTLDFLAGS=\"-L/usr/lib/x86_64-linux-gnu -L/usr/lib64 -fuse-ld=lld\" HOSTCC=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang HOSTCXX=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++ LEX=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/flex YACC=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/bison M4=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/m4 -C kernel/asus/sdm660 O=/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ ARCH=arm64 CROSS_COMPILE=\"/usr/bin/ccache /home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-\" CROSS_COMPILE_ARM32=\"/home/workspace/citric/prebuilts/gcc/linux-x86/arm/arm-eabi/bin/arm-eabi-\"    modules || exit \"\$?\";                  echo \"Installing Kernel Modules\";                     PATH=/home/workspace/citric/out/host/linux-x86/bin:\$PATH PATH=/home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-/bin:\$PATH PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/bin:\$PATH LD_LIBRARY_PATH=/home/workspace/citric/prebuilts/tools-citric/linux-x86/lib:\$LD_LIBRARY_PATH PERL5LIB=/home/workspace/citric/prebuilts/tools-citric/common/perl-base BISON_PKGDATADIR=/home/workspace/citric/prebuilts/build-tools/common/bison /home/workspace/citric/prebuilts/build-tools/linux-x86/bin/make  -j8 CFLAGS_MODULE=\"-fno-pic\" CPATH=\"/usr/include:/usr/include/x86_64-linux-gnu\" HOSTCFLAGS=\"-fuse-ld=lld\" HOSTLDFLAGS=\"-L/usr/lib/x86_64-linux-gnu -L/usr/lib64 -fuse-ld=lld\" HOSTCC=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang HOSTCXX=/home/workspace/citric/prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang++ LEX=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/flex YACC=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/bison M4=/home/workspace/citric/prebuilts/build-tools/linux-x86/bin/m4 -C kernel/asus/sdm660 O=/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ ARCH=arm64 CROSS_COMPILE=\"/usr/bin/ccache /home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/aarch64-elf-\" CROSS_COMPILE_ARM32=\"/home/workspace/citric/prebuilts/gcc/linux-x86/arm/arm-eabi/bin/arm-eabi-\"    INSTALL_MOD_PATH=/home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/kernel_modules_intermediates INSTALL_MOD_STRIP=1 modules_install;                        kernel_release=\$(cat /home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ/include/config/kernel.release)                   kernel_modules_dir=/home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/kernel_modules_intermediates/lib/modules/\$kernel_release                       ;   modules=\$(find \$kernel_modules_dir -type f -name '*.ko');                      (    mkdir -p /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules ) && (cp \$modules /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules/ ) && (rm -rf /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates ) && (mkdir -p /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0/vendor/lib/modules ) && (cp \$modules /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0/vendor/lib/modules ) && (/home/workspace/citric/out/host/linux-x86/bin/depmod -b /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates 0.0 ) && (sed -e 's/\\(.*modules.*\\):/\\/\\1:/g' -e 's/ \\([^ ]*modules[^ ]*\\)/ \\/\\1/g' /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0/modules.dep > /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules/modules.dep ) && (cp /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0/modules.softdep /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules ) && (cp /home/workspace/citric/out/target/product/X01BD/obj/PACKAGING/depmod_vendor_intermediates/lib/modules/0.0/modules.alias /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules ) && (rm -f /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules/modules.load ) && (for MODULE in ; do basename \$MODULE >> /home/workspace/citric/out/target/product/X01BD/vendor/lib/modules/modules.load; done);                                      fi )"
make: Entering directory '/home/workspace/citric/kernel/asus/sdm660'
make[1]: Entering directory '/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ'
  SLNTOLD include/config/auto.conf
  GEN     ./Makefile
  CHK     include/config/kernel.release
  GEN     ./Makefile
  CHK     include/generated/uapi/linux/version.h
  Using /home/workspace/citric/kernel/asus/sdm660 as source for kernel
  CHK     scripts/mod/devicetable-offsets.h
  CHK     include/generated/utsrelease.h
  CHK     include/generated/timeconst.h
  CHK     include/generated/bounds.h
  CHK     include/generated/asm-offsets.h
  CALL    /home/workspace/citric/kernel/asus/sdm660/scripts/checksyscalls.sh
  LD      arch/arm64/kernel/vdso/vdso.so.dbg
/home/workspace/citric/prebuilts/gcc/linux-x86/aarch64/aarch64-elf/bin/../lib/gcc/aarch64-elf/12.0.0/../../../../aarch64-elf/bin/ld: unrecognised emulation mode: aarch64linux
Supported emulations: aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb
collect2: error: ld returned 1 exit status
make[2]: *** [/home/workspace/citric/kernel/asus/sdm660/arch/arm64/kernel/vdso/Makefile:47: arch/arm64/kernel/vdso/vdso.so.dbg] Error 1
make[1]: *** [arch/arm64/Makefile:200: vdso_prepare] Error 2
make[1]: Leaving directory '/home/workspace/citric/out/target/product/X01BD/obj/KERNEL_OBJ'
make: *** [Makefile:152: sub-make] Error 2
make: Leaving directory '/home/workspace/citric/kernel/asus/sdm660'
13:05:45 ninja failed with: exit status
  • Then your vendor/<rom/> is missing this commit which intentionally points out the 32-bit GCC Path for vdso32 compilation. Cherry-pick it and the build should run without any hassle now.

Standalone Builds

  1. Clone this source into ~/Kernel directory of your workspace.
  2. Run the script as per your device
- For Asus Zenfone Max Pro M1 -> bash X00TD.sh
- For Asus Zenfone Max Pro M2 -> bash X01BD.sh
  1. Once the builds are finished, you will find the recovery flashable zip at ~/Kernel/AnyKernel3 directory of your workspace.

Note

- Incase you face any bugs or errors, then create a github issue innthe repository tab with proper logs.
- Check commit history for more changelogs.
- There wont be any UC, UV variant or messed up display refresh rate variant.
- The released variants are little bit OC'ed to avoid the UI LAGS AND APP OPENING STUTTERS.
- Only Android R and S is supported. For Android Q, roms which are based on LineageOS or Android Q ports like OxygenOS and MIUI only booted.
- Dont blame the kernel if your battery charging speed isnt going up coz its you who cause it to heat already by doing heavy stuffs.

Credits

android_kernel_asus_sdm660-lto's People

Contributors

acmel avatar adrianbunk avatar airlied avatar alexdeucher avatar arndb avatar axellin avatar bigguiness avatar broonie avatar bzolnier avatar danvet avatar davem330 avatar dhowells avatar ebiederm avatar geertu avatar gregkh avatar herbertx avatar htejun avatar ickle avatar jmberg-intel avatar joeperches avatar larsclausen avatar lnxbuild avatar mchehab avatar morimoto avatar olofj avatar pmundt avatar ralfbaechle avatar rddunlap avatar tiwai avatar torvalds avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

android_kernel_asus_sdm660-lto's Issues

OS Not Booting

Hi

I flashed this kernel with the latest Havoc OS. After reboot Havoc OS keeps loading but doesn't completely boot - boot logo loading and loading and loading. Can you help?

LTO error

aarch64-elf-ar:unit/main.o: plugin needed to handle lto object

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.