簡體   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