当前位置:网站首页 > 编程语言 > 正文

ubuntu 下载源码(ubuntu下载源码包断开)




author: hjjdebug
date: 2024年 10月 25日 星期五 15:38:48 CST
description: ubuntu20 从源码编译升级到版本5.15.263


我的内核是 5.15.105, 用apt 下载源码后其版本是5.15.263
为什么要从源码编译内核. 升级内核?
目的: 练练手. 消除内核神秘性. 还可以裁减内核,也是调试内核和模块的基础.



1. 下载源码 $sudo apt-get source linux-hwe-5.15-source-5.15.0

2. 配置内核, 形成.config 文件

make defconfig 是不行的,它形成的.config文件包含的内容太少,形成的内核是不能引导系统的.
所以你需要一个基础点作为.config 的起点.
$cp /boot/config-5.15.0-105-generic .config //选用一个可以运行的配置,作为起点.简化了我们配置
// 你的也许需要修改第一个参数
make menuconfig //你想修改配置,就修改它了,不想修改,直接保存
覆盖一下.config 文件, 直接保存跟copy来的那个基础config 还是会有差别的. 它会修改一些配置例如版本信息等.
config 搞不对,编出的内核会不能运行

注意:需要把内核CONFIG_DEBUG_INFO配置关掉,
不然会因为编译完安装内核时生成的initrd.img-5.15.0-263太大而导致系统启动时报“out of memory”的错误导致系统起不来。
怎样让grub 支持大内核不在本博阐述.

3. 编译内核

遇到的错误, 大多是缺少相关工具,flex,bison,zstd等安装即可.
$sudo apt install flex
$sudo apt install bison
$sudo apt install zstd

下面这个比较陌生, 也是缺少工具造成, 解决方法也是安装工具包.
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
Makefile:1127: recipe for target ‘vmlinux’ failed
make: * [vmlinux] Error 1

分析:
BTF(BPF Type Format)是一种紧凑的格式,用于表达类型信息
BPF(扩展的 Berkeley Packet Filter)是一项强大而灵活的技术。
它允许在内核中运行沙盒化程序,类似于虚拟机环境,为扩展内核功能提供了一种不会导致系统崩溃的安全方法。
pahole 是一个工具, 是dwarves 项目中的一部分,
它主要用于提取数据结构中的调试信息格式(如DWARF和CTF)
缺少该工具,安装之.

编译内核总是会浪费很多时间,尤其是配置一变又要重新编译. 大好时间都浪费在编译上,没办法…
编译成功会有:
Kernel: arch/x86/boot/bzImage is ready (#4)

前边是基础. 新内核怎样让grub 认识.



1. 安装模块及内核, 通常是安装在/boot 目录下

这里说的太专业化了,白话是把新内核和新模块copy 到指定的位置.方便grub 找到它
$make modules_install // 签名,安装也要花不少时间. 靠,等等等…
$make install
要先安装模块,后安装内核,因为后者还要依赖于前者.

$ make -n install , 只显示不安装会让你看到它会运行什么脚本.

2. 更新bootloader

 

3. 启用新内核

$reboot, 选择新内核



编辑/etc/default/grub 文件
GRUB_DEFAULT=0
表示选择第一项, 可以更改为其它项

如果开机选择内核目录为两层,则:
GRUB_DEFAULT=‘1->4’
1 表示选择第二个选项(往往对应着高级选项)
4 表示选择第五个内核

保存文件后, $update-grub

到此这篇ubuntu 下载源码(ubuntu下载源码包断开)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 字符串转int32(字符串转int32_t*)2025-05-02 07:09:08
  • 学籍认证码和在线验证码一样吗(学籍在线验证码失效了怎么办)2025-05-02 07:09:08
  • win7虚拟机配置要求(win7虚拟机配置要求高吗)2025-05-02 07:09:08
  • 卸载程序快捷命令(卸载程序快捷命令是哪个)2025-05-02 07:09:08
  • toby翻译成中文(toy翻译成汉语)2025-05-02 07:09:08
  • xdp是什么意思缩写(xpdd缩写是什么意思)2025-05-02 07:09:08
  • tpami审稿周期(tpami期刊每年录用多少期)2025-05-02 07:09:08
  • 怎么用手机steam扫码支付(手机steam扫一扫在哪)2025-05-02 07:09:08
  • 苹果手机怎么查看密码库(密码在哪里看苹果手机)2025-05-02 07:09:08
  • ngff接口和m2一样吗(m2ngff接口与msata区别)2025-05-02 07:09:08
  • 全屏图片