[UOS AI] 小U3.2有点好玩啦,就是简单对话搞出来的。
Tofloor
poster avatar
剑风澜
deepin
5 hours ago
Author

image.png

image.png

后面把配置截屏发它分析,得出了下面的编译脚本与验证脚本。

各位大神,帮忙看看有没有啥不合理的地方?tail

cat > ~/Desktop/kernel_build.sh << 'EOF'
#!/bin/bash

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

内核编译脚本 v6(去除卡死校验 · 秒级版本识别)

用法: 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://mirrors.hust.edu.cn/kernel.org/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 "识别压缩包内版本..."
set +o pipefail # 临时关闭避免 head 提前关闭管道导致误报
SRC_NAME="​(tar -tf "TARBALL" 2>/dev/null | head -1 | cut -d/ -f1)"
set -o pipefail
[ -n "$SRC_NAME" ] || die "无法读取压缩包(文件可能损坏)→ 请执行: rm ~/linux-7.1.10.tar.xz 后重跑重新下载"
log "检测到源码版本: $SRC_NAME"
SRC="​HOME/SRC_NAME"

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

if [ ! -d "$SRC" ]; then
log "解压源码(约1-2分钟)..."
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 "✅ v6 脚本已生成: ~/Desktop/kernel_build.sh"

》》》》》》》》》》》》》以上是编译》》》》》》》》》》》》》》》》》》

\\\\\\\\\\\\\\\\\\\\\\\\以下是检查脚本\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

cat > ~/Desktop/kernel_7.1.10_check.sh << 'EOF'
#!/bin/bash

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

内核 7.1.10 编译后验证脚本(AMD 省电/性能检查)

用法: bash ~/Desktop/kernel_7.1.10_check.sh

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

set -u
GREEN='\033[32m'; RED='\033[31m'; YELLOW='\033[33m'; NC='\033[0m'
pass(){ echo -e " ​{GREEN}✔ ${NC}"; }
warn(){ echo -e " ​{YELLOW}⚠
${NC}"; }
fail(){ echo -e " ​{RED}✘ *${NC}"; }

echo "===== 内核 7.1.10 安装验证 ====="

1) 内核版本

echo -e "\n[1] 内核版本"
VER=$(uname -r)
echo " 当前: $VER"
case "$VER" in
7.1.10) pass "已进入新内核 7.1.10 ✓";;
*) warn "尚未使用 7.1.10,请在 GRUB 选择新内核后重启";;
esac

2) AMD P-State 驱动

echo -e "\n[2] CPU 变频驱动"
DRV=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_driver 2>/dev/null)
echo " 驱动: $DRV"
case "$DRV" in
amd-pstate) pass "AMD P-State EPP 已启用 ✓";;
*) warn "未使用 amd-pstate(可能是 acpi-cpufreq),省电效果打折";;
esac

3) 调频策略

echo -e "\n[3] 调频策略 (governor)"
GOV=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 2>/dev/null)
echo " 策略: $GOV"
case "$GOV" in
schedutil|powersave) pass "省电友好策略 ✓";;
performance) warn "当前为性能优先,功耗较高";;
*) warn "未知策略: $GOV";;
esac

4) EPP 能效偏好

echo -e "\n[4] Energy Performance Preference"
EPP=$(cat /sys/devices/system/cpu/cpu0/cpufreq/energy_performance_preference 2>/dev/null)
echo " EPP: $EPP"
[ -n "$EPP" ] && pass "EPP 接口正常 ✓" || warn "EPP 不可用"

5) 核显电源管理

echo -e "\n[5] RDNA3 核显电源管理"
GPU=$(ls /sys/class/drm/ | grep -E '^card[0-9]-' | head -1)
echo " 显卡设备: $GPU"
if [ -n "$GPU" ]; then
PM=​(cat "/sys/class/drm/GPU/device/power/control" 2>/dev/null)
echo " 电源策略: $PM"
case "$PM" in
auto) pass "核显可动态降频省电 ✓";;
on) warn "核显常开(performance),可调为 auto 更省电";;
*) warn "无法读取";;
esac
fi

6) 温度传感器

echo -e "\n[6] Ryzen 温度传感器"
if [ -f /sys/class/hwmon/hwmon*/temp1_input ] 2>/dev/null || ls /sys/class/hwmon/ >/dev/null 2>&1; then
TEMP=$(cat /sys/class/hwmon/hwmon*/temp1_input 2>/dev/null | head -1)
[ -n "​TEMP" ] && echo " CPU 温度: ((TEMP/1000))°C" && pass "k10temp 生效 ✓" || warn "暂未读到温度"
else
warn "无 hwmon 温度节点"
fi

echo -e "\n===== 检查完成 ====="
EOF

chmod +x ~/Desktop/kernel_7.1.10_check.sh
echo "✅ 验证脚本已生成: ~/Desktop/kernel_7.1.10_check.sh"

scream有意思的来了tail

编译完成后安装报错如///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
mkdir: 无法创建目录 "/lib/modules/7.1.10-amd64-desktop-rolling": 只读文件系统
SYMLINK /lib/modules/7.1.10-amd64-desktop-rolling/build
ln: 无法创建符号链接 '/lib/modules/7.1.10-amd64-desktop-rolling/build': 没有那个文件或目录
make[2]: *** [scripts/Makefile.modinst:22:/lib/modules/7.1.10-amd64-desktop-rolling/build] 错误 1
make[1]: *** [/home/avolun/linux-7.1.10/Makefile:2071:modules_install] 错误 2
make: *** [Makefile:248:__sub-make] 错误 2
[错误] 模块安装失败

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

没关磐石一般会遇到这情况.......

总之,没关! 继续问并按小U的方法折腾,下面的方法装上了、、、、、、、、、、、、

B1. 把模块搬到可写区(/var),并生成模块依赖

sudo mkdir -p /var/lib/kmods-7.1.10/lib/modules
sudo cp -a /root/persistent/overlay/data/layer-631c45f756e0a5d3/usr/lib/modules/7.1.10-amd64-desktop-rolling
/var/lib/kmods-7.1.10/lib/modules/
sudo depmod -b /var/lib/kmods-7.1.10 7.1.10-amd64-desktop-rolling

B2. 验证模块就位

ls /var/lib/kmods-7.1.10/lib/modules/7.1.10-amd64-desktop-rolling/ | head

B3. 把内核镜像装到 /boot(等价 make install 的手工版)

cd ~/linux-7.1.10
sudo cp arch/x86/boot/bzImage /boot/vmlinuz-7.1.10-amd64-desktop-rolling
sudo cp System.map /boot/System.map-7.1.10-amd64-desktop-rolling
sudo cp .config /boot/config-7.1.10-amd64-desktop-rolling

B4. 生成 initramfs(临时把 /usr/lib/modules 指向我们的模块目录)

sudo mount --bind /var/lib/kmods-7.1.10/lib/modules /usr/lib/modules
sudo mkinitramfs -o /boot/initrd.img-7.1.10-amd64-desktop-rolling 7.1.10-amd64-desktop-rolling
sudo umount /usr/lib/modules

B5. 写入 fstab:开机自动把模块目录挂到 /usr/lib/modules

echo '/var/lib/kmods-7.1.10/lib/modules /usr/lib/modules none bind 0 0' | sudo tee -a /etc/fstab

B6. 更新引导

sudo update-grub

B7. 重启

sudo reboot

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

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

但是......要上班的别学我,要完犊子的!shamedsyse_rror-0827.txt

image.png

image.png

image.png

Reply View the author