Ubuntu系统编译内核——deb安装 / install安装

2024-05-30 22:28

本文主要是介绍Ubuntu系统编译内核——deb安装 / install安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

摘要

本文简要记录两种编译内核的方法:

  • 打包成deb模块安装(推荐);
  • 直接make install安装;

更推荐使用——打包成deb模块安装,因为可以方便的拷贝下次其他机器使用。


1. 编译环境准备

系统:linux衍生系统都行,我用的是银河麒麟系统。

# 更新apt软件源
sudo apt update # 安装编译软件环境
sudo apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison liblz4-tool debhelper -y

2. 内核源码下载

内核下载:

  • 官方链接:https://www.kernel.org/
  • 其它链接:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/

如下图所示,下载tarball,源码格式通常都是 linux-x.x.x.tar.gz 形式。


3. 按需修改内核编译配置

  下载后,解压,并进入源码目录

tar -xvf linux-6.9.2.tar.gzcd linux-6.9.2

  使用当前系统的.config文件作为模板

cp -v /boot/config-5.8.2-genertic .config

  配置内核,如果没什么需求就直接save,然后exit

make menuconfig

  。。。中间你可以加入自己需要的源码补丁。

重要:

sudo vim .config

将CONFIG_SYSTEM_TRUSTED_KEYS和CONFIG_SYSTEM_REVOCATION_KEYS的内容删除(保留双引号),如果本身就是空的双引号就不用管。

不然的话会编译报错。

保存。


4. 编译 && 安装

4.1 方法1——deb包安装(推荐)

# 使用make bindeb-pkg进行编译
sudo make bindeb-pkg -j16

  执行完成之后,在源码目录的上层会生成3个文件

  • linux-headers-6.9.2_6.9.2-4-arm64.deb
  • linux-image-6.9.2_6.9.2-4-arm64.deb
  • linux-libc-6.9.2_6.9.2-4-arm64.deb
# 安装新内核
sudo dpkg -i *.deb# 更新grub
sudo update-grub

4.2 方法2——make installl安装

# 编译和安装
sudo make -j16
sudo make modules -j16
sudo make modules_install -j16
sudo make install -16# 更新grub
sudo update-grub

5. 重启

sudo reboot now

  执行清理命令,就能够释放我们刚才编译内核时候生成占用的空间。

make clean

6. 卸载内核

  查看自己安装过的内核版本,在里面我们可以找到对应的headers与image。

dpkg --get-selections | grep image

  先卸载headers:

sudo apt-get purge linux-headers-6.9.2

  接着卸载image:

apt-get purge linux-image-6.9.2

  更新grub

sudo update-grub

参考文章

编译deepin主线内核icon-default.png?t=N7T8https://bbs.deepin.org/post/262451

内核打包- Community - Deepin Technology内核打包icon-default.png?t=N7T8https://bbs.deepin.org/zh/post/270582

这篇关于Ubuntu系统编译内核——deb安装 / install安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016983

相关文章

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

Java编译错误java.lang.NoSuchFieldError的解决方案详析

《Java编译错误java.lang.NoSuchFieldError的解决方案详析》java.lang.NoSuchFieldError是Java中的一种运行时错误,:本文主要介绍Java编译错... 目录前言解决方案1. 统一JDK版本环境2. 优化maven-compiler-plugin配置3. 清

GO语言中gox交叉编译的实现

《GO语言中gox交叉编译的实现》本文主要介绍了GO语言中gox交叉编译的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录一、安装二、使用三、遇到的问题1、开启CGO2、修改环境变量最近在工作中使用GO语言进行编码开发,因

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安