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. 【Azure Bot Service】部署Python ChatBot代码到App Service中

    问题描述 使用Python编写了ChatBot,在部署到App Service,却无法启动. 通过高级工具(Kudu站点:https://<your site name>.scm.chin ...

  2. 劉玥 的国内网站 —— https://spicy-gum.com

    劉玥 的国内网站 -- https://spicy-gum.com

  3. cgo:go数组转c数组调用c函数

    package main /* #include <stdio.h> void processInt2DArray(int* arr, int rows, int cols) { for ...

  4. isObject:判断数据是不是引用类型的数据 (例如: arrays, functions, objects, regexes, new Number(0),以及 new String(''))

    function isObject(value) { let type = typeof value; return value != null && (type == 'object ...

  5. 《Django 5 By Example》阅读笔记:p651-p678

    <Django 5 By Example>学习第9天,p651-p678总结,总计28页. 一.技术总结 1.aggregate() (1)aggregate:ad-("to&q ...

  6. 从2s优化到0.1s

    前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中. 但就是这样一个简单的分类树查询功能,我们却优化了5次. 到底是怎么回事呢? 背景 我们的网站使用了SpringBoot推荐的 ...

  7. 【昌哥IT课堂】MySQL8.3 EXPLAIN中的新JSON格式(译)

    MySQL提供了两个用于分析查询计划的强大工具:EXPLAIN和EXPLAIN ANALYZE.EXPLAIN显示优化器选择的执行计划,并在执行之前停止,而EXPLAIN ANALYZE实际执行查询并 ...

  8. C#-32位md5加密

    MD5是一种散列函数,它是不可逆的.这意味着你不能通过MD5的输出来恢复输入.MD5不支持解密. C#MD5加密返回32位字串 public static string MD5Encrypt32(st ...

  9. Refact.ai Match 1 (Codeforces Round 985, Div. 1 + Div. 2)

    Contest Link A Easy math problem. Submission B 大胆贪心猜结论,容易想到一个套路化的 stack 做法. Submission C 容易想到是个二分题,二 ...

  10. vue 路由的代码实现(转)

    https://juejin.cn/post/6844904051679870984 需要的使用到的知识 地址变化事件监控 vue插件机制 构造地址和组件的映射关系 定义route-view 组件 当 ...