~ruther/qmk_firmware

235da6973d34c3cffc4bd8f8cd0b9c8537d6b811 — Joel Challis 5 years ago 5c41fa6
Install bootloadHid as part of qmk_install (#7463)

* Install bootloadHid on macos

* Install bootloadHid on windows

* Highlight bootloadHID is now installed in docs

* Update udev rules for bootloadHID

* Install bootloadHid on some distros

* fix caterina udev filename
M docs/faq_build.md => docs/faq_build.md +7 -1
@@ 47,7 47,7 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="feed", MODE:="0666"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", MODE:="0666"
```

**/etc/udev/rules.d/55-catalina.rules:**
**/etc/udev/rules.d/55-caterina.rules:**
```
# ModemManager should ignore the following devices
ATTRS{idVendor}=="2a03", ENV{ID_MM_DEVICE_IGNORE}="1"


@@ 69,6 69,12 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", MODE:="066
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE:="0666"
```

**/etc/udev/rules.d/57-bootloadhid.rules:**
```
# bootloadHID
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", MODE:="0666"
```

### Serial device is not detected in bootloader mode on Linux
Make sure your kernel has appropriate support for your device. If your device uses USB ACM, such as
Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices may require `USB_SERIAL` and any of its sub options.

M docs/flashing_bootloadhid.md => docs/flashing_bootloadhid.md +1 -1
@@ 13,7 13,7 @@ General flashing sequence:

## bootloadHID Flashing Target

Using the QMK installation script, detailed [here](newbs_getting_started.md), the required bootloadHID tools should be automatically installed.
?> Using the QMK installation script, detailed [here](newbs_getting_started.md), the required bootloadHID tools should be automatically installed.

To flash via the command line, use the target `:bootloadHID` by executing the following command:


M util/activate_msys2.sh => util/activate_msys2.sh +1 -0
@@ 5,6 5,7 @@ function export_variables {
    export PATH=$PATH:$util_dir
    export PATH=$PATH:$util_dir/dfu-programmer
    export PATH=$PATH:$util_dir/dfu-util-0.9-win64
    export PATH=$PATH:$util_dir/bootloadHID.2012-12-08/commandline
    export PATH=$PATH:$util_dir/flip/bin
    export PATH=$PATH:$util_dir/avr8-gnu-toolchain/bin
    export PATH=$PATH:$util_dir/gcc-arm-none-eabi/bin

M util/activate_wsl.sh => util/activate_wsl.sh +1 -0
@@ 7,6 7,7 @@ function export_variables {
    export DFU_PROGRAMMER=$download_dir/dfu-programmer/dfu-programmer.exe
    export DFU_UTIL=$download_dir/dfu-util-0.9-win64/dfu-util.exe
    export TEENSY_LOADER_CLI=$download_dir/teensy_loader_cli.exe
    export BOOTLOADHID_PROGRAMMER=$download_dir/bootloadHID.2012-12-08/commandline/bootloadHID.exe
    export BATCHISP=batchisp.exe
}


M util/linux_install.sh => util/linux_install.sh +18 -0
@@ 10,6 10,17 @@ SOLUS_INFO="Your tools are now installed. To start using them, open new terminal

util_dir=$(dirname "$0")

# For those distros that do not package bootloadHID
install_bootloadhid() {
	wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp
    cd /tmp/bootloadHID.2012-12-08/commandline/
    make
	if [ $? == 0 ]; then
        sudo cp bootloadHID /usr/local/bin
	fi
	cd -
}

if grep ID /etc/os-release | grep -qE "fedora"; then
	sudo dnf install \
		arm-none-eabi-binutils-cs \


@@ 28,6 39,7 @@ if grep ID /etc/os-release | grep -qE "fedora"; then
		glibc-headers \
		kernel-devel \
		kernel-headers \
		libusb-devel \
		make \
		perl \
		python3 \


@@ 54,6 66,7 @@ elif grep ID /etc/os-release | grep -qE 'debian|ubuntu'; then
		gcc-avr \
		git \
		libnewlib-arm-none-eabi \
		libusb-dev \
		python3 \
		unzip \
		wget \


@@ 70,12 83,14 @@ elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
		avr-libc \
		avr-gcc \
		base-devel \
		bootloadhid \
		clang \
		dfu-programmer \
		dfu-util \
		diffutils \
		gcc \
		git \
		libusb-compat \
		python \
		python-pip \
		unzip \


@@ 138,6 153,7 @@ elif grep ID /etc/os-release | grep -qE "opensuse|tumbleweed"; then
		dfu-tool \
		dfu-programmer \
		gcc \
		libusb-devel \
		python3 \
		unzip \
		wget \


@@ 177,6 193,7 @@ elif grep ID /etc/os-release | grep -q solus; then
		avrdude \
		dfu-util \
		dfu-programmer \
		libusb-devel \
		python3 \
		git \
		wget \


@@ 214,4 231,5 @@ else
fi

# Global install tasks
install_bootloadhid
pip3 install --user -r ${util_dir}/../requirements.txt

M util/macos_install.sh => util/macos_install.sh +2 -0
@@ 25,5 25,7 @@ brew tap osx-cross/avr
brew tap osx-cross/arm
brew update
brew install avr-gcc@8 arm-gcc-bin dfu-programmer avrdude clang-format dfu-util python3
brew install --HEAD https://raw.githubusercontent.com/robertgzr/homebrew-tap/master/bootloadhid.rb
brew link --force avr-gcc@8

pip3 install -r "${util_dir}/../requirements.txt"

M util/win_shared_install.sh => util/win_shared_install.sh +4 -0
@@ 18,6 18,10 @@ function install_utils {
    wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip'
    unzip teensy_loader_cli_windows.zip

    echo "Installing bootloadHID"
    wget 'https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.zip'
    unzip bootloadHID.2012-12-08.zip

    echo "Installing Atmel Flip"
    wget 'http://ww1.microchip.com/downloads/en/DeviceDoc/Flip%20Installer%20-%203.4.7.112.exe'
    mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe