繁体   English   中英

使用Travis CI构建Linux内核

[英]Building a Linux kernel using Travis CI

如何在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

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

您可能要看一下此脚本 ,它只交叉编译模块,而不是整个内核。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM