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 接下來就可以調試了!

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