Maheidem/gigabyte-gpu-lcd
GitHub: Maheidem/gigabyte-gpu-lcd
该项目逆向了 Gigabyte AORUS 显卡 LCD 的 I2C 控制协议,提供了 Linux 下的 Python 控制库和命令行工具,用于在显卡面板上渲染文本、图片、动画及本地 AI 推理状态。
Stars: 0 | Forks: 0
# gigabyte-gpu-lcd
用于 Gigabyte AORUS GPU 上 LCD 的 Linux 控制库和 CLI。
本仓库收录了在 Gigabyte AORUS
GeForce RTX 5090 MASTER ICE 上恢复的工作协议。经过测试的 LCD 控制器位于 Linux I2C 总线
`/dev/i2c-3`,7 位地址为 `0x61`,固件版本报告为 `F1.4`。
该软件包有意将普通文本和状态屏幕渲染至
静态图像槽位中。在受测显卡上,厂商文本槽位可以对上传的像素应用面板端效果。要在黑色背景上显示
精确的白色文本,静态图像模式是最可靠的途径。
## 状态
- 受测硬件:Gigabyte AORUS GeForce RTX 5090 MASTER ICE 32G。
- 协议系列:旧版 GCC `GvLcdApi`,而非较新的 `GvLcdExApi`。
- 静态图像上传:正常工作。
- GIF/RLE 动画上传:正常工作。
- 厂商指标层清除:正常工作。
- 厂商文本槽位:已映射,但不建议用于精确输出。
- 已发布的仓库:。
本仓库不包含任何 Gigabyte 的二进制文件、资产或固件。
## 本地安装
```
cd ~/gigabyte-gpu-lcd
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[dev]'
```
大多数硬件写入操作需要打开 `/dev/i2c-N` 的权限。请使用 root、sudo 或适当的本地 udev/i2c 组规则。
## 探测 LCD
```
sudo -E .venv/bin/gigabyte-lcd probe
```
在受测的 RTX 5090 上的预期输出:
```
target: /dev/i2c-3 addr 0x61
firmware: F1.4
```
## 发送精确文本
此操作会将文本渲染为 320x170 的位图,上传至地址为 `0x01300000` 的静态图像槽位,清除指标层,将轮播锁定为图像模式,并强制将显示模式设为 `3`。
```
sudo -E .venv/bin/gigabyte-lcd send-text $'LOCAL LLM\nREADY' --write
```
对于状态屏幕以及任何要求像素精确的场景,请使用此途径。
## 发送本地推理状态
```
sudo -E .venv/bin/gigabyte-lcd send-status --write
```
状态渲染器会检查兼容 OpenAI 的本地模型 endpoint、进程 CPU 以及 `nvidia-smi`:
- vLLM 模型 endpoint:`127.0.0.1:8082/v1/models`
- llama.cpp 模型 endpoint:`127.0.0.1:8081/v1/models`
- 代理回退 endpoint:`127.0.0.1:8080/v1/models`
- GPU VRAM 和功耗 (watts):`nvidia-smi`
面板文本布局如下:
```
CPU % VRAM G
PWR W
```
## 发送动画
```
sudo -E .venv/bin/gigabyte-lcd send-rainbow-text "LOCAL LLM READY" --write
sudo -E .venv/bin/gigabyte-lcd send-status --animated --write
sudo -E .venv/bin/gigabyte-lcd send-gif /path/to/animation.gif --max-frames 60 --write
```
动画命令会上传 RLE GIF payload 并强制将显示模式设为 `5`。
## 在不触碰硬件的情况下进行渲染
每个渲染器默认都会写入 PNG 预览和二进制 payload:
```
.venv/bin/gigabyte-lcd render-text $'LOCAL LLM\nREADY'
.venv/bin/gigabyte-lcd render-status
.venv/bin/gigabyte-lcd render-status --animated
.venv/bin/gigabyte-lcd render-image /path/to/image.png
.venv/bin/gigabyte-lcd render-gif /path/to/animation.gif --max-frames 12
```
使用 `--preview` 和 `--payload-out` 可选择输出路径。
## 安全提示
- 本工具会直接与连接到 GPU 的 I2C 进行通信。请仅在您可控的硬件上使用。
- 默认目标为受测显卡:`--bus 3 --addr 0x61 --device-id 0x21`。
- 请勿假设其他世代的 Gigabyte GPU 使用相同的总线、地址或上传地址。
- 在 CLI 发送任何 LCD 上传指令之前,必须提供 `--write` 参数。
- `send-text --vendor-text-slot` 仅用于协议测试。在受测显卡上,即使清除了指标层标志,它仍可能显示彩虹/效果层。
## 文档
- [协议](docs/protocol.md)
- [硬件说明](docs/hardware-notes.md)
- [经验总结](docs/lessons-learned.md)
- [发布清单](docs/publish.md)
标签:GPU监控, I2C通信, 文档结构分析, 状态监控, 硬件控制, 逆向工具