2

如何在 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 中提交修复

4

3 回答 3

1

Travis 监视您的构建过程,如果大约 10 分钟没有输出,它会假定您的进程由于未知原因卡在某个地方,然后将其终止。

您的解决方案:

您需要提供实际的构建命令。

make menuconfig

实际上只允许您配置内核。它并没有真正启动内核构建过程。所以这个命令没有输出。

此外,内核应该已经配置好,或者您可以下载适当的 .config 文件(如果它在网上的某个地方可用)。然后就不需要执行了:

make menuconfig

构建命令

可以很简单

make

或类似的东西

make -j3 modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- LOCALVERSION=-$SOURCE_VERSION

第二个实际上是执行交叉编译。您还需要设置所有先决条件,例如下载头文件等

你可能想看看这个脚本,它只交叉编译模块,而不是整个内核。

于 2016-07-28T20:04:12.290 回答
0

我知道这是一个旧线程,但我最近能够让 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 构建它

于 2017-10-31T20:37:32.643 回答
0

如果要将旧配置用于新内核,可以使用 make olddefconfig。这是我如何在 travis 中编译和启动新内核的示例:https ://github.com/avagin/criu/blob/linux-next/scripts/travis/kexec.sh#L54

于 2017-09-29T23:27:33.393 回答