Compare commits

..
35 Commits
Author SHA1 Message Date
Fred Sundvik a5b0f4de35 Add SRC and OPT_DEFS when building tests 2017-07-20 10:17:31 -04:00
Fred Sundvik 20696a9efe Fix building of multiple test directories 2017-07-20 10:17:31 -04:00
Jack Humbert 14c5160b1a Update _summary.md 2017-07-17 15:01:33 -04:00
Jack Humbert 000e749853 Rename docs/features/README.md to docs/features.md 2017-07-17 15:01:11 -04:00
Jack Humbert 7c0610b411 Merge pull request #1498 from That-Canadian/minidox
Minidox
2017-07-14 22:04:18 -04:00
That-Canadian b6d74b9bb9 Fixed typo in readme 2017-07-14 21:58:59 -04:00
That-Canadian 5e8594db82 Updated MiniDox readme 2017-07-14 21:57:41 -04:00
That-Canadian 6c9b69a4b6 Merge branch 'master' into minidox 2017-07-14 21:35:50 -04:00
That-Canadian 5412229603 Merge remote-tracking branch 'upstream/master' 2017-07-14 21:34:37 -04:00
That-Canadian e2e0f5d6d1 Merge branch 'minidox' of https://github.com/That-Canadian/qmk_firmware into minidox 2017-07-14 21:33:19 -04:00
That-Canadian 21b63d9243 Updated i2c and serial files to most recent from the lets split firmware. Also updated that_canadian keymap 2017-07-14 21:24:58 -04:00
Jack Humbert 6ed8ce4f59 Merge pull request #1491 from fredizzimo/msys2
Add support for msys2 build environment
2017-07-13 14:24:26 -04:00
Fred Sundvik b7d8dec7dc Fix printf error in make output on msys2 2017-07-12 13:04:50 +03:00
Fred Sundvik 7f67abd7d7 Fix bitfield problem when compiling in native mingw 2017-07-11 22:05:01 +03:00
Fred Sundvik 78545b9509 Fix unreferenced errors with mingw compiler and unit tests 2017-07-11 19:41:04 +03:00
Fred Sundvik 5a25d50168 Add more dependencies, everything can be compiled now 2017-07-11 18:51:52 +03:00
Fred Sundvik 5c3fd67198 Add tools to the path 2017-07-11 17:55:03 +03:00
Fred Sundvik 0d9e7f635e Extract flip 2017-07-11 17:32:58 +03:00
Fred Sundvik 76bd0d3e18 Install arm toolchain 2017-07-11 17:18:24 +03:00
Fred Sundvik b8c363099b Download and extract avr tools 2017-07-11 16:44:46 +03:00
Fred Sundvik b85ce4ce22 Fix overlong lines, and a few spelling errors 2017-07-11 16:26:29 +03:00
Fred Sundvik d47db637ed Use home directory for download on msys2 2017-07-11 16:11:37 +03:00
That-Canadian d73d30aa84 Merge remote-tracking branch 'upstream/master' 2017-07-10 21:24:20 -04:00
That-Canadian a4958a532d Fixed RGB being enabled by default, now it must be turned on at the keymap level 2017-07-10 17:12:18 -04:00
That-Canadian df50260300 cleaned up that_canadian keymap comments 2017-07-10 16:59:20 -04:00
That-Canadian 55ed97af1e Merge branch 'master' into minidox 2017-07-10 16:53:49 -04:00
That-Canadian 07bf8522ca Merge remote-tracking branch 'upstream/master' 2017-07-10 16:52:56 -04:00
That-Canadian 1fdf3c84fe Updated minidox rev1 config, and readme. Also updated that_canadian keymap to include RGB 2017-07-10 16:51:37 -04:00
Fred Sundvik 32fc4da4a7 Install unzip 2017-07-10 18:16:35 +03:00
Fred Sundvik 861087096b Add symlinks only on WSL 2017-07-10 18:05:32 +03:00
Fred Sundvik 7bedf8f4f2 Fix launch of qmk_driver_installer on msys2 2017-07-10 17:51:59 +03:00
Fred Sundvik a2d3fc98b8 Initial structure for shared msys2 and wsl installation 2017-07-10 17:31:58 +03:00
That-Canadian 9312b9db6c Added MiniDox keyboard folder / configs / and some keymaps 2017-07-10 00:46:19 -04:00
That-Canadian 707f4efd99 line ending stuff 2017-07-10 00:30:40 -04:00
That-Canadian e7a5fee1f3 merge 2017-07-10 00:21:38 -04:00
24 changed files with 348 additions and 97 deletions

No files matched your search

+1
View File
@@ -23,6 +23,7 @@ quantum/version.h
CMakeLists.txt CMakeLists.txt
.DS_STORE .DS_STORE
/util/wsl_downloaded /util/wsl_downloaded
/util/win_downloaded
# Eclipse/PyCharm/Other IDE Settings # Eclipse/PyCharm/Other IDE Settings
.cproject .cproject
+1 -1
View File
@@ -419,7 +419,7 @@ define BUILD_TEST
MAKE_TARGET := $2 MAKE_TARGET := $2
COMMAND := $1 COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET) MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME) FULL_TESTS=$$(FULL_TESTS) MAKE_VARS := TEST=$$(TEST_NAME) FULL_TESTS="$$(FULL_TESTS)"
MAKE_MSG := $$(MSG_MAKE_TEST) MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD)) $$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean) ifneq ($$(MAKE_TARGET),clean)
+2 -1
View File
@@ -21,12 +21,13 @@ $(TEST)_SRC= \
$(TEST_PATH)/keymap.c \ $(TEST_PATH)/keymap.c \
$(TMK_COMMON_SRC) \ $(TMK_COMMON_SRC) \
$(QUANTUM_SRC) \ $(QUANTUM_SRC) \
$(SRC) \
tests/test_common/matrix.c \ tests/test_common/matrix.c \
tests/test_common/test_driver.cpp \ tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \ tests/test_common/keyboard_report_util.cpp \
tests/test_common/test_fixture.cpp tests/test_common/test_fixture.cpp
$(TEST)_SRC += $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) $(TEST)_SRC += $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp))
$(TEST)_DEFS=$(TMK_COMMON_DEFS) $(TEST)_DEFS=$(TMK_COMMON_DEFS) $(OPT_DEFS)
$(TEST)_CONFIG=$(TEST_PATH)/config.h $(TEST)_CONFIG=$(TEST_PATH)/config.h
VPATH+=$(TOP_DIR)/tests/test_common VPATH+=$(TOP_DIR)/tests/test_common
+1 -1
View File
@@ -7,7 +7,7 @@
* [FAQ: Compiling QMK](faq_build.md) * [FAQ: Compiling QMK](faq_build.md)
* [How to Github](how_to_github.md) * [How to Github](how_to_github.md)
* [Features](features/README.md) * [Features](features.md)
* [Layer switching](key_functions.md) * [Layer switching](key_functions.md)
* [Leader Key](leader_key.md) * [Leader Key](leader_key.md)
* [Macros](macros.md) * [Macros](macros.md)
+1 -1
View File
@@ -102,4 +102,4 @@ case MACRO_RAISED:
update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST); update_tri_layer(LAYER_LOWER, LAYER_RAISED, LAYER_ADJUST);
} }
break; break;
``` ```
+19 -1
View File
@@ -16,7 +16,7 @@
#define SLAVE_BUFFER_SIZE 0x10 #define SLAVE_BUFFER_SIZE 0x10
// i2c SCL clock frequency // i2c SCL clock frequency
#define SCL_CLOCK 100000L #define SCL_CLOCK 400000L
extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE]; extern volatile uint8_t i2c_slave_buffer[SLAVE_BUFFER_SIZE];
@@ -28,4 +28,22 @@ uint8_t i2c_master_read(int);
void i2c_reset_state(void); void i2c_reset_state(void);
void i2c_slave_init(uint8_t address); void i2c_slave_init(uint8_t address);
static inline unsigned char i2c_start_read(unsigned char addr) {
return i2c_master_start((addr << 1) | I2C_READ);
}
static inline unsigned char i2c_start_write(unsigned char addr) {
return i2c_master_start((addr << 1) | I2C_WRITE);
}
// from SSD1306 scrips
extern unsigned char i2c_rep_start(unsigned char addr);
extern void i2c_start_wait(unsigned char addr);
extern unsigned char i2c_readAck(void);
extern unsigned char i2c_readNak(void);
extern unsigned char i2c_read(unsigned char ack);
#define i2c_read(ack) (ack) ? i2c_readAck() : i2c_readNak();
#endif #endif
@@ -25,6 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define USE_SERIAL #define USE_SERIAL
#define EE_HANDS
/* ws2812 RGB LED */ /* ws2812 RGB LED */
#define RGB_DI_PIN D7 #define RGB_DI_PIN D7
#define RGBLIGHT_TIMER #define RGBLIGHT_TIMER
@@ -40,7 +40,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | Z | X | C | V | B | | N | M | , | . | / | * | Z | X | C | V | B | | N | M | , | . | / |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,--------------------. ,------,-------------. * ,--------------------. ,------,-------------.
<<<<<<< HEAD
* | Shift| LOWER| | | | RAISE| Ctrl |
=======
* | Ctrl | LOWER| | | | RAISE| Shift| * | Ctrl | LOWER| | | | RAISE| Shift|
>>>>>>> a4958a532da154b9dd6f6144836a73f9de641f74
* `-------------| Space| |BckSpc|------+------. * `-------------| Space| |BckSpc|------+------.
* | | | | * | | | |
* `------' `------' * `------' `------'
@@ -49,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \ KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, \
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, \
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \ KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, \
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, OSM(MOD_LSFT) \ OSM(MOD_LSFT), LOWER, KC_SPC, KC_BSPC, RAISE, KC_LCTL \
), ),
/* Raise /* Raise
-2
View File
@@ -226,9 +226,7 @@ uint8_t matrix_scan(void)
TXLED0; TXLED0;
error_count = 0; error_count = 0;
} }
matrix_scan_quantum(); matrix_scan_quantum();
return ret; return ret;
} }
+62 -2
View File
@@ -1,5 +1,5 @@
ECO MiniDox
=== =====
![MimiDox](http://i.imgur.com/iWb3yO0.jpg) ![MimiDox](http://i.imgur.com/iWb3yO0.jpg)
@@ -13,3 +13,63 @@ Make example for this keyboard (after setting up your build environment):
make minidox-rev1-default make minidox-rev1-default
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information. See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
## Build Guide
A build guide for putting together the MiniDox v1 can be found here: [MiniDox Build Log / Guide](http://imgur.com/a/vImo6)
Flashing
-------
Note: Most of this is copied from the Let's Split readme, because it is awesome
From the keymap directory run `make SUBPROJECT-KEYMAP-avrdude` for automatic serial port resolution and flashing.
Example: `make rev1-default-avrdude`
Choosing which board to plug the USB cable into (choosing Master)
--------
Because the two boards are identical, the firmware has logic to differentiate the left and right board.
It uses two strategies to figure things out: look at the EEPROM (memory on the chip) or looks if the current board has the usb cable.
The EEPROM approach requires additional setup (flashing the eeeprom) but allows you to swap the usb cable to either side.
The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra.
### Setting the left hand as master
If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set.
### Setting the right hand as master
If you always plug the usb cable into the right board, add an extra flag to your `config.h`
```
#define MASTER_RIGHT
```
### Setting EE_hands to use either hands as master
If you define `EE_HANDS` in your `config.h`, you will need to set the
EEPROM for the left and right halves.
The EEPROM is used to store whether the
half is left handed or right handed. This makes it so that the same firmware
file will run on both hands instead of having to flash left and right handed
versions of the firmware to each half. To flash the EEPROM file for the left
half run:
```
avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-lefthand.eep
// or the equivalent in dfu-programmer
```
and similarly for right half
```
avrdude -p atmega32u4 -P $(COM_PORT) -c avr109 -U eeprom:w:eeprom-righhand.eep
// or the equivalent in dfu-programmer
```
NOTE: replace `$(COM_PORT)` with the port of your device (e.g. `/dev/ttyACM0`)
After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash.
Note that you need to program both halves, but you have the option of using
different keymaps for each half. You could program the left half with a QWERTY
layout and the right half with a Colemak layout using bootmagic's default layout option.
Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the
right half is connected.
+1 -1
View File
@@ -30,7 +30,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define USE_SERIAL #define USE_SERIAL
// #define EE_HANDS //#define EE_HANDS
#define I2C_MASTER_LEFT #define I2C_MASTER_LEFT
//#define I2C_MASTER_RIGHT //#define I2C_MASTER_RIGHT
+5 -1
View File
@@ -21,7 +21,8 @@ static void setup_handedness(void) {
#ifdef EE_HANDS #ifdef EE_HANDS
isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS); isLeftHand = eeprom_read_byte(EECONFIG_HANDEDNESS);
#else #else
#ifdef I2C_MASTER_RIGHT // I2C_MASTER_RIGHT is deprecated, use MASTER_RIGHT instead, since this works for both serial and i2c
#if defined(I2C_MASTER_RIGHT) || defined(MASTER_RIGHT)
isLeftHand = !has_usb(); isLeftHand = !has_usb();
#else #else
isLeftHand = has_usb(); isLeftHand = has_usb();
@@ -32,6 +33,9 @@ static void setup_handedness(void) {
static void keyboard_master_setup(void) { static void keyboard_master_setup(void) {
#ifdef USE_I2C #ifdef USE_I2C
i2c_master_init(); i2c_master_init();
#ifdef SSD1306OLED
matrix_master_OLED_init ();
#endif
#else #else
serial_master_init(); serial_master_init();
#endif #endif
+2
View File
@@ -19,4 +19,6 @@ void split_keyboard_setup(void);
bool has_usb(void); bool has_usb(void);
void keyboard_slave_loop(void); void keyboard_slave_loop(void);
void matrix_master_OLED_init (void);
#endif #endif
+2 -2
View File
@@ -21,8 +21,8 @@ OK_STRING=$(OK_COLOR)[OK]$(NO_COLOR)\n
ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n ERROR_STRING=$(ERROR_COLOR)[ERRORS]$(NO_COLOR)\n
WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n WARN_STRING=$(WARN_COLOR)[WARNINGS]$(NO_COLOR)\n
TAB_LOG = printf "\n$$LOG\n\n" | $(AWK) '{ sub(/^/," | "); print }' TAB_LOG = printf "\n%s\n\n" "$$LOG" | $(AWK) '{ sub(/^/," | "); print }'
TAB_LOG_PLAIN = printf "$$LOG\n" TAB_LOG_PLAIN = printf "%s\n" "$$LOG"
AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }' AWK_STATUS = $(AWK) '{ printf " %-10s\n", $$1; }'
AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }' AWK_CMD = $(AWK) '{ printf "%-99s", $$0; }'
PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && $(ON_ERROR) PRINT_ERROR = ($(SILENT) ||printf " $(ERROR_STRING)" | $(AWK_STATUS)) && $(TAB_LOG) && $(ON_ERROR)
-1
View File
@@ -169,7 +169,6 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
} }
// translates key to keycode // translates key to keycode
__attribute__ ((weak))
uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
{ {
// Read entire word (16bits) // Read entire word (16bits)
+4 -1
View File
@@ -40,4 +40,7 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
} }
} }
return MACRO_NONE; return MACRO_NONE;
}; };
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
}
+3
View File
@@ -58,3 +58,6 @@ void release_key(uint8_t col, uint8_t row) {
void clear_all_keys(void) { void clear_all_keys(void) {
memset(matrix, 0, sizeof(matrix)); memset(matrix, 0, sizeof(matrix));
} }
void led_set(uint8_t usb_led) {
}
+2 -2
View File
@@ -44,8 +44,8 @@ void TestFixture::run_one_scan_loop() {
advance_time(1); advance_time(1);
} }
void TestFixture::idle_for(uint time) { void TestFixture::idle_for(unsigned time) {
for (uint i=0; i<time; i++) { for (unsigned i=0; i<time; i++) {
run_one_scan_loop(); run_one_scan_loop();
} }
} }
+1 -1
View File
@@ -26,5 +26,5 @@ public:
static void TearDownTestCase(); static void TearDownTestCase();
void run_one_scan_loop(); void run_one_scan_loop();
void idle_for(uint ms); void idle_for(unsigned ms);
}; };
+5
View File
@@ -1,3 +1,5 @@
SYSTEM_TYPE := $(shell gcc -dumpmachine)
CC = gcc CC = gcc
OBJCOPY = OBJCOPY =
OBJDUMP = OBJDUMP =
@@ -14,6 +16,9 @@ COMPILEFLAGS += -funsigned-bitfields
COMPILEFLAGS += -ffunction-sections COMPILEFLAGS += -ffunction-sections
COMPILEFLAGS += -fdata-sections COMPILEFLAGS += -fdata-sections
COMPILEFLAGS += -fshort-enums COMPILEFLAGS += -fshort-enums
ifneq ($(findstring mingw, ${SYSTEM_TYPE}),)
COMPILEFLAGS += -mno-ms-bitfields
endif
CFLAGS += $(COMPILEFLAGS) CFLAGS += $(COMPILEFLAGS)
CFLAGS += -fno-inline-small-functions CFLAGS += -fno-inline-small-functions
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
function export_variables {
local util_dir=~/qmk_utils
export PATH=$PATH:$util_dir/dfu-programmer
export PATH=$PATH:$util_dir/dfu-util-0.9-win64
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
}
export_variables
+117
View File
@@ -0,0 +1,117 @@
#!/bin/bash
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
download_dir=~/qmk_utils
avrtools=avr8-gnu-toolchain
armtools=gcc-arm-none-eabi
installflip=false
echo "Installing dependencies needed for the installation (quazip)"
pacman --needed -S msys/unzip msys/p7zip base-devel msys/git mingw-w64-x86_64-toolchain
source "$dir/win_shared_install.sh"
function install_avr {
rm -f -r "$avrtools"
wget "http://www.atmel.com/images/avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe"
7z x avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe
rm avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe
}
function install_arm {
wget -O gcc-arm-none-eabi.zip "https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-win32.zip?product=GNU%20ARM%20Embedded%20Toolchain,ZIP,,Windows,6-2017-q2-update"
unzip -d gcc-arm-none-eabi gcc-arm-none-eabi.zip
rm gcc-arm-none-eabi.zip
}
function extract_flip {
rm -f -r flip
7z -oflip x FlipInstaller.exe
}
pushd "$download_dir"
if [ -f "FlipInstaller.exe" ]; then
echo
echo "Extracting flip"
extract_flip
fi
if [ ! -d "$avrtools" ]; then
while true; do
echo
echo "The AVR toolchain is not installed."
echo "This is needed for building AVR based keboards."
read -p "Do you want to install it? (Y/N) " res
case $res in
[Yy]* ) install_avr; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
else
while true; do
echo
echo "The AVR toolchain is already installed"
read -p "Do you want to reinstall? (Y/N) " res
case $res in
[Yy]* ) install_avr; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
fi
if [ ! -d "$armtools" ]; then
while true; do
echo
echo "The ARM toolchain is not installed."
echo "This is needed for building ARM based keboards."
read -p "Do you want to install it? (Y/N) " res
case $res in
[Yy]* ) install_arm; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
else
while true; do
echo
echo "The ARM toolchain is already installed"
read -p "Do you want to reinstall? (Y/N) " res
case $res in
[Yy]* ) install_arm; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
fi
popd
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
while true; do
echo
echo "Do you want to add 'source ~/qmk_utils/activate_msys2.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_msys2.sh" >> ~/.bashrc; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
fi
echo
echo "******************************************************************************"
echo "Installation completed!"
echo "Please close this Window and restart MSYS2 MinGW"
echo "******************************************************************************"
+80
View File
@@ -0,0 +1,80 @@
#!/bin/bash
function install_utils {
rm -f -r "$download_dir"
mkdir "$download_dir"
pushd "$download_dir"
echo "Installing dfu-programmer"
wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip'
unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip
echo "Installing dfu-util"
wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip'
unzip dfu-util-0.9-win64.zip
echo "Installing teensy_loader_cli"
wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip'
unzip teensy_loader_cli_windows.zip
echo "Installing Atmel Flip"
wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe'
mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe
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)all - All supported drivers will be installed"
echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode)"
echo " will be installed"
echo "(F)force - 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
[Aa]* ) install_drivers --all; break;;
[Cc]* ) install_drivers; break;;
[Ff]* ) install_drivers --all --force; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
popd > /dev/null
+16 -78
View File
@@ -1,44 +1,7 @@
#!/bin/bash #!/bin/bash
download_dir=wsl_downloaded
function install_utils {
rm -f -r $download_dir
mkdir $download_dir
pushd $download_dir
echo "Installing dfu-programmer"
wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip'
unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip
echo "Installing dfu-util"
wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip'
unzip dfu-util-0.9-win64.zip
echo "Installing teensy_loader_cli"
wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip'
unzip teensy_loader_cli_windows.zip
echo "Installing Atmel Flip"
wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe'
mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe
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
cmd.exe /C qmk_driver_installer.exe $1 $2 ../drivers.txt
popd > /dev/null
}
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
pushd "$dir";
if [[ $dir != /mnt/* ]]; if [[ $dir != /mnt/* ]];
then then
@@ -48,7 +11,6 @@ then
exit 1 exit 1
fi fi
pushd "$dir"
while true; do while true; do
echo echo
@@ -67,49 +29,25 @@ echo "Installing dependencies needed for the installation (unzip, wget)"
echo "This will ask for the sudo password" echo "This will ask for the sudo password"
sudo apt-get install unzip wget sudo apt-get install unzip wget
download_dir=wsl_downloaded
if [ ! -d "$download_dir" ]; then source "$dir/win_shared_install.sh"
install_utils
else
while true; do
echo
read -p "The utils seem to already be downloaded, 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
pushd "$download_dir"
while true; do while true; do
echo echo
read -p "Flip need to be installed if you want to use that for programming, do you want to install it now? (Y/N) " res echo "Flip need to be installed if you want to use that for programming."
echo "Please install it to the default location!"
read -p "Do you want to install it now? (Y/N) " res
case $res in case $res in
[Yy]* ) cmd.exe /c $download_dir\\FlipInstaller.exe; break;; [Yy]* ) cmd.exe /c FlipInstaller.exe; break;;
[Nn]* ) break;; [Nn]* ) break;;
* ) echo "Invalid answer";; * ) echo "Invalid answer";;
esac esac
done done
popd
while true; do
echo
echo "Which USB drivers do you want to install?"
echo "(A)all - All supported drivers will be installed"
echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode) will be installed"
echo "(F)force - Like all, but will also override existing drivers for connected keyboards"
echo "(N)one - No drivers will be installed, flashing your keyboard will most likely not work"
read -p "(A/C/F/N)? " res
case $res in
[Aa]* ) install_drivers --all; break;;
[Cc]* ) install_drivers; break;;
[Ff]* ) install_drivers --all --force; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
echo echo
echo "Creating a softlink to the utils directory as ~/qmk_utils." 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." echo "This is needed so that the the make system can find all utils it need."
@@ -124,9 +62,9 @@ then
else else
while true; do while true; do
echo echo
echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of you .bashrc file?" echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of your"
echo "Without this make won't find the needed utils, so if you don't want to do it automatically," echo ".bashrc file? Without this make won't find the needed utils, so if you don't"
echo "then you have to do it manually." echo "want to do it automatically, then you have to do it manually later."
read -p "(Y/N)? " res read -p "(Y/N)? " res
case $res in case $res in
[Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;; [Yy]* ) echo "source ~/qmk_utils/activate_wsl.sh" >> ~/.bashrc; break;;
@@ -138,9 +76,10 @@ fi
while true; do while true; do
echo echo
echo "Do you want to add a symlink to the QMK repository in your home directory for convenience?" echo "Do you want to add a symlink to the QMK repository in your home directory for"
echo "This will create a folder 'qmk_firmware' in your home directory." 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 file system" 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 read -p "(Y/N)? " res
case $res in case $res in
[Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;; [Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;;
@@ -156,4 +95,3 @@ echo "You need to open a new batch command prompt for all the utils to work prop
echo "******************************************************************************" echo "******************************************************************************"
popd > /dev/null popd > /dev/null