aboutsummaryrefslogtreecommitdiff
path: root/lib/python/qmk/cli/doctor.py
diff options
context:
space:
mode:
authorfauxpark <fauxpark@gmail.com>2020-07-11 12:52:36 +1000
committerfauxpark <fauxpark@gmail.com>2020-09-19 05:21:30 +1000
commit510138f525a5ba216a170a0e0e94a4cf940a0c67 (patch)
tree16d827b9ceb1a3deb5963c2f8bdcdc444bbf75fa /lib/python/qmk/cli/doctor.py
parent07e37c857c76154325774d56af53d94d99016cff (diff)
downloadqmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.tar.gz
qmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.zip
Simplify doctor rule checking
Diffstat (limited to 'lib/python/qmk/cli/doctor.py')
-rwxr-xr-xlib/python/qmk/cli/doctor.py67
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