前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Android Linux内核编译

Android Linux内核编译

作者头像
全栈程序员站长
发布2022-07-05 10:18:51
发布2022-07-05 10:18:51
5.3K00
代码可运行
举报
运行总次数:0
代码可运行

平台:

Wind7_64 + Ubuntu12_04_64 + VMware

这里以Android5.0为例:

Android5.0 可以到这里下载: 115网盘礼包码:5lbd7crtk1wz http://115.com/lb/5lbd7crtk1wz

Linux_source_goldfish 可以到这里下载: 115网盘礼包码:5lbd76rru5or http://115.com/lb/5lbd76rru5or

Android5.0的编译可以参考:

遇到的问题

http://www.cnblogs.com/pengdonglin137/p/4197969.html

需要使用openjdk7

代码语言:javascript
代码运行次数:0
运行
复制
apt-get install openjdk-7-jdk apt-get install openjdk-7-jre

编译:

代码语言:javascript
代码运行次数:0
运行
复制
root@ubuntu:~/work/android/android5/android-5.0# . build/envsetup.sh including device/moto/shamu/vendorsetup.sh including device/samsung/manta/vendorsetup.sh including device/generic/mini-emulator-x86/vendorsetup.sh including device/generic/mini-emulator-arm64/vendorsetup.sh including device/generic/mini-emulator-mips/vendorsetup.sh including device/generic/mini-emulator-x86_64/vendorsetup.sh including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh including device/lge/mako/vendorsetup.sh including device/lge/hammerhead/vendorsetup.sh including device/asus/tilapia/vendorsetup.sh including device/asus/deb/vendorsetup.sh including device/asus/grouper/vendorsetup.sh including device/asus/flo/vendorsetup.sh including device/asus/fugu/vendorsetup.sh including sdk/bash_completion/adb.bash root@ubuntu:~/work/android/android5/android-5.0# choosecombo Build type choices are: 1. release 2. debug Which would you like? [1] 1 Which product would you like? [full] Variant choices are: 1. user 2. userdebug 3. eng Which would you like? [eng] ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=5.0 TARGET_PRODUCT=full TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a TARGET_CPU_VARIANT=generic TARGET_2ND_ARCH= TARGET_2ND_ARCH_VARIANT= TARGET_2ND_CPU_VARIANT= HOST_ARCH=x86_64 HOST_OS=linux HOST_OS_EXTRA=Linux-3.5.0-23-generic-x86_64-with-Ubuntu-12.04-precise HOST_BUILD_TYPE=release BUILD_ID=LRX21M OUT_DIR=out
============================================ root@ubuntu:~/work/android/android5/android-5.0# make 

编译完成后,设置工具链路径,为编译内核方便:

代码语言:javascript
代码运行次数:0
运行
复制
export PATH=$PATH:/root/work/android/android-5.0/prebuilts/gcc/linux-x86/arm/arm-eabi-4.8/bin

编译内核:

下载内核后,解压

代码语言:javascript
代码运行次数:0
运行
复制
root@ubuntu:~/work/android/android5/goldfish# git branch -a master remotes/origin/HEAD -> origin/master remotes/origin/android-3.10 remotes/origin/android-3.4 remotes/origin/android-goldfish-2.6.29 remotes/origin/android-goldfish-3.10 remotes/origin/android-goldfish-3.4 remotes/origin/linux-goldfish-3.0-wip remotes/origin/master

由于Android5.0的模拟器使用的内核是3.4(可以用模拟器自带的内核启动一个模拟器,然后看一下内核版本 cat /proc/version ), 所以我们也是用3.4:

代码语言:javascript
代码运行次数:0
运行
复制
root@ubuntu:~/work/android/android5/goldfish# git checkout remotes/origin/android-goldfish-3.4 -b linux-3.4

然后修改Makefile

代码语言:javascript
代码运行次数:0
运行
复制
ARCH        ?= arm CROSS_COMPILE ?= arm-eabi-

配置内核

代码语言:javascript
代码运行次数:0
运行
复制
root@ubuntu:~/work/android/android5/goldfish# make goldfish_armv7_defconfig

注意:这个默认的内核并没有配置模块加载功能,需要执行make menuconfig设置,否则无法编译和加载内核模块

编译内核

代码语言:javascript
代码运行次数:0
运行
复制
make zImage -j2

用我们编出的内核启动模拟器:

代码语言:javascript
代码运行次数:0
运行
复制
root@ubuntu:~/work/android/android5/android-5.0# emulator64-arm -kernel ../goldfish/arch/arm/boot/zImage

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/109593.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年9月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档