You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu22.04编译Android内核遇openssl/opensslv.h缺失错误求解决

Ubuntu 22.04编译Android内核openssl头文件缺失问题解决办法

问题详情

编译时触发如下错误:

/LineageOS/LinageOS/kernel/xiaomi/nitrogen/scripts/sign-file.c:23:30: fatal error: openssl/opensslv.h: No such file or directory
 #include <openssl/opensslv.h>

已确认libssl-dev为最新版本(3.0.2-0ubuntu1.6),安装openssl也无法解决。

可行解决步骤

  • 手动指定头文件与库路径
    Ubuntu 22.04的OpenSSL 3.x头文件路径可能未被内核编译脚本识别,编译时直接传入路径参数:

    make EXTRA_CFLAGS="-I/usr/include/openssl" EXTRA_LDFLAGS="-L/usr/lib/x86_64-linux-gnu/"
    

    也可以修改内核目录下的Makefile,添加上述参数到对应变量中,避免每次编译重复输入。

  • 安装OpenSSL 1.x兼容开发包
    部分旧版Android内核仅支持OpenSSL 1.x,Ubuntu 22.04可手动下载安装兼容包:

    wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2.20_amd64.deb
    wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl-dev_1.1.1f-1ubuntu2.20_amd64.deb
    sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2.20_amd64.deb libssl-dev_1.1.1f-1ubuntu2.20_amd64.deb
    

    安装完成后重新执行编译流程。

  • 修正头文件引用路径
    先通过命令查找系统中opensslv.h的实际位置:

    find /usr/include -name opensslv.h
    

    找到路径后,编辑sign-file.c,将#include <openssl/opensslv.h>替换为实际路径(例如#include <openssl3/openssl/opensslv.h>)。

  • 关闭模块签名验证配置
    若不需要模块签名,可临时关闭该功能:

    1. 执行make menuconfig进入内核配置界面
    2. 找到Enable loadable module support -> Module signature verification,取消勾选
    3. 保存配置后重新编译内核

内容的提问来源于stack exchange,提问作者Ethan Xie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 21:45:36