From 29e34f21465d2960a3c02ecc98ef70d0629062ce Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Fri, 10 Mar 2017 12:30:59 +0100 Subject: [PATCH 1/7] adding arduino-linux-setup.sh script --- build/build.xml | 1 + build/linux/dist/arduino-linux-setup.sh | 194 ++++++++++++++++++++++++ 2 files changed, 195 insertions(+) create mode 100755 build/linux/dist/arduino-linux-setup.sh diff --git a/build/build.xml b/build/build.xml index 5471bbeb81c..94eac7c2307 100644 --- a/build/build.xml +++ b/build/build.xml @@ -629,6 +629,7 @@ + diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh new file mode 100755 index 00000000000..7e871df3125 --- /dev/null +++ b/build/linux/dist/arduino-linux-setup.sh @@ -0,0 +1,194 @@ +# arduino-linux-setup.sh : A simple Arduino setup script for Linux systems +# Copyright (C) 2015 Arduino Srl +# +# Author : Arturo Rinaldi +# E-mail : arturo@arduino.org +# +# 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 3 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 . +# +# +# Release v6 changelog : +# +# + removing sudocheck function and control +# +# Release v5 changelog : +# +# + adding UDEV rule for stm32 DFU mode +# +# Release v4 changelog : +# +# + The rules are generated in a temporary folder +# +# + the user should run it without sudo while having its permissions +# +# Release v3 changelog : +# +# + The most common linux distros are now fully supported +# +# + now the script checks for SUDO permissions +# + +#! /bin/bash + +# if [[ $EUID != 0 ]] ; then +# echo This must be run as root! +# exit 1 +# fi + +refreshudev () { + + echo "" + echo "Restarting udev" + echo "" + + sudo service udev restart + sudo udevadm control --reload-rules + sudo udevadm trigger + +} + +groupsfunc () { + + echo "" + echo "******* Add User to dialout,tty, uucp, plugdev groups *******" + echo "" + + sudo usermod -a -G tty $1 + sudo usermod -a -G dialout $1 + sudo usermod -a -G uucp $1 + sudo groupadd plugdev + sudo usermod -a -G plugdev $1 + +} + +acmrules () { + + echo "" + echo "Setting serial port rules" + echo "" + +cat < $PWD/rulesgen/90-extraacl.rules + + openocdrules > $PWD/rulesgen/98-openocd.rules + + avrisprules > $PWD/rulesgen/avrisp.rules + + dfustm32rules > $PWD/rulesgen/40-dfuse.rules + + sudo mv $PWD/rulesgen/*.rules /etc/udev/rules.d/ + + rm -rf $PWD/rulesgen + + refreshudev + + echo "" + echo "*********** Please Reboot your system ************" + echo "" +fi From 30a53958999e4e6c4da30b5b1ea42e7807cb8e48 Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Fri, 10 Mar 2017 13:06:21 +0100 Subject: [PATCH 2/7] adding arduino-linux-setup.sh call in install.sh script --- build/linux/dist/install.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build/linux/dist/install.sh b/build/linux/dist/install.sh index 141fe52bf86..5c9d8eb5ed1 100755 --- a/build/linux/dist/install.sh +++ b/build/linux/dist/install.sh @@ -70,6 +70,9 @@ xdg_install_f() { rm "${TMP_DIR}/${RESOURCE_NAME}.desktop" rmdir "$TMP_DIR" + # Launching arduino-linux-setup.sh script + ./arduino-linux-setup.sh $(whoami) + } # Install by simply copying desktop file (fallback) From 23834a29cc8bb35e08539e8e3ea89ab4f3d8191e Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Sat, 11 Mar 2017 15:57:48 +0100 Subject: [PATCH 3/7] adding project URL and minor bugfixing --- build/linux/dist/arduino-linux-setup.sh | 26 +++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh index 7e871df3125..911e05152d1 100755 --- a/build/linux/dist/arduino-linux-setup.sh +++ b/build/linux/dist/arduino-linux-setup.sh @@ -3,6 +3,7 @@ # # Author : Arturo Rinaldi # E-mail : arturo@arduino.org +# Project URL : https://github.com/artynet/arduino-linux-setup # # 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 @@ -18,6 +19,11 @@ # along with this program. If not, see . # # +# Release v7 changelog : +# +# + Adding project URL +# + minor bugfixing +# # Release v6 changelog : # # + removing sudocheck function and control @@ -75,7 +81,7 @@ groupsfunc () { acmrules () { echo "" - echo "Setting serial port rules" + echo "# Setting serial port rules" echo "" cat < Date: Sat, 11 Mar 2017 16:00:03 +0100 Subject: [PATCH 4/7] fixing again blank spaces / tabs --- build/linux/dist/arduino-linux-setup.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh index 911e05152d1..f829130c48b 100755 --- a/build/linux/dist/arduino-linux-setup.sh +++ b/build/linux/dist/arduino-linux-setup.sh @@ -54,9 +54,9 @@ refreshudev () { - echo "" + echo "" echo "Restarting udev" - echo "" + echo "" sudo service udev restart sudo udevadm control --reload-rules From 4c88e4de11c04dcef738f3efd427f860963f2b19 Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Sat, 11 Mar 2017 16:04:54 +0100 Subject: [PATCH 5/7] fixing spaces/tabs if...else condition --- build/linux/dist/arduino-linux-setup.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh index f829130c48b..e12910dafdd 100755 --- a/build/linux/dist/arduino-linux-setup.sh +++ b/build/linux/dist/arduino-linux-setup.sh @@ -164,10 +164,10 @@ removemm () { then #Only for Red Hat/Fedora/CentOS sudo yum remove modemmanager - else - echo "" - echo "Your system is not supported, please take care of it with your package manager" - echo "" + else + echo "" + echo "Your system is not supported, please take care of it with your package manager" + echo "" fi } From 94700c3561d4f92f5b72462313c06fc7c6ff6e18 Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Sat, 11 Mar 2017 18:15:08 +0100 Subject: [PATCH 6/7] adding DFU mode UDEV rule for Arduino 101 --- build/linux/dist/arduino-linux-setup.sh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh index e12910dafdd..d407204c1db 100755 --- a/build/linux/dist/arduino-linux-setup.sh +++ b/build/linux/dist/arduino-linux-setup.sh @@ -146,6 +146,19 @@ EOF } +dfuarduino101rules (){ + + echo "" + echo "# Arduino 101 in DFU Mode" + echo "" + +cat < $PWD/rulesgen/40-dfuse.rules + dfuarduino101rules > $PWD/rulesgen/99-arduino-101.rules + sudo mv $PWD/rulesgen/*.rules /etc/udev/rules.d/ rm -rf $PWD/rulesgen From 007d934c921c294607898f21dbc38e9cc8b97beb Mon Sep 17 00:00:00 2001 From: Arturo Rinaldi Date: Fri, 24 Mar 2017 15:36:48 +0100 Subject: [PATCH 7/7] now *.rules files are created in /tmp folder --- build/linux/dist/arduino-linux-setup.sh | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/build/linux/dist/arduino-linux-setup.sh b/build/linux/dist/arduino-linux-setup.sh index d407204c1db..c98a6ce311e 100755 --- a/build/linux/dist/arduino-linux-setup.sh +++ b/build/linux/dist/arduino-linux-setup.sh @@ -18,6 +18,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . # +# Release v8 changelog : +# +# + rules are now created in /tmp folder # # Release v7 changelog : # @@ -199,21 +202,17 @@ else removemm - mkdir -p $PWD/rulesgen - - acmrules $1 > $PWD/rulesgen/90-extraacl.rules - - openocdrules > $PWD/rulesgen/98-openocd.rules + acmrules $1 > /tmp/90-extraacl.rules - avrisprules > $PWD/rulesgen/avrisp.rules + openocdrules > /tmp/98-openocd.rules - dfustm32rules > $PWD/rulesgen/40-dfuse.rules + avrisprules > /tmp/avrisp.rules - dfuarduino101rules > $PWD/rulesgen/99-arduino-101.rules + dfustm32rules > /tmp/40-dfuse.rules - sudo mv $PWD/rulesgen/*.rules /etc/udev/rules.d/ + dfuarduino101rules > /tmp/99-arduino-101.rules - rm -rf $PWD/rulesgen + sudo mv /tmp/*.rules /etc/udev/rules.d/ refreshudev