[deepin exploration] 补充一个小U自动编译Linux内核的视频
Tofloor
poster avatar
天木木
deepin
8 hours ago
Author

小U自动编译Linux内核

本次重新编译了一个7.1.10的内核,并更改了AMD的参数,自用发现电脑的启动速度快了点,其他的还在摸索中,

Reply Favorite View the author
All Replies
avatar
剑风澜
deepin
8 hours ago
#1

感觉还不太成熟,不太建议,除非官方出了参数。

另外,有时候它会胡扯的......

昨天编译这个内核成功,让它加强了性能方面的改进。

运行一天下来后,不太理想,小U卡顿明显、wine微信卡顿+网络老慢sweat

#!/bin/bash

============================================================

内核编译脚本 v5(自动识别压缩包内真实版本 · AMD Zen4 优化)

用法: bash ~/Desktop/kernel_build.sh (不要加 sudo!)

日志: ~/Desktop/kernel_build.log

============================================================

set -euo pipefail

LOG="$HOME/Desktop/kernel_build.log"
TARBALL="$HOME/linux-7.1.10.tar.xz"
KURL="https://cdn.kernel.org/pub/linux/kernel/v7.x/linux-7.1.10.tar.xz"

log(){ echo "[​(date '+%F %T')] *" | tee -a "$LOG"; }
die(){ echo -e "\033[31m[错误] ​*\033[0m" | tee -a "LOG"; exit 1; }

if [ "$(id -u)" -eq 0 ]; then
echo -e "\033[33m⚠ 提示: 请用普通用户运行,不要加 sudo\033[0m"
fi

--- 下载(已存在则跳过)---

if [ ! -f "$TARBALL" ]; then
log "下载源码..."
wget "​KURL" -O "TARBALL" 2>&1 | tee -a "$LOG" || die "下载失败,请检查网络"
else
log "使用已有压缩包: $TARBALL"
fi

--- 完整性校验 ---

log "校验压缩包..."
xz -t "​TARBALL" 2>&1 | tee -a "LOG" || die "压缩包损坏,请删除后重跑"

--- 自动探测真实版本 ---

SRC_NAME="​(tar -tf "TARBALL" | head -1 | cut -d/ -f1)"
[ -n "$SRC_NAME" ] || die "无法读取压缩包内容"
log "检测到源码版本目录: $SRC_NAME"
SRC="​HOME/SRC_NAME"

--- 解压(目录不存在才解压)---

if [ ! -d "$SRC" ]; then
log "解压源码..."
tar -xf "​TARBALL" -C "HOME" 2>&1 | tee -a "$LOG" || die "解压失败"
fi
cd "​SRC" || die "无法进入 SRC"
[ -f Makefile ] || die "$SRC 缺少 Makefile,目录内容异常"
log "源码就绪: $(pwd)"

--- 配置 + AMD 优化 ---

log "生成基础配置..."
cp /boot/config-$(uname -r) .config || die "复制内核配置失败"
make olddefconfig 2>&1 | tee -a "$LOG" || die "olddefconfig 失败"

log "应用 AMD Zen4 / RDNA3 优化项..."
scripts/config --enable MZEN4
--enable X86_AMD_PSTATE
--set-val X86_AMD_PSTATE_DEFAULT_MODE 2
--enable ACPI_CPPC
--enable AMD_PMC
--enable CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
--enable CPU_IDLE_GOV_MENU
--enable CPU_IDLE_GOV_TEO
--enable HZ_300
--enable PM_AUTOSLEEP
--enable PM_WAKELOCKS
--enable PCIEASPM
--enable IO_URING
--enable SCHED_MC
--enable SCHED_SMT
--enable SENSORS_K10TEMP
--enable CC_OPTIMIZE_FOR_PERFORMANCE
--disable DEBUG_INFO 2>&1 | tee -a "$LOG" || die "配置优化项失败"
make olddefconfig 2>&1 | tee -a "$LOG" || die "重新生成配置失败"

--- 并行编译 ---

log "并行编译核心数: $(nproc)"
make -j​(nproc) 2>&1 | tee -a "LOG" || die "编译失败!请查看日志最后 50 行"

--- 安装 + 更新引导 ---

log "安装模块..."
sudo make modules_install 2>&1 | tee -a "$LOG" || die "模块安装失败"
log "安装内核..."
sudo make install 2>&1 | tee -a "$LOG" || die "内核安装失败"
log "更新引导..."
sudo update-grub 2>&1 | tee -a "$LOG" || die "grub 更新失败"

log "===== 编译安装完成 @ $(date '+%F %T') ====="
log "版本目录: ​SRC_NAME | 日志: LOG"
EOF

chmod +x ~/Desktop/kernel_build.sh
echo "✅ 智能版脚本已生成: ~/Desktop/kernel_build.sh"

image.png

Reply View the author
avatar
vbox
deepin
5 hours ago
#2

手动配置,古法传承

截图_2026-08-28_14-58-06.png

截图_2026-08-28_15-36-49.png

Reply View the author