diff options
Diffstat (limited to 'util')
-rwxr-xr-x | util/uf2conv.py | 44 | ||||
-rw-r--r-- | util/uf2families.json | 19 | ||||
-rw-r--r-- | util/vagrant/Dockerfile | 33 | ||||
-rw-r--r-- | util/vagrant/readme.md | 12 |
4 files changed, 42 insertions, 66 deletions
diff --git a/util/uf2conv.py b/util/uf2conv.py index 7f5645414a..52d3861cba 100755 --- a/util/uf2conv.py +++ b/util/uf2conv.py @@ -8,6 +8,7 @@ import os import os.path import argparse import json +from time import sleep UF2_MAGIC_START0 = 0x0A324655 # "UF2\n" @@ -276,23 +277,25 @@ def main(): parser = argparse.ArgumentParser(description='Convert to UF2 or flash directly.') parser.add_argument('input', metavar='INPUT', type=str, nargs='?', help='input file (HEX, BIN or UF2)') - parser.add_argument('-b' , '--base', dest='base', type=str, + parser.add_argument('-b', '--base', dest='base', type=str, default="0x2000", help='set base address of application for BIN format (default: 0x2000)') - parser.add_argument('-o' , '--output', metavar="FILE", dest='output', type=str, + parser.add_argument('-f', '--family', dest='family', type=str, + default="0x0", + help='specify familyID - number or name (default: 0x0)') + parser.add_argument('-o', '--output', metavar="FILE", dest='output', type=str, help='write output to named file; defaults to "flash.uf2" or "flash.bin" where sensible') - parser.add_argument('-d' , '--device', dest="device_path", + parser.add_argument('-d', '--device', dest="device_path", help='select a device path to flash') - parser.add_argument('-l' , '--list', action='store_true', + parser.add_argument('-l', '--list', action='store_true', help='list connected devices') - parser.add_argument('-c' , '--convert', action='store_true', + parser.add_argument('-c', '--convert', action='store_true', help='do not flash, just convert') - parser.add_argument('-D' , '--deploy', action='store_true', + parser.add_argument('-D', '--deploy', action='store_true', help='just flash, do not convert') - parser.add_argument('-f' , '--family', dest='family', type=str, - default="0x0", - help='specify familyID - number or name (default: 0x0)') - parser.add_argument('-C' , '--carray', action='store_true', + parser.add_argument('-w', '--wait', action='store_true', + help='wait for device to flash') + parser.add_argument('-C', '--carray', action='store_true', help='convert binary file to a C array, not UF2') parser.add_argument('-i', '--info', action='store_true', help='display header information from UF2, do not convert') @@ -337,20 +340,23 @@ def main(): print("Converted to %s, output size: %d, start address: 0x%x" % (ext, len(outbuf), appstartaddr)) if args.convert or ext != "uf2": - drives = [] if args.output == None: args.output = "flash." + ext - else: - drives = get_drives() - if args.output: write_file(args.output, outbuf) - else: + if ext == "uf2" and not args.convert and not args.info: + drives = get_drives() if len(drives) == 0: - error("No drive to deploy.") - for d in drives: - print("Flashing %s (%s)" % (d, board_id(d))) - write_file(d + "/NEW.UF2", outbuf) + if args.wait: + print("Waiting for drive to deploy...") + while len(drives) == 0: + sleep(0.1) + drives = get_drives() + elif not args.output: + error("No drive to deploy.") + for d in drives: + print("Flashing %s (%s)" % (d, board_id(d))) + write_file(d + "/NEW.UF2", outbuf) if __name__ == "__main__": diff --git a/util/uf2families.json b/util/uf2families.json index fafae82a60..c2140fe351 100644 --- a/util/uf2families.json +++ b/util/uf2families.json @@ -77,7 +77,7 @@ { "id": "0x57755a57", "short_name": "STM32F4", - "description": "ST STM32F401" + "description": "ST STM32F4xx" }, { "id": "0x5a18069b", @@ -188,5 +188,20 @@ "id": "0x9af03e33", "short_name": "GD32VF103", "description": "GigaDevice GD32VF103" + }, + { + "id": "0x4f6ace52", + "short_name": "CSK4", + "description": "LISTENAI CSK300x/400x" + }, + { + "id": "0x6e7348a8", + "short_name": "CSK6", + "description": "LISTENAI CSK60xx" + }, + { + "id": "0x11de784a", + "short_name": "M0SENSE", + "description": "M0SENSE BL702" } -] +]
\ No newline at end of file diff --git a/util/vagrant/Dockerfile b/util/vagrant/Dockerfile deleted file mode 100644 index 951d4fc40d..0000000000 --- a/util/vagrant/Dockerfile +++ /dev/null @@ -1,33 +0,0 @@ -FROM qmkfm/qmk_cli - -# Basic upgrades; install sudo and SSH. -RUN apt-get update && apt-get install --no-install-recommends -y \ - sudo \ - openssh-server \ - && rm -rf /var/lib/apt/lists/* -RUN mkdir /var/run/sshd -RUN sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config -RUN echo 'UseDNS no' >> /etc/ssh/sshd_config - -# Remove the policy file once we're finished installing software. -# This allows invoke-rc.d and friends to work as expected. -RUN rm /usr/sbin/policy-rc.d - -# Add the Vagrant user and necessary passwords. -RUN groupadd vagrant -RUN useradd -c "Vagrant" -g vagrant -d /home/vagrant -m -s /bin/bash vagrant -RUN echo 'root:vagrant' | chpasswd -RUN echo 'vagrant:vagrant' | chpasswd - -# Allow the vagrant user to use sudo without a password. -RUN echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/vagrant - -# Install Vagrant's insecure public key so provisioning and 'vagrant ssh' work. -RUN mkdir /home/vagrant/.ssh -ADD https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub /home/vagrant/.ssh/authorized_keys -RUN chmod 0600 /home/vagrant/.ssh/authorized_keys -RUN chown -R vagrant:vagrant /home/vagrant/.ssh -RUN chmod 0700 /home/vagrant/.ssh - -EXPOSE 22 -CMD ["/usr/sbin/sshd", "-D"] diff --git a/util/vagrant/readme.md b/util/vagrant/readme.md deleted file mode 100644 index a8396007ee..0000000000 --- a/util/vagrant/readme.md +++ /dev/null @@ -1,12 +0,0 @@ -# QMK Vagrant Utilities - -## Dockerfile -Vagrant-friendly `qmkfm/qmk_cli`. - -In order for the Docker provider and `vagrant ssh` to function the container has a few extra requirements. - -* vagrant user -* ssh server - * configured with expected public key -* sudo - * passwordless for vagrant user |