Ubuntu20编译Aosp内核

Ubuntu20编译Aosp内核


前言

目标机型:Pixel3 XL

AOSP版本:android-10.0.0_r2

内核版本:android-msm-crosshatch-4.9-android10

编译环境:Ubuntu20.04.5,CPU:8C,内存:8G,交换区:8G

问题记录:

​ 官方在android-msm-crosshatch-4.9-android10内核代码中彻底删除了build/build.sh编译,为给Pixel3 XL 编译Aosp10的内核源码,本博客拷贝android-msm-crosshatch-4.9-android12内核源码的build/build.sh文件使用,能编译成功。

一、下载内核

  • 根据官网链接 :https://source.android.google.cn/docs/setup/build/building-kernels?hl=zh-cn,目前Pixel3 XL支持推荐的内核版本是 android-msm-crosshatch-4.9-android12,低于该版本的内核,彻底删除了build/build.sh编译。
    在这里插入图片描述

  • 按如下步骤下载 Aosp10 的内核源码:

    mkdir asop10-kernel & cd asop10-kernel
    curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/bi
Ubuntu 24.04 上编译 AOSP 时,执行 `lunch` 命令失败可能由多种原因引起。以下是一些常见的问题及其解决方案: ### 常见原因及解决方案 #### 1. **依赖库缺失** AOSP 编译环境对系统依赖库有严格要求。如果缺少某些必要的库,`lunch` 命令可能会失败。可以通过以下命令安装缺失的依赖项: ```bash sudo apt-get update sudo apt-get install -y libgl1-mesa-dev x11proto-core-dev libx11-dev \ libgl1-mesa-glx libegl1-mesa-dev libwayland-dev libxkbcommon-dev \ libgl1 libgl1-mesa-glx libglapi-mesa libglvnd0 libglx0 \ libgles2-mesa-dev libgl1-mesa-dri libgl1-mesa-glx:i386 ``` #### 2. **Python 版本问题** `lunch` 命令依赖 Python,如果系统中未正确设置 Python 环境,可能会导致失败。确保使用的是 Python 3,并设置默认 Python 版本: ```bash sudo apt-get install -y python-is-python3 ``` #### 3. **环境变量配置错误** AOSP 编译需要正确设置 `JAVA_HOME` 和 `PATH` 环境变量。确保已安装 JDK,并在 `.bashrc` 或 `.zshrc` 中添加以下内容: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH ``` 然后执行以下命令使配置生效: ```bash source ~/.bashrc ``` #### 4. **内核版本不兼容** Ubuntu 24.04 默认使用较新的内核版本,而 AOSP 编译环境可能对内核版本有要求。可以尝试切换到较旧的内核版本,例如 4.15.0-39-generic: ```bash sudo apt-cache search linux-image sudo apt-get install -y linux-image-4.15.0-39-generic ``` 安装完成后,重启系统并选择新安装的内核版本。 #### 5. **文件系统权限问题** 确保当前用户有权限访问 AOSP 源码目录。可以通过以下命令更改目录权限: ```bash sudo chown -R $USER:$USER /path/to/aosp ``` #### 6. **磁盘空间不足** 编译 AOSP 需要大量的磁盘空间。确保磁盘空间充足,通常建议至少 250GB 的可用空间。 #### 7. **模拟器相关问题** 如果 `lunch` 命令与模拟器相关部分失败,可能是由于缺少 `emulator` 工具。可以通过以下命令安装: ```bash sudo apt-get install -y android-tools-emulator ``` #### 8. **环境初始化问题** 确保已正确初始化 AOSP 代码库,并使用了正确的分支。可以尝试重新初始化 repo: ```bash repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0-r41 repo sync ``` ### 总结 在 Ubuntu 24.04 上编译 AOSP 时,执行 `lunch` 命令失败的原因可能包括依赖库缺失、Python 版本问题、环境变量配置错误、内核版本不兼容、文件系统权限问题、磁盘空间不足、模拟器相关问题等。通过逐一排查这些问题,通常可以解决 `lunch` 命令失败的问题。 如果以上方法未能解决问题,建议检查 AOSP 的官方文档或社区讨论,以获取更多针对性的帮助。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值