248 lines
10 KiB
Bash
248 lines
10 KiB
Bash
# http://docs.platformio.org/en/latest/faq.html#faq-install-shell-commands
|
|
|
|
sudo apt-get install python python-pip checkinstall
|
|
|
|
# sudo python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/develop/scripts/get-platformio.py)"
|
|
|
|
# uninstall existing version
|
|
pip uninstall platformio
|
|
|
|
# install the latest development version of PlatformIO
|
|
|
|
PROJECT=platformio/platformio-core
|
|
RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | .tag_name')
|
|
VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-")
|
|
PIO_BUILD_HOME=/var/tmp/platformio-core-"${VERSION}"
|
|
|
|
mkdir -p "${PIO_BUILD_HOME}" && cd "${PIO_BUILD_HOME}" || exit
|
|
echo "PlatformIO Core (CLI tool) for embedded programming." > description-pak
|
|
mkdir -p doc-pak && wget -c --directory-prefix doc-pak https://raw.githubusercontent.com/platformio/platformio-core/develop/README.rst
|
|
echo "http://docs.platformio.org/en/latest/userguide/index.html" > doc-pak/README
|
|
sudo checkinstall --fstrans=no pip install -U https://github.com/platformio/platformio-core/archive/"${RELEASE}".zip
|
|
|
|
# install some platforms
|
|
platformio platform install espressif8266
|
|
platformio platform install espressif32
|
|
platformio platform install nordicnrf51
|
|
platformio platform install nordicnrf52
|
|
platformio platform install ststm32
|
|
platformio platform install timsp430
|
|
platformio platform install atmelavr
|
|
|
|
# To revert to the latest stable version
|
|
#pip uninstall platformio
|
|
#pip install -U platformio
|
|
|
|
|
|
# pip install puts the results in usr/local/bin so we don't have a path issue
|
|
#platformio: /usr/local/bin/platformio
|
|
|
|
cat > ~/.zshrc.d/008_platformio.zsh << 'EOF'
|
|
if [[ -d "/usr/local/bin/platormio" ]]; then
|
|
|
|
autoload bashcompinit && bashcompinit
|
|
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
|
|
eval "$(_PLATFORMIO_COMPLETE=source pio)"
|
|
fi
|
|
EOF
|
|
|
|
cat > ~/.profile << 'EOF'
|
|
|
|
if [ -d "/usr/local/bin/platformio" ] ; then
|
|
|
|
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
|
|
eval "$(_PLATFORMIO_COMPLETE=source pio)"
|
|
fi
|
|
EOF
|
|
|
|
|
|
# http://docs.platformio.org/en/latest/faq.html#platformio-udev-rules
|
|
# https://raw.githubusercontent.com/platformio/platformio-core/develop/scripts/99-platformio-udev.rules
|
|
sudo bash -c "cat > /etc/udev/rules.d/99-platformio-udev.rules" << 'EOF'
|
|
#
|
|
# Boards
|
|
#
|
|
|
|
# CP210X USB UART
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666"
|
|
|
|
# FT232R USB UART
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666"
|
|
|
|
# Prolific Technology, Inc. PL2303 Serial Port
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666"
|
|
|
|
# QinHeng Electronics HL-340 USB-Serial adapter
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666"
|
|
|
|
# Arduino boards
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][02]*", MODE:="0666"
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666"
|
|
|
|
# Arduino SAM-BA
|
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{MTP_NO_PROBE}="1"
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666"
|
|
KERNEL=="ttyACM*", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666"
|
|
|
|
# Digistump boards
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
|
|
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
|
|
# STM32 discovery boards, with onboard st/linkv2
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374?", MODE:="0666"
|
|
|
|
# USBtiny
|
|
SUBSYSTEMS=="usb", ATTRS{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0666"
|
|
|
|
# USBasp V2.0
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE:="0666"
|
|
|
|
# Teensy boards
|
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{ID_MM_DEVICE_IGNORE}="1"
|
|
ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{MTP_NO_PROBE}="1"
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666"
|
|
KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666"
|
|
|
|
#TI Stellaris Launchpad
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666"
|
|
|
|
#TI MSP430 Launchpad
|
|
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666"
|
|
|
|
|
|
#
|
|
# Debuggers
|
|
#
|
|
|
|
# Black Magic Probe
|
|
SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic GDB Server"
|
|
SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic UART Port"
|
|
|
|
# opendous and estick
|
|
ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Original FT232/FT245 VID:PID
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Original FT2232 VID:PID
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Original FT4232 VID:PID
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Original FT232H VID:PID
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# DISTORTEC JTAG-lock-pick Tiny 2
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8220", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# TUMPA, TUMPA Lite
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# XDS100v2
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a6d0", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Xverve Signalyzer Tool (DT-USB-ST), Signalyzer LITE (DT-USB-SLITE)
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca0", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca1", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# TI/Luminary Stellaris Evaluation Board FTDI (several)
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd9", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# TI/Luminary Stellaris In-Circuit Debug Interface FTDI (ICDI) Board
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcda", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# egnite Turtelizer 2
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bdc8", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Section5 ICEbear
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c140", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c141", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Amontec JTAGkey and JTAGkey-tiny
|
|
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# TI ICDI
|
|
ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# STLink v1
|
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# STLink v2
|
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# STLink v2-1
|
|
ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Hilscher NXHX Boards
|
|
ATTRS{idVendor}=="0640", ATTRS{idProduct}=="0028", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Hitex STR9-comStick
|
|
ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002c", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Hitex STM32-PerformanceStick
|
|
ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002d", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Altera USB Blaster
|
|
ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Amontec JTAGkey-HiSpeed
|
|
ATTRS{idVendor}=="0fbb", ATTRS{idProduct}=="1000", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# SEGGER J-Link
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0103", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0104", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0107", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0108", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1010", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1011", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1012", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1013", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1014", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1016", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1017", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1018", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Raisonance RLink
|
|
ATTRS{idVendor}=="138e", ATTRS{idProduct}=="9000", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Debug Board for Neo1973
|
|
ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Olimex ARM-USB-OCD
|
|
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Olimex ARM-USB-OCD-TINY
|
|
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Olimex ARM-JTAG-EW
|
|
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="001e", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Olimex ARM-USB-OCD-TINY-H
|
|
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Olimex ARM-USB-OCD-H
|
|
ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# USBprog with OpenOCD firmware
|
|
ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c63", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# TI/Luminary Stellaris In-Circuit Debug Interface (ICDI) Board
|
|
ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Marvell Sheevaplug
|
|
ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# Keil Software, Inc. ULink
|
|
ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2710", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
|
|
# CMSIS-DAP compatible adapters
|
|
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
|
|
EOF
|