[Q] Rock Chip kernel build fails at mkkrnlimg binary - Android Q&A, Help & Troubleshooting

Hi,
I am trying to build a kernel for rochchip tablet. When I compile the kernel using "make -j4 kernel.img", I am getting the following error.
HTML:
GEN drivers/video/rockchip/screen/lcd.h
Kernel: arch/arm/boot/Image is ready
<path>/kernel/mkkrnlimg: <path>/kernel/mkkrnlimg: cannot execute binary file
make: *** [kernel.img] Error 126
I understood that it is the problem compiling the binary mkkrnlimg. It is an ELF file which has to be compiled on MAC 10.9. Could some one please tell me how to fix it. I already had elf.h added to bin/include. It didn't help
Thanks

Related

(Q) First time Compiling

Ok, I setup my 2 build boxes. One Ubuntu 11.10x64 and one Mint 11x86. Installed required packages and downloaded multiple toolchains. I have tried compiling on both machines and on both I get the same errors.
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
make: *** Waiting for unfinished jobs....
CHK include/linux/version.h
I have tried make thunderc_perf_defconfig and get the same error. Copied .config from device dropped into source, same error.
Any ideas on what is going on? I'm new to this so any help would be great.
I don't known, maybe gcc
try checking your mount options?
Nope its not gcc; as I said I have installed all required packages including gcc + bison etc. My mount options? Is that the "export ARCH=arm" ? Where I have to set the default compiler? I'm new to the newer flavors of linux. The last distro I used was Mandrake 7.1 ;-) Now I am testing this on 2 builds; an x64 Ubuntu and a x86 Mint(Which is Ubuntu). I have to be missing something on both, but I have followed tutorials guides to the T and still get this error. I get more errors than this by the way. The compiler kicks back Kconfig saying unexpected line of code.
SgtPropain said:
Ok, I setup my 2 build boxes. One Ubuntu 11.10x64 and one Mint 11x86. Installed required packages and downloaded multiple toolchains. I have tried compiling on both machines and on both I get the same errors.
make[2]: *** [silentoldconfig] Error 1
make[1]: *** [silentoldconfig] Error 2
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
make: *** Waiting for unfinished jobs....
CHK include/linux/version.h
I have tried make thunderc_perf_defconfig and get the same error. Copied .config from device dropped into source, same error.
Any ideas on what is going on? I'm new to this so any help would be great.
Click to expand...
Click to collapse
I ran a search on your error message about the missing rule to make auto.conf and found this:
https://bbs.archlinux.org/viewtopic.php?id=99089
It relates to the other poster's comment about checking your mount options. It's a short process to fix it.
And if it doesn't work maybe it will at least give you a new error message to research.
glarepate said:
I ran a search on your error message about the missing rule to make auto.conf and found this:
https://bbs.archlinux.org/viewtopic.php?id=99089
It relates to the other poster's comment about checking your mount options. It's a short process to fix it.
And if it doesn't work maybe it will at least give you a new error message to research.
Click to expand...
Click to collapse
just as i thought. that might have happened. its worth a try though.
SgtPropain said:
Nope its not gcc; as I said I have installed all required packages including gcc + bison etc. My mount options? Is that the "export ARCH=arm" ? Where I have to set the default compiler? I'm new to the newer flavors of linux. The last distro I used was Mandrake 7.1 ;-) Now I am testing this on 2 builds; an x64 Ubuntu and a x86 Mint(Which is Ubuntu). I have to be missing something on both, but I have followed tutorials guides to the T and still get this error. I get more errors than this by the way. The compiler kicks back Kconfig saying unexpected line of code.
Click to expand...
Click to collapse
Wrong...
Because you don't have .config file in the source. If you are building kernel from source, you must have the kernel config. That kernel config can be shared in the source code, it depends on that kernel developer, he can shared it in arch/arm/config, access to there then find that kernel defconfig. Or you can get the kernel config of that kernel with another method, but this method just can be applied if the kernel you want to build is for our device: flash that kernel then go to terminal then type:
Code:
su
(Accept the super user)
Code:
cp /proc/config.gz /sdcard
If it show "No such file or directory found" so you should ask that kernel developer for their .config.
If it doesn't show anything, go to sdcard and find if there is a file that named config.gz, it's the kernel config. Get back to terminal then type:
cd /sdcard
gunzip config.gz
Voila!
I actually tried that already.... I have been at this for about three days. XDA was my last resort as I like to figure things out on my own. However I'm stuck @ a brick wall. I have edited /etc/fstab and removed the bs mount options..remounted same error. Mind you I'm doing most of this from a Virtual Environment. Starting to think this is my issue, but it doesn't explain the same error on machine #2. Maybe I'm doing it right, possibly a bad git clone?
thachtunganh said:
Wrong...
Because you don't have .config file in the source. If you are building kernel from source, you must have the kernel config. That kernel config can be shared in the source code, it depends on that kernel developer, he can shared it in arch/arm/config, access to there then find that kernel defconfig. Or you can get the kernel config of that kernel with another method, but this method just can be applied if the kernel you want to build is for our device: flash that kernel then go to terminal then type:
Code:
su
(Accept the super user)
Code:
cp /proc/config.gz /sdcard
If it show "No such file or directory found" so you should ask that kernel developer for their .config.
If it doesn't show anything, go to sdcard and find if there is a file that named config.gz, it's the kernel config. Get back to terminal then type:
cd /sdcard
gunzip config.gz
Voila!
Click to expand...
Click to collapse
Yeah that would be great if I hadn't done that already. In my post I stated I had replaced the .config from my device. I have literately tried everything but doing this from base. IE not from a VM. I appreciate the help but its a "no go".
Beginning of my .config for proof
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.32.9-ck2
# Wed Apr 11 20:41:44 2012
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
CONFIG_GENERIC_GPIO=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_KTIME_SCALAR=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_CPUFREQ=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_VECTORS_BASE=0xffff0000
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
CONFIG_CONSTRUCTORS=y
Setting up a third independent machine Ubuntu x86 testing..
where do you get that .config from?
pull /proc/config.gz
SgtPropain said:
pull /proc/config.gz
Click to expand...
Click to collapse
What device are you using, and what kernel are you using.
for the time being you can use prebuilt kernel...no need to build kernel from source....
williamcharles said:
for the time being you can use prebuilt kernel...no need to build kernel from source....
Click to expand...
Click to collapse
He isn't building ROM from source. He is learning how to build a kernel from source.
Sorry for the delay; had 2 deaths in the family.
I setup my third box and again I get the same results. I really don't know where I'm going wrong. This kinda makes me lean to, I have bad source code. I'm no pro C programmer; however when building I get Kconfig errors. I opened said file and the comments look all messed up. The compiler I think is reading the comments as code and kicking it back giving me this error.
by the way what are you compiling and please teach me compiling i want to learn it .
I'm compiling a modified kernel for the Optimus V. I can't teach you how to compile because I don't even know if I'm doing it right.

[Q] Make dist build from AOKP source

Hello there,
I am trying to build a custom ROM for Samsung P3113 based on AOKP source on the jb branch. I was able to make "unofficial" release using "brunch aokp_p3113". However, when I attempted to make a distribution release, the "make -j4 dist" failed. The following are the commands I used:
. build/envsetup.sh
lunch aokp_p3113-userdebug
make -j4 dist
I got the following error messages:
device/moto/stingray/recovery/recovery_ui.cpp:22:20: fatal error: device.h: No such file or directory compilation terminated.
make: *** [out/target/product/p3113/obj/STATIC_LIBRARIES/librecovery_ui_stingray_intermediates/recovery_ui.o] Error 1
Can someone help? By the way, I don't need to build OTA package.
Found root cause
Found the root cause -
All the three header files needed by recovery_ui.cpp are missing. To workaround, I excluded the stingray recovery from the make, and the problem solved.
Hopefully, someone in the AOKP team will add the missing files to repository.

[Q] compiling kernel for MT6589...! ( PLEASE HELP )

I'm trying to compile a rom for micromax a116 and I'm having trouble with the kernel sources... The sources don't have a defconfig file.. Its very different from other samsung device sources that I've seen before..
Sources :
https://github.com/zeetherocker/android_device_micromax_a116
https://github.com/zeetherocker/android_vendor_micromax_a116
https://github.com/zeetherocker/android_kernel_micromax_a116
When I try to compile it gives me error..!!
And I googled about it and found that these kernels have to be pre-built or something using these instructions...
Code:
Set toolchain path and compile with this command: TARGET_PRODUCT=wiko TARGET_BUILD_VARIANT=user MTK_ROOT_CUSTOM=../mediatek/custom/ make
and then patch zImage using mkimage tool located in mediatek/build/tools using this command: ./mkimage zImage KERNEL > zImage_patched
Repack zImage_patched with stock ramdisk to get boot.img.
Strip all built modules: make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=./out/wiko/system INSTALL_MOD_DIR=./out/wiko/system android_modules_install
And then flash boot.img + modules from kernel/out/system/lib/modules !
I'm having troubles with those commands...
The first command TARGET_PRODUCT=wiko TARGET_BUILD_VARIANT=user MTK_ROOT_CUSTOM=../mediatek/custom/ make
Gave me an error : make: *** No targets specified and no makefile found. Stop.
I don't know how to build this kernel
And even if I build it...I don't know how to use this pre-built kernel to build my rom...
Thanks in advance...

(Solved) Need help to compile stock kernel

Hi All,
I need some help to compile Sony stock kernel for my Xperia ZU on Ubuntu 15.04. I downloaded the latest source from sony developer site:
14.5.A.0.270.tar.bz2
and downloaded Doomlord's pre-built tool chain from:
https://github.com/DooMLoRD/android_prebuilt_toolchains.git
and exported the path with arm-linux-androideabi-4.7:
export CROSS_COMPILE=/home/vishwas/android/android_prebuilt_toolchains/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-
Compilation started with:
make clean && make mrproper
Then, defconfig for Togari:
make ARCH=arm CROSS_COMPILE=$CROSS_COMPILE rhine_togari_row_defconfig
and then compiled kernel using:
make ARCH=arm CROSS_COMPILE=$CROSS_COMPILE -j4
I get error as:
Code:
MODPOST vmlinux.o
ERROR: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
To build the kernel despite the mismatches, build with:
'make CONFIG_NO_ERROR_ON_MISMATCH=y'
(NOTE: This is not recommended)
/home/vishwas/android/14.5.A.0.270/kernel/scripts/Makefile.modpost:98: recipe for target 'vmlinux.o' failed
make[1]: *** [vmlinux.o] Error 1
Makefile:936: recipe for target 'vmlinux.o' failed
make: *** [vmlinux.o] Error 2
If I compile with "CONFIG_NO_ERROR_ON_MISMATCH=y", then there is no error in compilation:
make ARCH=arm CROSS_COMPILE=$CROSS_COMPILE CONFIG_NO_ERROR_ON_MISMATCH=y -j4
But, I am not sure this is correct or not.
Can anyone please help me on solving issue related to 'vmlinux.o' ?
Edit: The issue was with toolchain. After pulling the arm-eabi-4.7 tool chain from git and using it resolved the issue:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.7
Thanks
Can anyone please help me with the equivalent command to compile kernel for Sony Xperia Z ultra (C6802) 5.0.2 stock kernel, below command I got for Sony Xperia S for JB:
python mkelf.py -o kernel.elf [email protected] [email protected],ramdisk [email protected],rpm
Or, will above command work with Sony Xperia ZU 5.0.2 as well ?
Edit: Never mind, got the DoomLord's link to compile kernel.
Thanks

[HELP][SOLVED]Errors while building from source

I am trying to port AOSPA marshmallow-caf (paranoid android) to victara and i cant get past these 2
1.
Code:
frameworks/base/packages/StatementService/src/com/android/statementservice/DirectStatementService.java:149: error: cannot access OkCacheContainer
mHttpResponseCache = HttpResponseCache.install(httpCacheDir, HTTP_CACHE_SIZE_IN_BYTES);
^
class file for com.android.okhttp.OkCacheContainer not found
1 error
make: *** [build/core/java.mk:394: out/target/common/obj/APPS/StatementService_intermediates/classes-full-debug.jar] Error 41
i tried building for the bacon using device trees and vendor stuff from official aospa repos but it also throws this error so i think its not device specific.
2.
Secondly the kernel is not compiling its throwing section mismatch error
Code:
ERROR: modpost: Found 11 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
To build the kernel despite the mismatches, build with:
'make CONFIG_NO_ERROR_ON_MISMATCH=y'
(NOTE: This is not recommended)
i am using the CM kernel sources and defconfig
On googling someone suggested to change toolchains so switched to the one provided in AOSPA manifest (namely eabi-4.8 toolchain in google aosp repos , revision android-r16) previously i was using UBERTC arm-eabi-4.8.
But the exact same error popped up and the exact same file vmlinux.o
Interestingly the kernel is built successfully if i build it separately outside the AOSPA tree , or if i build it inside resurrection remix source tree , with both the toolchains .
Also since i mentioned bacon previously , bacon's kernel doesn't throw this error.
EDIT :
I reverted this
the kernel compiled without section mismatches but i encountered
Code:
The present kernel configuration has modules disabled.
Type 'make config' and enable loadable module support.
Then build a kernel with module support enabled.
make[2]: *** [modules] Error 1
make[1]: *** [sub-make] Error 2
i think this and this were responsible
i tried compiling with
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
and got the bootimg
so i guess kernel is done
but the class file not found error remains
Ok so i was able to fix the class file not found error also
The problem was that i was using jdk8 i switched to jdk7 and it compiled successfully

Categories

Resources