Linux 内核模块编译环境配置

6/18/2022 Linux 内核

编译 linux 内核模块需要安装内核的开发包,以下流程仅供参考

# CentOS

# KDIR配置

KDIR := /usr/src/kernels/$(shell uname -r)
1

# 安装内核开发工具包

Centos 下较为简单,安装 kernel-devel 这个包之后,就会出现 /usr/src/kernels/$(uname -r)/ 这个目录

yum install kernel-devel-`uname -r`
1

# 手动安装

各大镜像源都有提供 kernel-devel 的rpm下载,只需要对应到次版本号即可。

yum install https://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/kernel-devel-4.18.0-348.el8.x86_64.rpm
1

如果是基于 elrepo 则需要安装 kernel-ml-devel

yum --enablerepo=elrepo-kernel install kernel-ml-devel
1

# Debian

# KDIR配置

KDIR := /lib/modules/$(shell uname -r)/build
1

KDIR := /usr/src/kernels/$(shell uname -r)
1

# 安装内核开发工具包

debian 下编译内核模块时引用的 headers 的版本一定要 uname -r 完全对应,否则将无法装载模块。

apt install linux-headers-`uname -r`
1

# 手动安装 deb 文件

截至目前 linux-headers-5.18.0 在 sid (opens new window) 仓库,5.10.0-10 在 stable (opens new window) 仓库。如果这两个仓库中都没有对应版本的 headers,则需要去各大镜像源搜索下载,或将内核更换为仓库中的版本。

例如 5.10.0-13 在 mirrors.sdu.edu.cn (opens new window) 可以找到

wget https://mirrors.sdu.edu.cn/debian/pool/main/l/linux/linux-headers-5.10.0-13-amd64_5.10.106-1_amd64.deb
apt install ./linux-headers-5.10.0-13-amd64_5.10.106-1_amd64.deb
1
2

# GCC

先试试

apt -f install
1

高版本 gcc 在 sid 源中,可以启用后安装对应版本,例如 gcc-11

apt install gcc-11
1

# 手动安装

下载 deb 手动 dpkg -i 安装即可

例如:https://packages.debian.org/bullseye/gcc-10

Last Updated: 6/2/2023, 7:17:11 AM