Android内核编译、调试环境配置

前言:2014-08-30记录在hi baidu上,现在移过来

前提:JDK、SDK都已配置OK!

一、使用git下载,执行命令

cd ~/Android/AndroidKernel

git clone https://android.googlesource.com/kernel/goldfish.git

大约有600多MB,如果有稳定的代理把https换成http。

二、获取源码,我这里获取的是3.4的源码

cd goldfish     

git branch -a   会列出goldfish内核所有的版本

git checkout -t remotes/origin/android-goldfish-3.4 -b goldfish3.4 

三、获取交叉编译工具

cd ..

git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6

四、编译内核

1. export刚才下载的交叉编译工具的目录到$PATH中:

    export PATH=$PATH:~/Android/AndroidKernel/arm-eabi-4.6/bin

2. 修改goldfish目录下Makefile文件:

    # ARCH ?= (SUBARCH)
    # CROSS_COMPILE?= 
    ARCH              ?= arm
    CROSS_COMPILE     ?= arm-eabi-

3. 编译

    make ARCH=arm goldfish_defconfig (或者:make ARCH=arm goldfish_armv7_defconfig)

    make ARCH=arm menuconfig (修改配置选项)

    进入内核配置界面,勾选下列选项
    [*] Kernel hacking
         [*] Compile the kernel with debug info
         [*] KGDB: kernel debugging with remote gdb --->   (这个我始终没找到)
         [*] Enable dynamic printk() call support

    make


编译成功:
    OBJCOPY arch/arm/boot/zImage
    Kernel: arch/arm/boot/zImage is ready

五、加载刚编译的内核

  1. 启动模拟器加载内核

    emulator -show-kernel -kernel ~/Android/AndroidKernel/goldfish/arch/arm/boot/zImage @Android2.3 -no-skin -logcat *:v -qemu

  2. 新打开一个Terminal查看内核版本

    adb devices
    adb shell
    cat /proc/version

六、启动arm-eabi-gdb调试内核

  1. 启动一个带监听端口的模拟器

    emulator -show-kernel -kernel ~/Android/AndroidKernel/goldfish/arch/arm/boot/zImage @Android2.3 -no-skin -logcat *:v -qemu -gdb tcp::12345,ipv4

  2. 新打开一个Terminal用于调试,执行以下命令

    export PATH=$PATH:~/Android/AndroidKernel/arm-eabi-4.6/bin/arm-eabi-gdb

    target remote localhost:12345 接下来就可以调试了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章