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"
+
if grep ID /etc/os-release | grep -qE "fedora"; then
sudo dnf install \
arm-none-eabi-binutils-cs \
kernel-headers \
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
+ export DEBIAN_FRONTEND DEBCONF_NONINTERACTIVE_SEEN
sudo apt-get update
- sudo apt-get install \
+ sudo apt-get -yq install \
build-essential \
avr-libc \
binutils-arm-none-eabi \
gcc-avr \
git \
libnewlib-arm-none-eabi \
+ python3 \
unzip \
wget \
zip
elif grep ID /etc/os-release | grep -q 'arch\|manjaro'; then
- # install avr-gcc 8.1 until 8.3 is available. See #3657 for details of the bug.
- sudo pacman -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.1.0-1-x86_64.pkg.tar.xz
+ sudo pacman -U https://archive.archlinux.org/packages/a/avr-gcc/avr-gcc-8.3.0-1-x86_64.pkg.tar.xz
sudo pacman -S \
arm-none-eabi-binutils \
arm-none-eabi-gcc \
arm-none-eabi-newlib \
+ avrdude \
avr-binutils \
avr-libc \
avr-gcc \
- base-devel \
+ base-devel \
dfu-util \
- diff-utils \
+ diffutils \
gcc \
git \
+ python \
unzip \
wget \
zip
git clone https://aur.archlinux.org/dfu-programmer.git /tmp/dfu-programmer
- cd /tmp/dfu-programmer
+ cd /tmp/dfu-programmer || exit 1
makepkg -sic
rm -rf /tmp/dfu-programmer/
elif grep ID /etc/os-release | grep -q gentoo; then
- echo GENTOO_WARNING | fmt
- echo -n "Proceed (y/N)? "
- old_stty_cfg=$(stty -g)
- stty raw -echo
- answer=$( while ! head -c 1 | grep -i '[ny]' ;do true ;done )
- stty $old_stty_cfg
- if echo "$answer" | grep -iq "^y" ;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
- echo "sys-devel/gcc multilib" | sudo tee --append /etc/portage/package.use/qmkfirmware > /dev/null
+ # 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 \
app-arch/unzip \
app-arch/zip \
app-mobilephone/dfu-util \
dev-embedded/avrdude \
+ dev-lang/python:3.5 \
net-misc/wget \
sys-devel/gcc \
sys-devel/crossdev
app-arch/zip \
app-mobilephone/dfu-util \
dev-embedded/avrdude \
+ dev-lang/python \
net-misc/wget \
sys-devel/gcc \
sys-devel/crossdev
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.0"; then
CROSS_AVR_GCC=cross-avr-gcc7
+ CROSS_ARM_GCC=cross-arm-none-gcc7
fi
sudo zypper install \
avr-libc \
$CROSS_AVR_GCC \
+ $CROSS_ARM_GCC \
cross-avr-binutils \
cross-arm-none-newlib-devel \
cross-arm-binutils cross-arm-none-newlib-devel \
dfu-tool \
dfu-programmer \
gcc \
+ python3 \
unzip \
wget \
zip
dfu-util \
arm-binutils \
arm-gcc \
- newlib
+ 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 \
+ python3 \
+ git \
+ wget \
+ zip \
+ unzip
+ printf "\n$SOLUS_INFO\n"
+
else
echo "Sorry, we don't recognize your OS. Help us by contributing support!"
echo