diff options
| author | Erovia <Erovia@users.noreply.github.com> | 2022-08-20 06:39:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-20 15:39:19 +1000 |
| commit | 5e2ffe7d8f4187109514147469d7db93e075f6f0 (patch) | |
| tree | 83552a38351b50f6ab175c6abd6070abcc3d78a0 /lib/python/qmk/cli/doctor/linux.py | |
| parent | 3bf36e8b04be5af9826fe3241d227efb185a4a31 (diff) | |
CLI: Teaching the CLI to flash binaries (#16584)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'lib/python/qmk/cli/doctor/linux.py')
| -rw-r--r-- | lib/python/qmk/cli/doctor/linux.py | 57 |
1 files changed, 15 insertions, 42 deletions
diff --git a/lib/python/qmk/cli/doctor/linux.py b/lib/python/qmk/cli/doctor/linux.py index 94683d3307..a803305c0d 100644 --- a/lib/python/qmk/cli/doctor/linux.py +++ b/lib/python/qmk/cli/doctor/linux.py | |||
| @@ -6,7 +6,7 @@ from pathlib import Path | |||
| 6 | 6 | ||
| 7 | from milc import cli | 7 | from milc import cli |
| 8 | 8 | ||
| 9 | from qmk.constants import QMK_FIRMWARE | 9 | from qmk.constants import QMK_FIRMWARE, BOOTLOADER_VIDS_PIDS |
| 10 | from .check import CheckStatus | 10 | from .check import CheckStatus |
| 11 | 11 | ||
| 12 | 12 | ||
| @@ -26,6 +26,18 @@ def _udev_rule(vid, pid=None, *args): | |||
| 26 | return rule | 26 | return rule |
| 27 | 27 | ||
| 28 | 28 | ||
| 29 | def _generate_desired_rules(bootloader_vids_pids): | ||
| 30 | rules = dict() | ||
| 31 | for bl in bootloader_vids_pids.keys(): | ||
| 32 | rules[bl] = set() | ||
| 33 | for vid_pid in bootloader_vids_pids[bl]: | ||
| 34 | if bl == 'caterina' or bl == 'md-boot': | ||
| 35 | rules[bl].add(_udev_rule(vid_pid[0], vid_pid[1], 'ENV{ID_MM_DEVICE_IGNORE}="1"')) | ||
| 36 | else: | ||
| 37 | rules[bl].add(_udev_rule(vid_pid[0], vid_pid[1])) | ||
| 38 | return rules | ||
| 39 | |||
| 40 | |||
| 29 | def _deprecated_udev_rule(vid, pid=None): | 41 | def _deprecated_udev_rule(vid, pid=None): |
| 30 | """ Helper function that return udev rules | 42 | """ Helper function that return udev rules |
| 31 | 43 | ||
| @@ -47,47 +59,8 @@ def check_udev_rules(): | |||
| 47 | Path("/run/udev/rules.d/"), | 59 | Path("/run/udev/rules.d/"), |
| 48 | Path("/etc/udev/rules.d/"), | 60 | Path("/etc/udev/rules.d/"), |
| 49 | ] | 61 | ] |
| 50 | desired_rules = { | 62 | |
| 51 | 'atmel-dfu': { | 63 | desired_rules = _generate_desired_rules(BOOTLOADER_VIDS_PIDS) |
| 52 | _udev_rule("03eb", "2fef"), # ATmega16U2 | ||
| 53 | _udev_rule("03eb", "2ff0"), # ATmega32U2 | ||
| 54 | _udev_rule("03eb", "2ff3"), # ATmega16U4 | ||
| 55 | _udev_rule("03eb", "2ff4"), # ATmega32U4 | ||
| 56 | _udev_rule("03eb", "2ff9"), # AT90USB64 | ||
| 57 | _udev_rule("03eb", "2ffa"), # AT90USB162 | ||
| 58 | _udev_rule("03eb", "2ffb") # AT90USB128 | ||
| 59 | }, | ||
| 60 | 'kiibohd': {_udev_rule("1c11", "b007")}, | ||
| 61 | 'stm32': { | ||
| 62 | _udev_rule("1eaf", "0003"), # STM32duino | ||
| 63 | _udev_rule("0483", "df11") # STM32 DFU | ||
| 64 | }, | ||
| 65 | 'bootloadhid': {_udev_rule("16c0", "05df")}, | ||
| 66 | 'usbasploader': {_udev_rule("16c0", "05dc")}, | ||
| 67 | 'massdrop': {_udev_rule("03eb", "6124", 'ENV{ID_MM_DEVICE_IGNORE}="1"')}, | ||
| 68 | 'caterina': { | ||
| 69 | # Spark Fun Electronics | ||
| 70 | _udev_rule("1b4f", "9203", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 3V3/8MHz | ||
| 71 | _udev_rule("1b4f", "9205", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Pro Micro 5V/16MHz | ||
| 72 | _udev_rule("1b4f", "9207", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # LilyPad 3V3/8MHz (and some Pro Micro clones) | ||
| 73 | # Pololu Electronics | ||
| 74 | _udev_rule("1ffb", "0101", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # A-Star 32U4 | ||
| 75 | # Arduino SA | ||
| 76 | _udev_rule("2341", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo | ||
| 77 | _udev_rule("2341", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Micro | ||
| 78 | # Adafruit Industries LLC | ||
| 79 | _udev_rule("239a", "000c", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Feather 32U4 | ||
| 80 | _udev_rule("239a", "000d", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 3V3/8MHz | ||
| 81 | _udev_rule("239a", "000e", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # ItsyBitsy 32U4 5V/16MHz | ||
| 82 | # dog hunter AG | ||
| 83 | _udev_rule("2a03", "0036", 'ENV{ID_MM_DEVICE_IGNORE}="1"'), # Leonardo | ||
| 84 | _udev_rule("2a03", "0037", 'ENV{ID_MM_DEVICE_IGNORE}="1"') # Micro | ||
| 85 | }, | ||
| 86 | 'hid-bootloader': { | ||
| 87 | _udev_rule("03eb", "2067"), # QMK HID | ||
| 88 | _udev_rule("16c0", "0478") # PJRC halfkay | ||
| 89 | } | ||
| 90 | } | ||
| 91 | 64 | ||
| 92 | # These rules are no longer recommended, only use them to check for their presence. | 65 | # These rules are no longer recommended, only use them to check for their presence. |
| 93 | deprecated_rules = { | 66 | deprecated_rules = { |
