#!/bin/bash
#===============================================================================
# Armbian 精简清理脚本
# 适用硬件:Intel Atom Z8350 + Realtek RTL8168 网卡
# 使用场景:Docker 容器 + 无 WiFi/蓝牙
#===============================================================================
set -e
echo "=========================================="
echo " Armbian 精简清理脚本"
echo " 硬件:Z8350 + RTL8168"
echo "=========================================="
echo ""
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# 记录清理前的空间
echo -e "${YELLOW}[信息]${NC} 清理前空间使用情况:"
df -h / | tail -1
echo ""
#===============================================================================
# 1. APT 缓存清理
#===============================================================================
echo -e "${YELLOW}[1/8]${NC} 清理 APT 缓存..."
apt-get clean -y
apt-get autoclean -y
rm -rf /var/cache/apt/pkgcache.bin /var/cache/apt/srcpkgcache.bin
rm -rf /var/lib/apt/lists/*
echo -e "${GREEN}✓${NC} APT 缓存清理完成"
echo ""
#===============================================================================
# 2. 系统日志清理
#===============================================================================
echo -e "${YELLOW}[2/8]${NC} 清理系统日志..."
journalctl --vacuum-size=50M
echo -e "${GREEN}✓${NC} 系统日志清理完成"
echo ""
#===============================================================================
# 3. 不用的固件清理
#===============================================================================
echo -e "${YELLOW}[3/8]${NC} 清理不用的固件..."
# AMD 显卡固件(Z8350 不用)
rm -rf /usr/lib/firmware/amdgpu/
rm -rf /usr/lib/firmware/radeon/
# Intel Xe 显卡固件(Z8350 是 Gen8,不是 Xe 架构)
rm -rf /usr/lib/firmware/xe/
# Intel 新款核显固件(Z8350 不需要)
rm -f /usr/lib/firmware/i915/mtl_*.bin # Meteor Lake
rm -f /usr/lib/firmware/i915/dgmk_*.bin # DG2
rm -f /usr/lib/firmware/i915/mtl_*.bin # Meteor Lake
# QLogic 网卡固件
rm -rf /usr/lib/firmware/qed/
# LiquidIO 网卡固件
rm -rf /usr/lib/firmware/liquidio/
# NXP DPAA2 固件(非 NXP 平台)
rm -rf /usr/lib/firmware/dpaa2/
# 展锐 WiFi 固件
rm -rf /usr/lib/firmware/uwe5622/
# Phantoms 固件
rm -f /usr/lib/firmware/phanfw.bin
# Intel 蓝牙固件(如无蓝牙设备)
rm -f /usr/lib/firmware/intel/ibt-*
# Intel IPU 摄像头固件
rm -rf /usr/lib/firmware/intel/ipu/
# Intel VPU 视频处理固件
rm -rf /usr/lib/firmware/intel/vpu/
# Mellanox 网卡固件
rm -rf /usr/lib/firmware/mellanox/
# Netronome 网卡固件
rm -rf /usr/lib/firmware/netronome/
# Broadcom 网卡固件
rm -rf /usr/lib/firmware/bnx2x/
rm -rf /usr/lib/firmware/brcm/
# Chelsio 网卡固件
rm -rf /usr/lib/firmware/cxgb4/
# Marvell 固件
rm -rf /usr/lib/firmware/mrvl/
# NVIDIA 固件
rm -rf /usr/lib/firmware/nvidia/
# MediaTek 固件
rm -rf /usr/lib/firmware/mediatek/
# Realtek WiFi 固件(保留 rtl_nic 有线网卡固件)
rm -rf /usr/lib/firmware/rtw89/
rm -rf /usr/lib/firmware/rtl8723/
rm -rf /usr/lib/firmware/rtl8821/
# Atheros/Qualcomm WiFi 固件
rm -rf /usr/lib/firmware/ath10k/
rm -rf /usr/lib/firmware/ath11k/
rm -rf /usr/lib/firmware/ath12k/
rm -rf /usr/lib/firmware/ar3k/
rm -rf /usr/lib/firmware/ar9170/
rm -rf /usr/lib/firmware/ath6k/
rm -rf /usr/lib/firmware/ath9k/
# Intel WiFi 固件
rm -rf /usr/lib/firmware/intel/iwlwifi/
# Qualcomm 平台固件(非 Qualcomm 平台)
rm -rf /usr/lib/firmware/qcom/
echo -e "${GREEN}✓${NC} 固件清理完成"
echo ""
#===============================================================================
# 4. 不用的内核模块清理
#===============================================================================
echo -e "${YELLOW}[4/8]${NC} 清理不用的内核模块..."
KERNEL_VER=$(ls /usr/lib/modules/ | head -1)
MODULES_DIR="/usr/lib/modules/${KERNEL_VER}/kernel"
# 不用的网卡驱动(保留 r8169)
rm -rf ${MODULES_DIR}/drivers/net/ethernet/{intel,broadcom,mellanox,netronome,qlogic,chelsio,sfc}/
rm -rf ${MODULES_DIR}/drivers/net/wireless/
# 不用的文件系统(保留 ext4)
rm -rf ${MODULES_DIR}/fs/{ocfs2,gfs2,ceph,afs,nfs,nfsd}/
# 不用的 GPU 驱动(保留 i915)
rm -rf ${MODULES_DIR}/drivers/gpu/drm/{amdgpu,radeon,xe,nouveau}/
# 不用的 KVM 虚拟化
rm -rf ${MODULES_DIR}/arch/x86/kvm/
# 不用的 InfiniBand
rm -rf ${MODULES_DIR}/drivers/infiniband/
# 不用的 SCSI 特殊驱动
rm -rf ${MODULES_DIR}/drivers/scsi/{lpfc,qla2xxx,bfa}/
# 不用的加速器
rm -rf ${MODULES_DIR}/drivers/accel/
# 不用的 Thunderbolt
rm -rf ${MODULES_DIR}/drivers/thunderbolt/
# 更新模块依赖
depmod -a
echo -e "${GREEN}✓${NC} 内核模块清理完成"
echo ""
#===============================================================================
# 5. 文档和手册清理
#===============================================================================
echo -e "${YELLOW}[5/8]${NC} 清理文档和手册..."
rm -rf /usr/share/doc/*
rm -rf /usr/share/man/*
rm -rf /usr/share/info/*
echo -e "${GREEN}✓${NC} 文档清理完成"
echo ""
#===============================================================================
# 6. Zsh 插件 Git 数据清理
#===============================================================================
echo -e "${YELLOW}[6/8]${NC} 清理 Zsh 插件 Git 数据..."
# rm -rf /root/.zsh/*/\.git 2>/dev/null || true
# echo -e "${GREEN}✓${NC} Zsh Git 数据清理完成"
echo ""
#===============================================================================
# 7. Docker/Containerd 清理(可选)
#===============================================================================
echo -e "${YELLOW}[7/8]${NC} 清理 Docker 缓存..."
if command -v docker &> /dev/null; then
docker system prune -f 2>/dev/null || true
echo -e "${GREEN}✓${NC} Docker 缓存清理完成"
else
echo -e "${YELLOW}⊘${NC} Docker 未安装,跳过"
fi
echo ""
#===============================================================================
# 8. 其他临时文件清理
#===============================================================================
echo -e "${YELLOW}[8/8]${NC} 清理临时文件..."
rm -rf /tmp/*
rm -rf /var/tmp/*
rm -rf /var/cache/debconf/*.dat-old
echo -e "${GREEN}✓${NC} 临时文件清理完成"
echo ""
#===============================================================================
# 清理完成
#===============================================================================
echo "=========================================="
echo -e "${GREEN} 清理完成!${NC}"
echo "=========================================="
echo ""
echo -e "${YELLOW}清理后空间使用情况:${NC}"
df -h / | tail -1
echo ""
echo -e "${YELLOW}固件目录大小:${NC}"
du -sh /usr/lib/firmware/
echo ""
echo -e "${YELLOW}建议操作:${NC}"
echo " 1. 重启系统:sudo reboot"
echo " 2. 验证网络:ping -c 3 8.8.8.8"
echo " 3. 验证核显:lsmod | grep i915"
echo ""