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 | |
| parent | 07e37c857c76154325774d56af53d94d99016cff (diff) | |
| download | qmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.tar.gz qmk_firmware-510138f525a5ba216a170a0e0e94a4cf940a0c67.zip | |
Simplify doctor rule checking
Diffstat (limited to 'lib')
| -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 | ||
