自动编译内核并构建deb包的介绍

未分类
1.4k 词

利用github actions自动编译内核并构建deb包的介绍

成立原因:

首先丢上github的链接:XXTX-TOP/Linux-kernel_deb_builder (github.com)

目前正在持续的更新中,因为还没实现我的终极目的。

本项目fork自:debuggerx01/kernel_deb_builder (github.com)

日常使用Linux的过程中,可能经常因为系统的内核不够新导致一些新的硬件无法被驱动、或者是想尝试一下新版内核中的一些特性、比如部分risc-v的驱动在新内核中才被添加进去,及其他的一些原因需要使用到比较新的内核,所以此项目就研究了一下如何主动从kernel.org获取到最新的内核并打包成可以安装的deb。

原作者在之前的PR中表示之前他还没有编译新版本的需求 ,所以此项目就接手于开始自动获取和编译最近的内核了。

请不要质疑为什么需要最新的内核、此项目只是一个学习性的项目、用于学习内核编译打包的过程,如果你通过此项目学习到了如何打包内核deb或者其他包格式、目的就达到了。每个人的硬件都不一样、请各取所需。

此外我永远认为、最好的内核永远是别人持续维护的内核,比如这些主流发行版维护的内核。我自己用的内核都做不到一次不漏的给它打最新的补丁。

1696251056368

组织规划:

  • 协助kernel对内核进行构件分发。(kernel组主要负责的是对内核代码的编制,更新;kernel-deb-builder主要是进行构建分发)
  • 针对不同架构发行版进行内核的构建。(多平台构建,不局限于X86)
  • 新架构的内核构件工具移植。(如:构件在M2芯片上构建内核。)(利用现有项目二次开发)
  • 跟进git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison等工具的维护。加强内核构件效率。
  • 建设kernel分发apt源,成立单独的内核源,对内核进行分发。 (周期较长,资金投入大。)

工作流程:

流程大概是: 一、自动化处理流程,二十四小时检测Linux内核官网有没有发布新版本的内核,发布新版本的内核就和之前一个版本进行对比,新的化,就自动开始编译并打包。 二、手动触发流程,我手动点击获取按钮、如果检测到内核比我本机的内核新,那么就自动开始编译,编译完成后自动进行下载、安装、重启。PS:本机特指我用来测试的机器和虚拟机。

后续待实现流程:定制化编译、多架构编译、测试完成后一件进行签名并发布至apt源,并更新内核说明,供大家进行下载测试。

目前成果:

目前可以做到同时获取三个分支的内核进行编译并打包成deb,进行分发;且已经自己简单做了一个apt源,有部分内核可以使用,github链接如下:XXTX-TOP/ppa: ppa (github.com)

如果你想使用的话,也可以参考README.md

1696251635398

注意:

使用此项目需要有一定的Linux基础、内核基础,上面提到的内核均没有debug功能、全阉割了,此外UOS\deepin均无法直接使用此内核,需要进行一定的修改操作,此操作我认为不算bug,算是专门留的一个使用门槛,需自行解决、如果这都解决不了,建议谨慎使用,同时需要一定的网络环境,不然上述链接均无法访问,这也是一个门槛。为什么留这么多门槛,是因为我觉得内核这个东西关乎到整个系统的使用,所以 需要谨慎谨慎再谨慎!!!