# GPU 显卡驱动管理任务栏插件 Deepin V25 DDE Shell 任务栏插件,实时检测 GPU 设备、显示驱动信息和温度/使用率监控。 ## 功能特性 - **GPU 设备检测** - 通过 `lspci` + `sysfs` 检测所有显卡(NVIDIA/AMD/Intel) - **驱动信息显示** - 驱动模块名 + 版本号(NVIDIA 用 nvidia-smi/proc,AMD 用内核版本) - **实时温度监控** - NVIDIA 用 `nvidia-smi`,AMD 用 `hwmon`,2 秒自动刷新 - **GPU 使用率** - 进度条显示,NVIDIA 用 `nvidia-smi`,AMD 用 `gpu_busy_percent` - **显存使用** - 已用/总量 (MB),带使用率百分比 - **主副显标识** - 通过 `boot_vga` 区分主显卡(绿色"主显"标签) - **GPU 切换模式检测** - 自动识别 PRIME / Bumblebee / Solo / Hybrid 模式 - **国际化** - 支持简体中文、繁体中文、英文 ## 截图 ``` ┌─────────────────────────────────────┐ │ GPU 显卡驱动管理 │ │─────────────────────────────────────│ │ 当前驱动: nvidia, amdgpu [PRIME] │ │─────────────────────────────────────│ │ ┌─────────────────────────────────┐ │ │ │ NV NVIDIA GeForce RTX 3060 主显│ │ │ │ nvidia 580.119.02 │ │ │ │ 54°C 108/6144 MB │ │ │ │ GPU ████░░░░░░ 36% │ │ │ └─────────────────────────────────┘ │ │ ┌─────────────────────────────────┐ │ │ │ AMD AMD Radeon Vega │ │ │ │ amdgpu Linux 6.18.36 │ │ │ │ 90°C 471/512 MB │ │ │ │ GPU ████████░░ 71% │ │ │ └─────────────────────────────────┘ │ │ [ 刷新 ] │ └─────────────────────────────────────┘ ``` ## 依赖项 ### 构建依赖 ``` cmake (>= 3.16) g++ qt6-base-dev qt6-l10n-tools # lrelease 翻译编译 libdde-shell-dev # DDE Shell 插件头文件 libdtk6core-dev # DTK6 Core ``` ### 运行时依赖 ``` dde-shell # 任务栏宿主 lspci # GPU 检测(pciutils 包) nvidia-smi # NVIDIA 监控(可选,nvidia-driver 包自带) ``` ## 构建 ```bash # 安装构建依赖 sudo apt install -y cmake g++ qt6-base-dev qt6-l10n-tools libdde-shell-dev libdtk6core-dev # 构建 cmake -Bbuild cmake --build build ``` ## 安装 ### 方式一:一键脚本 ```bash bash install.sh ``` ### 方式二:手动安装 ```bash sudo cmake --install build systemctl --user restart dde-shell@DDE ``` ### 方式三:deb 包 ```bash bash build-deb.sh --install ``` ## 卸载 ```bash sudo rm -f /usr/lib/x86_64-linux-gnu/dde-shell/org.deepin.ds.graphics-driver.so sudo rm -rf /usr/share/dde-shell/org.deepin.ds.graphics-driver systemctl --user restart dde-shell@DDE ``` ## 项目结构 ``` ├── package/ │ ├── metadata.json # 插件元数据(ID、父插件、dockOrder) │ └── driverview.qml # QML 界面(弹窗、卡片、tooltip) ├── translations/ │ ├── *_zh_CN.ts # 简体中文翻译 │ └── *_zh_TW.ts # 繁体中文翻译 ├── graphicsdriverapplet.h # C++ 插件类头文件 ├── graphicsdriverapplet.cpp # C++ 插件类实现 ├── debian/ # Debian 打包配置 ├── docs/ # 设计文档 │ └── GPU_SWITCH_AND_DRIVER_INSTALL.md ├── CMakeLists.txt # 构建配置 ├── install.sh # 一键构建安装脚本 ├── build-deb.sh # 一键 deb 打包脚本 └── README.md ``` ## 技术实现 ### 架构 ``` ┌──────────────────────────────────────────────┐ │ DDE Shell Taskbar │ ├──────────────────────────────────────────────┤ │ org.deepin.ds.graphics-driver │ │ ┌──────────┐ ┌──────────┐ ┌───────────┐ │ │ │ GPU 检测 │ │ 实时监控 │ │ QML UI │ │ │ │ lspci │ │ nvidia-smi│ │ 卡片 │ │ │ │ sysfs │ │ hwmon │ │ tooltip │ │ │ │ boot_vga │ │ drm │ │ 进度条 │ │ │ └──────────┘ └──────────┘ └───────────┘ │ └──────────────────────────────────────────────┘ ``` ### 数据采集方式 | 数据 | NVIDIA | AMD/Intel | |------|--------|-----------| | GPU 检测 | `lspci -mm` | `lspci -mm` | | 驱动名 | `/sys/bus/pci/.../driver` symlink | 同左 | | 驱动版本 | `/proc/driver/nvidia/version` | `/proc/sys/kernel/osrelease` | | 温度 | `nvidia-smi` | `/sys/class/hwmon/hwmonN/temp1_input` | | GPU 使用率 | `nvidia-smi` | `/sys/class/drm/cardN/device/gpu_busy_percent` | | 显存 | `nvidia-smi` | `/sys/class/drm/cardN/device/mem_info_vram_*` | | 主副显 | `/sys/bus/pci/.../boot_vga` | 同左 | | 切换模式 | `nvidia-drm-outputclass.conf` 检测 | - | ### QML 属性接口 | 属性 | 类型 | 说明 | |------|------|------| | `applet.ready` | bool | GPU 检测完成 | | `applet.deviceInfo` | QString | GPU 信息(每行一个) | | `applet.currentDriver` | QString | 当前驱动列表 | | `applet.gpuSummary` | QString | GPU 摘要 | | `applet.gpuStats` | QStringList | 实时统计(temp\|gpu\|mem\|used\|total) | | `applet.gpuMode` | QString | 切换模式(PRIME/Bumblebee/Solo/Hybrid) | | `applet.gpuPrimary` | QStringList | 主副显标识(true/false) | | `applet.refreshStats()` | void | 刷新实时统计 | | `applet.refreshDeviceInfo()` | void | 重新检测 GPU | ## 使用说明 1. 插件安装后自动加载到任务栏右侧 2. **悬停**任务栏图标 - 显示 GPU 温度和使用率摘要 3. **点击**图标 - 打开弹窗,查看详细 GPU 信息 4. 弹窗内数据每 2 秒自动刷新 5. **悬停**卡片 - 显示该 GPU 的驱动详情 tooltip 6. **点击刷新** - 重新检测 GPU 设备 ## 开发计划 - [x] GPU 检测与驱动信息显示 - [x] 温度/使用率/显存实时监控 - [x] 主副显标识与 GPU 模式检测 - [ ] PRIME 显卡切换(全局开关) - [ ] 驱动安装(pkexec + apt) 详见 [设计方案文档](docs/GPU_SWITCH_AND_DRIVER_INSTALL.md) ## 许可证 GPL-3.0-or-later ## 相关项目 - [dde-shell](https://github.com/linuxdeepin/dde-shell) - Deepin Shell 插件系统