diff options
author | fauxpark <fauxpark@gmail.com> | 2020-07-11 12:52:36 +1000 |
---|---|---|
committer | fauxpark <fauxpark@gmail.com> | 2020-09-19 05:21:30 +1000 |
commit | 510138f525a5ba216a170a0e0e94a4cf940a0c67 (patch) | |
tree | 16d827b9ceb1a3deb5963c2f8bdcdc444bbf75fa /lib/python/qmk/cli/doctor.py | |
parent | 07e37c857c76154325774d56af53d94d99016cff (diff) | |
download | qmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.tar.gz qmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.zip |
Simplify doctor rule checking
Diffstat (limited to 'lib/python/qmk/cli/doctor.py')
-rwxr-xr-x | lib/python/qmk/cli/doctor.py | 67 |
1 files changed, 32 insertions, 35 deletions
diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index 46a2180b2..81b27216e 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py | |||
@@ -149,31 +149,29 @@ def check_udev_rules(): | |||
149 | ok = True | 149 | ok = True |
150 | udev_dir = Path("/etc/udev/rules.d/") | 150 | udev_dir = Path("/etc/udev/rules.d/") |
151 | desired_rules = { | 151 | desired_rules = { |
152 | 'qmk': { | 152 | # Atmel DFU |
153 | # Atmel DFU | 153 | _udev_rule("03EB", "2FEF"), # ATmega16U2 |
154 | _udev_rule("03EB", "2FEF"), # ATmega16U2 | 154 | _udev_rule("03EB", "2FF0"), # ATmega32U2 |
155 | _udev_rule("03EB", "2FF0"), # ATmega32U2 | 155 | _udev_rule("03EB", "2FF3"), # ATmega16U4 |
156 | _udev_rule("03EB", "2FF3"), # ATmega16U4 | 156 | _udev_rule("03EB", "2FF4"), # ATmega32U4 |
157 | _udev_rule("03EB", "2FF4"), # ATmega32U4 | 157 | _udev_rule("03EB", "2FF9"), # AT90USB64 |
158 | _udev_rule("03EB", "2FF9"), # AT90USB64 | 158 | _udev_rule("03EB", "2FFB"), # AT90USB128 |
159 | _udev_rule("03EB", "2FFB"), # AT90USB128 | 159 | # Kiibohd bootloader |
160 | # Kiibohd bootloader | 160 | _udev_rule("1C11", "B007"), |
161 | _udev_rule("1C11", "B007"), | 161 | # STM32duino |
162 | # STM32duino | 162 | _udev_rule("1EAF", "0003"), |
163 | _udev_rule("1EAF", "0003"), | 163 | # STM32 DFU |
164 | # STM32 DFU | 164 | _udev_rule("0483", "DF11"), |
165 | _udev_rule("0483", "DF11"), | 165 | # BootloadHID |
166 | # BootloadHID | 166 | _udev_rule("16C0", "05DF"), |
167 | _udev_rule("16C0", "05DF"), | 167 | # USBAspLoader |
168 | # USBAspLoader | 168 | _udev_rule("16C0", "05DC"), |
169 | _udev_rule("16C0", "05DC"), | 169 | # Atmel SAM-Ba (Massdrop) |
170 | # Atmel SAM-Ba (Massdrop) | 170 | _udev_rule("03EB", "6124"), |
171 | _udev_rule("03EB", "6124"), | 171 | # Caterina (Pro Micro) |
172 | # Caterina (Pro Micro) | 172 | _udev_rule("1B4F", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Sparkfun |
173 | _udev_rule("1B4F", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Sparkfun | 173 | _udev_rule("2341", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Arduino SA |
174 | _udev_rule("2341", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Arduino SA | 174 | _udev_rule("2A03", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"') # dog hunter AG |
175 | _udev_rule("2A03", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"') # dog hunter AG | ||
176 | } | ||
177 | } | 175 | } |
178 | 176 | ||
179 | # These rules are no longer recommended, only use them to check for their presence. | 177 | # These rules are no longer recommended, only use them to check for their presence. |
@@ -197,18 +195,17 @@ def check_udev_rules(): | |||
197 | current_rules.add(line) | 195 | current_rules.add(line) |
198 | 196 | ||
199 | # Check if the desired rules are among the currently present rules | 197 | # Check if the desired rules are among the currently present rules |
200 | for bootloader, rules in desired_rules.items(): | 198 | for rules in desired_rules.items(): |
201 | # For caterina, check if ModemManager is running | 199 | # For caterina, check if ModemManager is running |
202 | if bootloader == "caterina": | 200 | if check_modem_manager(): |
203 | if check_modem_manager(): | 201 | ok = False |
204 | ok = False | 202 | cli.log.warn("{bg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") |
205 | cli.log.warn("{bg_yellow}Detected ModemManager without the necessary udev rules. Please either disable it or set the appropriate udev rules if you are using a Pro Micro.") | ||
206 | if not rules.issubset(current_rules): | 203 | if not rules.issubset(current_rules): |
207 | deprecated_rule = deprecated_rules.get(bootloader) | 204 | for bootloader, rules in deprecated_rules.items(): |
208 | if deprecated_rule and deprecated_rule.issubset(current_rules): | 205 | if deprecated_rule and deprecated_rule.issubset(current_rules): |
209 | cli.log.warn("{bg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) | 206 | cli.log.warn("{bg_yellow}Found old, deprecated udev rules for '%s' boards. The new rules on https://docs.qmk.fm/#/faq_build?id=linux-udev-rules offer better security with the same functionality.", bootloader) |
210 | else: | 207 | else: |
211 | cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader) | 208 | cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader) |
212 | 209 | ||
213 | return ok | 210 | return ok |
214 | 211 | ||