内核编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#查看当前内核版本
uname -a

#源码获取
sudo apt-get install linux-source
cd /usr/src
tar xvf linux-source-*.tar.bz2
cd linux-source-*

#补丁应用
patch -p1 < /path/to/patch.diff
#`-p1`选项可能需要根据补丁文件的格式进行调整。

make menuconfig #或者oldconfig,本质是配置/usr/src/config
make -j$(nproc)
#根据 .config 配置文件编译内核、内核模块和其他必要的文件,生成内核镜像(vmlinuz)和其他相关的文件
#编译过程中可能出现每包头文件或者其他错误,可能是版本原因,针对报错解决即可

#内核安装
#安装过程可能会出现头文件报错或者缺库、或安装完成后缺库,只需要apt安装对应的库就好,make过程中会自动hook

#安装内核模块(在运行时可以加载或卸载的模块)
#从编译输出的目录(如 lib/modules/<kernel_version>/),并执行 depmod 来生成模块依赖关系
sudo make modules_install

#内核镜像(如 vmlinuz)、配置文件(如 config)、符号表文件(如 System.map)和 initrd 镜像安装到 /boot 目录
sudo make install

#更新启动引导程序
sudo update-grup

关于配置选项相关操作,参考::star::star:Linux 内核动手编译实用指南

KGDB配置

编译选项

image-20241230163152546

参考资料KGDB原理分析及远程挂载调试ARM64内核

内核启动参数

1
kgdboc=ttyS0,115200 kgdbwait kgdbtcp=192.168.1.2:1234
  • kgdboc=ttyS0,115200:设置串口调试(可选)
  • kgdbwait:启动时等待调试器连接
  • kgdbtcp=192.168.1.2:1234:被调试主机的IP和端口

永久修改:/etc/default/grubGRUB_CMDLINE_LINUX变量

proxmox-boot-tool

proxmox-boot-tool,一个脚本,设置启动内核、增删内核等

Proxmox VE(Proxmox Virtual Environment)是一个开源的虚拟化管理平台,专为企业级环境设计,能够管理虚拟机(VM)、容器、存储和集群。

其中 proxmox-boot-tool脚本在内核管理切换过程中比较有用,这里做备份,便于不整体下载Proxmox VE而单独使用此工具,仅供个人学习使用

使用前提是需要先下载Promox VE

先换源/etc/apt/sources.list.d/pve-no-subscription.list

1
2
deb http://mirrors.ustc.edu.cn/proxmox/debian/pve bookworm pve-no-subscription
deb http://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription

记得把/etc/apt/sources.list.d下原有的源注释掉

kernel add等 在 /boot下边找到对应版本号

之后可通过apt search \install 搜索下载对应的pve版本内核

proxmox-boot-tool下载链接,先下载proxmox-kernel-helper

参考链接:

https://kernelnewbies.org/KernelBuild


本站由 Zane Jiang 使用 Stellar 1.33.1 主题创建,一款很棒的 Hexo 主题!

总访问 次 || 本页访问
总访客 人 || 本页访客