如何安装自定义(实时)Linux 内核头文件?

如何安装自定义(实时)Linux 内核头文件?

一些背景知识

我已成功使用 PREEMPT_RT 补丁修补了 Linux 内核,对其进行了配置、构建并从中启动。我采取的步骤如下:

使用 PREEMPT_RT 修补内核 5.4.230

# Get kernel source
wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.230.tar.xz

# Get PREEMPT_RT patch
wget https://www.kernel.org/pub/linux/kernel/projects/rt/5.4/patch-5.4.230-rt80.patch.xz

# Patch the kernel
xz -cd linux-5.4.230.tar.xz | tar xvf -
cd linux-5.4.230
xzcat ../patch-5.4.230-rt80.patch.xz | patch -p1

构建内核

# Install prerequisite packages
sudo apt install build-essential flex bison pkg-config openssl libssl-dev libncurses-dev dwarves -y

# Copy existing configuration installed with Ubuntu 20.04 as a
# starting point
cp /boot/config-$(uname -r) .config

# Turn on fully preemptable kernel here
make oldconfig

# Build
make -j$(nproc)

安装的内核

sudo make modules_install
sudo make install
sudo update-grub
sudo reboot

我还选择使用安全启动,所以我对内核进行了签名,但这与此无关。

我需要帮助的地方

接下来,我需要安装一个需要安装 Linux 头文件的软件包。我看到headers_install内核源目录中有一个名为的 make 目标,但我对内核头文件是如何组织的有点困惑。看起来我应该将命令中的内核头文件放入make headers_install其中,/usr/src/这很好,但我觉得之后应该有一些额外的步骤。比如,在这之后我必须做些什么才能使它们成为新的默认值或其他什么?

我看到过另一个类似的问题,但它主要与 VMWare 有关,似乎可以通过 apt 安装内核头文件来解决。这是一个自定义内核,所以我认为这对我来说不起作用,除非我能碰巧使用相同的内核头文件作为我修补的基本内核,而不会出现问题。

任何帮助都非常感谢。谢谢!

相关内容