[Q] [HELP!!] Kernel Compiling problem - Android Q&A, Help & Troubleshooting

Code:
make: *** No rule to make target `device_user_defconfig'. Stop.
when trying to "make device_user_defconfig"
i use the toolchain arm-eabi-4.7 & add the necessary lines in the .bashrc file
Code:
#Android Toolchain PATH
export ARCH=arm
export CCOMPILE=$CROSS_COMPILE
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/home/fracy/android/toolchain/bin/
i'm in root of kernel folder when i execute command
i'm new here and also new to kernel compiling please help
finally i got zImage!!

Related

problem with compiling kernel

i've downloaded the toolchain linaro and extracted in
home/username/android/toolchain/linaro
the suorce on:
home/username/android/maguro
did this command
Code:
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=/home/antonio/android/toolchains/linaro/bin/arm-eabi-
make tuna_defconfig
but have this error:
Code:
HOSTCC scripts/basic/fixdep
/bin/sh: 1: ccache: not found
make[1]: *** [scripts/basic/fixdep] Errore 127
make: *** [scripts_basic] Errore 2
how can i resolve???
apt-get install ccache
looks like you didn't have that command. install it
gbcbooks said:
apt-get install ccache
looks like you didn't have that command. install it
Click to expand...
Click to collapse
thanks it worked
this can be closed
Closed on OP's request.

[Q] Building CM from source problem (lunch not found)

I'm trying to port CM10 to my Pipo M8 RK3066 tablet.
I have followed alot of guides but I need some help: (I will edit the thread with all the problem I encounter).
Kubuntu 12.10 x64 running on VM
Here is what I did so far:
Android-SDK is installed in /opt/...
Code:
$ mkdir -p ~/bin
$ mkdir -p ~/android/system
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin
$ cd ~/android/system/
$ repo init -u git://github.com/CyanogenMod/android.git -b jellybean
$ repo sync -j4
$ cd ~/android/system/vendor/cm
$ ./get-prebuilts
$ make -j4 otatools
+Extract boot.img from running device with dump_image
$ build/tools/device/mkvendor.sh pipo m8 /your/path/to/my/boot.img
lunch was not found, fixed with:
Code:
$ . build/envsetup.sh
New problem:
Code:
Construct recovery from boot
mkdir -p /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/
target Jar: bouncycastle (/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/javalib.jar)
PATH=/home/mexus/android/system/out/host/linux-x86/bin:$PATH /home/mexus/android/system/out/host/linux-x86/bin/imgdiff /home/mexus/android/system/out/target/product/m8/boot.img /home/mexus/android/system/out/target/product/m8/recovery.img /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p
target SharedLib: libutils (/home/mexus/android/system/out/target/product/m8/obj/SHARED_LIBRARIES/libutils_intermediates/LINKED/libutils.so)
[COLOR="Red"]Error: footer size 2130427508 != decompressed size 71179
failed to break apart source image[/COLOR]
make: *** [/home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p] Error 1
make: *** Waiting for unfinished jobs....
'/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.dex' as 'classes.dex'...
[email protected]:~/android/system$
If it is asking you to install python then I would do so because python is one of the required packages for building Android. Make sure you use python version 2.6.x-2.7.x not python version 3 because it is not compatible with the current build system. Also can you post a log of the error message your getting?
Sent from my SCH-I535 using xda premium
shimp208 said:
If it is asking you to install python then I would do so because python is one of the required packages for building Android. Make sure you use python version 2.6.x-2.7.x not python version 3 because it is not compatible with the current build system. Also can you post a log of the error message your getting?
Sent from my SCH-I535 using xda premium
Click to expand...
Click to collapse
python is installed. I'm talking about python-lunch (it's nowhere mentioned in the guides)
mexusbg said:
python is installed. I'm talking about python-lunch (it's nowhere mentioned in the guides)
Click to expand...
Click to collapse
You should install it anyway.
Sent with my Sonic Screwdriver
Wolf Pup said:
You should install it anyway.
Sent with my Sonic Screwdriver
Click to expand...
Click to collapse
After python-lunch is installed:
Code:
mexu[email protected]:~/android/system$ build/tools/device/mkvendor.sh pipo m8 /home/mexus/boot.img
Arguments: pipo m8 /home/mexus/boot.img
Output will be in /home/mexus/android/system/device/pipo/m8
7908 blocks
Done!
Use the following command to set up your build environment:
lunch full_m8-eng
And use the follwowing command to build a recovery:
. build/tools/device/makerecoveries.sh full_m8-eng
[U][COLOR="Red"][email protected]:~/android/system$ lunch full_m8-eng
No such file: full_m8-eng[/COLOR][/U]
[email protected]:~/android/system$
lunch was not found, fixed with:
Code:
$ . build/envsetup.sh
New problem:
Code:
Construct recovery from boot
mkdir -p /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/
target Jar: bouncycastle (/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/javalib.jar)
PATH=/home/mexus/android/system/out/host/linux-x86/bin:$PATH /home/mexus/android/system/out/host/linux-x86/bin/imgdiff /home/mexus/android/system/out/target/product/m8/boot.img /home/mexus/android/system/out/target/product/m8/recovery.img /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p
target SharedLib: libutils (/home/mexus/android/system/out/target/product/m8/obj/SHARED_LIBRARIES/libutils_intermediates/LINKED/libutils.so)
[COLOR="Red"]Error: footer size 2130427508 != decompressed size 71179
failed to break apart source image[/COLOR]
make: *** [/home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p] Error 1
make: *** Waiting for unfinished jobs....
'/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.dex' as 'classes.dex'...
[email protected]:~/android/system$
mexusbg said:
lunch was not found, fixed with:
Code:
$ . build/envsetup.sh
New problem:
Code:
Construct recovery from boot
mkdir -p /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/
target Jar: bouncycastle (/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/javalib.jar)
PATH=/home/mexus/android/system/out/host/linux-x86/bin:$PATH /home/mexus/android/system/out/host/linux-x86/bin/imgdiff /home/mexus/android/system/out/target/product/m8/boot.img /home/mexus/android/system/out/target/product/m8/recovery.img /home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p
target SharedLib: libutils (/home/mexus/android/system/out/target/product/m8/obj/SHARED_LIBRARIES/libutils_intermediates/LINKED/libutils.so)
[COLOR="Red"]Error: footer size 2130427508 != decompressed size 71179
failed to break apart source image[/COLOR]
make: *** [/home/mexus/android/system/out/target/product/m8/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p] Error 1
make: *** Waiting for unfinished jobs....
'/home/mexus/android/system/out/target/common/obj/JAVA_LIBRARIES/bouncycastle_intermediates/classes.dex' as 'classes.dex'...
[email protected]:~/android/system$
Click to expand...
Click to collapse
hi
could you resolve above error
if yes then how

Help with zImage kernel compilation

This is my first time trying to compile my own kernel, i am dealing some problems and need help
i get these messages when executing the commang "make"
CHK include/linux/version.h
SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC kernel/bounds.s
CC scripts/mod/empty.o
arm-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
arm-linux-gnueabi-gcc: error trying to exec 'cc1make[1]: *** [kernel/bounds.s] Error 1
': execvp: make: *** [prepare0] Error 2
make: No such file or directory
*** Waiting for unfinished jobs....make[2]:
*** [scripts/mod/empty.o] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
i red quite many webpages and i follow this guides
http://lanrat.com/how-to-compile-a-linux-kernel-for-android/
http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
i am running ubuntu 14.04 lts 64 bit. i am trying to compile kernel 2.6.32 for s3c6410. old chipset but even if brick it i do not care much
any help ?
spkraul said:
This is my first time trying to compile my own kernel, i am dealing some problems and need help
i get these messages when executing the commang "make"
CHK include/linux/version.h
SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC kernel/bounds.s
CC scripts/mod/empty.o
arm-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
arm-linux-gnueabi-gcc: error trying to exec 'cc1make[1]: *** [kernel/bounds.s] Error 1
': execvp: make: *** [prepare0] Error 2
make: No such file or directory
*** Waiting for unfinished jobs....make[2]:
*** [scripts/mod/empty.o] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
i red quite many webpages and i follow this guides
http://lanrat.com/how-to-compile-a-linux-kernel-for-android/
http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
i am running ubuntu 14.04 lts 64 bit. i am trying to compile kernel 2.6.32 for s3c6410. old chipset but even if brick it i do not care much
any help ?
Click to expand...
Click to collapse
Which toolchain and version of the toolchain are you using? I would recommend checking out this information on someone who ran into the same problem as you and how they fixed it. Let me know if you still have questions.
i execute <<cd linux>>, <<make mrproper>>, <<make V=1 all>> and i get the following messages
[email protected]:~$ cd linux
bash: cd: linux: No such file or directory
[email protected]:~$ make mrproper
make: *** No rule to make target `mrproper'. Stop.
[email protected]:~$ cd /home/alex/o2droid/kern_2.6.32
[email protected]:~/o2droid/kern_2.6.32$ make prproper
make: *** No rule to make target `prproper'. Stop.
[email protected]:~/o2droid/kern_2.6.32$ make V=1 all
set -e; : ' CHK include/linux/version.h'; mkdir -p include/linux/; (echo \#define LINUX_VERSION_CODE 132640; echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' < /home/alex/o2droid/kern_2.6.32/Makefile > include/linux/version.h.tmp; if [ -r include/linux/version.h ] && cmp -s include/linux/version.h include/linux/version.h.tmp; then rm -f include/linux/version.h.tmp; else : ' UPD include/linux/version.h'; mv -f include/linux/version.h.tmp include/linux/version.h; fi
make -f scripts/Makefile.build obj=arch/arm/tools include/asm-arm/mach-types.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
rm -f include/config/kernel.release
echo 2.6.32.9-00163-g4c4becf-dirty > include/config/kernel.release
set -e; : ' CHK include/linux/utsrelease.h'; mkdir -p include/linux/; if [ `echo -n "2.6.32.9-00163-g4c4becf-dirty" | wc -c ` -gt 64 ]; then echo '"2.6.32.9-00163-g4c4becf-dirty" exceeds 64 characters' >&2; exit 1; fi; (echo \#define UTS_RELEASE \"2.6.32.9-00163-g4c4becf-dirty\" < include/config/kernel.release > include/linux/utsrelease.h.tmp; if [ -r include/linux/utsrelease.h ] && cmp -s include/linux/utsrelease.h include/linux/utsrelease.h.tmp; then rm -f include/linux/utsrelease.h.tmp; else : ' UPD include/linux/utsrelease.h'; mv -f include/linux/utsrelease.h.tmp include/linux/utsrelease.h; fi
set -e; if [ -L include/asm ]; then asmlink=`readlink include/asm | cut -d '-' -f 2`; if [ "$asmlink" != "arm" ]; then echo "ERROR: the symlink include/asm points to asm-$asmlink but asm-arm was expected"; echo " set ARCH or save .config and run 'make mrproper' to fix it"; exit 1; fi; test -e $asmlink || rm include/asm; elif [ -d include/asm ]; then echo "ERROR: include/asm is a directory but a symlink was expected"; exit 1; fi
if [ ! -L include/asm ]; then : ' SYMLINK include/asm -> include/asm-arm'; if [ ! -d include/asm-arm ]; then mkdir -p include/asm-arm; fi; ln -fsn asm-arm include/asm; fi
mkdir -p .tmp_versions ; rm -f .tmp_versions/*
make -f scripts/Makefile.build obj=scripts/basic
(cat /dev/null; ) > scripts/basic/modules.order
make -f scripts/Makefile.build obj=.
(cat /dev/null; ) > modules.order
mkdir -p kernel/
/opt/cross/bin/arm-linux-gnueabi-gcc -Wp,-MD,kernel/.bounds.s.d -nostdinc -isystem include -Iinclude -I/home/alex/o2droid/kern_2.6.32/arch/arm/include -include include/linux/autoconf.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-s3c6400/include -Iarch/arm/mach-s3c6410/include -Iarch/arm/plat-s3c64xx/include -Iarch/arm/plat-s3c/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -msoft-float -Uarm -fomit-frame-pointer -g -O3 -marm -march=armv6zk -mfpu=vfp -mtune=arm1176jzf-s -mtune=arm1136j-s -mfloat-abi=softfp -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(bounds)" -D"KBUILD_MODNAME=KBUILD_STR(bounds)" -fverbose-asm -S -o kernel/bounds.s kernel/bounds.c
arm-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
i am using toolchain arm-eabi 4.6
i red the documentation
i have nothing like <<cc1>> under usr/bin
I don't have a /usr/local/libexec directory
i installed anything about cc1 from package manager and still nothing changed.
i did something wrong with <<make menuconfig>> or else ?
i also follow this guide https://github.com/argentinos/o2droid/tree/i8000/kern_2.6.32
i use the wrong toolchain ?
spkraul said:
i am using toolchain arm-eabi 4.6
i red the documentation
i have nothing like <<cc1>> under usr/bin
I don't have a /usr/local/libexec directory
i installed anything about cc1 from package manager and still nothing changed.
i did something wrong with <<make menuconfig>> or else ?
i also follow this guide https://github.com/argentinos/o2droid/tree/i8000/kern_2.6.32
i use the wrong toolchain ?
Click to expand...
Click to collapse
If you follow the guide in the repository that is meant for a pure Linux kernel, what def config under arch/arm/configs did you use?
Try using a procedure similar to the following:
Code:
export TOP= [where you installed the toolchain or top of android AOSP code base]
export PATH=$TOP/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin:$PATH (use corresponding arm-eabi bin path)
export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=arm-eabi-
make NAMEOFDEVICE_defconfig
make -jx (Where x is the number of jobs you want -j4 is a safe option)
i followed your commands and no result yet. same problems
i checked this guide http://ubuntuforums.org/showthread.php?t=2213325
and got the following
[email protected]:~$ arm-none-linux-gnueabi-gcc -print-prog-name=cc1
arm-none-linux-gnueabi-gcc: command not found
[email protected]:~$ arm-linux-gnueabi-gcc -print-prog-name=cc1
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/cc1
[email protected]:~$ arm-linux-gnueabihf-gcc -print-prog-name=cc1
The program 'arm-linux-gnueabihf-gcc' is currently not installed. You can install it by typing:
sudo apt-get install gcc-arm-linux-gnueabihf
[email protected]:~$ dpkg -l | grep '\<gcc'
ii gcc 4:4.8.2-1ubuntu6 amd64 GNU C compiler
ii gcc-4.6 4.6.4-6ubuntu2 amd64 GNU C compiler
ii gcc-4.6-base:amd64 4.6.4-6ubuntu2 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-4.6-base:i386 4.6.4-6ubuntu2 i386 GCC, the GNU Compiler Collection (base package)
ii gcc-4.6-multilib 4.6.4-6ubuntu2 amd64 GNU C compiler (multilib files)
ii gcc-4.7-arm-linux-gnueabi 4.7.3-12ubuntu1cross1.85 amd64 GNU C compiler
ii gcc-4.7-arm-linux-gnueabi-base 4.7.3-12ubuntu1cross1.85 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-4.8 4.8.2-19ubuntu1 amd64 GNU C compiler
ii gcc-4.8-arm-linux-gnueabihf-base 4.8.2-16ubuntu4cross0.11 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-4.8-base:amd64 4.8.2-19ubuntu1 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-4.8-base:i386 4.8.2-19ubuntu1 i386 GCC, the GNU Compiler Collection (base package)
ii gcc-4.8-multilib 4.8.2-19ubuntu1 amd64 GNU C compiler (multilib files)
ii gcc-4.9-base:amd64 4.9-20140406-0ubuntu1 amd64 GCC, the GNU Compiler Collection (base package)
ii gcc-4.9-base:i386 4.9-20140406-0ubuntu1 i386 GCC, the GNU Compiler Collection (base package)
ii gcc-arm-linux-gnueabi 4:4.7.2-1 amd64 The GNU C compiler for armel architecture
ii gcc-multilib 4:4.8.2-1ubuntu6 amd64 GNU C compiler (multilib files)
i am using omniaII_defconfig
upd... i am searching and testing possible solutions, but nothing is working. i stuck on this mistake. cc1 exists on my pc and is executable. i also tried another toolchain 4.4.3 which is considered more compatible, but stuck on the same error again. really driving me crazy. i have too much job to do on the kernel improvement, but if i will never be able to compile it it doasn't worth trying. i appreciate your help. any ideas ?
spkraul said:
upd... i am searching and testing possible solutions, but nothing is working. i stuck on this mistake. cc1 exists on my pc and is executable. i also tried another toolchain 4.4.3 which is considered more compatible, but stuck on the same error again. really driving me crazy. i have too much job to do on the kernel improvement, but if i will never be able to compile it it doasn't worth trying. i appreciate your help. any ideas ?
Click to expand...
Click to collapse
After looking more into it I noticed there is a script included in the files for building the kernel called make_kernel, you should be able to build the kernel running the script, "./make_kernel -k" with the -k option being defined by the script to make the kernel. You may have to tweak the script to suite your build environment.
thanks a lot. i did run the script many times, with many ways. i see some compilation being done, but i always after a few minutes i end with the message "Error ... kernel not compiled!"
i guess some code errors cause it, but how to locate them and fix them under millions of programming lines ?
i red that before being able to compile a kernel and before this kernle is funtional you must fix many errors and deal many problems, but i am not sure how difficult this is going to be in my case.
i always get messages of this type " warning: variable ‘*’ set but not used [-Wunused-but-set-variable]
"
you follow any specific procedure to deal with these errors ?
spkraul said:
thanks a lot. i did run the script many times, with many ways. i see some compilation being done, but i always after a few minutes i end with the message "Error ... kernel not compiled!"
i guess some code errors cause it, but how to locate them and fix them under millions of programming lines ?
i red that before being able to compile a kernel and before this kernle is funtional you must fix many errors and deal many problems, but i am not sure how difficult this is going to be in my case.
i always get messages of this type " warning: variable ‘*’ set but not used [-Wunused-but-set-variable]
"
you follow any specific procedure to deal with these errors ?
Click to expand...
Click to collapse
In the error messages you will see what file the error is in and which line the error occurs going to that file and line(s) the error occurred at is the best place to start. Instead of using the script take the commands in the script and do them manually in the order the script would execute them in, until you get an error you can troubleshoot or it compiles successfully.

[HELP]Error while compiling kernel for Micromax N8216

I am trying to compile a kernel for Micromax N8216.
I entered the following commands in the terminal:
Code:
export SOURCE_DIR=~/my_top_dir/kernel
export OBJ_DIR=~/my_top_dir/kernel/out/arch/arm
make -C $SOURCE_DIR ARCH=arm64 CROSS_COMPILE=~/aarch64-linux-android-4.9/bin/aarch64-linux-android- O=$OBJ_DIR defconfig
make -C $SOURCE_DIR ARCH=arm64 CROSS_COMPILE=~/aarch64-linux-android-4.9/bin/aarch64-linux-android- O=$OBJ_DIR KCFLAGS=-mno-android headers_install
make -C $SOURCE_DIR ARCH=arm64 CROSS_COMPILE=~/aarch64-linux-android-4.9/bin/aarch64-linux-android- O=$OBJ_DIR KCFLAGS=-mno-android -j8
After the last command I am getting the following error
Code:
*** No rule to make target 'dtbo_check', needed by 'dtbs'. Stop.
It is also shown in the attached screenshot.
How can I fix it?
Bump
Bump
Bump
Bump
Bump

Kernel compile failes

I have installed Linux Mint 19.3 Cinnamon (Kernel 5.3.0-40-generic) with 8 GB ram and an i5-8265U. But i also got the same error on my PC at home that's running on Ubuntu 19.10 with an Ryzen 5 3600 and 16 GB ram.
As toolchain have i installed on both machines the android nougat-aarch64 toolchain version 4.9 (android googlesource com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/nougat-release.tar.gz)
I want to compile the kernel for the Wiko View. So i downloaded the source code, of the Wiko View 32GB, from wiko's site (wikogeek com) and i followed the instructions of the BUILD-INSTRUCTIONS-WORKINGPROGRESS.txt, which is located inside the archive.
The BUILD-INSTRUCTIONS-WORKINGPROGRESS.txt content
Code:
These are the instructions to rebuilding the source code for the Lenny 3 device.
In the archive you will find sources for:
* Linux kernel
* platform
* toolchain
First of all, install Ubuntu 12.04 (64 bit)
It is recommended to use the prebuilt toolchain from Google, which can be downloaded from:
https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/master.tar.gz
Create a directory (for example: /tmp/toolchain ) and unpack the prebuilt toolchain:
1. Rebuilding kernel:
Create a directory (for example: /tmp/toolchain ) and unpack the prebuilt toolchain:
$ mkdir -p /tmp/toolchain
$ wget 'https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/+archive/master.tar.gz'
$ tar -zxvf aarch64-linux-android-4.9-master.tar.gz -C /tmp/toolchain
unpack kernel for rebuild
Must keep the kernel-3.18 and vendor in the same dir
$ tar -zxvf kernel-3.18.tar.gz
$ cd kernel/msm-3.18
$ gedit Makefile
Then modify the top level Makefile to set the right prefix for the cross compiler. Specifically, change
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
to
CROSS_COMPILE ?= /tmp/toolchain/aarch64-linux-android-4.9-master/bin/aarch64-linux-android-
(or wherever your toolchain is located)
$ export TARGET_BUILD_VARIANT=user
$ export ARCH=arm64
$ mkdir out
$ make O=out TARGET_ARCH=arm64 v12bnlite-perf_defconfig
$ make O=out TARGET_ARCH=arm64
Output files:
Kernel: out/arch/arm64/boot/Image.gz or Image.gz-dtb
module: out/drivers/*/*.ko
How to clean
$ make clean
2. Rebuilding Mobule for Platform
It is only for modules are needed to using Android build system.
Please check its own install information under its folder for other module.
First install build envirment
$ sudo apt-get install git gnupg flex bison gperf build-essential \
zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386
$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
install JDK 1.8
$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk
install repo
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
Get android open source: version info - Android 7.1.0
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
$ git config --global user.name "Your Name"
$ git config --global user.email "[email protected]"
$ repo init -u https://android.googlesource.com/platform/manifest -b android-7.1.0_r1
$ repo sync
Copy module that you want to build - to original android open source
If same module exist in android open source, you should replace it. (no overwrite)
Use the android build method to rebuild every module
$ cd WORKING_DIRECTORY
$ source build/envsetup.sh
$ lunch aosp_arm-user
$ make -j4
3.Rebuilding the toolchain
To rebuild the toolchain please follow the instructions as provided by Google.
Everything worked, but when i execute the last command (make O=out TARGET_ARCH=arm64) it failes with missing separator in the Makefile
Log:
Code:
mika ~ mika-HP-Laptop-15-da1xxx ~ Documents > code > view-source > kernel > msm-3.18 > $ make O=out TARGET_ARCH=arm64
. . .
LD drivers/idle/built-in.o
../drivers/input/Makefile:34: --singyue-user----CONFIG_TINNO_FINGERPRINT2_N--------------y--
../drivers/input/Makefile:36: --singyue-user------------------Fingerprint2-N---
/home/mika/Documents/code/view-source/kernel/msm-3.18/vendor/tinno/Fingerprint2-N/kernel_macro_cfg:14: -- v12bnlite -- wik_fr -- msm8937 -- elan_96sa silead_6163 --
CC drivers/input/input.o
CC drivers/input/input-compat.o
CC drivers/input/input-mt.o
CC drivers/input/ff-core.o
LD drivers/input/input-core.o
CC drivers/input/mousedev.o
CC drivers/input/evdev.o
../drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/Makefile:11: ---------------fingerprint_supprot--elan_96sa silead_6163--------------
CC drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/elan_96sa/elan_fp_qsee.o
LD drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/elan_96sa/built-in.o
CC drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/fp_drv/fp_drv.o
LD drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/fp_drv/built-in.o
CC drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/silead_6163/slspi_qsee.o
LD drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/silead_6163/built-in.o
LD drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/built-in.o
CC drivers/input/joystick/xpad.o
LD drivers/input/joystick/built-in.o
CC drivers/input/keyboard/atkbd.o
CC drivers/input/keyboard/gpio_keys.o
LD drivers/input/keyboard/built-in.o
CC drivers/input/misc/gpio_event.o
CC drivers/input/misc/gpio_matrix.o
CC drivers/input/misc/gpio_input.o
CC drivers/input/misc/gpio_output.o
CC drivers/input/misc/gpio_axis.o
CC drivers/input/misc/keychord.o
CC drivers/input/misc/uinput.o
CC drivers/input/misc/hall_sensor.o
LD drivers/input/misc/built-in.o
LD drivers/input/tablet/built-in.o
CC drivers/input/touchscreen/of_touchscreen.o
CC drivers/input/touchscreen/gen_vkeys.o
../drivers/input/touchscreen/ft5364i/Makefile:11: *** missing separator. Stop.
../scripts/Makefile.build:402: recipe for target 'drivers/input/touchscreen/ft5364i' failed
make[4]: *** [drivers/input/touchscreen/ft5364i] Error 2
../scripts/Makefile.build:402: recipe for target 'drivers/input/touchscreen' failed
make[3]: *** [drivers/input/touchscreen] Error 2
../scripts/Makefile.build:402: recipe for target 'drivers/input' failed
make[2]: *** [drivers/input] Error 2
/home/mika/Documents/code/view-source/kernel/msm-3.18/Makefile:946: recipe for target 'drivers' failed
make[1]: *** [drivers] Error 2
make[1]: Leaving directory '/home/mika/Documents/code/view-source/kernel/msm-3.18/out'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
So i changed the "drivers/input/touchscreen/ft5364i/Makefile" from:
Code:
#
# Makefile for the input core drivers.
#
# Each configuration option enables a list of files.
obj-$(CONFIG_TOUCHSCREEN_FT5364I) += fts_ts.o
#obj-y += fts_ts.o
fts_ts-y += focaltech_core.o focaltech_ctl.o focaltech_ex_fun.o focaltech_gesture.o focaltech_flash.o
extlibs :=$(PWD)/drivers/input/touchscreen/ft5364i/ft_gesture_64bit_lib_v1.0_20140820.a
ldflagobj-y += fts_ts.o
obj-y s-y +=--whole-archive $(extlibs) --no-whole-archive
to:
Code:
#
# Makefile for the input core drivers.
#
# Each configuration option enables a list of files.
all:
[TAB]obj-$(CONFIG_TOUCHSCREEN_FT5364I) += fts_ts.o
[TAB]#obj-y += fts_ts.o
[TAB]fts_ts-y += focaltech_core.o focaltech_ctl.o focaltech_ex_fun.o focaltech_gesture.o focaltech_flash.o
[TAB]extlibs :=$(PWD)/drivers/input/touchscreen/ft5364i/ft_gesture_64bit_lib_v1.0_20140820.a
[TAB]ldflagobj-y += fts_ts.o
[TAB]obj-y s-y +=--whole-archive $(extlibs) --no-whole-archive
But now i get an error, that he can't find an file, but i don't know why the file will not be compiled.
Log:
Code:
mika ~ mika-HP-Laptop-15-da1xxx ~ Documents > code > view-source > kernel > msm-3.18 > $ make O=out TARGET_ARCH=arm64
make[1]: Entering directory '/home/mika/Documents/code/view-source/kernel/msm-3.18/out'
CHK include/config/kernel.release
Using .. as source for kernel
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CALL ../scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
../drivers/input/Makefile:34: --singyue-user----CONFIG_TINNO_FINGERPRINT2_N--------------y--
../drivers/input/Makefile:36: --singyue-user------------------Fingerprint2-N---
/home/mika/Documents/code/view-source/kernel/msm-3.18/vendor/tinno/Fingerprint2-N/kernel_macro_cfg:14: -- v12bnlite -- wik_fr -- msm8937 -- elan_96sa silead_6163 --
../drivers/input/../../../../vendor/tinno/Fingerprint2-N/KERNEL/qcom/kernel-3.18/drivers/input/fingerprint/Makefile:11: ---------------fingerprint_supprot--elan_96sa silead_6163--------------
CC drivers/input/touchscreen/tgesture/tgesture.o
LD drivers/input/touchscreen/tgesture/built-in.o
CC drivers/input/touchscreen/high_sensitive.o
LD drivers/input/touchscreen/built-in.o
/home/mika/aarch64-nougat-build-tools/bin/aarch64-linux-android-ld: cannot find drivers/input/touchscreen/ft5364i/built-in.o: No such file or directory
../scripts/Makefile.build:336: recipe for target 'drivers/input/touchscreen/built-in.o' failed
make[4]: *** [drivers/input/touchscreen/built-in.o] Error 1
../scripts/Makefile.build:402: recipe for target 'drivers/input/touchscreen' failed
make[3]: *** [drivers/input/touchscreen] Error 2
../scripts/Makefile.build:402: recipe for target 'drivers/input' failed
make[2]: *** [drivers/input] Error 2
/home/mika/Documents/code/view-source/kernel/msm-3.18/Makefile:946: recipe for target 'drivers' failed
make[1]: *** [drivers] Error 2
make[1]: Leaving directory '/home/mika/Documents/code/view-source/kernel/msm-3.18/out'
Makefile:145: recipe for target 'sub-make' failed
make: *** [sub-make] Error 2
Dose someone know why the error occurs.

Categories

Resources