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

xiaoxiao2021-02-28  28

前言: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

五、加载刚编译的内核

启动模拟器加载内核

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

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

adb devices adb shell cat /proc/version

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

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

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

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

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

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

转载请注明原文地址: https://www.6miu.com/read-600193.html

最新回复(0)