1、配置环境

修改apt源

修改 /etc/apt/sources.list.d/ubuntu.sources ,添加 "deb-src"到 Types:,修改后的文件内容如下:

Types: deb deb-src
URIs: http://cn.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg Types: deb
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

安装依赖包

如果依赖包安装失败,提示不满足依赖,请检查apt源修改是否正确

sudo apt update
sudo apt build-dep linux linux-image-unsigned-$(uname -r)
sudo apt install fakeroot llvm libncurses-dev dwarves gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf git

获取内核源码

这里只想修改内核,不想升级内核,因此下载了当前版本的内核源码,内核源码下载在执行apt source的路径下

cd ~
apt source linux-image-unsigned-$(uname -r)

2、编译内核

预处理内核源码

在编译内核前需要对内核源码进行以下处理

cd <内核源码的目录>
chmod a+x debian/rules
chmod a+x debian/scripts/*
chmod a+x debian/scripts/misc/*
fakeroot debian/rules clean

修改内核配置

如果想要修改内核defconfig,使用以下指令。如果不想修改,跳过当前步骤

cd <内核源码的目录>
fakeroot debian/rules editconfigs

编译内核

执行以下命令来编译内核

cd <内核源码的目录>
fakeroot debian/rules clean
fakeroot debian/rules binary

3、安装内核

安装内核

如果构建成功,将会在源码根目录的上级目录中生成几个.deb二进制包文件。

cd <内核源码的目录>/../
sudo dpkg -i linux-headers-<内核版本>*_all.deb
sudo dpkg -i linux-headers-<内核版本>-*.deb
sudo dpkg -i linux-image-unsigned-<内核版本>-*.deb
sudo dpkg -i linux-modules-<内核版本>-*.deb
sudo reboot

如我的内核源码版本是6.8.0-51-generic,生成的文件如下:

linux-buildinfo-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-cloud-tools-6.8.0-51_6.8.0-51.52_amd64.deb
linux-cloud-tools-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-cloud-tools-common_6.8.0-51.52_all.deb
linux-doc_6.8.0-51.52_all.deb
linux-headers-6.8.0-51_6.8.0-51.52_all.deb
linux-headers-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-image-unsigned-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-libc-dev_6.8.0-51.52_amd64.deb
linux-lib-rust-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-modules-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-modules-extra-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-modules-ipu6-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-modules-iwlwifi-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-modules-usbio-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-source-6.8.0_6.8.0-51.52_all.deb
linux-tools-6.8.0-51_6.8.0-51.52_amd64.deb
linux-tools-6.8.0-51-generic_6.8.0-51.52_amd64.deb
linux-tools-common_6.8.0-51.52_all.deb
linux-tools-host_6.8.0-51.52_all.deb

检查内核

安装完成后使用以下命令观察内核版本号和构建日期是否发生变化

uname -a

编译Ubuntu 24.04 LTS 内核(BuildYourOwnKernel)的更多相关文章

  1. 【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

                 分类: Android 系统开发(5)                                              作者同类文章X 版权声明:本文为博主原创文章 ...

  2. Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程

    Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程   在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...

  3. 【转】基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    原文网址:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码       ...

  4. 基于Ubuntu 14.04 LTS编译Android4.4.2源码

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS ...

  5. 基于Ubuntu 14.04 LTS编译Android4.4.2源代码

    转载自:雨水:http://blog.csdn.net/gobitan/article/details/24367439 基于Ubuntu 14.04 LTS编译Android4.4.2源代码     ...

  6. Ubuntu 14.04 LTS 64bit 编译SDL的问题

    http://blog.csdn.net/jhting/article/details/38523945 Ubuntu 14.04 LTS 64bit 编译SDL的问题 分类: C/C++2014-0 ...

  7. 在Ubuntu 16.04 LTS上用g++和gcc编译C/C++代码错误提示“.../x86_64-linux-gnu/crt1.o: ELF section name out of range”

    (有一些图片我是直接从个人的CSDN博客上复制来的) 最近一个多月来,我曾经多次尝试在Ubuntu 16.04 LTS上使用g++和gcc(这俩好像合起来叫MinGW?)来编译C/C++代码,但是在解 ...

  8. [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  9. 在Ubuntu 16.04 LTS下编译安装OpenCV 4.1.1

    目录 一 安装前的准备 二 编译并安装OpenCV 4.1.1 注:原创不易,转载请务必注明原作者和出处,感谢支持! OpenCV目前(2019-8-1)的最新版本为4.1.1.本文将介绍如何在Ubu ...

  10. Ubuntu 14.04 LTS 安装Docker

    Docker官方是有很详细的安装文档(https://docs.docker.com/engine/installation/ubuntulinux/),这里做了一个Ubuntu 14.04 LTS中 ...

随机推荐

  1. 基于案例分析 MySQL 权限认证中的具体优先原则

    在 MySQL 的日常管理过程中,大家或多或少会遇到权限认证相关的问题. 例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了. 这种现象往往让人误以为是 bug,但很多时候,其实并不 ...

  2. 搞人工智能开源大语言模型GPT2、Llama的正确姿势

    (如果想及时收到人工智能相关的知识更新,请点击关注!!) 序言:目前我们每一小节的内容都讲解得非常慢,因为这是人工智能研发中的最基础知识.如果我们不能扎实掌握这些知识,将很难理解后续更复杂且实用的概念 ...

  3. MySQL,你只需要看这一篇文章就够了!PART04--完结篇

    MySQL--DAY04 索引 定义 索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制. 一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引. 索引相当于一本书的目 ...

  4. 一个.NET开源、轻量级的运行耗时统计库 - MethodTimer

    前言 在.NET开发中,为了准确统计对应方法的执行时间,我们最常用的方式是手动使用 Stopwatch 来显式编写计时逻辑,但是假如你需要大量的使用 Stopwatch 来进行耗时统计的话不利于保持代 ...

  5. CAD Plus 移动端使用帮助

    Mac端使用帮助 English help 如果您有疑问或需要帮助请发送邮件至 3167292926@qq.com 1. 权限要求 1.1 获取位置信息 使用文件管理功能时显示网络信息需要获取位置信息 ...

  6. ArrayList源码分析(基于JDK1.6)

    不积跬步,无以至千里:不积小流,无以成江海.从基础做起,一点点积累,加油! <Java集合类>中讲述了ArrayList的基础使用,本文将深入剖析ArrayList的内部结构及实现原理,以 ...

  7. python的orjson

    简介 首先我们先来了解下orjson的优缺点: 可以将datetime.date和time实例序列化为RFC 3339格式,例如:"2022-06-12T00:00:00+00:00&quo ...

  8. 2024-11-27:字符串的分数。用go语言,给定一个字符串 s,我们可以定义其“分数”为相邻字符的 ASCII 码差值绝对值的总和。 请计算并返回字符串 s 的分数。 输入:s = “hello“

    2024-11-27:字符串的分数.用go语言,给定一个字符串 s,我们可以定义其"分数"为相邻字符的 ASCII 码差值绝对值的总和. 请计算并返回字符串 s 的分数. 输入:s ...

  9. 使用自定义 JsonConverter 解决 long 类型在前端的精度问题

    问题 Javascript 的 number 类型存在精度限制,浏览器反序列化 JSON 时,无法完整保留 long 类型的精度. 在 JSON 序列化时将 long 转换为 string 进行传递就 ...

  10. TypeScript 笔记(一)

    1. TypeScript 的介绍 完整教程TypeScript 入门教程 TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准,由微软开发的自由和开源的编 ...