nvidia: rog_turing: enable support for more cards

They reportedly use the same controller and protocol as the already
supported 1070 (OC) and 2080 Ti OC.[^1]

But, for the time being, list them with the "experimental" tag.

[^1]: d8f28b546d/Controllers/AsusAuraGPUController/AsusAuraGPUControllerDetect.cpp (L37-76)
This commit is contained in:
Jonas Malaco 2022-03-02 05:41:51 -03:00
parent d9bbcfe48d
commit e9273093db
6 changed files with 484 additions and 23 deletions

View File

@ -109,7 +109,7 @@ The notes are sorted alphabetically, major (upper case) notes before minor
-->
| Type | Device family and specific documentation | Bus | Notes |
| :-: | :-- | :-: | :-- |
| :-- | :-- | :-: | --: |
| AIO liquid cooler | [Corsair Hydro GT/GTX H80i, H100i, H110i](docs/asetek-690lc-guide.md) | USB | <sup>_Ze_</sup> |
| AIO liquid cooler | [Corsair Hydro v2 H80i, H100i, H115i](docs/asetek-690lc-guide.md) | USB | <sup>_Z_</sup> |
| AIO liquid cooler | [Corsair Hydro Pro H100i, H115i, H150i](docs/asetek-pro-guide.md) | USB | <sup>_Z_</sup> |
@ -134,11 +134,11 @@ The notes are sorted alphabetically, major (upper case) notes before minor
| Fan/LED controller | [NZXT RGB & Fan Controller](docs/nzxt-hue2-guide.md) | USB HID | <sup>_h_</sup> |
| Fan/LED controller | [NZXT Smart Device](docs/nzxt-smart-device-v1-guide.md) | USB HID | <sup>_h_</sup> |
| Fan/LED controller | [NZXT Smart Device V2](docs/nzxt-hue2-guide.md) | USB HID | <sup>_h_</sup> |
| Graphics card | [ASUS Strix GTX 1070](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card | [ASUS Strix RTX 2080 Ti OC](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card | [EVGA GTX 1070 FTW, FTW DT Gaming, FTW Hybrid](docs/nvidia-guide.md) | I²C | <sup>_Uenx_</sup> |
| Graphics card | [EVGA GTX 1070 Ti FTW2](docs/nvidia-guide.md) | I²C | <sup>_Uenx_</sup> |
| Graphics card | [EVGA GTX 1080 FTW](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card RGB | [ASUS Strix GTX 1070 OC](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card RGB | [ASUS Strix RTX 2080 Ti OC](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card RGB | [More Strix GTX and RTX cards](docs/nvidia-guide.md) | I²C | <sup>_Uenx_</sup> |
| Graphics card RGB | [EVGA GTX 1080 FTW](docs/nvidia-guide.md) | I²C | <sup>_Ux_</sup> |
| Graphics card RGB | [More EVGA GTX 1070 and 1070 Ti cards](docs/nvidia-guide.md) | I²C | <sup>_Uenx_</sup> |
| Motherboard | [Gigabyte RGB Fusion 2.0 motherboards](docs/gigabyte-rgb-fusion2-guide.md) | USB HID | |
| Power supply | [Corsair HX750i, HX850i, HX1000i, HX1200i](docs/corsair-hxi-rmi-psu-guide.md) | USB HID | <sup>_h_</sup> |
| Power supply | [Corsair RM650i, RM750i, RM850i, RM1000i](docs/corsair-hxi-rmi-psu-guide.md) | USB HID | <sup>_h_</sup> |

View File

@ -8,17 +8,51 @@ also be met:
- r/w permissions to card-specific `/dev/i2c-*` devices
- specific unsafe features have been opted in
Jump to a specific section:
Jump to the appropriate section for a supported card:
* _Series 10/Pascal:_
- [ASUS Strix GTX 1070][asus-gtx-rtx]
- [EVGA GTX 1070 FTW DT Gaming][evga-gp104]
- [EVGA GTX 1070 FTW Hybrid][evga-gp104]
- [EVGA GTX 1070 FTW][evga-gp104]
- [EVGA GTX 1070 Ti FTW2][evga-gp104]
- [ASUS Strix GTX 1050 OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1050 Ti OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1060 6GB][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1060 OC 6GB][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1070 OC][asus-gtx-rtx]
- [ASUS Strix GTX 1070 Ti Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1070 Ti][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1070][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1080 Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1080 OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1080 Ti OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1080 Ti][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1080][asus-gtx-rtx] _(experimental)_
- [EVGA GTX 1070 FTW DT Gaming][evga-gp104] _(experimental)_
- [EVGA GTX 1070 FTW Hybrid][evga-gp104] _(experimental)_
- [EVGA GTX 1070 FTW][evga-gp104] _(experimental)_
- [EVGA GTX 1070 Ti FTW2][evga-gp104] _(experimental)_
- [EVGA GTX 1080 FTW][evga-gp104]
* _Series 16/Turing:_
- [ASUS Strix GTX 1650 Super OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1660 Super OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix GTX 1660 Ti OC][asus-gtx-rtx] _(experimental)_
* _Series 20/Turing:_
- [ASUS Strix RTX 2060 Evo OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 Evo][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 Super Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 Super Evo Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 Super OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2060 Super][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2070 Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2070 OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2070 Super Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2070 Super OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2070][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2080 OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2080 Super Advanced][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2080 Super OC][asus-gtx-rtx] _(experimental)_
- [ASUS Strix RTX 2080 Ti OC][asus-gtx-rtx]
- [ASUS Strix RTX 2080 Ti][asus-gtx-rtx] _(experimental)_
* _Series 30/Ampere:_
- [ASUS TUF RTX 3060 Ti OC][asus-gtx-rtx] _(experimental)_
* _[Inherent unsafeness of I²C]_
@ -92,6 +126,7 @@ Only RGB lighting supported.
Unsafe features:
- `smbus`: see [Inherent unsafeness of I²C]
- `experimental_asus_gpu`: enable new/experimental devices
### Initialization

View File

@ -43,18 +43,246 @@ KERNEL=="i2c-*", DRIVERS=="i801_smbus", TAG+="uaccess", \
# Section: NVIDIA graphics cards
# ASUS Strix GTX 1050 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1c81", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85d8", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1050 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1c82", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85cd", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1050 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1c82", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85d1", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1060 6GB
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1c03", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85a4", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1060 OC 6GB
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1c03", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85ac", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1070
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b81", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8598", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1070 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b81", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8599", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1070 Ti
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b82", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x861d", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1070 Ti Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b82", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x861e", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b80", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8592", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b80", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85aa", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b80", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85f9", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 Ti
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85eb", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 Ti
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85f1", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85ea", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1080 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x85e4", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1650 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x2187", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x874f", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1660 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x21c4", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8752", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix GTX 1660 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x2182", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x86a5", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Evo
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f08", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x86d3", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Evo OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e89", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8775", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f08", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x868e", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Super
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8730", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Super Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x86fc", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Super Evo Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f47", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8703", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2060 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f06", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x86fb", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e84", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8707", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f07", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8671", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1f07", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8670", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Super Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1ec7", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x86ff", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Super Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e84", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8728", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Super Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e84", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8706", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e84", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8727", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2070 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e84", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8729", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2080 OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e87", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x865f", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2080 Super Advanced
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e81", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8712", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2080 Super OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e81", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8711", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2080 Ti
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e04", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x8687", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS Strix RTX 2080 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1e07", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x866a", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# ASUS TUF RTX 3060 Ti OC
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x2489", ATTRS{subsystem_vendor}=="0x1043", \
ATTRS{subsystem_device}=="0x87c6", DRIVERS=="nvidia", TAG+="uaccess", \
RUN{builtin}="kmod load i2c-dev"
# EVGA GTX 1070 FTW
KERNEL=="i2c-*", ATTR{name}=="NVIDIA i2c adapter 1 *", ATTRS{vendor}=="0x10de", \
ATTRS{device}=="0x1b81", ATTRS{subsystem_vendor}=="0x3842", \

View File

@ -508,8 +508,40 @@ The animation direction can be set with
.BI \-\-direction= value ,
where the allowed values are: \fIforward\fR or \fIbackward\fR.
.
.SS ASUS Strix GTX 1050 OC
.SS ASUS Strix GTX 1050 Ti OC
.SS ASUS Strix GTX 1060 6GB
.SS ASUS Strix GTX 1060 OC 6GB
.SS ASUS Strix GTX 1070
.SS ASUS Strix GTX 1070 OC
.SS ASUS Strix GTX 1070 Ti
.SS ASUS Strix GTX 1070 Ti Advanced
.SS ASUS Strix GTX 1080
.SS ASUS Strix GTX 1080 Advanced
.SS ASUS Strix GTX 1080 OC
.SS ASUS Strix GTX 1080 Ti
.SS ASUS Strix GTX 1080 Ti OC
.SS ASUS Strix GTX 1650 Super OC
.SS ASUS Strix GTX 1660 Super OC
.SS ASUS Strix GTX 1660 Ti OC
.SS ASUS Strix RTX 2060 Evo
.SS ASUS Strix RTX 2060 Evo OC
.SS ASUS Strix RTX 2060 OC
.SS ASUS Strix RTX 2060 Super
.SS ASUS Strix RTX 2060 Super Advanced
.SS ASUS Strix RTX 2060 Super Evo Advanced
.SS ASUS Strix RTX 2060 Super OC
.SS ASUS Strix RTX 2070
.SS ASUS Strix RTX 2070 Advanced
.SS ASUS Strix RTX 2070 OC
.SS ASUS Strix RTX 2070 Super Advanced
.SS ASUS Strix RTX 2070 Super OC
.SS ASUS Strix RTX 2080 OC
.SS ASUS Strix RTX 2080 Super Advanced
.SS ASUS Strix RTX 2080 Super OC
.SS ASUS Strix RTX 2080 Ti
.SS ASUS Strix RTX 2080 Ti OC
.SS ASUS TUF RTX 3060 Ti OC
Fan channels: none.
.PP
Lighting channels: \fIled\fR.

View File

@ -13,21 +13,97 @@ from liquidctl.util import RelaxedNamesEnum, check_unsafe
_LOGGER = logging.getLogger(__name__)
# sources for pci device and subsystem device ids:
# - https://www.nv-drivers.eu/nvidia-all-devices.html
# - https://pci-ids.ucw.cz/pci.ids
# - https://gitlab.com/CalcProgrammer1/OpenRGB/-/blob/master/pci_ids/pci_ids.h
# vendor, devices
# FWUPD_GUID = [vendor]:[device] - use hwinfo to inspect
NVIDIA = 0x10de
NVIDIA_GTX_1050 = 0x1c81
NVIDIA_GTX_1050_TI = 0x1c82
NVIDIA_GTX_1060 = 0x1c03
NVIDIA_GTX_1070 = 0x1b81
NVIDIA_GTX_1070_TI = 0x1b82
NVIDIA_GTX_1080 = 0x1b80
NVIDIA_GTX_1080_TI = 0x1b06
NVIDIA_GTX_1650 = 0x1f82
NVIDIA_GTX_1650S = 0x2187
NVIDIA_GTX_1660 = 0x2184
NVIDIA_GTX_1660S = 0x21c4
NVIDIA_GTX_1660_TI = 0x2182
NVIDIA_RTX_2060S = 0x1f47
NVIDIA_RTX_2060S_OC = 0x1f06
NVIDIA_RTX_2060_TU104 = 0x1e89
NVIDIA_RTX_2060_TU106 = 0x1f08
NVIDIA_RTX_2070 = 0x1f02
NVIDIA_RTX_2070S = 0x1ec7
NVIDIA_RTX_2070S_OC = 0x1e84
NVIDIA_RTX_2070_OC = 0x1f07
NVIDIA_RTX_2080 = 0x1e82
NVIDIA_RTX_2080S = 0x1e81
NVIDIA_RTX_2080_REV_A = 0x1e87
NVIDIA_RTX_2080_TI = 0x1e04
NVIDIA_RTX_2080_TI_REV_A = 0x1e07
# https://www.nv-drivers.eu/nvidia-all-devices.html
# https://pci-ids.ucw.cz/pci.ids
NVIDIA_RTX_3050 = 0x2507
NVIDIA_RTX_3060 = 0x2503
NVIDIA_RTX_3060_GA104 = 0x2487
NVIDIA_RTX_3060_LHR = 0x2504
NVIDIA_RTX_3060_TI = 0x2486
NVIDIA_RTX_3060_TI_LHR = 0x2489
NVIDIA_RTX_3070 = 0x2484
NVIDIA_RTX_3070_LHR = 0x2488
NVIDIA_RTX_3070_TI = 0x2482
NVIDIA_RTX_3080 = 0x2206
NVIDIA_RTX_3080_12G_LHR = 0x220a
NVIDIA_RTX_3080_LHR = 0x2216
NVIDIA_RTX_3080_TI = 0x2208
NVIDIA_RTX_3090 = 0x2204
# subsystem vendor ASUS, subsystem devices
# PCI_SUBSYS_ID = [subsystem vendor]:[subsystem device] - use hwinfo to inspect
ASUS = 0x1043
ASUS_STRIX_GTX_1070 = 0x8599
ASUS_STRIX_GTX_1050_O2G = 0x85d8
ASUS_STRIX_GTX_1050_TI_O4G = 0x85cd
ASUS_STRIX_GTX_1050_TI_O4G_2 = 0x85d1
ASUS_STRIX_GTX_1060_6G = 0x85a4
ASUS_STRIX_GTX_1060_O6G = 0x85ac
ASUS_STRIX_GTX_1070 = 0x8598
ASUS_STRIX_GTX_1070_OC = 0x8599
ASUS_STRIX_GTX_1070_TI_8G = 0x861d
ASUS_STRIX_GTX_1070_TI_A8G = 0x861e
ASUS_STRIX_GTX_1080 = 0x8592
ASUS_STRIX_GTX_1080_A8G = 0x85aa
ASUS_STRIX_GTX_1080_O8G = 0x85f9
ASUS_STRIX_GTX_1080_TI = 0x85eb
ASUS_STRIX_GTX_1080_TI_11G = 0x85f1
ASUS_STRIX_GTX_1080_TI_O11G = 0x85ea
ASUS_STRIX_GTX_1080_TI_O11G_A02 = 0x85e4
ASUS_STRIX_GTX_1650S_OC = 0x874f
ASUS_STRIX_GTX_1660S_O6G = 0x8752
ASUS_STRIX_GTX_1660_TI_OC = 0x86a5
ASUS_STRIX_RTX_2060S_8G = 0x8730
ASUS_STRIX_RTX_2060S_A8G = 0x86fc
ASUS_STRIX_RTX_2060S_A8G_EVO = 0x8703
ASUS_STRIX_RTX_2060S_O8G = 0x86fb
ASUS_STRIX_RTX_2060_EVO = 0x86d3
ASUS_STRIX_RTX_2060_O6G = 0x868e
ASUS_STRIX_RTX_2060_O6G_EVO = 0x8775
ASUS_STRIX_RTX_2070S_8G_8707 = 0x8707
ASUS_STRIX_RTX_2070S_A8G = 0x8728
ASUS_STRIX_RTX_2070S_A8G_86FF = 0x86ff
ASUS_STRIX_RTX_2070S_A8G_8706 = 0x8706
ASUS_STRIX_RTX_2070S_O8G = 0x8727
ASUS_STRIX_RTX_2070S_O8G_8729 = 0x8729
ASUS_STRIX_RTX_2070_A8G = 0x8671
ASUS_STRIX_RTX_2070_O8G = 0x8670
ASUS_STRIX_RTX_2080S_A8G = 0x8712
ASUS_STRIX_RTX_2080S_O8G = 0x8711
ASUS_STRIX_RTX_2080_O8G = 0x865f
ASUS_STRIX_RTX_2080_TI_11G = 0x8687
ASUS_STRIX_RTX_2080_TI_OC = 0x866a
ASUS_TUF_RTX_3060_TI_O8G_OC = 0x87c6
# subsystem vendor EVGA, subsystem devices
# PCI_SUBSYS_ID = [subsystem vendor]:[subsystem device] - use hwinfo to inspect
@ -242,10 +318,57 @@ class RogTuring(SmbusDriver, _NvidiaI2CDriver):
_VENDOR = ASUS
_ADDRESSES = [0x29, 0x2a, 0x60]
_MATCHES = [
(NVIDIA_GTX_1070, ASUS_STRIX_GTX_1070,
'ASUS Strix GTX 1070'),
(NVIDIA_RTX_2080_TI_REV_A, ASUS_STRIX_RTX_2080_TI_OC,
'ASUS Strix RTX 2080 Ti OC'),
# description normalization rules:
# - remove redundant ROG and meaningless GAMING;
# - remove redundancies within a particular GPU core;
# - keep OC when appropriate;
# - uppercase ASUS and TUF, titlecase Evo, Ti and Stix;
# - enforce ASUS Strix|TUF GTX|RTX <number> [Super] [Ti] [Evo] [OC] [...] order;
# - use consistent memory sizes: 2GB, 4GB, 6GB, 8GB (but omit when redundant).
# stable
(NVIDIA_GTX_1070, ASUS_STRIX_GTX_1070_OC, 'ASUS Strix GTX 1070 OC'),
(NVIDIA_RTX_2080_TI_REV_A, ASUS_STRIX_RTX_2080_TI_OC, 'ASUS Strix RTX 2080 Ti OC'),
# experimental
(NVIDIA_GTX_1050, ASUS_STRIX_GTX_1050_O2G, 'ASUS Strix GTX 1050 OC (experimental)'),
(NVIDIA_GTX_1050_TI, ASUS_STRIX_GTX_1050_TI_O4G, 'ASUS Strix GTX 1050 Ti OC (experimental)'),
(NVIDIA_GTX_1050_TI, ASUS_STRIX_GTX_1050_TI_O4G_2, 'ASUS Strix GTX 1050 Ti OC (experimental)'),
(NVIDIA_GTX_1060, ASUS_STRIX_GTX_1060_6G, 'ASUS Strix GTX 1060 6GB (experimental)'),
(NVIDIA_GTX_1060, ASUS_STRIX_GTX_1060_O6G, 'ASUS Strix GTX 1060 OC 6GB (experimental)'),
(NVIDIA_GTX_1070, ASUS_STRIX_GTX_1070, 'ASUS Strix GTX 1070 (experimental)'),
(NVIDIA_GTX_1070_TI, ASUS_STRIX_GTX_1070_TI_8G, 'ASUS Strix GTX 1070 Ti (experimental)'),
(NVIDIA_GTX_1070_TI, ASUS_STRIX_GTX_1070_TI_A8G, 'ASUS Strix GTX 1070 Ti Advanced (experimental)'),
(NVIDIA_GTX_1080, ASUS_STRIX_GTX_1080, 'ASUS Strix GTX 1080 (experimental)'),
(NVIDIA_GTX_1080, ASUS_STRIX_GTX_1080_A8G, 'ASUS Strix GTX 1080 Advanced (experimental)'),
(NVIDIA_GTX_1080, ASUS_STRIX_GTX_1080_O8G, 'ASUS Strix GTX 1080 OC (experimental)'),
(NVIDIA_GTX_1080_TI, ASUS_STRIX_GTX_1080_TI, 'ASUS Strix GTX 1080 Ti (experimental)'),
(NVIDIA_GTX_1080_TI, ASUS_STRIX_GTX_1080_TI_11G, 'ASUS Strix GTX 1080 Ti (experimental)'),
(NVIDIA_GTX_1080_TI, ASUS_STRIX_GTX_1080_TI_O11G, 'ASUS Strix GTX 1080 Ti OC (experimental)'),
(NVIDIA_GTX_1080_TI, ASUS_STRIX_GTX_1080_TI_O11G_A02, 'ASUS Strix GTX 1080 Ti OC (experimental)'),
(NVIDIA_GTX_1650S, ASUS_STRIX_GTX_1650S_OC, 'ASUS Strix GTX 1650 Super OC (experimental)'),
(NVIDIA_GTX_1660S, ASUS_STRIX_GTX_1660S_O6G, 'ASUS Strix GTX 1660 Super OC (experimental)'),
(NVIDIA_GTX_1660_TI, ASUS_STRIX_GTX_1660_TI_OC, 'ASUS Strix GTX 1660 Ti OC (experimental)'),
(NVIDIA_RTX_2060S, ASUS_STRIX_RTX_2060S_A8G_EVO, 'ASUS Strix RTX 2060 Super Evo Advanced (experimental)'),
(NVIDIA_RTX_2060S_OC, ASUS_STRIX_RTX_2060S_8G, 'ASUS Strix RTX 2060 Super (experimental)'),
(NVIDIA_RTX_2060S_OC, ASUS_STRIX_RTX_2060S_A8G, 'ASUS Strix RTX 2060 Super Advanced (experimental)'),
(NVIDIA_RTX_2060S_OC, ASUS_STRIX_RTX_2060S_O8G, 'ASUS Strix RTX 2060 Super OC (experimental)'),
(NVIDIA_RTX_2060_TU104, ASUS_STRIX_RTX_2060_O6G_EVO, 'ASUS Strix RTX 2060 Evo OC (experimental)'),
(NVIDIA_RTX_2060_TU106, ASUS_STRIX_RTX_2060_EVO, 'ASUS Strix RTX 2060 Evo (experimental)'),
(NVIDIA_RTX_2060_TU106, ASUS_STRIX_RTX_2060_O6G, 'ASUS Strix RTX 2060 OC (experimental)'),
(NVIDIA_RTX_2070S, ASUS_STRIX_RTX_2070S_A8G_86FF, 'ASUS Strix RTX 2070 Super Advanced (experimental)'),
(NVIDIA_RTX_2070S_OC, ASUS_STRIX_RTX_2070S_8G_8707, 'ASUS Strix RTX 2070 (experimental)'),
(NVIDIA_RTX_2070S_OC, ASUS_STRIX_RTX_2070S_A8G, 'ASUS Strix RTX 2070 Super Advanced (experimental)'),
(NVIDIA_RTX_2070S_OC, ASUS_STRIX_RTX_2070S_A8G_8706, 'ASUS Strix RTX 2070 Super Advanced (experimental)'),
(NVIDIA_RTX_2070S_OC, ASUS_STRIX_RTX_2070S_O8G, 'ASUS Strix RTX 2070 Super OC (experimental)'),
(NVIDIA_RTX_2070S_OC, ASUS_STRIX_RTX_2070S_O8G_8729, 'ASUS Strix RTX 2070 Super OC (experimental)'),
(NVIDIA_RTX_2070_OC, ASUS_STRIX_RTX_2070_A8G, 'ASUS Strix RTX 2070 Advanced (experimental)'),
(NVIDIA_RTX_2070_OC, ASUS_STRIX_RTX_2070_O8G, 'ASUS Strix RTX 2070 OC (experimental)'),
(NVIDIA_RTX_2080S, ASUS_STRIX_RTX_2080S_A8G, 'ASUS Strix RTX 2080 Super Advanced (experimental)'),
(NVIDIA_RTX_2080S, ASUS_STRIX_RTX_2080S_O8G, 'ASUS Strix RTX 2080 Super OC (experimental)'),
(NVIDIA_RTX_2080_REV_A, ASUS_STRIX_RTX_2080_O8G, 'ASUS Strix RTX 2080 OC (experimental)'),
(NVIDIA_RTX_2080_TI, ASUS_STRIX_RTX_2080_TI_11G, 'ASUS Strix RTX 2080 Ti (experimental)'),
(NVIDIA_RTX_3060_TI_LHR, ASUS_TUF_RTX_3060_TI_O8G_OC, 'ASUS TUF RTX 3060 Ti OC (experimental)'),
]
_SENTINEL_ADDRESS = 0xffff # intentionally invalid
@ -298,6 +421,13 @@ class RogTuring(SmbusDriver, _NvidiaI2CDriver):
cls.__name__, desc, selected_address)
yield dev
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if 'experimental' in self.description:
self._UNSAFE = ['smbus', 'experimental_asus_gpu']
else:
self._UNSAFE = ['smbus']
def get_status(self, verbose=False, **kwargs):
"""Get a status report.
@ -310,9 +440,9 @@ class RogTuring(SmbusDriver, _NvidiaI2CDriver):
if not verbose:
return []
if not check_unsafe('smbus', **kwargs):
_LOGGER.warning("%s: nothing returned, requires unsafe feature 'smbus'",
self.description)
if not check_unsafe(*self._UNSAFE, **kwargs):
_LOGGER.warning("%s: nothing returned, requires unsafe features '%s'",
self.description, ','.join(self._UNSAFE))
return []
assert self._address != self._SENTINEL_ADDRESS, \
@ -360,7 +490,7 @@ class RogTuring(SmbusDriver, _NvidiaI2CDriver):
"""
check_unsafe('smbus', error=True, **kwargs)
check_unsafe(*self._UNSAFE, error=True, **kwargs)
assert self._address != self._SENTINEL_ADDRESS, \
'invalid address (probing may not have had access to SMbus)'

View File

@ -394,3 +394,39 @@ def test_rog_turing_sets_non_volatile_color(strix_2080ti_oc_bus):
with card.connect(unsafe=enable):
card.set_color('led', 'off', [], non_volatile=True, unsafe=enable)
assert strix_2080ti_oc_bus.read_byte_data(0x2a, 0x0e) == 0x01
def test_rog_turing_experimental_devices_are_unsafe():
for dev_id, sub_dev_id, desc in RogTuring._MATCHES:
if 'experimental' not in desc:
continue
vbus = VirtualSmbus(
description='NVIDIA i2c adapter 1 at 1:00.0',
parent_vendor=NVIDIA,
parent_device=dev_id,
parent_subsystem_vendor=ASUS,
parent_subsystem_device=sub_dev_id,
parent_driver='nvidia',
)
card = next(RogTuring.probe(vbus))
enable = ['smbus', 'experimental_asus_gpu']
insufficient = ['smbus']
# not usable if connected without specific experimental feature
with card.connect(unsafe=insufficient):
with pytest.raises(AssertionError):
card.get_status(verbose=True, unsafe=enable)
with pytest.raises(AssertionError):
card.set_color('led', 'off', [], unsafe=enable)
# once connected, still cannot read status or set color without
# specific experimental feature
with card.connect(unsafe=enable):
assert card.get_status(verbose=True, unsafe=insufficient) == []
with pytest.raises(UnsafeFeaturesNotEnabled):
card.set_color('led', 'off', [], unsafe=insufficient)