diff options
author | fauxpark <fauxpark@gmail.com> | 2020-07-13 01:33:43 +1000 |
---|---|---|
committer | fauxpark <fauxpark@gmail.com> | 2020-09-19 05:21:32 +1000 |
commit | 4bee445c2f086a31e34135c2a08cf4fbfe7daf94 (patch) | |
tree | ecec604fdb306c2ed3acbbeb40a89448a9bde6e8 /lib/python | |
parent | 7921c5d9b8d5726a916a89e01e7aa92d82fed067 (diff) | |
download | qmk_firmware-4bee445c2f086a31e34135c2a08cf4fbfe7daf94.tar.gz qmk_firmware-4bee445c2f086a31e34135c2a08cf4fbfe7daf94.zip |
Split rules back up into bootloaders
Diffstat (limited to 'lib/python')
-rwxr-xr-x | lib/python/qmk/cli/doctor.py | 75 |
1 files changed, 41 insertions, 34 deletions
diff --git a/lib/python/qmk/cli/doctor.py b/lib/python/qmk/cli/doctor.py index a431a160c..dac1533ac 100755 --- a/lib/python/qmk/cli/doctor.py +++ b/lib/python/qmk/cli/doctor.py | |||
@@ -149,35 +149,41 @@ 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 | # Atmel DFU | 152 | 'atmel-dfu': { |
153 | _udev_rule("03EB", "2FEF"), # ATmega16U2 | 153 | _udev_rule("03EB", "2FEF"), # ATmega16U2 |
154 | _udev_rule("03EB", "2FF0"), # ATmega32U2 | 154 | _udev_rule("03EB", "2FF0"), # ATmega32U2 |
155 | _udev_rule("03EB", "2FF3"), # ATmega16U4 | 155 | _udev_rule("03EB", "2FF3"), # ATmega16U4 |
156 | _udev_rule("03EB", "2FF4"), # ATmega32U4 | 156 | _udev_rule("03EB", "2FF4"), # ATmega32U4 |
157 | _udev_rule("03EB", "2FF9"), # AT90USB64 | 157 | _udev_rule("03EB", "2FF9"), # AT90USB64 |
158 | _udev_rule("03EB", "2FFB"), # AT90USB128 | 158 | _udev_rule("03EB", "2FFB") # AT90USB128 |
159 | # Kiibohd bootloader | 159 | }, |
160 | _udev_rule("1C11", "B007"), | 160 | 'kiibohd': { |
161 | # STM32duino | 161 | _udev_rule("1C11", "B007") |
162 | _udev_rule("1EAF", "0003"), | 162 | }, |
163 | # STM32 DFU | 163 | 'stm32': { |
164 | _udev_rule("0483", "DF11"), | 164 | _udev_rule("1EAF", "0003"), # STM32duino |
165 | # BootloadHID | 165 | _udev_rule("0483", "DF11") # STM32 DFU |
166 | _udev_rule("16C0", "05DF"), | 166 | }, |
167 | # USBAspLoader | 167 | 'bootloadhid': { |
168 | _udev_rule("16C0", "05DC"), | 168 | _udev_rule("16C0", "05DF") |
169 | # Atmel SAM-Ba (Massdrop) | 169 | }, |
170 | _udev_rule("03EB", "6124"), | 170 | 'usbasploader': { |
171 | # Caterina (Pro Micro) | 171 | _udev_rule("16C0", "05DC") |
172 | _udev_rule("1B4F", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Sparkfun | 172 | }, |
173 | _udev_rule("2341", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Arduino SA | 173 | 'massdrop': { |
174 | _udev_rule("2A03", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"') # dog hunter AG | 174 | _udev_rule("03EB", "6124") |
175 | }, | ||
176 | 'caterina': { | ||
177 | _udev_rule("1B4F", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Sparkfun | ||
178 | _udev_rule("2341", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Arduino SA | ||
179 | _udev_rule("2A03", None, 'ENV{ID_MM_DEVICE_IGNORE}="1"') # dog hunter AG | ||
180 | } | ||
175 | } | 181 | } |
176 | 182 | ||
177 | # These rules are no longer recommended, only use them to check for their presence. | 183 | # These rules are no longer recommended, only use them to check for their presence. |
178 | deprecated_rules = { | 184 | deprecated_rules = { |
179 | 'dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, | 185 | 'atmel-dfu': {_deprecated_udev_rule("03eb", "2ff4"), _deprecated_udev_rule("03eb", "2ffb"), _deprecated_udev_rule("03eb", "2ff0")}, |
180 | 'input_club': {_deprecated_udev_rule("1c11")}, | 186 | 'kiibohd': {_deprecated_udev_rule("1c11")}, |
181 | 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, | 187 | 'stm32': {_deprecated_udev_rule("1eaf", "0003"), _deprecated_udev_rule("0483", "df11")}, |
182 | 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, | 188 | 'bootloadhid': {_deprecated_udev_rule("16c0", "05df")}, |
183 | 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, | 189 | 'caterina': {'ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"', 'ATTRS{idVendor}=="2341", ENV{ID_MM_DEVICE_IGNORE}="1"'}, |
@@ -196,17 +202,18 @@ def check_udev_rules(): | |||
196 | current_rules.add(line) | 202 | current_rules.add(line) |
197 | 203 | ||
198 | # Check if the desired rules are among the currently present rules | 204 | # Check if the desired rules are among the currently present rules |
199 | for rules in desired_rules.items(): | 205 | for bootloader, rules in desired_rules.items(): |
200 | # For caterina, check if ModemManager is running | 206 | # For caterina, check if ModemManager is running |
201 | if check_modem_manager(): | 207 | if bootloader == "caterina": |
202 | ok = False | 208 | if check_modem_manager(): |
203 | 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.") | 209 | ok = False |
210 | 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.") | ||
204 | if not rules.issubset(current_rules): | 211 | if not rules.issubset(current_rules): |
205 | for bootloader, rule in deprecated_rules.items(): | 212 | deprecated_rule = deprecated_rules.get(bootloader) |
206 | if rule and rule.issubset(current_rules): | 213 | if deprecated_rule and deprecated_rule.issubset(current_rules): |
207 | 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) | 214 | 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) |
208 | else: | 215 | else: |
209 | cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader) | 216 | cli.log.warn("{bg_yellow}Missing udev rules for '%s' boards. You'll need to use `sudo` in order to flash them.", bootloader) |
210 | 217 | ||
211 | return ok | 218 | return ok |
212 | 219 | ||