Merge remote-tracking branch 'qmk/master' into vial
This commit is contained in:
commit
ce49d6f644
8590 changed files with 251958 additions and 200116 deletions
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function export_variables {
|
||||
local util_dir=~/qmk_utils
|
||||
export PATH=$PATH:$util_dir
|
||||
}
|
||||
|
||||
export_variables
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function export_variables {
|
||||
local util_dir=~/qmk_utils
|
||||
local download_dir=$util_dir/wsl_downloaded
|
||||
}
|
||||
|
||||
export_variables
|
||||
67
util/audio_generate_dac_lut.py
Executable file
67
util/audio_generate_dac_lut.py
Executable file
|
|
@ -0,0 +1,67 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright 2020 JohSchneider
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
AUDIO_DAC_BUFFER_SIZE=256
|
||||
AUDIO_DAC_SAMPLE_MAX=4095
|
||||
|
||||
def plot(values):
|
||||
for v in values:
|
||||
print('0'* int(v * 80/AUDIO_DAC_SAMPLE_MAX))
|
||||
|
||||
def to_lut(values):
|
||||
for v in values:
|
||||
print(hex(int(v)), end=", ")
|
||||
|
||||
|
||||
from math import sin, tau, pi
|
||||
|
||||
samples=[]
|
||||
|
||||
def sampleSine():
|
||||
for s in range(AUDIO_DAC_BUFFER_SIZE):
|
||||
samples.append((sin((s/AUDIO_DAC_BUFFER_SIZE)*tau - pi/2) + 1 )/2* AUDIO_DAC_SAMPLE_MAX)
|
||||
|
||||
def sampleTriangle():
|
||||
for s in range(AUDIO_DAC_BUFFER_SIZE):
|
||||
if s < AUDIO_DAC_BUFFER_SIZE/2:
|
||||
samples.append(s/(AUDIO_DAC_BUFFER_SIZE/2) * AUDIO_DAC_SAMPLE_MAX)
|
||||
else:
|
||||
samples.append(AUDIO_DAC_SAMPLE_MAX - (s-AUDIO_DAC_BUFFER_SIZE/2)/(AUDIO_DAC_BUFFER_SIZE/2) * AUDIO_DAC_SAMPLE_MAX)
|
||||
|
||||
#compromise between square and triangle wave,
|
||||
def sampleTrapezoidal():
|
||||
for i in range(AUDIO_DAC_BUFFER_SIZE):
|
||||
a=3 #slope/inclination
|
||||
if (i < AUDIO_DAC_BUFFER_SIZE/2):
|
||||
s = a * (i * AUDIO_DAC_SAMPLE_MAX/(AUDIO_DAC_BUFFER_SIZE/2)) + (1-a)*AUDIO_DAC_SAMPLE_MAX/2
|
||||
else:
|
||||
i = i - AUDIO_DAC_BUFFER_SIZE/2
|
||||
s = AUDIO_DAC_SAMPLE_MAX - a * (i * AUDIO_DAC_SAMPLE_MAX/(AUDIO_DAC_BUFFER_SIZE/2)) - (1-a)*AUDIO_DAC_SAMPLE_MAX/2
|
||||
|
||||
if s < 0:
|
||||
s=0
|
||||
if s> AUDIO_DAC_SAMPLE_MAX:
|
||||
s=AUDIO_DAC_SAMPLE_MAX
|
||||
samples.append(s)
|
||||
|
||||
|
||||
#sampleSine()
|
||||
sampleTrapezoidal()
|
||||
#print(samples)
|
||||
plot(samples)
|
||||
to_lut(samples)
|
||||
|
|
@ -51,7 +51,7 @@ revert_chibi_files() {
|
|||
for file in $(find_chibi_files "$search_path" -name chconf.h -or -name halconf.h -or -name mcuconf.h -or -name board.c -or -name board.h -or -name board.mk -or -name board.chcfg) ; do
|
||||
pushd "$search_path" >/dev/null 2>&1
|
||||
local relpath=$(realpath --relative-to="$search_path" "$file")
|
||||
git checkout upstream/master -- "$relpath" || git checkout origin/master -- "$relpath" || true
|
||||
git checkout upstream/develop -- "$relpath" || git checkout origin/develop -- "$relpath" || true
|
||||
popd >/dev/null 2>&1
|
||||
done
|
||||
}
|
||||
|
|
@ -132,6 +132,14 @@ upgrade_chconf_files() {
|
|||
|
||||
upgrade_halconf_files() {
|
||||
upgrade_conf_files_generic halconf.h update_halconf.sh
|
||||
|
||||
OIFS=$IFS
|
||||
IFS=$'\n'
|
||||
for file in $(find_chibi_files "$qmk_firmware_dir" -name halconf.h) ; do
|
||||
echo $file
|
||||
sed -i 's@#include "mcuconf.h"@#include <mcuconf.h>@g' "$file"
|
||||
done
|
||||
IFS=$OIFS
|
||||
}
|
||||
|
||||
upgrade_mcuconf_files() {
|
||||
|
|
@ -17,12 +17,27 @@ done
|
|||
if [ $# -gt 1 ]; then
|
||||
errcho "$USAGE"
|
||||
exit 1
|
||||
elif ! command -v docker >/dev/null 2>&1; then
|
||||
errcho "Error: docker not found"
|
||||
errcho "See https://docs.docker.com/install/#supported-platforms for installation instructions"
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Allow $RUNTIME to be overriden by the user as an environment variable
|
||||
# Else check if either docker or podman exit and set them as runtime
|
||||
# if none are found error out
|
||||
if [ -z "$RUNTIME" ]; then
|
||||
if command -v docker >/dev/null 2>&1; then
|
||||
RUNTIME="docker"
|
||||
elif command -v podman >/dev/null 2>&1; then
|
||||
RUNTIME="podman"
|
||||
else
|
||||
errcho "Error: no compatible container runtime found."
|
||||
errcho "Either podman or docker are required."
|
||||
errcho "See https://podman.io/getting-started/installation"
|
||||
errcho "or https://docs.docker.com/install/#supported-platforms"
|
||||
errcho "for installation instructions."
|
||||
exit 2
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
# Determine arguments
|
||||
if [ $# -eq 0 ]; then
|
||||
printf "keyboard=" && read -r keyboard
|
||||
|
|
@ -41,20 +56,26 @@ if [ -z "$keyboard" ]; then
|
|||
keyboard=all
|
||||
fi
|
||||
if [ -n "$target" ]; then
|
||||
if [ "$(uname)" = "Linux" ] || docker-machine active >/dev/null 2>&1; then
|
||||
usb_args="--privileged -v /dev:/dev"
|
||||
else
|
||||
# IF we are using docker on non Linux and docker-machine isn't working print an error
|
||||
# ELSE set usb_args
|
||||
if [ ! "$(uname)" = "Linux" ] && [ "$RUNTIME" = "docker" ] && ! docker-machine active >/dev/null 2>&1; then
|
||||
errcho "Error: target requires docker-machine to work on your platform"
|
||||
errcho "See http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos"
|
||||
errcho "Consider flashing with QMK Toolbox (https://github.com/qmk/qmk_toolbox) instead"
|
||||
exit 3
|
||||
else
|
||||
usb_args="--privileged -v /dev:/dev"
|
||||
fi
|
||||
fi
|
||||
dir=$(pwd -W 2>/dev/null) || dir=$PWD # Use Windows path if on Windows
|
||||
|
||||
if [ "$RUNTIME" = "docker" ]; then
|
||||
uid_arg="--user $(id -u):$(id -g)"
|
||||
fi
|
||||
|
||||
# Run container and build firmware
|
||||
docker run --rm -it $usb_args \
|
||||
--user $(id -u):$(id -g) \
|
||||
"$RUNTIME" run --rm -it $usb_args \
|
||||
$uid_arg \
|
||||
-w /qmk_firmware \
|
||||
-v "$dir":/qmk_firmware \
|
||||
-e ALT_GET_KEYBOARDS=true \
|
||||
|
|
|
|||
|
|
@ -11,4 +11,5 @@ libusb,ATmega32U2,03EB,2FF0,ddc2c572-cb6e-4f61-a6cc-1a5de941f063
|
|||
libusb,ATmega16U4,03EB,2FF3,3180d426-bf93-4578-a693-2efbc337da8e
|
||||
libusb,ATmega32U4,03EB,2FF4,5f9726fd-f9de-487a-9fbd-8b3524a7a56a
|
||||
libusb,AT90USB64,03EB,2FF9,c6a708ad-e97d-43cd-b04a-3180d737a71b
|
||||
libusb,AT90USB162,03EB,2FFA,ef8546f0-ef09-4e7c-8fc2-ffbae1dcd84a
|
||||
libusb,AT90USB128,03EB,2FFB,fd217df3-59d0-440a-a8f3-4c0c8c84daa3
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
#!/bin/sh
|
||||
packages=$(cat <<EOF
|
||||
git \
|
||||
wget \
|
||||
gmake \
|
||||
gcc \
|
||||
zip \
|
||||
unzip \
|
||||
avr-binutils \
|
||||
avr-gcc \
|
||||
avr-libc \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
avrdude \
|
||||
arm-none-eabi-gcc \
|
||||
arm-none-eabi-binutils \
|
||||
arm-none-eabi-newlib \
|
||||
diffutils \
|
||||
python3
|
||||
EOF
|
||||
)
|
||||
util_dir=$(dirname "$0")
|
||||
if [ $(id -u) = 0 ]; then
|
||||
pkg update
|
||||
pkg install -y ${packages}
|
||||
echo ""
|
||||
echo "Re-run the setup as your normal user to install the qmk python dependencies"
|
||||
exit 1
|
||||
else
|
||||
if command -v sudo > /dev/null 2>&1; then
|
||||
sudo pkg update
|
||||
sudo pkg install -y ${packages}
|
||||
else
|
||||
echo "Make sure you run setup as root first to install base OS dependencies..."
|
||||
echo ""
|
||||
fi
|
||||
|
||||
python3 -m pip install --user -r ${util_dir}/../requirements.txt
|
||||
fi
|
||||
16
util/install/arch.sh
Executable file
16
util/install/arch.sh
Executable file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo pacman --needed --noconfirm -S \
|
||||
base-devel clang diffutils gcc git unzip wget zip \
|
||||
python-pip \
|
||||
avr-binutils \
|
||||
arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util
|
||||
sudo pacman --needed --noconfirm -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz
|
||||
sudo pacman --needed --noconfirm -S avr-libc # Must be installed after the above, or it will bring in the latest avr-gcc instead
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
22
util/install/debian.sh
Executable file
22
util/install/debian.sh
Executable file
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
DEBCONF_NONINTERACTIVE_SEEN=true
|
||||
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
|
||||
|
||||
_qmk_install_prepare() {
|
||||
sudo apt-get update
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo apt-get -yq install \
|
||||
build-essential clang-format diffutils gcc git unzip wget zip \
|
||||
python3-pip \
|
||||
binutils-avr gcc-avr avr-libc \
|
||||
binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi \
|
||||
avrdude dfu-programmer dfu-util teensy-loader-cli libusb-dev
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
15
util/install/fedora.sh
Executable file
15
util/install/fedora.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
# TODO: Check whether devel/headers packages are really needed
|
||||
sudo dnf -y install \
|
||||
clang diffutils git gcc glibc-headers kernel-devel kernel-headers make unzip wget zip \
|
||||
python3 \
|
||||
avr-binutils avr-gcc avr-libc \
|
||||
arm-none-eabi-binutils-cs arm-none-eabi-gcc-cs arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util libusb-devel
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
18
util/install/freebsd.sh
Executable file
18
util/install/freebsd.sh
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
sudo pkg update
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo pkg install -y \
|
||||
git wget gmake gcc zip unzip diffutils \
|
||||
python3 \
|
||||
avr-binutils avr-gcc avr-libc \
|
||||
arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util
|
||||
|
||||
sudo python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
33
util/install/gentoo.sh
Executable file
33
util/install/gentoo.sh
Executable file
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
echo "This script will make a USE change in order to ensure that that QMK works on your system."
|
||||
echo "All changes will be sent to the file /etc/portage/package.use/qmkfirmware -- please review it, and read Portage's output carefully before installing any packages on your system."
|
||||
echo "You will also need to ensure that your kernel is compiled with support for the microcontroller that you are using (e.g. enable Arduino for the Pro Micro). Further information can be found on the Gentoo wiki."
|
||||
|
||||
read -p "Proceed? [y/N] " res
|
||||
case $res in
|
||||
[Yy]*)
|
||||
return 0;;
|
||||
*)
|
||||
return 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo touch /etc/portage/package.use/qmkfirmware
|
||||
# tee is used here since sudo doesn't apply to >>
|
||||
echo "sys-devel/gcc multilib" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null
|
||||
sudo emerge -auN sys-devel/gcc
|
||||
sudo emerge -au --noreplace \
|
||||
app-arch/unzip app-arch/zip net-misc/wget sys-devel/clang sys-devel/crossdev \
|
||||
\>=dev-lang/python-3.7 \
|
||||
dev-embedded/avrdude dev-embedded/dfu-programmer app-mobilephone/dfu-util
|
||||
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target avr
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target arm-none-eabi
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
13
util/install/linux_shared.sh
Executable file
13
util/install/linux_shared.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
|
||||
# For those distros that do not package bootloadHID
|
||||
_qmk_install_bootloadhid() {
|
||||
if ! command -v bootloadHID > /dev/null; then
|
||||
wget https://www.obdev.at/downloads/vusb/bootloadHID.2012-12-08.tar.gz -O - | tar -xz -C /tmp
|
||||
pushd /tmp/bootloadHID.2012-12-08/commandline/ > /dev/null
|
||||
if make; then
|
||||
sudo cp bootloadHID /usr/local/bin
|
||||
fi
|
||||
popd > /dev/null
|
||||
fi
|
||||
}
|
||||
26
util/install/macos.sh
Executable file
26
util/install/macos.sh
Executable file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
echo "Checking Homebrew installation"
|
||||
|
||||
if ! brew --version >/dev/null 2>&1; then
|
||||
echo "Error! Homebrew is broken or not installed."
|
||||
echo "Please run \`brew doctor\` or follow the installation instructions at https://brew.sh/, then re-run this script."
|
||||
return 1
|
||||
fi
|
||||
|
||||
brew update && brew upgrade --ignore-pinned
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
# All macOS dependencies are managed in the Homebrew package:
|
||||
# https://github.com/qmk/homebrew-qmk
|
||||
brew install qmk/qmk/qmk
|
||||
|
||||
brew link --force avr-gcc@8
|
||||
brew link --force arm-gcc-bin@8
|
||||
|
||||
python3 -m pip install -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
36
util/install/msys2.sh
Executable file
36
util/install/msys2.sh
Executable file
|
|
@ -0,0 +1,36 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
pacman -Syu
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
pacman --needed --noconfirm --disable-download-timeout -S pactoys-git
|
||||
pacboy sync --needed --noconfirm --disable-download-timeout \
|
||||
base-devel: toolchain:x clang:x git: unzip: \
|
||||
python3-pip:x \
|
||||
avr-binutils:x avr-gcc:x avr-libc:x \
|
||||
arm-none-eabi-binutils:x arm-none-eabi-gcc:x arm-none-eabi-newlib:x \
|
||||
avrdude:x bootloadhid:x dfu-programmer:x dfu-util:x teensy-loader-cli:x
|
||||
|
||||
_qmk_install_drivers
|
||||
|
||||
python3 -m pip install -r "$QMK_FIRMWARE_DIR/requirements.txt"
|
||||
}
|
||||
|
||||
_qmk_install_drivers() {
|
||||
echo "Installing drivers"
|
||||
|
||||
tmpdir=$(mktemp -d)
|
||||
cp "$QMK_FIRMWARE_UTIL_DIR/drivers.txt" $tmpdir
|
||||
pushd $tmpdir > /dev/null
|
||||
|
||||
wget "https://github.com/qmk/qmk_driver_installer/releases/download/v1.01/qmk_driver_installer.exe"
|
||||
|
||||
cmd.exe //c "qmk_driver_installer.exe --all --force drivers.txt"
|
||||
|
||||
popd > /dev/null
|
||||
rm -r $tmpdir
|
||||
}
|
||||
25
util/install/slackware.sh
Executable file
25
util/install/slackware.sh
Executable file
|
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
echo "Before you continue, please ensure that your user is added to sudoers and that sboinstall is configured."
|
||||
read -p "Proceed? [y/N] " res
|
||||
|
||||
case $res in
|
||||
[Yy]*)
|
||||
;;
|
||||
*)
|
||||
return 1;;
|
||||
esac
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo sboinstall \
|
||||
avr-binutils avr-gcc avr-libc \
|
||||
arm-binutils arm-gcc newlib \
|
||||
python3 \
|
||||
avrdude dfu-programmer dfu-util teensy_loader_cli
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
19
util/install/solus.sh
Executable file
19
util/install/solus.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install_prepare() {
|
||||
sudo eopkg -y update-repo
|
||||
sudo eopkg -y upgrade
|
||||
}
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo eopkg -y install \
|
||||
-c system.devel git wget zip unzip \
|
||||
python3 \
|
||||
avr-binutils avr-gcc avr-libc \
|
||||
arm-none-eabi-binutils arm-none-eabi-gcc arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
15
util/install/void.sh
Executable file
15
util/install/void.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
|
||||
_qmk_install() {
|
||||
echo "Installing dependencies"
|
||||
|
||||
sudo xbps-install \
|
||||
gcc git make wget unzip zip \
|
||||
python3-pip \
|
||||
avr-binutils avr-gcc avr-libc \
|
||||
cross-arm-none-eabi-binutils cross-arm-none-eabi-gcc cross-arm-none-eabi-newlib \
|
||||
avrdude dfu-programmer dfu-util teensy_loader_cli \
|
||||
libusb-compat-devel
|
||||
|
||||
python3 -m pip install --user -r $QMK_FIRMWARE_DIR/requirements.txt
|
||||
}
|
||||
|
|
@ -1,237 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Note: This file uses tabs to indent. Please don't mix tabs and spaces.
|
||||
|
||||
GENTOO_WARNING="This script will make a USE change in order to ensure that that QMK works on your system. All changes will be sent to the the file /etc/portage/package.use/qmkfirmware -- please review it, and read Portage's output carefully before installing any packages on your system. You will also need to ensure that your kernel is compiled with support for the keyboard chip that you are using (e.g. enable Arduino for the Pro Micro). Further information can be found on the Gentoo wiki."
|
||||
|
||||
SLACKWARE_WARNING="You will need the following packages from slackbuilds.org:\n\tarm-binutils\n\tarm-gcc\n\tavr-binutils\n\tavr-gcc\n\tavr-libc\n\tavrdude\n\tdfu-programmer\n\tdfu-util\n\tnewlib\nThese packages will be installed with sudo and sboinstall, so ensure that your user is added to sudoers and that sboinstall is configured."
|
||||
|
||||
SOLUS_INFO="Your tools are now installed. To start using them, open new terminal or source these scripts:\n\t/usr/share/defaults/etc/profile.d/50-arm-toolchain-path.sh\n\t/usr/share/defaults/etc/profile.d/50-avr-toolchain-path.sh"
|
||||
|
||||
util_dir=$(dirname "$0")
|
||||
|
||||
# For those distros that do not package bootloadHID
|
||||
install_bootloadhid() {
|
||||
if ! command -v bootloadHID >/dev/null; then
|
||||
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/
|
||||
if make; then
|
||||
sudo cp bootloadHID /usr/local/bin
|
||||
fi
|
||||
cd -
|
||||
fi
|
||||
}
|
||||
|
||||
if grep ID /etc/os-release | grep -qE "fedora"; then
|
||||
sudo dnf install \
|
||||
arm-none-eabi-binutils-cs \
|
||||
arm-none-eabi-gcc-cs \
|
||||
arm-none-eabi-newlib \
|
||||
avr-binutils \
|
||||
avr-gcc \
|
||||
avr-libc \
|
||||
binutils-avr32-linux-gnu \
|
||||
clang \
|
||||
avrdude \
|
||||
dfu-util \
|
||||
dfu-programmer \
|
||||
diffutils \
|
||||
git \
|
||||
gcc \
|
||||
glibc-headers \
|
||||
kernel-devel \
|
||||
kernel-headers \
|
||||
libusb-devel \
|
||||
make \
|
||||
perl \
|
||||
python3 \
|
||||
unzip \
|
||||
wget \
|
||||
zip
|
||||
|
||||
elif grep ID /etc/os-release | grep -qE 'debian|ubuntu'; then
|
||||
DEBIAN_FRONTEND=noninteractive
|
||||
DEBCONF_NONINTERACTIVE_SEEN=true
|
||||
export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
|
||||
sudo apt-get update
|
||||
sudo apt-get -yq install \
|
||||
build-essential \
|
||||
avr-libc \
|
||||
binutils-arm-none-eabi \
|
||||
binutils-avr \
|
||||
clang-format \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
diffutils \
|
||||
gcc \
|
||||
gcc-arm-none-eabi \
|
||||
gcc-avr \
|
||||
git \
|
||||
libnewlib-arm-none-eabi \
|
||||
avrdude \
|
||||
libusb-dev \
|
||||
python3 \
|
||||
python3-pip \
|
||||
unzip \
|
||||
wget \
|
||||
zip
|
||||
|
||||
elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
|
||||
sudo pacman --needed -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz
|
||||
sudo pacman -S --needed \
|
||||
arm-none-eabi-binutils \
|
||||
arm-none-eabi-gcc \
|
||||
arm-none-eabi-newlib \
|
||||
avrdude \
|
||||
avr-binutils \
|
||||
avr-libc \
|
||||
base-devel \
|
||||
clang \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
diffutils \
|
||||
gcc \
|
||||
git \
|
||||
libusb-compat \
|
||||
python \
|
||||
python-pip \
|
||||
unzip \
|
||||
wget \
|
||||
zip
|
||||
|
||||
elif grep ID /etc/os-release | grep -q gentoo; then
|
||||
echo "$GENTOO_WARNING" | fmt
|
||||
printf "\nProceed (y/N)? "
|
||||
read -r answer
|
||||
if echo "$answer" | grep -iq "^y"; then
|
||||
sudo touch /etc/portage/package.use/qmkfirmware
|
||||
# tee is used here since sudo doesn't apply to >>
|
||||
echo "sys-devel/gcc multilib" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null
|
||||
sudo emerge -auN sys-devel/gcc
|
||||
sudo emerge -au --noreplace \
|
||||
app-arch/unzip \
|
||||
app-arch/zip \
|
||||
app-mobilephone/dfu-util \
|
||||
dev-embedded/dfu-programmer \
|
||||
dev-embedded/avrdude \
|
||||
net-misc/wget \
|
||||
sys-devel/clang \
|
||||
sys-devel/crossdev
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target avr
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target arm-none-eabi
|
||||
echo "Done!"
|
||||
else
|
||||
echo "Quitting..."
|
||||
fi
|
||||
|
||||
elif grep ID /etc/os-release | grep -q sabayon; then
|
||||
sudo equo install \
|
||||
app-arch/unzip \
|
||||
app-arch/zip \
|
||||
app-mobilephone/dfu-util \
|
||||
dev-embedded/dfu-programmer \
|
||||
dev-embedded/avrdude \
|
||||
dev-lang/python \
|
||||
net-misc/wget \
|
||||
sys-devel/clang \
|
||||
sys-devel/gcc \
|
||||
sys-devel/crossdev
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target avr
|
||||
sudo crossdev -s4 --stable --g \<9 --portage --verbose --target arm-none-eabi
|
||||
echo "Done!"
|
||||
|
||||
elif grep ID /etc/os-release | grep -qE "opensuse|tumbleweed"; then
|
||||
CROSS_AVR_GCC=cross-avr-gcc8
|
||||
CROSS_ARM_GCC=cross-arm-none-gcc8
|
||||
if grep ID /etc/os-release | grep -q "15."; then
|
||||
CROSS_AVR_GCC=cross-avr-gcc7
|
||||
CROSS_ARM_GCC=cross-arm-none-gcc7
|
||||
fi
|
||||
sudo zypper install \
|
||||
avr-libc \
|
||||
clang \
|
||||
$CROSS_AVR_GCC \
|
||||
$CROSS_ARM_GCC \
|
||||
cross-avr-binutils \
|
||||
cross-arm-none-newlib-devel \
|
||||
cross-arm-binutils cross-arm-none-newlib-devel \
|
||||
avrdude \
|
||||
dfu-util \
|
||||
dfu-programmer \
|
||||
gcc \
|
||||
libusb-devel \
|
||||
python3 \
|
||||
unzip \
|
||||
wget \
|
||||
zip
|
||||
|
||||
elif grep ID /etc/os-release | grep -q slackware; then
|
||||
printf "$SLACKWARE_WARNING\n"
|
||||
printf "\nProceed (y/N)? "
|
||||
read -r answer
|
||||
if echo "$answer" | grep -iq "^y" ;then
|
||||
sudo sboinstall \
|
||||
avr-binutils \
|
||||
avr-gcc \
|
||||
avr-libc \
|
||||
avrdude \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
arm-binutils \
|
||||
arm-gcc \
|
||||
newlib \
|
||||
python3
|
||||
echo "Done!"
|
||||
else
|
||||
echo "Quitting..."
|
||||
fi
|
||||
|
||||
elif grep ID /etc/os-release | grep -q solus; then
|
||||
sudo eopkg ur
|
||||
sudo eopkg it \
|
||||
-c system.devel \
|
||||
arm-none-eabi-gcc \
|
||||
arm-none-eabi-binutils \
|
||||
arm-none-eabi-newlib \
|
||||
avr-libc \
|
||||
avr-binutils \
|
||||
avr-gcc \
|
||||
avrdude \
|
||||
dfu-util \
|
||||
dfu-programmer \
|
||||
libusb-devel \
|
||||
python3 \
|
||||
git \
|
||||
wget \
|
||||
zip \
|
||||
unzip
|
||||
printf "\n$SOLUS_INFO\n"
|
||||
|
||||
elif grep ID /etc/os-release | grep -q void; then
|
||||
sudo xbps-install \
|
||||
avr-binutils \
|
||||
avr-gcc \
|
||||
avr-libc \
|
||||
cross-arm-none-eabi-binutils \
|
||||
cross-arm-none-eabi-gcc \
|
||||
cross-arm-none-eabi-newlib \
|
||||
avrdude \
|
||||
dfu-programmer \
|
||||
dfu-util \
|
||||
gcc \
|
||||
git \
|
||||
libusb-compat-devel \
|
||||
make \
|
||||
wget \
|
||||
unzip \
|
||||
zip
|
||||
|
||||
else
|
||||
echo "Sorry, we don't recognize your OS. Help us by contributing support!"
|
||||
echo
|
||||
echo "https://docs.qmk.fm/#/contributing"
|
||||
fi
|
||||
|
||||
# Global install tasks
|
||||
install_bootloadhid
|
||||
pip3 install --user -r ${util_dir}/../requirements.txt
|
||||
18
util/list_keyboards.sh
Executable file
18
util/list_keyboards.sh
Executable file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
# Temporary shell script to find keyboards
|
||||
#
|
||||
# This allows us to exclude keyboards by including a .noci file.
|
||||
|
||||
find -L keyboards -type f -name rules.mk | grep -v keymaps | sed 's!keyboards/\(.*\)/rules.mk!\1!' | while read keyboard; do
|
||||
if [ "$1" = "noci" ]; then
|
||||
case "$keyboard" in
|
||||
handwired/*)
|
||||
;;
|
||||
*)
|
||||
test -e "keyboards/${keyboard}/.noci" || echo "$keyboard"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "$keyboard"
|
||||
fi
|
||||
done
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
util_dir=$(dirname "$0")
|
||||
|
||||
if ! brew --version >/dev/null 2>&1; then
|
||||
echo "Error! Homebrew not installed or broken!"
|
||||
echo -n "Would you like to install homebrew now? [y/n] "
|
||||
while read -r ANSWER; do
|
||||
case $ANSWER in
|
||||
y | Y)
|
||||
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||||
break
|
||||
;;
|
||||
n | N)
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
echo -n "Would you like to install homebrew now? [y/n] "
|
||||
;;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
# All macOS dependencies are managed in the homebrew package:
|
||||
# https://github.com/qmk/homebrew-qmk
|
||||
brew update
|
||||
brew install qmk/qmk/qmk
|
||||
brew link --force avr-gcc@8
|
||||
brew link --force arm-gcc-bin@8
|
||||
|
||||
pip3 install -r "${util_dir}/../requirements.txt"
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
|
||||
download_dir=~/qmk_utils
|
||||
util_dir=$(dirname "$0")
|
||||
|
||||
echo "Installing dependencies needed for the installation"
|
||||
pacman --needed --noconfirm --disable-download-timeout -Sy \
|
||||
base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang git unzip \
|
||||
mingw-w64-x86_64-python-pip \
|
||||
mingw-w64-x86_64-avr-binutils mingw-w64-x86_64-avr-gcc mingw-w64-x86_64-avr-libc \
|
||||
mingw-w64-x86_64-arm-none-eabi-binutils mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-arm-none-eabi-newlib \
|
||||
mingw-w64-x86_64-avrdude mingw-w64-x86_64-bootloadhid mingw-w64-x86_64-dfu-programmer mingw-w64-x86_64-dfu-util mingw-w64-x86_64-teensy-loader-cli
|
||||
|
||||
source "$dir/win_shared_install.sh"
|
||||
|
||||
pip3 install -r "${util_dir}/../requirements.txt"
|
||||
|
||||
cp -f "$dir/activate_msys2.sh" "$download_dir/"
|
||||
|
||||
if grep "^source ~/qmk_utils/activate_msys2.sh$" ~/.bashrc
|
||||
then
|
||||
echo
|
||||
echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc"
|
||||
echo "Not adding it twice!"
|
||||
else
|
||||
echo
|
||||
echo "Adding 'source ~/qmk_utils/activate_msys2.sh' to the end of your"
|
||||
echo ".bashrc file. Without this make won't find the needed utils."
|
||||
echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc;
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "******************************************************************************"
|
||||
echo "Installation completed!"
|
||||
echo "Please close this Window and restart MSYS2 MinGW"
|
||||
echo "******************************************************************************"
|
||||
|
|
@ -37,4 +37,4 @@ printf "%s keymap directory created in: qmk_firmware/keyboards/%s/keymaps/\n\n"
|
|||
|
||||
printf "Compile a firmware file with your new keymap by typing: \n"
|
||||
printf " make %s:%s\n" "$KB_PATH" "$USERNAME"
|
||||
printf "from the qmk_firmware directory\n"
|
||||
printf "from the qmk_firmware directory\n"
|
||||
|
|
|
|||
|
|
@ -1,362 +1,362 @@
|
|||
:10000000BDC00000E3C00000E1C00000DFC0000090
|
||||
:10001000DDC00000DBC00000D9C00000D7C0000078
|
||||
:10002000D5C00000D3C000003AC70000B1C700002F
|
||||
:10003000CDC00000CBC00000C9C00000C7C0000098
|
||||
:10004000C5C00000C3C00000C1C00000BFC00000A8
|
||||
:10005000BDC00000BBC00000B9C000007FC60000EA
|
||||
:10006000B5C00000B3C00000B1C00000AFC00000C8
|
||||
:10007000ADC00000ABC00000A9C00000A7C00000D8
|
||||
:10008000A5C00000A3C00000A1C000009FC00000E8
|
||||
:100090009DC000009BC0000099C0000097C00000F8
|
||||
:1000A00095C0000093C0000091C000000001000056
|
||||
:1000B0005D0112000200001A014300030000160156
|
||||
:1000C0000401030904FC001802030904E4001603F8
|
||||
:1000D000030904D6000C0C03310032003300340055
|
||||
:1000E0003500000016035500530042002000530065
|
||||
:1000F00065007200690061006C0000001803540084
|
||||
:10010000650065006E007300790064007500690089
|
||||
:100110006E006F000000040309040902430002019D
|
||||
:1001200000C0320904000001020201000524001091
|
||||
:10013000010524010001042402060524060001072C
|
||||
:1001400005820308004009040100020A00000007BC
|
||||
:100150000503024000000705840240000012010070
|
||||
:100160000202000020C01683040001010203010006
|
||||
:1001700001C10201803601813600110B11241FBE1E
|
||||
:10018000CFEFDAE0DEBFCDBF11E0A0E0B1E0EAE5FD
|
||||
:10019000F6E102C005900D92A232B107D9F722E034
|
||||
:1001A000A2E2B1E001C01D92A935B207E1F710E06B
|
||||
:1001B000CEEBD0E004C02197FE010E94250BCD3B81
|
||||
:1001C000D107C9F70E942D090C942B0B19CFDC0124
|
||||
:1001D000ED91FC910190F081E02D09948EBD00001D
|
||||
:1001E0000DB407FEFDCF8EB508950F931F930FB684
|
||||
:1001F000F8948091440290914502A0914602B091FA
|
||||
:1002000047020FBE409122015091230160912401C9
|
||||
:10021000709125018C019D01041B150B260B370BDA
|
||||
:100220000832110521053105F0F0809322019093E9
|
||||
:100230002301A0932401B09325012091010180EEB8
|
||||
:10024000820F813A28F090910001919590930001DE
|
||||
:1002500080910001820F80930101529A803810F43E
|
||||
:100260005A9801C05A9A1F910F91089590912601B2
|
||||
:10027000882319F0911103C004C0911102C02E9A75
|
||||
:1002800001C02E98809180008F7D8093800008951A
|
||||
:100290000F931F93CF93DF938B01EC01DD27FE01BA
|
||||
:1002A0009ED46EE170E080E090E098D5FE019DD490
|
||||
:1002B0006EE170E080E090E091D50150110978F78F
|
||||
:1002C000DF91CF911F910F91089540E05BE460E0D2
|
||||
:1002D00070E08FE492E00E94AA0A509A62E070E017
|
||||
:1002E00085E090E0D5DF519A62E070E086E090E032
|
||||
:1002F000CFDF529A62E070E087E090E0C9CF8823B8
|
||||
:1003000011F0589A01C0589884B58F7D84BD089526
|
||||
:10031000CF93DF9300D01F92CDB7DEB72B834A83F4
|
||||
:1003200069835CDF6981862F59DF4A81842F56DF1C
|
||||
:100330002B81822F0F900F900F90DF91CF914ECF96
|
||||
:1003400020913A012093270180913B01809328015D
|
||||
:1003500080913C018093290180913D0180932A0185
|
||||
:1003600080913E0180932B0180913F0180932C016D
|
||||
:100370008091400180932D018091410180932E0155
|
||||
:100380008091420180932F018091440190E0982F49
|
||||
:10039000882730914501830F911D909331018093FF
|
||||
:1003A00030018091460190E0982F882730914701D5
|
||||
:1003B000830F911D90933301809332018091480106
|
||||
:1003C00090E0982F882730914901830F911D9093D9
|
||||
:1003D00035018093340180914A0190E0A0E0B0E0C3
|
||||
:1003E000BA2FA92F982F882730914B01830F911D89
|
||||
:1003F000A11DB11DDC019927882740914C0150E0D7
|
||||
:10040000542F4427052E000C660B770B840F951F85
|
||||
:10041000A61FB71F30914D01830F911DA11DB11D66
|
||||
:100420008093360190933701A0933801B09339013E
|
||||
:1004300081E0203E08F480E080932601089581E069
|
||||
:1004400015DF269A6DD380914202882381F0813096
|
||||
:1004500051F48DB3809340029DB380914102809509
|
||||
:1004600089238DBB04C08FB7F8948093400283E545
|
||||
:100470008CBD1DBC299864E170E080E090E0AED4B2
|
||||
:1004800080E0F4DE80E991E00197F1F781E0EEDEB3
|
||||
:1004900062E370E080E090E0A1D420E040E063E51A
|
||||
:1004A0008CEA36DF81E090E090933D0280933C023D
|
||||
:1004B000089541D322982A982198299880E0D6DE81
|
||||
:1004C00026982E98EDE7F0E080818F7D8083109252
|
||||
:1004D0003D0210923C020895242F880F880F880F48
|
||||
:1004E000462F672F805C14CFCF93DF9300D0CDB71A
|
||||
:1004F000DEB7482F692F80E090E049836A83FFDEF2
|
||||
:1005000020E049816A818CE403DF6EE170E080E0E5
|
||||
:1005100090E064D481E090E00F900F90DF91CF9154
|
||||
:10052000EECE209132013091330180913A029091C8
|
||||
:100530003B022032310511F4807F089520343105CB
|
||||
:1005400011F4807E08952038310511F4807C0895DF
|
||||
:100550002115314009F480780895CF92DF92EF920F
|
||||
:10056000FF920F931F93CF93DF936C01DADF8C011F
|
||||
:10057000C0E0D0E0CC15DD0554F5D3DF7C010817D1
|
||||
:10058000190721F0C801B0DFCCDF7C01FE01E65C79
|
||||
:10059000FE4F60913A0270913B02408180E09CDF07
|
||||
:1005A0002296FE01E75CFE4F60913A0270913B0299
|
||||
:1005B000408181E091DF20913A0230913B022F5F30
|
||||
:1005C0003F4F30933B0220933A028701D3CFC801BB
|
||||
:1005D0008BDF80E1DF91CF911F910F91FF90EF9022
|
||||
:1005E000DF90CF900895462F880F880F880F20E066
|
||||
:1005F000672F805E8DCE0F931F93CF93DF938C0177
|
||||
:10060000C0E0D0E0C017D10704F560913A027091C4
|
||||
:100610003B0280E0E8DF682F8FE492E0D8DD609154
|
||||
:100620003A0270913B0281E0DEDF682F8FE492E0B6
|
||||
:10063000CEDD20913A0230913B022F5F3F4F309345
|
||||
:100640003B0220933A022296DDCF80E1DF91CF91E9
|
||||
:100650001F910F910895EF92FF920F931F93CF93E5
|
||||
:10066000DF937C0100913A0210913B02000F111FB1
|
||||
:10067000E801CE01801B910B8E159F055CF42FEFD6
|
||||
:100680004C2F6D2F80EA44DE682F8FE492E09FDDCF
|
||||
:100690002196EFCF80E1DF91CF911F910F91FF90D5
|
||||
:1006A000EF9008958FE492E0F2D5892BD9F38FE48F
|
||||
:1006B00092E026C608950F931F93CF93DF938C018A
|
||||
:1006C000CAE3D1E0CE018A539140801791071CF410
|
||||
:1006D000E9DF8993F7CFDF91CF911F910F910895B3
|
||||
:1006E000EF92FF920F931F93CF93DF93EC018B0157
|
||||
:1006F000CB01E1DF80E090E002DE8AE3E82E81E0DA
|
||||
:10070000F82E0C0F1D1FC017D10771F0F7012191B2
|
||||
:100710007F014C2F6D2F80ECFBDD6DE270E080E0FF
|
||||
:1007200090E05CD32196EFCF81E090E0E8DD80E1BE
|
||||
:10073000DF91CF911F910F91FF90EF9008950F934C
|
||||
:100740001F93CF93DF938C01C0913A02D0913B026B
|
||||
:1007500080913401909135018017910718F0CC0FEA
|
||||
:10076000DD1F0BC080913E0290913F020196909355
|
||||
:100770003F0280933E0281E10FC00132110540F03B
|
||||
:1007800060E270E0CE01ACDFA09600521109F5CF17
|
||||
:10079000B801CE01A5DF80E1DF91CF911F910F91CC
|
||||
:1007A000089580DF803231F464E18FE492E00FDD60
|
||||
:1007B00060E10AC080913E0290913F0201969093C1
|
||||
:1007C0003F0280933E0265E18FE492E000CDCF933B
|
||||
:1007D000C82F68DF803251F464E18FE492E0F7DCE7
|
||||
:1007E0006C2F8FE492E0F3DC60E10AC080913E025E
|
||||
:1007F00090913F02019690933F0280933E0265E103
|
||||
:100800008FE492E0CF91E3CC813859F020F4803826
|
||||
:1008100061F482E00BC0823831F0833931F483E532
|
||||
:1008200005C081E003C082E101C080E0D0CF84E058
|
||||
:1008300090E041DFEAE3F1E0238142816181808140
|
||||
:1008400067DDC5CFCF93DF93EC0135DF2BDF80323F
|
||||
:1008500041F464E18FE492E0BADCCE017EDE682FE1
|
||||
:100860000AC080913E0290913F02019690933F0210
|
||||
:1008700080933E0265E18FE492E0DF91CF91A7CCB7
|
||||
:10088000CF93DF930FDFC82FD0E0DC2FCC270ADF18
|
||||
:10089000C80FD11D07DF863421F4CE01DF91CF913F
|
||||
:1008A000D1CF8534B9F4CE014ADFC82FFBDE8032C8
|
||||
:1008B00031F464E18FE492E08ADC6C2F0CC080910B
|
||||
:1008C0003E0290913F02019690933F0280933E0238
|
||||
:1008D00065E101C061E18FE492E0DF91CF9177CCD7
|
||||
:1008E0000F931F93CF93DF93DDDEC82FDBDE082F3E
|
||||
:1008F000D9DE182FD7DE803259F080913E029091D8
|
||||
:100900003F02019690933F0280933E0265E115C03D
|
||||
:10091000D0E0DC2FCC27C00FD11D64E18FE492E042
|
||||
:1009200056DC163419F4CE0166DE06C0153419F40F
|
||||
:10093000CE0191DE01C081E1682F8FE492E0DF916A
|
||||
:10094000CF911F910F9143CCADDE803259F0809151
|
||||
:100950003E0290913F02019690933F0280933E02A7
|
||||
:1009600065E120C064E18FE492E031DC20E040E00A
|
||||
:1009700060E080E3CDDC682F8FE492E028DC20E0AB
|
||||
:1009800041E060E080E3C4DC682F8FE492E01FDC8C
|
||||
:1009900020E042E060E080E3BBDC682F8FE492E07F
|
||||
:1009A00016DC60E18FE492E012CC7CDE813509F444
|
||||
:1009B00077C0E0F4813409F460C050F4803309F466
|
||||
:1009C00040C0813309F442C0803209F07AC06FC060
|
||||
:1009D000853409F454C0803509F455C0823409F0D7
|
||||
:1009E00070C084E190E067DEABDC4CC0813609F476
|
||||
:1009F00053C0F0F4863509F452C0803609F44BC078
|
||||
:100A0000853509F05EC04EDE90E090933B02809306
|
||||
:100A10003A0248DE90E0982F882720913A023091E0
|
||||
:100A20003B02820F931F90933B0280933A022AC0AD
|
||||
:100A30008437A1F1853709F439C0843609F041C003
|
||||
:100A40001FCF10923F0210923E021CC02BDE80325C
|
||||
:100A500071F564E18FE492E0BADBE0914F02F0912E
|
||||
:100A600050020280F381E02D47E050E069E071E040
|
||||
:100A70008FE492E0099560E133C014DEC5CE85E0D5
|
||||
:100A800090E019DE8ECE80913C0290913D02892B40
|
||||
:100A9000C9F7D5DCF7CF06DE05DEF4CF21CFC7CE10
|
||||
:100AA00010923F0210923E0204DDECCF4DCF8091B8
|
||||
:100AB0003E0290913F02019690933F0280933E0246
|
||||
:100AC0000EC080913E0290913F02019690933F02AA
|
||||
:100AD00080933E02E7DD803211F462E101C065E1FE
|
||||
:100AE0008FE492E074CB80913C0290913D02892B7F
|
||||
:100AF00011F0589A01C0589884B58F7D84BD8091BB
|
||||
:100B00003E0290913F02892B11F0599A01C05998E9
|
||||
:100B10006CDB8FE492E0BBD3892B09F046CF0895BC
|
||||
:100B2000289A209A8CB580618CBD8CB580648CBD70
|
||||
:100B3000219A229A08958CB58F7B8CBD08951DBA99
|
||||
:100B4000109268001CBC10BE1FBA10927A0010925E
|
||||
:100B50006E0010926F00109271001092720010924D
|
||||
:100B6000C900ECEBF0E0108214B817B81AB81DB841
|
||||
:100B700010BA108215B818B81BB81EB811BA08956B
|
||||
:100B8000F894E1E6F0E020E82083108283E084BD61
|
||||
:100B900085BDEEE6F0E080818160808381E0809316
|
||||
:100BA000800092E090938100809390009093910058
|
||||
:100BB0009093C00094E09093C1008093C200809312
|
||||
:100BC000C3001092C40086E880937A0020937B00D3
|
||||
:100BD00010927E0010927D0040D178940895E93102
|
||||
:100BE00050F4EE0FE450FA4F0994E93120F4EE0F7F
|
||||
:100BF000E25DF94F09940895289A0895299A089575
|
||||
:100C00002A9A08952B9A08952F9A6AC0589A58C024
|
||||
:100C1000599A08955A9A08955B9A0895469A66C01B
|
||||
:100C2000479A6AC05E9A08955F9A6CC02C9A08959C
|
||||
:100C30002D9A4AC02E9A4EC08F9A08958E9A089582
|
||||
:100C40008D9A08958C9A0895899A0895889A08959E
|
||||
:100C50005C9A08955D9A0895769A08952898089563
|
||||
:100C6000299808952A9808952B9808952F9838C0A8
|
||||
:100C7000589826C0599808955A9808955B980895F1
|
||||
:100C8000469834C0479838C05E9808955F983AC037
|
||||
:100C90002C9808952D9818C02E981CC08F980895F0
|
||||
:100CA0008E9808958D9808958C9808958998089540
|
||||
:100CB000889808955C9808955D98089576980895A9
|
||||
:100CC000E4B5EF7DE4BD0895E0918000EF77E09317
|
||||
:100CD00080000895E0918000EF7DE093800008950A
|
||||
:100CE000E0918000E77FE09380000895E09190001C
|
||||
:100CF000EF77E09390000895E091C000EF77E093E4
|
||||
:100D0000C0000895E091C200E77FE093C20008951B
|
||||
:100D1000F89484B7877F84BF80916000806180935E
|
||||
:100D200060001092600080E29EE40197F1F781E09C
|
||||
:100D30008093E00080E28093D80080E69AEE0197ED
|
||||
:100D4000F1F7FDDE0C94003FFFCFF894F8DE80E66B
|
||||
:100D50009AEE0197F1F70C940000FFCF8F938FB7B5
|
||||
:100D60008F93809143028D5F8D37D0F4809343023F
|
||||
:100D7000809144028F5F80934402D8F080914502B5
|
||||
:100D80008F4F80934502A8F0809146028F4F809349
|
||||
:100D9000460278F0809147028F4F8093470209C046
|
||||
:100DA0008D5780934302809144028E5F809344026A
|
||||
:100DB00028F7809148028C5F8093480258F0809118
|
||||
:100DC00049028F4F8093490228F080914A028F4F49
|
||||
:100DD00080934A028F918FBF8F911895CF92DF92A7
|
||||
:100DE000EF92FF926B017C0119D09B01C114D104D9
|
||||
:100DF000E104F10471F012D0621B730B683E734082
|
||||
:100E0000A8F381E0C81AD108E108F10828513C4F45
|
||||
:100E1000EDCFFF90EF90DF90CF9008950FB6F8944C
|
||||
:100E200066B515B2709148028091490290914A02CC
|
||||
:100E30000FBE10FE05C06F3F19F07C5F8F4F9F4FB4
|
||||
:100E400011240024660F001C660F001C70290895F1
|
||||
:100E50008091E80080FFFCCF08958091D80087FF43
|
||||
:100E600002C085FF1BC081E08093D70080EA809399
|
||||
:100E7000D80082E189BD09B400FEFDCF80E98093EE
|
||||
:100E8000D8001092E00010925B0210925A02109269
|
||||
:100E900059021092E1008DE08093E20008951F92C4
|
||||
:100EA0000F920FB60F9211242F933F934F935F939E
|
||||
:100EB0006F937F938F939F93AF93BF93EF93FF9322
|
||||
:100EC0009091E1001092E10093FF11C01092E900AF
|
||||
:100ED00081E08093EB001092EC0082E28093ED00C1
|
||||
:100EE00088E08093F00010925B021092590292FF0A
|
||||
:100EF0001DC080915B028823C9F080914E02882337
|
||||
:100F000059F0815080934E02811106C084E0809395
|
||||
:100F1000E9008AE38093E80080914D02882331F054
|
||||
:100F2000815080934D02811101C0F2DE90FF0CC010
|
||||
:100F300080E18093E20010925B0281E080935A028C
|
||||
:100F400080EA8093D80019BC80915A02882379F0F6
|
||||
:100F500094FF0DC082E189BD09B400FEFDCF80E998
|
||||
:100F60008093D8008DE08093E20010925A02FF91A6
|
||||
:100F7000EF91BF91AF919F918F917F916F915F9111
|
||||
:100F80004F913F912F910F900FBE0F901F9018958A
|
||||
:100F90001F920F920FB60F921124EF92FF920F93B0
|
||||
:100FA0001F932F933F934F935F936F937F938F93F1
|
||||
:100FB0009F93AF93BF93CF93EF93FF931092E9006A
|
||||
:100FC0008091E80083FF30C1C091F1008091F10071
|
||||
:100FD000E090F100F090F1000091F1001091F1002B
|
||||
:100FE0002091F1003091F10092EF9093E80086306B
|
||||
:100FF00009F03FC086E0ECEAF0E0459155914E15CE
|
||||
:101000005F0511F0359615C0459155914017510770
|
||||
:1010100011F033960EC04591559184912F3F3105C3
|
||||
:1010200019F010F02FEF30E0281708F4822F3EEF70
|
||||
:1010300008C0815011F7F8C0891B3093E80088235D
|
||||
:10104000A9F09091E800292F2570D9F392FDEFC007
|
||||
:10105000982F813208F090E2292F222369F3FA01B8
|
||||
:1010600045914093F100AF012150F7CF903249F301
|
||||
:10107000DEC0853049F48EEF8093E800E9DE8E2DE6
|
||||
:1010800080688093E300D3C0893001F5C111CCC0E2
|
||||
:10109000E0925B021092590210924E028EEF809302
|
||||
:1010A000E80081E0EFE6F1E08093E900959190930C
|
||||
:1010B000EB00992331F095919093EC0095919093EA
|
||||
:1010C000ED008F5F853081F78EE1A9C0883049F44B
|
||||
:1010D000C03809F0A9C0BCDE80915B028093F100AA
|
||||
:1010E0007DC0813279F4C13A09F09EC0B1DEE2E000
|
||||
:1010F000F1E087E08E0F90819093F10031968E138E
|
||||
:10110000FACF6CC0803209F047C0C13209F08CC000
|
||||
:101110008091E80082FFFCCFE2E0F1E087E08E0FF3
|
||||
:101120009091F100908331968E13FACF8BEF8093DC
|
||||
:10113000E8008EEF8093E8003091020140910301B6
|
||||
:10114000809104012091050190E0A0E0B0E0DC0175
|
||||
:1011500099278827942B832BB22B86389105A105DC
|
||||
:10116000B10521F48FE080934D0261C0863991056D
|
||||
:10117000A105B10509F05BC084E08093E9009FEF11
|
||||
:101180008091EE00837039F09093E8008091E80040
|
||||
:1011900082FDFCCFF5CFD9DD823231F4C13209F0C6
|
||||
:1011A00043C0E092590204C0833221F4C132E1F518
|
||||
:1011B0004FDE14C0811116C04BDEC23851F40093CB
|
||||
:1011C000E9008091EB0085FB882780F91092E90007
|
||||
:1011D00001C080E08093F1001092F1008EEF8093C7
|
||||
:1011E000E80025C0982F9D7F9130F1F4C230E1F4E2
|
||||
:1011F000EF28D1F40F779FEF900F9630A8F49EEF71
|
||||
:101200009093E8000093E900833071F089E18093C6
|
||||
:10121000EB0081E090E001C0880F0A95EAF7809327
|
||||
:10122000EA001092EA0003C081E28093EB00FF9194
|
||||
:10123000EF91CF91BF91AF919F918F917F916F91DE
|
||||
:101240005F914F913F912F911F910F91FF90EF90E0
|
||||
:101250000F900FBE0F901F90189592DC36D843DC8C
|
||||
:10126000FECFCF93DF931F92CDB7DEB76983DC014A
|
||||
:10127000ED91FC910280F381E02D41E050E0BE0150
|
||||
:101280006F5F7F4F09950F90DF91CF910895FC011B
|
||||
:101290008FB7F89490915B02911102C090E010C05A
|
||||
:1012A00093E09093E9009091F200911109C0209190
|
||||
:1012B000E80022FFF3CF25FDF1CF2BE62093E800D5
|
||||
:1012C0008FBF2085318537FD03C09F3F09F09F5FA9
|
||||
:1012D000892F90E00895CF93DF93EC01888599855D
|
||||
:1012E00097FF09C0E881F9810680F781E02DCE01E2
|
||||
:1012F00009959987888788859985DF91CF91089589
|
||||
:10130000FC012085318537FD07C04FEF5FEF518726
|
||||
:101310004087C901992708959FB7F89480915B028F
|
||||
:10132000882369F083E08093E9002BE68091E80050
|
||||
:1013300085FD09C082FF03C02093E800F7CF9FBF5F
|
||||
:101340008FEF9FEF08958091F1002091E80025FD37
|
||||
:1013500003C02BE62093E8009FBF90E00895DF9242
|
||||
:10136000EF92FF920F931F93CF93DF938C01EB01CA
|
||||
:1013700080915B02882371F07FB7F89484E08093BA
|
||||
:10138000E90080914C02882369F08091E80085FD96
|
||||
:1013900007C07FBF81E0F801828320E030E0D1C048
|
||||
:1013A00010924C0220E030E064E080E4F82EA1EFDF
|
||||
:1013B000B0E09AE3E92EE3E0DE2E4115510509F491
|
||||
:1013C000BFC08091E400815F9091E80095FD16C058
|
||||
:1013D0007FBF9091E400981304C081E080934C0299
|
||||
:1013E00005C090915B02911104C081E0F8018283F5
|
||||
:1013F000A8C07FB7F8946093E900E6CF8091F2002F
|
||||
:101400009F2D981BE92FF0E04E175F0708F4942FEB
|
||||
:10141000E92FF0E04E1B5F0B2E0F3F1FE0E4E91BAE
|
||||
:10142000E03428F4EE0FFF27E85EF54F099480C002
|
||||
:1014300099919C9399919C9399919C9399919C9348
|
||||
:1014400099919C9399919C9399919C9399919C9338
|
||||
:1014500099919C9399919C9399919C9399919C9328
|
||||
:1014600099919C9399919C9399919C9399919C9318
|
||||
:1014700099919C9399919C9399919C9399919C9308
|
||||
:1014800099919C9399919C9399919C9399919C93F8
|
||||
:1014900099919C9399919C9399919C9399919C93E8
|
||||
:1014A00099919C9399919C9399919C9399919C93D8
|
||||
:1014B00099919C9399919C9399919C9399919C93C8
|
||||
:1014C00099919C9399919C9399919C9399919C93B8
|
||||
:1014D00099919C9399919C9399919C9399919C93A8
|
||||
:1014E00099919C9399919C9399919C9399919C9398
|
||||
:1014F00099919C9399919C9399919C9399919C9388
|
||||
:1015000099919C9399919C9399919C9399919C9377
|
||||
:1015100099919C9399919C9399919C9399919C9367
|
||||
:1015200099919C9399919C9399919C9399919C9357
|
||||
:101530008091E80085FFE092E800D0924E023DCF16
|
||||
:101540007FBFC901DF91CF911F910F91FF90EF9065
|
||||
:10155000DF9008952FEF3FEFFC01318720877DDC7E
|
||||
:101560000FB6F8948091440290914502A0914602F2
|
||||
:10157000B09147020FBE9C0180915B02882329F045
|
||||
:1015800068EC70E080E090E029CC80915A028823DA
|
||||
:1015900001F10FB6F8948091440290914502A09118
|
||||
:1015A0004602B09147020FBE40915A02442389F08F
|
||||
:1015B0000FB6F89440914402509145026091460262
|
||||
:1015C000709147020FBE481B590B4B3F510560F30A
|
||||
:1015D00011C00FB6F8948091440290914502A091F9
|
||||
:1015E0004602B09147020FBE821B930B853C994087
|
||||
:1015F00008F4C2CF08959FB7F89480915B028823C6
|
||||
:1016000021F080914E02811102C09FBF089584E0B5
|
||||
:101610008093E9008AE38093E80010924E02F5CFB0
|
||||
:10162000EACFEFE4F2E08AE0DF011D928A95E9F764
|
||||
:1016300088EE93E0A0E0B0E083839483A583B68333
|
||||
:1016400085E191E0918380830895EE0FFF1F05905F
|
||||
:0A165000F491E02D0994F894FFCF07
|
||||
:10165A00088000E10000000008415652204953501A
|
||||
:10166A0000000000003109AF09470980096B091021
|
||||
:02167A000B0063
|
||||
:00000001FF
|
||||
:10000000BDC00000E3C00000E1C00000DFC0000090
|
||||
:10001000DDC00000DBC00000D9C00000D7C0000078
|
||||
:10002000D5C00000D3C000003AC70000B1C700002F
|
||||
:10003000CDC00000CBC00000C9C00000C7C0000098
|
||||
:10004000C5C00000C3C00000C1C00000BFC00000A8
|
||||
:10005000BDC00000BBC00000B9C000007FC60000EA
|
||||
:10006000B5C00000B3C00000B1C00000AFC00000C8
|
||||
:10007000ADC00000ABC00000A9C00000A7C00000D8
|
||||
:10008000A5C00000A3C00000A1C000009FC00000E8
|
||||
:100090009DC000009BC0000099C0000097C00000F8
|
||||
:1000A00095C0000093C0000091C000000001000056
|
||||
:1000B0005D0112000200001A014300030000160156
|
||||
:1000C0000401030904FC001802030904E4001603F8
|
||||
:1000D000030904D6000C0C03310032003300340055
|
||||
:1000E0003500000016035500530042002000530065
|
||||
:1000F00065007200690061006C0000001803540084
|
||||
:10010000650065006E007300790064007500690089
|
||||
:100110006E006F000000040309040902430002019D
|
||||
:1001200000C0320904000001020201000524001091
|
||||
:10013000010524010001042402060524060001072C
|
||||
:1001400005820308004009040100020A00000007BC
|
||||
:100150000503024000000705840240000012010070
|
||||
:100160000202000020C01683040001010203010006
|
||||
:1001700001C10201803601813600110B11241FBE1E
|
||||
:10018000CFEFDAE0DEBFCDBF11E0A0E0B1E0EAE5FD
|
||||
:10019000F6E102C005900D92A232B107D9F722E034
|
||||
:1001A000A2E2B1E001C01D92A935B207E1F710E06B
|
||||
:1001B000CEEBD0E004C02197FE010E94250BCD3B81
|
||||
:1001C000D107C9F70E942D090C942B0B19CFDC0124
|
||||
:1001D000ED91FC910190F081E02D09948EBD00001D
|
||||
:1001E0000DB407FEFDCF8EB508950F931F930FB684
|
||||
:1001F000F8948091440290914502A0914602B091FA
|
||||
:1002000047020FBE409122015091230160912401C9
|
||||
:10021000709125018C019D01041B150B260B370BDA
|
||||
:100220000832110521053105F0F0809322019093E9
|
||||
:100230002301A0932401B09325012091010180EEB8
|
||||
:10024000820F813A28F090910001919590930001DE
|
||||
:1002500080910001820F80930101529A803810F43E
|
||||
:100260005A9801C05A9A1F910F91089590912601B2
|
||||
:10027000882319F0911103C004C0911102C02E9A75
|
||||
:1002800001C02E98809180008F7D8093800008951A
|
||||
:100290000F931F93CF93DF938B01EC01DD27FE01BA
|
||||
:1002A0009ED46EE170E080E090E098D5FE019DD490
|
||||
:1002B0006EE170E080E090E091D50150110978F78F
|
||||
:1002C000DF91CF911F910F91089540E05BE460E0D2
|
||||
:1002D00070E08FE492E00E94AA0A509A62E070E017
|
||||
:1002E00085E090E0D5DF519A62E070E086E090E032
|
||||
:1002F000CFDF529A62E070E087E090E0C9CF8823B8
|
||||
:1003000011F0589A01C0589884B58F7D84BD089526
|
||||
:10031000CF93DF9300D01F92CDB7DEB72B834A83F4
|
||||
:1003200069835CDF6981862F59DF4A81842F56DF1C
|
||||
:100330002B81822F0F900F900F90DF91CF914ECF96
|
||||
:1003400020913A012093270180913B01809328015D
|
||||
:1003500080913C018093290180913D0180932A0185
|
||||
:1003600080913E0180932B0180913F0180932C016D
|
||||
:100370008091400180932D018091410180932E0155
|
||||
:100380008091420180932F018091440190E0982F49
|
||||
:10039000882730914501830F911D909331018093FF
|
||||
:1003A00030018091460190E0982F882730914701D5
|
||||
:1003B000830F911D90933301809332018091480106
|
||||
:1003C00090E0982F882730914901830F911D9093D9
|
||||
:1003D00035018093340180914A0190E0A0E0B0E0C3
|
||||
:1003E000BA2FA92F982F882730914B01830F911D89
|
||||
:1003F000A11DB11DDC019927882740914C0150E0D7
|
||||
:10040000542F4427052E000C660B770B840F951F85
|
||||
:10041000A61FB71F30914D01830F911DA11DB11D66
|
||||
:100420008093360190933701A0933801B09339013E
|
||||
:1004300081E0203E08F480E080932601089581E069
|
||||
:1004400015DF269A6DD380914202882381F0813096
|
||||
:1004500051F48DB3809340029DB380914102809509
|
||||
:1004600089238DBB04C08FB7F8948093400283E545
|
||||
:100470008CBD1DBC299864E170E080E090E0AED4B2
|
||||
:1004800080E0F4DE80E991E00197F1F781E0EEDEB3
|
||||
:1004900062E370E080E090E0A1D420E040E063E51A
|
||||
:1004A0008CEA36DF81E090E090933D0280933C023D
|
||||
:1004B000089541D322982A982198299880E0D6DE81
|
||||
:1004C00026982E98EDE7F0E080818F7D8083109252
|
||||
:1004D0003D0210923C020895242F880F880F880F48
|
||||
:1004E000462F672F805C14CFCF93DF9300D0CDB71A
|
||||
:1004F000DEB7482F692F80E090E049836A83FFDEF2
|
||||
:1005000020E049816A818CE403DF6EE170E080E0E5
|
||||
:1005100090E064D481E090E00F900F90DF91CF9154
|
||||
:10052000EECE209132013091330180913A029091C8
|
||||
:100530003B022032310511F4807F089520343105CB
|
||||
:1005400011F4807E08952038310511F4807C0895DF
|
||||
:100550002115314009F480780895CF92DF92EF920F
|
||||
:10056000FF920F931F93CF93DF936C01DADF8C011F
|
||||
:10057000C0E0D0E0CC15DD0554F5D3DF7C010817D1
|
||||
:10058000190721F0C801B0DFCCDF7C01FE01E65C79
|
||||
:10059000FE4F60913A0270913B02408180E09CDF07
|
||||
:1005A0002296FE01E75CFE4F60913A0270913B0299
|
||||
:1005B000408181E091DF20913A0230913B022F5F30
|
||||
:1005C0003F4F30933B0220933A028701D3CFC801BB
|
||||
:1005D0008BDF80E1DF91CF911F910F91FF90EF9022
|
||||
:1005E000DF90CF900895462F880F880F880F20E066
|
||||
:1005F000672F805E8DCE0F931F93CF93DF938C0177
|
||||
:10060000C0E0D0E0C017D10704F560913A027091C4
|
||||
:100610003B0280E0E8DF682F8FE492E0D8DD609154
|
||||
:100620003A0270913B0281E0DEDF682F8FE492E0B6
|
||||
:10063000CEDD20913A0230913B022F5F3F4F309345
|
||||
:100640003B0220933A022296DDCF80E1DF91CF91E9
|
||||
:100650001F910F910895EF92FF920F931F93CF93E5
|
||||
:10066000DF937C0100913A0210913B02000F111FB1
|
||||
:10067000E801CE01801B910B8E159F055CF42FEFD6
|
||||
:100680004C2F6D2F80EA44DE682F8FE492E09FDDCF
|
||||
:100690002196EFCF80E1DF91CF911F910F91FF90D5
|
||||
:1006A000EF9008958FE492E0F2D5892BD9F38FE48F
|
||||
:1006B00092E026C608950F931F93CF93DF938C018A
|
||||
:1006C000CAE3D1E0CE018A539140801791071CF410
|
||||
:1006D000E9DF8993F7CFDF91CF911F910F910895B3
|
||||
:1006E000EF92FF920F931F93CF93DF93EC018B0157
|
||||
:1006F000CB01E1DF80E090E002DE8AE3E82E81E0DA
|
||||
:10070000F82E0C0F1D1FC017D10771F0F7012191B2
|
||||
:100710007F014C2F6D2F80ECFBDD6DE270E080E0FF
|
||||
:1007200090E05CD32196EFCF81E090E0E8DD80E1BE
|
||||
:10073000DF91CF911F910F91FF90EF9008950F934C
|
||||
:100740001F93CF93DF938C01C0913A02D0913B026B
|
||||
:1007500080913401909135018017910718F0CC0FEA
|
||||
:10076000DD1F0BC080913E0290913F020196909355
|
||||
:100770003F0280933E0281E10FC00132110540F03B
|
||||
:1007800060E270E0CE01ACDFA09600521109F5CF17
|
||||
:10079000B801CE01A5DF80E1DF91CF911F910F91CC
|
||||
:1007A000089580DF803231F464E18FE492E00FDD60
|
||||
:1007B00060E10AC080913E0290913F0201969093C1
|
||||
:1007C0003F0280933E0265E18FE492E000CDCF933B
|
||||
:1007D000C82F68DF803251F464E18FE492E0F7DCE7
|
||||
:1007E0006C2F8FE492E0F3DC60E10AC080913E025E
|
||||
:1007F00090913F02019690933F0280933E0265E103
|
||||
:100800008FE492E0CF91E3CC813859F020F4803826
|
||||
:1008100061F482E00BC0823831F0833931F483E532
|
||||
:1008200005C081E003C082E101C080E0D0CF84E058
|
||||
:1008300090E041DFEAE3F1E0238142816181808140
|
||||
:1008400067DDC5CFCF93DF93EC0135DF2BDF80323F
|
||||
:1008500041F464E18FE492E0BADCCE017EDE682FE1
|
||||
:100860000AC080913E0290913F02019690933F0210
|
||||
:1008700080933E0265E18FE492E0DF91CF91A7CCB7
|
||||
:10088000CF93DF930FDFC82FD0E0DC2FCC270ADF18
|
||||
:10089000C80FD11D07DF863421F4CE01DF91CF913F
|
||||
:1008A000D1CF8534B9F4CE014ADFC82FFBDE8032C8
|
||||
:1008B00031F464E18FE492E08ADC6C2F0CC080910B
|
||||
:1008C0003E0290913F02019690933F0280933E0238
|
||||
:1008D00065E101C061E18FE492E0DF91CF9177CCD7
|
||||
:1008E0000F931F93CF93DF93DDDEC82FDBDE082F3E
|
||||
:1008F000D9DE182FD7DE803259F080913E029091D8
|
||||
:100900003F02019690933F0280933E0265E115C03D
|
||||
:10091000D0E0DC2FCC27C00FD11D64E18FE492E042
|
||||
:1009200056DC163419F4CE0166DE06C0153419F40F
|
||||
:10093000CE0191DE01C081E1682F8FE492E0DF916A
|
||||
:10094000CF911F910F9143CCADDE803259F0809151
|
||||
:100950003E0290913F02019690933F0280933E02A7
|
||||
:1009600065E120C064E18FE492E031DC20E040E00A
|
||||
:1009700060E080E3CDDC682F8FE492E028DC20E0AB
|
||||
:1009800041E060E080E3C4DC682F8FE492E01FDC8C
|
||||
:1009900020E042E060E080E3BBDC682F8FE492E07F
|
||||
:1009A00016DC60E18FE492E012CC7CDE813509F444
|
||||
:1009B00077C0E0F4813409F460C050F4803309F466
|
||||
:1009C00040C0813309F442C0803209F07AC06FC060
|
||||
:1009D000853409F454C0803509F455C0823409F0D7
|
||||
:1009E00070C084E190E067DEABDC4CC0813609F476
|
||||
:1009F00053C0F0F4863509F452C0803609F44BC078
|
||||
:100A0000853509F05EC04EDE90E090933B02809306
|
||||
:100A10003A0248DE90E0982F882720913A023091E0
|
||||
:100A20003B02820F931F90933B0280933A022AC0AD
|
||||
:100A30008437A1F1853709F439C0843609F041C003
|
||||
:100A40001FCF10923F0210923E021CC02BDE80325C
|
||||
:100A500071F564E18FE492E0BADBE0914F02F0912E
|
||||
:100A600050020280F381E02D47E050E069E071E040
|
||||
:100A70008FE492E0099560E133C014DEC5CE85E0D5
|
||||
:100A800090E019DE8ECE80913C0290913D02892B40
|
||||
:100A9000C9F7D5DCF7CF06DE05DEF4CF21CFC7CE10
|
||||
:100AA00010923F0210923E0204DDECCF4DCF8091B8
|
||||
:100AB0003E0290913F02019690933F0280933E0246
|
||||
:100AC0000EC080913E0290913F02019690933F02AA
|
||||
:100AD00080933E02E7DD803211F462E101C065E1FE
|
||||
:100AE0008FE492E074CB80913C0290913D02892B7F
|
||||
:100AF00011F0589A01C0589884B58F7D84BD8091BB
|
||||
:100B00003E0290913F02892B11F0599A01C05998E9
|
||||
:100B10006CDB8FE492E0BBD3892B09F046CF0895BC
|
||||
:100B2000289A209A8CB580618CBD8CB580648CBD70
|
||||
:100B3000219A229A08958CB58F7B8CBD08951DBA99
|
||||
:100B4000109268001CBC10BE1FBA10927A0010925E
|
||||
:100B50006E0010926F00109271001092720010924D
|
||||
:100B6000C900ECEBF0E0108214B817B81AB81DB841
|
||||
:100B700010BA108215B818B81BB81EB811BA08956B
|
||||
:100B8000F894E1E6F0E020E82083108283E084BD61
|
||||
:100B900085BDEEE6F0E080818160808381E0809316
|
||||
:100BA000800092E090938100809390009093910058
|
||||
:100BB0009093C00094E09093C1008093C200809312
|
||||
:100BC000C3001092C40086E880937A0020937B00D3
|
||||
:100BD00010927E0010927D0040D178940895E93102
|
||||
:100BE00050F4EE0FE450FA4F0994E93120F4EE0F7F
|
||||
:100BF000E25DF94F09940895289A0895299A089575
|
||||
:100C00002A9A08952B9A08952F9A6AC0589A58C024
|
||||
:100C1000599A08955A9A08955B9A0895469A66C01B
|
||||
:100C2000479A6AC05E9A08955F9A6CC02C9A08959C
|
||||
:100C30002D9A4AC02E9A4EC08F9A08958E9A089582
|
||||
:100C40008D9A08958C9A0895899A0895889A08959E
|
||||
:100C50005C9A08955D9A0895769A08952898089563
|
||||
:100C6000299808952A9808952B9808952F9838C0A8
|
||||
:100C7000589826C0599808955A9808955B980895F1
|
||||
:100C8000469834C0479838C05E9808955F983AC037
|
||||
:100C90002C9808952D9818C02E981CC08F980895F0
|
||||
:100CA0008E9808958D9808958C9808958998089540
|
||||
:100CB000889808955C9808955D98089576980895A9
|
||||
:100CC000E4B5EF7DE4BD0895E0918000EF77E09317
|
||||
:100CD00080000895E0918000EF7DE093800008950A
|
||||
:100CE000E0918000E77FE09380000895E09190001C
|
||||
:100CF000EF77E09390000895E091C000EF77E093E4
|
||||
:100D0000C0000895E091C200E77FE093C20008951B
|
||||
:100D1000F89484B7877F84BF80916000806180935E
|
||||
:100D200060001092600080E29EE40197F1F781E09C
|
||||
:100D30008093E00080E28093D80080E69AEE0197ED
|
||||
:100D4000F1F7FDDE0C94003FFFCFF894F8DE80E66B
|
||||
:100D50009AEE0197F1F70C940000FFCF8F938FB7B5
|
||||
:100D60008F93809143028D5F8D37D0F4809343023F
|
||||
:100D7000809144028F5F80934402D8F080914502B5
|
||||
:100D80008F4F80934502A8F0809146028F4F809349
|
||||
:100D9000460278F0809147028F4F8093470209C046
|
||||
:100DA0008D5780934302809144028E5F809344026A
|
||||
:100DB00028F7809148028C5F8093480258F0809118
|
||||
:100DC00049028F4F8093490228F080914A028F4F49
|
||||
:100DD00080934A028F918FBF8F911895CF92DF92A7
|
||||
:100DE000EF92FF926B017C0119D09B01C114D104D9
|
||||
:100DF000E104F10471F012D0621B730B683E734082
|
||||
:100E0000A8F381E0C81AD108E108F10828513C4F45
|
||||
:100E1000EDCFFF90EF90DF90CF9008950FB6F8944C
|
||||
:100E200066B515B2709148028091490290914A02CC
|
||||
:100E30000FBE10FE05C06F3F19F07C5F8F4F9F4FB4
|
||||
:100E400011240024660F001C660F001C70290895F1
|
||||
:100E50008091E80080FFFCCF08958091D80087FF43
|
||||
:100E600002C085FF1BC081E08093D70080EA809399
|
||||
:100E7000D80082E189BD09B400FEFDCF80E98093EE
|
||||
:100E8000D8001092E00010925B0210925A02109269
|
||||
:100E900059021092E1008DE08093E20008951F92C4
|
||||
:100EA0000F920FB60F9211242F933F934F935F939E
|
||||
:100EB0006F937F938F939F93AF93BF93EF93FF9322
|
||||
:100EC0009091E1001092E10093FF11C01092E900AF
|
||||
:100ED00081E08093EB001092EC0082E28093ED00C1
|
||||
:100EE00088E08093F00010925B021092590292FF0A
|
||||
:100EF0001DC080915B028823C9F080914E02882337
|
||||
:100F000059F0815080934E02811106C084E0809395
|
||||
:100F1000E9008AE38093E80080914D02882331F054
|
||||
:100F2000815080934D02811101C0F2DE90FF0CC010
|
||||
:100F300080E18093E20010925B0281E080935A028C
|
||||
:100F400080EA8093D80019BC80915A02882379F0F6
|
||||
:100F500094FF0DC082E189BD09B400FEFDCF80E998
|
||||
:100F60008093D8008DE08093E20010925A02FF91A6
|
||||
:100F7000EF91BF91AF919F918F917F916F915F9111
|
||||
:100F80004F913F912F910F900FBE0F901F9018958A
|
||||
:100F90001F920F920FB60F921124EF92FF920F93B0
|
||||
:100FA0001F932F933F934F935F936F937F938F93F1
|
||||
:100FB0009F93AF93BF93CF93EF93FF931092E9006A
|
||||
:100FC0008091E80083FF30C1C091F1008091F10071
|
||||
:100FD000E090F100F090F1000091F1001091F1002B
|
||||
:100FE0002091F1003091F10092EF9093E80086306B
|
||||
:100FF00009F03FC086E0ECEAF0E0459155914E15CE
|
||||
:101000005F0511F0359615C0459155914017510770
|
||||
:1010100011F033960EC04591559184912F3F3105C3
|
||||
:1010200019F010F02FEF30E0281708F4822F3EEF70
|
||||
:1010300008C0815011F7F8C0891B3093E80088235D
|
||||
:10104000A9F09091E800292F2570D9F392FDEFC007
|
||||
:10105000982F813208F090E2292F222369F3FA01B8
|
||||
:1010600045914093F100AF012150F7CF903249F301
|
||||
:10107000DEC0853049F48EEF8093E800E9DE8E2DE6
|
||||
:1010800080688093E300D3C0893001F5C111CCC0E2
|
||||
:10109000E0925B021092590210924E028EEF809302
|
||||
:1010A000E80081E0EFE6F1E08093E900959190930C
|
||||
:1010B000EB00992331F095919093EC0095919093EA
|
||||
:1010C000ED008F5F853081F78EE1A9C0883049F44B
|
||||
:1010D000C03809F0A9C0BCDE80915B028093F100AA
|
||||
:1010E0007DC0813279F4C13A09F09EC0B1DEE2E000
|
||||
:1010F000F1E087E08E0F90819093F10031968E138E
|
||||
:10110000FACF6CC0803209F047C0C13209F08CC000
|
||||
:101110008091E80082FFFCCFE2E0F1E087E08E0FF3
|
||||
:101120009091F100908331968E13FACF8BEF8093DC
|
||||
:10113000E8008EEF8093E8003091020140910301B6
|
||||
:10114000809104012091050190E0A0E0B0E0DC0175
|
||||
:1011500099278827942B832BB22B86389105A105DC
|
||||
:10116000B10521F48FE080934D0261C0863991056D
|
||||
:10117000A105B10509F05BC084E08093E9009FEF11
|
||||
:101180008091EE00837039F09093E8008091E80040
|
||||
:1011900082FDFCCFF5CFD9DD823231F4C13209F0C6
|
||||
:1011A00043C0E092590204C0833221F4C132E1F518
|
||||
:1011B0004FDE14C0811116C04BDEC23851F40093CB
|
||||
:1011C000E9008091EB0085FB882780F91092E90007
|
||||
:1011D00001C080E08093F1001092F1008EEF8093C7
|
||||
:1011E000E80025C0982F9D7F9130F1F4C230E1F4E2
|
||||
:1011F000EF28D1F40F779FEF900F9630A8F49EEF71
|
||||
:101200009093E8000093E900833071F089E18093C6
|
||||
:10121000EB0081E090E001C0880F0A95EAF7809327
|
||||
:10122000EA001092EA0003C081E28093EB00FF9194
|
||||
:10123000EF91CF91BF91AF919F918F917F916F91DE
|
||||
:101240005F914F913F912F911F910F91FF90EF90E0
|
||||
:101250000F900FBE0F901F90189592DC36D843DC8C
|
||||
:10126000FECFCF93DF931F92CDB7DEB76983DC014A
|
||||
:10127000ED91FC910280F381E02D41E050E0BE0150
|
||||
:101280006F5F7F4F09950F90DF91CF910895FC011B
|
||||
:101290008FB7F89490915B02911102C090E010C05A
|
||||
:1012A00093E09093E9009091F200911109C0209190
|
||||
:1012B000E80022FFF3CF25FDF1CF2BE62093E800D5
|
||||
:1012C0008FBF2085318537FD03C09F3F09F09F5FA9
|
||||
:1012D000892F90E00895CF93DF93EC01888599855D
|
||||
:1012E00097FF09C0E881F9810680F781E02DCE01E2
|
||||
:1012F00009959987888788859985DF91CF91089589
|
||||
:10130000FC012085318537FD07C04FEF5FEF518726
|
||||
:101310004087C901992708959FB7F89480915B028F
|
||||
:10132000882369F083E08093E9002BE68091E80050
|
||||
:1013300085FD09C082FF03C02093E800F7CF9FBF5F
|
||||
:101340008FEF9FEF08958091F1002091E80025FD37
|
||||
:1013500003C02BE62093E8009FBF90E00895DF9242
|
||||
:10136000EF92FF920F931F93CF93DF938C01EB01CA
|
||||
:1013700080915B02882371F07FB7F89484E08093BA
|
||||
:10138000E90080914C02882369F08091E80085FD96
|
||||
:1013900007C07FBF81E0F801828320E030E0D1C048
|
||||
:1013A00010924C0220E030E064E080E4F82EA1EFDF
|
||||
:1013B000B0E09AE3E92EE3E0DE2E4115510509F491
|
||||
:1013C000BFC08091E400815F9091E80095FD16C058
|
||||
:1013D0007FBF9091E400981304C081E080934C0299
|
||||
:1013E00005C090915B02911104C081E0F8018283F5
|
||||
:1013F000A8C07FB7F8946093E900E6CF8091F2002F
|
||||
:101400009F2D981BE92FF0E04E175F0708F4942FEB
|
||||
:10141000E92FF0E04E1B5F0B2E0F3F1FE0E4E91BAE
|
||||
:10142000E03428F4EE0FFF27E85EF54F099480C002
|
||||
:1014300099919C9399919C9399919C9399919C9348
|
||||
:1014400099919C9399919C9399919C9399919C9338
|
||||
:1014500099919C9399919C9399919C9399919C9328
|
||||
:1014600099919C9399919C9399919C9399919C9318
|
||||
:1014700099919C9399919C9399919C9399919C9308
|
||||
:1014800099919C9399919C9399919C9399919C93F8
|
||||
:1014900099919C9399919C9399919C9399919C93E8
|
||||
:1014A00099919C9399919C9399919C9399919C93D8
|
||||
:1014B00099919C9399919C9399919C9399919C93C8
|
||||
:1014C00099919C9399919C9399919C9399919C93B8
|
||||
:1014D00099919C9399919C9399919C9399919C93A8
|
||||
:1014E00099919C9399919C9399919C9399919C9398
|
||||
:1014F00099919C9399919C9399919C9399919C9388
|
||||
:1015000099919C9399919C9399919C9399919C9377
|
||||
:1015100099919C9399919C9399919C9399919C9367
|
||||
:1015200099919C9399919C9399919C9399919C9357
|
||||
:101530008091E80085FFE092E800D0924E023DCF16
|
||||
:101540007FBFC901DF91CF911F910F91FF90EF9065
|
||||
:10155000DF9008952FEF3FEFFC01318720877DDC7E
|
||||
:101560000FB6F8948091440290914502A0914602F2
|
||||
:10157000B09147020FBE9C0180915B02882329F045
|
||||
:1015800068EC70E080E090E029CC80915A028823DA
|
||||
:1015900001F10FB6F8948091440290914502A09118
|
||||
:1015A0004602B09147020FBE40915A02442389F08F
|
||||
:1015B0000FB6F89440914402509145026091460262
|
||||
:1015C000709147020FBE481B590B4B3F510560F30A
|
||||
:1015D00011C00FB6F8948091440290914502A091F9
|
||||
:1015E0004602B09147020FBE821B930B853C994087
|
||||
:1015F00008F4C2CF08959FB7F89480915B028823C6
|
||||
:1016000021F080914E02811102C09FBF089584E0B5
|
||||
:101610008093E9008AE38093E80010924E02F5CFB0
|
||||
:10162000EACFEFE4F2E08AE0DF011D928A95E9F764
|
||||
:1016300088EE93E0A0E0B0E083839483A583B68333
|
||||
:1016400085E191E0918380830895EE0FFF1F05905F
|
||||
:0A165000F491E02D0994F894FFCF07
|
||||
:10165A00088000E10000000008415652204953501A
|
||||
:10166A0000000000003109AF09470980096B091021
|
||||
:02167A000B0063
|
||||
:00000001FF
|
||||
|
|
|
|||
|
|
@ -1,25 +1,70 @@
|
|||
#!/bin/sh
|
||||
# Pick the correct install script based on the current OS
|
||||
#!/bin/bash
|
||||
|
||||
util_dir=$(dirname "$0")
|
||||
QMK_FIRMWARE_DIR=$(cd -P -- "$(dirname -- "$0")/.." && pwd -P)
|
||||
QMK_FIRMWARE_UTIL_DIR=$QMK_FIRMWARE_DIR/util
|
||||
|
||||
case $(uname -a) in
|
||||
*Darwin*)
|
||||
exec "${util_dir}/macos_install.sh"
|
||||
;;
|
||||
*Linux*Microsoft*)
|
||||
exec "${util_dir}/wsl_install.sh"
|
||||
;;
|
||||
*FreeBSD*)
|
||||
exec "${util_dir}/freebsd_install.sh"
|
||||
;;
|
||||
*Linux*)
|
||||
exec "${util_dir}/linux_install.sh"
|
||||
;;
|
||||
MSYS_NT*|MINGW64_NT*|MINGW32_NT*)
|
||||
exec "${util_dir}/msys2_install.sh"
|
||||
;;
|
||||
*)
|
||||
echo "Environment not supported. Please see https://docs.qmk.fm for details on how to configure the QMK Firmware build tools manually."
|
||||
;;
|
||||
*Darwin*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/macos.sh";;
|
||||
*FreeBSD*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/freebsd.sh";;
|
||||
*MINGW64_NT*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/msys2.sh";;
|
||||
*MSYS_NT*|*MINGW32_NT*)
|
||||
echo "Please open a MinGW64 terminal window and re-run this script."
|
||||
exit 1;;
|
||||
*Linux*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/linux_shared.sh"
|
||||
|
||||
case $(grep ID /etc/os-release) in
|
||||
*arch*|*manjaro*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/arch.sh";;
|
||||
*debian*|*ubuntu*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/debian.sh";;
|
||||
*fedora*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/fedora.sh";;
|
||||
*gentoo*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/gentoo.sh";;
|
||||
*slackware*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/slackware.sh";;
|
||||
*solus*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/solus.sh";;
|
||||
*void*)
|
||||
. "$QMK_FIRMWARE_UTIL_DIR/install/void.sh";;
|
||||
*)
|
||||
echo "Sorry, we don't recognize your distribution. Try using the docker image instead:"
|
||||
echo
|
||||
echo "https://docs.qmk.fm/#/getting_started_docker"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
if uname -a | grep -qi microsoft; then
|
||||
echo "********************************************************************************"
|
||||
echo "* Detected Windows Subsystem for Linux. *"
|
||||
echo "* Currently, WSL has no access to USB devices and so flashing from within the *"
|
||||
echo "* WSL terminal will not work. *"
|
||||
echo "* *"
|
||||
echo "* Please install the QMK Toolbox instead: *"
|
||||
echo "* https://github.com/qmk/qmk_toolbox/releases *"
|
||||
echo "* Then, map your WSL filesystem as a network drive: *"
|
||||
echo "* \\\\\\\\wsl$\\<distro> *"
|
||||
echo "********************************************************************************"
|
||||
echo
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Sorry, we don't recognize your environment. Help us by contributing support!"
|
||||
echo
|
||||
echo "https://docs.qmk.fm/#/contributing"
|
||||
exit 1;;
|
||||
esac
|
||||
|
||||
if type _qmk_install_prepare &>/dev/null; then
|
||||
_qmk_install_prepare || exit 1
|
||||
fi
|
||||
|
||||
_qmk_install
|
||||
|
||||
if type _qmk_install_bootloadhid &>/dev/null; then
|
||||
_qmk_install_bootloadhid
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -1,49 +0,0 @@
|
|||
//
|
||||
// calculate rgblight_effect_breathe_table[] values
|
||||
//
|
||||
// this is host program for quantum/rgblight.c:void rgblight_effect_breathing();
|
||||
//
|
||||
// example:
|
||||
// $ edit util/rgblight_breathing_table_calc.c
|
||||
// $ cc -o util/rgblight_breathing_table_calc util/rgblight_breathing_table_calc.c
|
||||
// $ ./util/rgblight_breathing_table_calc > keyboards/KEYBOARD_NAME/keymaps/KEYMAP_NAME/rgblight_breathe_table.h
|
||||
//
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/// customize breeathing effect part ///////////////////////////
|
||||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
int main(void) {
|
||||
int pos, step;
|
||||
int table[256];
|
||||
for (pos = 0; pos < 256; pos ++ ) {
|
||||
table[pos] = (uint8_t)(
|
||||
(exp(sin((pos/255.0)*M_PI))- RGBLIGHT_EFFECT_BREATHE_CENTER/M_E)
|
||||
* (RGBLIGHT_EFFECT_BREATHE_MAX/(M_E-1/M_E))
|
||||
);
|
||||
}
|
||||
printf("#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE\n");
|
||||
printf("#define RGBLIGHT_EFFECT_BREATHE_TABLE\n\n");
|
||||
printf("const uint8_t rgblight_effect_breathe_table[] PROGMEM = {\n");
|
||||
printf(" /* #define RGBLIGHT_EFFECT_BREATHE_CENTER %.2f */\n", RGBLIGHT_EFFECT_BREATHE_CENTER);
|
||||
printf(" /* #define RGBLIGHT_EFFECT_BREATHE_MAX %d */\n", RGBLIGHT_EFFECT_BREATHE_MAX);
|
||||
|
||||
for (int s = 0, step = (1<<s); s < 3 ; s += 1, step = (1<<s) ) {
|
||||
printf("\n #if RGBLIGHT_BREATHE_TABLE_SIZE == %d\n",
|
||||
s == 0 ? 256:(s== 1 ? 128: 64));
|
||||
for (pos = 0; pos < 256; pos += step ) {
|
||||
printf(" 0x%x%s", table[pos], (pos+step)>=256?"":"," );
|
||||
if ((pos+step) % 8 == 0)
|
||||
printf("\n");
|
||||
}
|
||||
printf(" #endif /* %d bytes table */\n", s == 0 ? 256:(s== 1 ? 128: 64));
|
||||
}
|
||||
printf("};\n");
|
||||
printf("\nstatic const int table_scale = 256/sizeof(rgblight_effect_breathe_table);\n");
|
||||
printf("\n#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */\n");
|
||||
return 0;
|
||||
}
|
||||
39
util/sample_parser.py
Executable file
39
util/sample_parser.py
Executable file
|
|
@ -0,0 +1,39 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright 2019 Jack Humbert
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import wave, struct, sys
|
||||
|
||||
waveFile = wave.open(sys.argv[1], 'r')
|
||||
# print(str(waveFile.getparams()))
|
||||
# sys.exit()
|
||||
|
||||
if (waveFile.getsampwidth() != 2):
|
||||
raise(Exception("This script currently only works with 16bit audio files"))
|
||||
|
||||
length = waveFile.getnframes()
|
||||
out = "#define DAC_SAMPLE_CUSTOM_LENGTH " + str(length) + "\n\n"
|
||||
out += "static const dacsample_t dac_sample_custom[" + str(length) + "] = {"
|
||||
for i in range(0,length):
|
||||
if (i % 8 == 0):
|
||||
out += "\n "
|
||||
waveData = waveFile.readframes(1)
|
||||
data = struct.unpack("<h", waveData)
|
||||
out += str(int((int(data[0]) + 0x8000) / 16)) + ", "
|
||||
out = out[:-2]
|
||||
out += "\n};"
|
||||
print(out)
|
||||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
source util/travis_utils.sh
|
||||
|
||||
NUM_CORE_CHANGES=$(echo "$QMK_CHANGES" | grep -Ecv -e '^(docs/)' -e '^(keyboards/)' -e '^(layouts/)' -e '^(util/)' -e '^(lib/python/)' -e '^(bin/qmk)' -e '^(requirements.txt)' -e '(.travis.yml)')
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip build]"* ]]; then
|
||||
echo "Skipping due to commit message"
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -10,37 +10,10 @@ echo "Using git hash ${rev}"
|
|||
|
||||
if [[ "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]] ; then
|
||||
|
||||
# fix formatting
|
||||
git checkout master
|
||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 dos2unix
|
||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} '*.c' '*.h' '*.cpp' | grep -z -e '^drivers' -e '^quantum' -e '^tests' -e '^tmk_core' | grep -zv -e 'quantum/template' -e 'tmk_core/protocol/usb_hid' -e 'platforms/chibios' | xargs -0 clang-format-7 -i
|
||||
git diff --diff-filter=AM --name-only -n 1 -z ${TRAVIS_COMMIT_RANGE} | xargs -0 git add
|
||||
git commit -m "format code according to conventions [skip ci]" && git push git@github.com:qmk/qmk_firmware.git master
|
||||
|
||||
increment_version ()
|
||||
{
|
||||
declare -a part=( ${1//\./ } )
|
||||
part[2]=$((part[2] + 1))
|
||||
new="${part[*]}"
|
||||
echo -e "${new// /.}"
|
||||
}
|
||||
|
||||
git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE}
|
||||
|
||||
NEFM=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE} | grep -Ev '^(keyboards/)' | grep -Ev '^(docs/)' | grep -Ev '^(users/)' | grep -Ev '^(layouts/)' | wc -l)
|
||||
if [[ $NEFM -gt 0 ]] ; then
|
||||
echo "Essential files modified."
|
||||
git fetch --tags
|
||||
lasttag=$(git tag --sort=-creatordate --no-column --list '*.*.*' | grep -E -m1 '^[0-9]+\.[0-9]+\.[0-9]+$')
|
||||
newtag=$(increment_version $lasttag)
|
||||
until git tag $newtag; do
|
||||
newtag=$(increment_version $newtag)
|
||||
done
|
||||
git push --tags git@github.com:qmk/qmk_firmware.git
|
||||
else
|
||||
echo "No essential files modified."
|
||||
fi
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then
|
||||
make generate-keyboards-file SILENT=true > .keyboards
|
||||
cd ..
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
source util/travis_utils.sh
|
||||
source util/travis_push.sh
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip docs]"* ]] ; then
|
||||
if git diff --name-only ${TRAVIS_COMMIT_RANGE} | grep -e '^quantum/' -e '^tmk_core/' -e '^docs/internals_.*'; then
|
||||
echo "Generating internal docs..."
|
||||
rm -rf doxygen
|
||||
doxygen Doxyfile
|
||||
moxygen -q -a -g -o docs/internals_%s.md doxygen/xml
|
||||
git add docs/internals_*
|
||||
git commit -m'autogenerated internal docs for ${TRAVIS_COMMIT_RANGE}' || true
|
||||
fi
|
||||
fi
|
||||
|
|
@ -2,8 +2,6 @@
|
|||
|
||||
source util/travis_utils.sh
|
||||
|
||||
NUM_CORE_CHANGES=$(echo "$QMK_CHANGES" | grep -Ecv -e '^(docs/)' -e '^(keyboards/)' -e '^(layouts/)' -e '^(util/)' -e '^(lib/python/)' -e '^(bin/qmk)' -e '^(requirements.txt)' -e '(.travis.yml)')
|
||||
|
||||
if [[ "$TRAVIS_COMMIT_MESSAGE" == *"[skip test]"* ]]; then
|
||||
echo "Skipping due to commit message"
|
||||
exit 0
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ TRAVIS_COMMIT_RANGE="${TRAVIS_COMMIT_RANGE:-HEAD~1..HEAD}"
|
|||
# Extra variables
|
||||
LOCAL_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
QMK_CHANGES=$(git diff --name-only -n 1 ${TRAVIS_COMMIT_RANGE})
|
||||
NUM_CORE_CHANGES=$(echo "$QMK_CHANGES" | grep -Ec -e '^Makefile' -e '^[^/]*.mk' -e '^drivers/' -e '^lib/atsam' -e '^lib/lib8tion/' -e '^platforms' -e '^quantum' -e '^tests' -e '^tmk_core')
|
||||
|
||||
# if docker is installed - patch calls to within the qmk docker image
|
||||
if command -v docker >/dev/null; then
|
||||
|
|
|
|||
62
util/udev/50-qmk.rules
Normal file
62
util/udev/50-qmk.rules
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
# Atmel DFU
|
||||
### ATmega16U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2fef", TAG+="uaccess"
|
||||
### ATmega32U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff0", TAG+="uaccess"
|
||||
### ATmega16U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff3", TAG+="uaccess"
|
||||
### ATmega32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff4", TAG+="uaccess"
|
||||
### AT90USB64
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ff9", TAG+="uaccess"
|
||||
### AT90USB162
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffa", TAG+="uaccess"
|
||||
### AT90USB128
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2ffb", TAG+="uaccess"
|
||||
|
||||
# Input Club
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1c11", ATTRS{idProduct}=="b007", TAG+="uaccess"
|
||||
|
||||
# STM32duino
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1eaf", ATTRS{idProduct}=="0003", TAG+="uaccess"
|
||||
# STM32 DFU
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", TAG+="uaccess"
|
||||
|
||||
# BootloadHID
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05df", TAG+="uaccess"
|
||||
|
||||
# USBAspLoader
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", TAG+="uaccess"
|
||||
|
||||
# ModemManager should ignore the following devices
|
||||
# Atmel SAM-BA (Massdrop)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
|
||||
# Caterina (Pro Micro)
|
||||
## Spark Fun Electronics
|
||||
### Pro Micro 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9203", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Pro Micro 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9205", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b4f", ATTRS{idProduct}=="9207", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Pololu Electronics
|
||||
### A-Star 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1ffb", ATTRS{idProduct}=="0101", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Arduino SA
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Adafruit Industries LLC
|
||||
### Feather 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000c", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000d", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239a", ATTRS{idProduct}=="000e", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## dog hunter AG
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0036", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="0037", TAG+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
40
util/wavetable_parser.py
Executable file
40
util/wavetable_parser.py
Executable file
|
|
@ -0,0 +1,40 @@
|
|||
#!/usr/bin/env python3
|
||||
#
|
||||
# Copyright 2019 Jack Humbert
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
|
||||
import wave, struct, sys
|
||||
|
||||
waveFile = wave.open(sys.argv[1], 'r')
|
||||
|
||||
length = waveFile.getnframes()
|
||||
out = "#define DAC_WAVETABLE_CUSTOM_LENGTH " + str(int(length / 256)) + "\n\n"
|
||||
out += "static const dacsample_t dac_wavetable_custom[" + str(int(length / 256)) + "][256] = {"
|
||||
for i in range(0,length):
|
||||
if (i % 8 == 0):
|
||||
out += "\n "
|
||||
if (i % 256 == 0):
|
||||
out = out[:-2]
|
||||
out += "{\n "
|
||||
waveData = waveFile.readframes(1)
|
||||
data = struct.unpack("<h", waveData)
|
||||
out += str(int((int(data[0]) + 0x8000) / 16)) + ", "
|
||||
if (i % 256 == 255):
|
||||
out = out[:-2]
|
||||
out += "\n },"
|
||||
out = out[:-1]
|
||||
out += "\n};"
|
||||
print(out)
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
function install_utils {
|
||||
rm -f -r "$download_dir"
|
||||
mkdir "$download_dir"
|
||||
|
||||
pushd "$download_dir"
|
||||
|
||||
echo "Downloading the QMK driver installer"
|
||||
wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i -
|
||||
|
||||
rm -f *.zip
|
||||
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
function install_drivers {
|
||||
pushd "$download_dir"
|
||||
cp -f "$dir/drivers.txt" .
|
||||
echo
|
||||
cmd.exe //c "qmk_driver_installer.exe $1 $2 drivers.txt"
|
||||
popd > /dev/null
|
||||
}
|
||||
|
||||
pushd "$dir"
|
||||
|
||||
if [ ! -d "$download_dir" ]; then
|
||||
install_utils
|
||||
else
|
||||
while true; do
|
||||
echo
|
||||
echo "The utils seem to already be downloaded."
|
||||
read -p "Do you want to re-download them and update to the newest version (Y/N) " res
|
||||
case $res in
|
||||
[Yy]* ) install_utils; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Invalid answer";;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
while true; do
|
||||
echo
|
||||
echo "Which USB drivers do you want to install?"
|
||||
echo "(A)ll - All supported drivers will be installed"
|
||||
echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode)"
|
||||
echo " will be installed"
|
||||
echo "(F)orce - Like all, but will also override existing drivers for connected"
|
||||
echo " keyboards"
|
||||
echo "(N)one - No drivers will be installed,"
|
||||
echo " flashing your keyboard will most likely not work"
|
||||
read -p "(a/c/f/N)? " res
|
||||
case $res in
|
||||
[AaYy]* ) install_drivers --all; break;;
|
||||
[Cc]* ) install_drivers; break;;
|
||||
[Ff]* ) install_drivers --all --force; break;;
|
||||
[Nn]* | "" ) break;;
|
||||
* ) echo "Invalid answer";;
|
||||
esac
|
||||
done
|
||||
|
||||
|
||||
popd > /dev/null
|
||||
|
|
@ -1,80 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
util_dir=$(dirname "$0")
|
||||
dir=$(cd -P -- "$util_dir" && pwd -P)
|
||||
pushd "$dir";
|
||||
|
||||
if [[ $dir != /mnt/* ]];
|
||||
then
|
||||
echo
|
||||
echo "You need to clone the qmk_firmware repository outside the linux filesystem."
|
||||
echo "Otherwise the windows executables can't be run."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
while true; do
|
||||
echo
|
||||
echo "Do you want to install all toolchain dependencies needed for compiling QMK?"
|
||||
echo "If you don't want that, you can install the dependencies manually."
|
||||
read -p "(Y/N) " res
|
||||
case $res in
|
||||
[Yy]* ) ./linux_install.sh; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Invalid answer";;
|
||||
esac
|
||||
done
|
||||
|
||||
download_dir=wsl_downloaded
|
||||
|
||||
source "$dir/win_shared_install.sh"
|
||||
|
||||
pip3 install -r ${util_dir}/../requirements.txt
|
||||
|
||||
echo
|
||||
echo "Creating a softlink to the utils directory as ~/qmk_utils."
|
||||
echo "This is needed so that the the make system can find all utils it need."
|
||||
read -p "Press enter to continue (ctrl-c to abort)"
|
||||
ln -sfn "$dir" ~/qmk_utils
|
||||
|
||||
if grep "^source ~/qmk_utils/activate_wsl.sh$" ~/.bashrc
|
||||
then
|
||||
echo
|
||||
echo "The line source ~/qmk_utils/activate_wsl.sh is already added to your /.bashrc"
|
||||
echo "Not adding it twice"
|
||||
else
|
||||
while true; do
|
||||
echo
|
||||
echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of your"
|
||||
echo ".bashrc file? Without this make won't find the needed utils, so if you don't"
|
||||
echo "want to do it automatically, then you have to do it manually later."
|
||||
read -p "(Y/N)? " res
|
||||
case $res in
|
||||
[Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Invalid answer";;
|
||||
esac
|
||||
done
|
||||
fi
|
||||
|
||||
while true; do
|
||||
echo
|
||||
echo "Do you want to add a symlink to the QMK repository in your home directory for"
|
||||
echo "convenience? This will create a folder 'qmk_firmware' in your home directory."
|
||||
echo "In the future you can use this folder instead of the full path on your Windows"
|
||||
echo "file system."
|
||||
read -p "(Y/N)? " res
|
||||
case $res in
|
||||
[Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;;
|
||||
[Nn]* ) break;;
|
||||
* ) echo "Invalid answer";;
|
||||
esac
|
||||
done
|
||||
|
||||
echo
|
||||
echo "******************************************************************************"
|
||||
echo "Installation completed!"
|
||||
echo "You need to open a new bash command prompt for all the utils to work properly"
|
||||
echo "******************************************************************************"
|
||||
|
||||
popd > /dev/null
|
||||
Loading…
Add table
Add a link
Reference in a new issue