Skip to content

icepie/nvidia-edid-scripts

Repository files navigation

NVIDIA EDID 虚拟显示器管理脚本

这个目录包含了用于管理 NVIDIA EDID 虚拟显示器配置的实用脚本。

脚本列表

1. check-virtual-display.sh

功能: 全面检查虚拟显示器配置状态

使用方法:

./check-virtual-display.sh

检查项目:

  • 内核参数 (nvidia-drm.modeset)
  • NVIDIA DRM 模块状态
  • EDID 文件完整性
  • Xorg 配置文件
  • LightDM 服务状态
  • 虚拟显示器连接状态
  • X.Org 日志中的 EDID 加载记录
  • GPU 信息

使用场景:

  • 初次配置后验证
  • 故障排查
  • 系统更新后检查
  • 定期维护检查

2. toggle-virtual-display.sh

功能: 快速启用/禁用虚拟显示器

使用方法:

./toggle-virtual-display.sh

操作流程:

  1. 脚本会检测当前状态(启用/禁用)
  2. 提示是否切换状态
  3. 移动配置文件(启用/禁用)
  4. 提示重启 LightDM

注意事项:

  • 需要 sudo 权限
  • 切换后需要重启 LightDM: sudo systemctl restart lightdm
  • 或者重启系统以完全应用更改

使用场景:

  • 临时需要使用物理显示器
  • 测试不同配置
  • 故障排查时禁用虚拟显示器

3. backup-config.sh

功能: 备份所有 NVIDIA EDID 相关配置文件

使用方法:

./backup-config.sh

备份内容:

  • /lib/firmware/edid/1920x1080.bin - EDID 固件文件
  • /etc/default/grub - GRUB 配置
  • /etc/mkinitcpio.conf - initramfs 配置
  • /etc/X11/xorg.conf.d/10-nvidia-dummy.conf - Xorg 配置

备份位置:

  • ~/nvidia-edid-backups/nvidia-edid-config-YYYYMMDD_HHMMSS.tar.gz

使用场景:

  • 修改配置前备份
  • 系统更新前备份
  • 定期备份(建议每月一次)
  • 测试新配置前备份

4. restore-config.sh

功能: 从备份恢复配置文件

使用方法:

./restore-config.sh

操作流程:

  1. 列出所有可用备份
  2. 选择要恢复的备份
  3. 显示备份内容
  4. 确认后恢复文件
  5. 提示后续操作步骤

恢复后步骤:

# 1. 重新生成 GRUB 配置
sudo grub-mkconfig -o /boot/grub/grub.cfg

# 2. 重新生成 initramfs
sudo mkinitcpio -P

# 3. 重启系统
sudo reboot

使用场景:

  • 配置出错需要回滚
  • 系统更新导致配置失效
  • 测试失败后恢复
  • 迁移配置到新系统

快速开始

首次使用

  1. 检查当前状态:

    cd ~/nvidia-edid-scripts
    ./check-virtual-display.sh
  2. 创建初始备份:

    ./backup-config.sh

日常使用

查看虚拟显示器状态:

DISPLAY=:0 xrandr

查看 GPU 状态:

nvidia-smi

查看 LightDM 日志:

sudo journalctl -u lightdm -n 50

查看 X.Org 日志:

sudo tail -100 /var/log/Xorg.0.log

故障排查流程

  1. 运行状态检查:

    ./check-virtual-display.sh
  2. 查看详细日志:

    # LightDM 日志
    sudo journalctl -u lightdm -n 100 --no-pager
    
    # X.Org 日志
    sudo cat /var/log/Xorg.0.log | tail -100
    
    # 内核日志 (EDID 相关)
    sudo dmesg | grep -i edid
  3. 临时禁用虚拟显示器:

    ./toggle-virtual-display.sh
    sudo systemctl restart lightdm
  4. 如果问题严重,恢复备份:

    ./restore-config.sh

常见问题

Q: 脚本提示权限不足

A: 某些操作需要 sudo 权限,脚本会自动提示输入密码。

Q: check-virtual-display.sh 显示多个 ✗

A: 按照检查结果逐项修复:

  • 内核参数未启用 → 检查 GRUB 配置
  • EDID 文件不存在 → 重新生成 EDID 文件
  • Xorg 配置不存在 → 重新创建配置文件
  • LightDM 未运行 → sudo systemctl start lightdm

Q: 切换虚拟显示器后黑屏

A:

  1. SSH 连接到机器
  2. 运行 ./check-virtual-display.sh 检查状态
  3. 查看 /var/log/Xorg.0.log 日志
  4. 如需恢复,运行 ./restore-config.sh

Q: 备份文件太多怎么办

A: 手动删除旧备份:

cd ~/nvidia-edid-backups
ls -lt  # 查看所有备份
rm nvidia-edid-config-YYYYMMDD_HHMMSS.tar.gz  # 删除指定备份

Q: 如何在另一台机器上使用这些配置

A:

  1. 复制备份文件到新机器
  2. 运行 ./restore-config.sh
  3. 根据新机器的 GPU PCI 地址修改 Xorg 配置中的 BusID
  4. 重新生成 GRUB 和 initramfs
  5. 重启

维护建议

定期维护(每月)

# 1. 检查状态
./check-virtual-display.sh

# 2. 创建备份
./backup-config.sh

# 3. 清理旧备份(保留最近 5 个)
cd ~/nvidia-edid-backups
ls -t nvidia-edid-config-*.tar.gz | tail -n +6 | xargs rm -f

系统更新前

# 1. 备份当前配置
./backup-config.sh

# 2. 记录当前状态
./check-virtual-display.sh > ~/nvidia-status-before-update.txt

# 3. 执行系统更新
sudo pacman -Syu

# 4. 更新后检查
./check-virtual-display.sh

# 5. 如有问题,对比状态或恢复备份

NVIDIA 驱动更新后

# 1. 检查驱动版本
nvidia-smi

# 2. 重新生成 initramfs
sudo mkinitcpio -P

# 3. 检查虚拟显示器状态
./check-virtual-display.sh

# 4. 如有问题,重启系统
sudo reboot

高级用法

自动化备份(cron)

创建每周自动备份:

# 编辑 crontab
crontab -e

# 添加以下行(每周日凌晨 2 点备份)
0 2 * * 0 /home/icepie/nvidia-edid-scripts/backup-config.sh > /dev/null 2>&1

远程检查脚本

在本地机器上检查远程机器状态:

ssh 192.168.0.74 "bash -s" < ~/nvidia-edid-scripts/check-virtual-display.sh

批量部署

如果有多台机器需要配置:

# 1. 在第一台机器上完成配置
# 2. 创建备份
./backup-config.sh

# 3. 复制备份到其他机器
scp ~/nvidia-edid-backups/nvidia-edid-config-*.tar.gz user@other-machine:~/

# 4. 在其他机器上恢复
ssh user@other-machine
./restore-config.sh

相关文档


脚本更新日志

v1.0 (2026-02-04)

  • 初始版本
  • 包含 4 个基础管理脚本
  • 支持状态检查、备份、恢复、切换功能

维护者: Claude Code 最后更新: 2026-02-04 许可: MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages