如何在 Travis CI 中构建 Linux 内核。我已添加script: make menuconfig
到我的 Travis 配置中,但它不起作用并说
No output has been received in the last 10 minutes
我怎样才能解决这个问题?
链接到 GitHub 存储库:https ://github.com/ProjectPolyester/tegra_kernel并尽可能在 PR 中提交修复
如何在 Travis CI 中构建 Linux 内核。我已添加script: make menuconfig
到我的 Travis 配置中,但它不起作用并说
No output has been received in the last 10 minutes
我怎样才能解决这个问题?
链接到 GitHub 存储库:https ://github.com/ProjectPolyester/tegra_kernel并尽可能在 PR 中提交修复
Travis 监视您的构建过程,如果大约 10 分钟没有输出,它会假定您的进程由于未知原因卡在某个地方,然后将其终止。
您需要提供实际的构建命令。
make menuconfig
实际上只允许您配置内核。它并没有真正启动内核构建过程。所以这个命令没有输出。
此外,内核应该已经配置好,或者您可以下载适当的 .config 文件(如果它在网上的某个地方可用)。然后就不需要执行了:
make menuconfig
可以很简单
make
或类似的东西
make -j3 modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOCALVERSION=-$SOURCE_VERSION
第二个实际上是执行交叉编译。您还需要设置所有先决条件,例如下载头文件等
你可能想看看这个脚本,它只交叉编译模块,而不是整个内核。
我知道这是一个旧线程,但我最近能够让 Travis CI 致力于构建 Linux 内核 https://github.com/GlassROM-devices/android_kernel_oneplus_msm8994/commit/6ed484812bbd4a25c3b22e730b7489eaaf668da1 GCC 修复适用于在 Debian 不稳定的工具链上编译, arch、gentoo 等。这些工具链将无法在 Ubuntu 上编译,因此您必须对这些工具链使用 GCC 修复程序
而且您真的想在尝试构建内核之前升级 GCC。Travis CI 有一个非常旧的 GCC,如果您尝试编译内核,它将失败
在我的提交中,我使用自己构建的 GCC 8 linaro 构建它
如果要将旧配置用于新内核,可以使用 make olddefconfig。这是我如何在 travis 中编译和启动新内核的示例:https ://github.com/avagin/criu/blob/linux-next/scripts/travis/kexec.sh#L54