aosp kernel for emulator giving error - General Questions and Answers

Hello, when I build the kernel from aosp using the command
BUILD_INITRAMFS=1 BUILD_CONFIG_FRAGMENTS=common-modules/virtual-device/goldfish_defconfig.fragment BUILD_CONFIG=common-modules/virtual-device/build.config.virtual_device.x86_64 build/build.sh
The file goldfish_defconfig.fragment contains only one line
CONFIG_BT_HCIBTUSB=m
After that i try to run the emulator with prebuilt kernel it works. When I try using my built kernel it displays the following
kernel too old to load a ramdisk.
How to solve the problem?
Thank you

Related

[ Q] build kernel from CM7 sources and created cwm zip

Hey all,
I wish to try some modifications I made to the CM7 kernel and I need help building the kernel.
I followed this guide: http://wiki.cyanogenmod.com/wiki/Building_Kernel_from_source
I had to use the code sourcery cross compiler since kernel.org is down.
I have 3 questions:
1. When I build the kernel, the wifi drivers fail to build with an array out of bound exception. I didn't change that code, do I need to do something special to build the wifi drivers? I managed to built the kernel by disabling wifi in the config file.
2. Where can I get CM .config file for crespo kernel? I tried getting it from the latest nightly but /proc/config.gz wasn't there!?!
3. How can I created an cwm flashable zip? I downloaded Anykernel from koush but when trying to flash I get an error saying mount need 4 args. Which branch of anykernel works with Nexus S?
Thx a lot for your help,
Steve
Sent from my Nexus S using Tapatalk
It might be worth sending a PM to mathkid95
Sent from the future to put right what once went wrong.
How to compile a kernel
First, Download the following cross compiler and extract it into your working directory http://minus.com/l0zydfa4ncuQP
Then, cd to your kernel's directory in terminal and then type the following in terminal to compile:
Code:
export PATH=$PATH:/home/your-username/your-working-directory/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/
make ARCH=arm clean
make ARCH=arm herring_defconfig
make -j4 ARCH=arm CROSS_COMPILE=arm-eabi-
The herring_defconfig is the default config file for the nexus s and it in the kernel repo. Also if you are using CM kernel source, the herring_defconfig has been modified.
As for the cwr zip, download one of my any rom kernels extract it. Put the zimage and bcm.ko module in the appropriate folder and zip it.
Sent from my Nexus S
Redd has it haha
Sent from my HTC Sensation 4G using XDA App
This is great. I'll try it out tomorrow. Now that I have all those infos I'm sure everything will go smoothly.
Thanks again!
Sent from my Nexus S using Tapatalk
That worked beautifully!
This is the result: http://forum.xda-developers.com/showthread.php?t=1276278

[Q] Kernel Configuration

I'm trying to get a kernel config file '.config' from an existing kernel....
Besides
Code:
cat /proc/config.gz
and the script.
Code:
extract-ikconfig
is there any other way to get the configuration of a kernel?
(e.g: If an OEM leaves '.config' out of their kernel source.)
Thanks!
I only ask because the config.gz doesn't exist on the device, and extract-ikconfig says
Code:
extract-ikconfig: cannot find kernel config
Which I googled and some results said that it could be because of the compression method, but I even used the 'patched' version from the later 2.6.X kernels. So I doubt its the compression method used in the kernel.
+1
I have this problem with the kernels shipped by my manufacturer. Is there a repository anywhere of known good configs that can be used for reference?

[Q] kernel compilation steps for starters

Hi guys,
I'd like to tinker around a bit with the tiamat or other kernels for the Xoom
are the following steps enough to get it working ?
- clone the repo
- adjust toolchain paths (or create an external script that does it)
- make stingray_defconfig
- make -j2
- test-boot the zImage via fastboot
- if it's successful copy over the kernel-modules & flash the kernel via fastboot
how about an initramfs ?
have I forgotten anything ?
Many thanks in advance for your help !
edit:
slowly understanding how all this works,
still might need some help
I think that will get you started. I'm not an expert, but when I'm tinkering with kernels I pull the proc config strait from the device after flashing the kernel I want to modify. That way I know that the default config is correct. For example, if I wanted to modify the kernel running on an EOS nightly, after cloning the repo I would flash the EOS nightly ROM containing the kernel I want to modify. Then run the following commands to pull the kernel config from the kernel running on my device:
Code:
adb pull /proc/config.gz .
gunzip config.gz
mv config .config
The .config then goes in the root of the kernel source directory. That may do exactly the same thing as the "make defconfig" you mentioned but I just prefer to trust the defaults from the ROM and not the repo.

Problem running emulator with custom kernel

I have downloaded the sources for the goldfish kernel and built it after which I cd into my downloaded AOSP directory and ran build/envsetup.sh and lunch selecting full-eng as my option. At this stage, $ANDROID_PRODUCT_OUT seems to be correct. I then ran "emulator -kernel ~/android-kernel/goldfish/arch/arm/boot/zImage -show-kernel -verbose @CustomAndroid-4.0.3-L15" within the same directory and it ran until this point where it hangs indefinitely:
emulator: autoconfig: -scale 0.737705
serial0 console
emulator: Could not open file: (null)/system/build.prop: No such file or directory
emulator: control console listening on port 5554, ADB on port 5555
emulator: can't connect to ADB server: Connection refused
emulator: ping program: /home/kubuntu/android-sdks/tools/ddms
emulator: ping command: /home/kubuntu/android-sdks/tools/ddms ping emulator 20.0.1.0 "" "" ""
Uncompressing Linux.................................................................................................. done, booting the kernel.
Click to expand...
Click to collapse
Any ideas what went wrong?
Ok I realized that I was building a 2.6 kernel for ICS which needs a 3.0 kernel but when I download either the 3.0 kernel or 3.4 kernel, there isn't a goldfish_defconfig, does anyone know how do I build the kernel for use with the emulator?
anonymous_coward said:
Ok I realized that I was building a 2.6 kernel for ICS which needs a 3.0 kernel but when I download either the 3.0 kernel or 3.4 kernel, there isn't a goldfish_defconfig, does anyone know how do I build the kernel for use with the emulator?
Click to expand...
Click to collapse
wow, i'm stuck here mate. To be honest i would suggest going back to a rom that you could install and run, without a problem.

Kernel compilation/booting troubleshooting for beginners

I've only recently after lot of struggle compiled my first kernel. While the information is still fresh in my mind, I want to share all the problems I encountered and what to do if you are in the same situation.
This guide is mainly for Linux users since that is what I am familiar with.
I've used this amazing guide to learn the basics. If you haven't yet, read it first.
Errors from scripts/gcc-wrapper.py
Open the file and change the first line from
Code:
#! /usr/bin/env python
to
Code:
#! /usr/bin/env python2
Kernel won't compile
* Did you forget to set and export the variables ARCH and CROSS_COMPILE?
* Do you have the right .config file present?
Try extracting the .config file from the original boot kernel and use it instead
* Are you sure you are in the correct branch?
Run git branch inside kernel's source code to verify that
* Are you using a very recent or very old version of the compiler? Some old kernels for example would only compile with gcc-4 but not gcc-7 or 8. Most kernels - at the time of writing - won't compile with gcc-8
Kernel compiles fine but won't boot
* Are you using wrong kernel configuration (.config) ?
* Try different compiler or different compiler version.
I've tried to compile my current with Android's prebuild gcc 4 compiler and it wouldn't boot, switched to gcc 7 and it booted perfectly fine.
Kernel starts but system crashes somewhere during boot
You can enable adb during boot so that you can see what causes the error.
Find this file in your extracted boot image ramdisk/default.prop
Set or update the following values
Code:
ro.adb.secure=0
ro.secure=0
persist.sys.usb.config=adb
Then you can do adb shell logcat or adb shell dmesg to see what is going on
My phone won't boot after flashing my new kernel, how do I boot to recovery?
First of all, you shouldn't have! You should test your new kernel without flashing it using fastboot.
Simply reboot to bootloader then run the command
Code:
fastboot boot /path/to/my/new-image
So what can I do now? Try to reach bootloader screen. the method differs from device to device but it involve pushing certain physical phone buttons while turning on the phone.
Once you are in the bootloader screen, you can do adb fastboot /path/to/twrp-recovery.img or even path to original boot image if you kept a backup.
ramast_ said:
I've only recently after lot of struggle compiled my first kernel. While the information is still fresh in my mind, I want to share all the problems I encountered and what to do if you are in the same situation.
This guide is mainly for Linux users since that is what I am familiar with.
I've used this amazing guide to learn the basics. If you haven't yet, read it first.
Errors from scripts/gcc-wrapper.py
Open the file and change the first line from
Code:
#! /usr/bin/env python
to
Code:
#! /usr/bin/env python2
Kernel won't compile
* Did you forget to set and export the variables ARCH and CROSS_COMPILE?
* Do you have the right .config file present?
Try extracting the .config file from the original boot kernel and use it instead
* Are you sure you are in the correct branch?
Run git branch inside kernel's source code to verify that
* Are you using a very recent or very old version of the compiler? Some old kernels for example would only compile with gcc-4 but not gcc-7 or 8. Most kernels - at the time of writing - won't compile with gcc-8
Kernel compiles fine but won't boot
* Are you using wrong kernel configuration (.config) ?
* Try different compiler or different compiler version.
I've tried to compile my current with Android's prebuild gcc 4 compiler and it wouldn't boot, switched to gcc 7 and it booted perfectly fine.
Kernel starts but system crashes somewhere during boot
You can enable adb during boot so that you can see what causes the error.
Find this file in your extracted boot image ramdisk/default.prop
Set or update the following values
Code:
ro.adb.secure=0
ro.secure=0
persist.sys.usb.config=adb
Then you can do adb shell logcat or adb shell dmesg to see what is going on
My phone won't boot after flashing my new kernel, how do I boot to recovery?
First of all, you shouldn't have! You should test your new kernel without flashing it using fastboot.
Simply reboot to bootloader then run the command
Code:
fastboot boot /path/to/my/new-image
So what can I do now? Try to reach bootloader screen. the method differs from device to device but it involve pushing certain physical phone buttons while turning on the phone.
Once you are in the bootloader screen, you can do adb fastboot /path/to/twrp-recovery.img or even path to original boot image if you kept a backup.
Click to expand...
Click to collapse
good job!
Do you have any general tutorials on kernel optimization?
wangyiling said:
good job!
Do you have any general tutorials on kernel optimization?
Click to expand...
Click to collapse
I am afraid not, sorry. I am just a beginner
@ramast_
The information you provided has solved pretty much all of the problems I was having. We need more content like this. Everything I find about kernel building explains things like you're a Linux expert, where as your post is much more layman friendly. I can't thank you enough for this.
Quick question; which version of Linux do you use?
You are very welcome, happy someone found it useful.
By Linux version I suppose you mean Linux distro (distribution).
I use Gentoo which is certainly not for beginners.
I'd suggest Ubuntu for beginners. Not because it's the best but because it has a very big community and you are more likely to find help when facing any problem.
This article explain how to cross compile arm code (how to compile code so that it can run on an arm device). Should get you started.
Best of luck
Spaceminer said:
@ramast_ I can't thank you enough for this.
Quick question; which version of Linux do you use?
Click to expand...
Click to collapse
ramast_ said:
You are very welcome, happy someone found it useful.
By Linux version I suppose you mean Linux distro (distribution).
I use Gentoo which is certainly not for beginners.
I'd suggest Ubuntu for beginners. Not because it's the best but because it has a very big community and you are more likely to find help when facing any problem.
This article explain how to cross compile arm code (how to compile code so that it can run on an arm device). Should get you started.
Best of luck
Click to expand...
Click to collapse
Thanks again. Distro is what I meant. I was thinking I should use Ubuntu, but I wanted to see what you had to say about it.

Categories

Resources