Linux 内核编译与 Deb 打包完整指南
这份指南包含了从零开始编译 Linux 最新内核并将其打包为 .deb 文件的所有完整步骤。
Linux 内核编译与 Deb 打包完整流程。
这份指南包含了从零开始编译 Linux 最新内核并将其打包为 .deb 文件的所有完整步骤。
安装所有必需的编译工具和打包依赖。
sudo apt-get updatesudo apt-get install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev bc dkms dwarves zstd rsync dpkg-dev debhelper libdw-dev下载并解压内核源码。
wget https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.0.3.tar.xztar xvf linux-7.0.3.tar.xzcd linux-7.0.3复用当前系统的配置,这能保证新内核沿用你当前的硬件。
cp /boot/config-$(uname -r) .configmake olddefconfigscripts/config --disable DEBUG_INFO说明: 禁用 DEBUG_INFO 可以极大地减少生成的包体积并显著加快编译速度。
使用全部 CPU 核心进行编译,并直接生成 Debian 安装包。
make bindeb-pkg -j$(nproc)提示: 这个过程可能会持续一段时间,具体取决于你的 CPU 性能。完成后,.deb 文件会生成在当前源码目录的上一级目录中。
退回上一级目录并使用 dpkg 安装生成的 .deb 文件。
cd ..sudo dpkg -i linux-image-*.deb linux-headers-*.deb重启后,运行以下脚本进行全方位的兼容性排查。首先创建脚本并赋予执行权限:
cat << 'EOF' > check_kernel.sh
#!/bin/bash
echo "1. 内核版本: $(uname -r)"
echo "2. 严重启动错误:"
dmesg --level=emerg,alert,crit,err
echo "3. 失败的系统服务:"
systemctl --failed --no-pager --no-legend
echo "4. 关键硬件驱动绑定状态:"
lspci -k | awk '/VGA|Ethernet|Network/{print "\n"$0; getline; print; getline; print}'
EOFchmod +x check_kernel.sh然后使用 sudo 权限运行:
sudo ./check_kernel.shtmux 是一个终端复用器,允许你将长时间运行的任务(如编译)放在后台执行而不用担心 SSH 断开或终端关闭。常用操作如下:
创建并进入后台 tmux 会话 (例如命名为 deb_build):
tmux new-session -d -s deb_build 'make bindeb-pkg -j$(nproc) | tee deb_build.log; exec bash'重新连接 (Attach) 到已存在的后台 tmux 会话中查看进度:
tmux attach -t deb_build临时退出当前 tmux 会话,让它继续在后台运行 (Detach):
快捷键: 在 tmux 窗口中,先按下 Ctrl + B,松开后再按 D。
查看当前正在运行的所有 tmux 会话列表:
tmux ls强制关闭/杀死某个会话:
tmux kill-session -t deb_build