首页 > 解决方案 > 编译安卓内核

问题描述

我一直在尝试为我的设备编译 android 内核 - OnePlus 8 Pro,但似乎无法让它工作。我已经阅读了多个在线指南并尝试了各种不同的方法,但均无济于事。

我正在 WSL 2 上的 Ubuntu 18.04 下编译内核

我正在使用的 gcc 编译器:https ://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads (主机 X86_64 用于 aarch64)

铿锵声:https ://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+/refs/heads/master/clang-r416183b/

我使用以下命令安装依赖项:

sudo apt-get install git ccache automake flex lzop bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 g++-multilib python-networkx libxml2-utils bzip2 libbz2-dev libbz2-1.0 libghc-bzlib-dev squashfs-tools pngcrush schedtool dpkg-dev liblz4-tool make optipng maven libssl-dev pwgen libswitch-perl policycoreutils minicom libxml-sax-base-perl libxml-simple-perl bc libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev xsltproc unzip

和以下命令开始构建:

rm -rf out
mkdir out
export ARCH=arm64
export SUBARCH=arm64
export DTC_EXT=dtc
make O=out ARCH=arm64 gki_defconfig

PATH="${PWD}/bin:${PWD}/toolchain/bin:${PATH}" make -j$(nproc --all) O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- CROSS_COMPILE=aarch64-linux-android- | tee kernel.lo

构建以一个显着的警告开始并继续:

../include/linux/workqueue.h:676:13: warning: unused function 'dump_workqueue' [-Wunused-function]

然后突然停止,没有这样的错误:

1 warning generated.
  AR      fs/nls/built-in.a
1 warning generated.
  AR      fs/built-in.a
make[1]: Leaving directory '/home/---/KernelDev/stock/out'
make: *** [sub-make] Error 2
Makefile:146: recipe for target 'sub-make' failed

我注意到的一件事是,在开始时我看到以下消息:

Target not found

这是一个包含编译过程完整输出的 pastebin 的链接: https ://pastebin.com/1nMJ7GQQ

这是我编译android内核的第一次尝试,我真的很感激任何帮助:)

编辑:在我尝试了另一个内核之后,它在没有编译错误的情况下走得更远,但我认为当它进入构建的第二部分时,它又无缘无故地失败了,就像以前一样。

这是该编译日志的链接: https ://pastebin.com/8eDUi2sR

标签: androidlinuxgcckernelclang

解决方案


推荐阅读