aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/install-beaglebone.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/install-beaglebone.sh')
-rwxr-xr-xscripts/install-beaglebone.sh65
1 files changed, 65 insertions, 0 deletions
diff --git a/scripts/install-beaglebone.sh b/scripts/install-beaglebone.sh
new file mode 100755
index 00000000..209f6948
--- /dev/null
+++ b/scripts/install-beaglebone.sh
@@ -0,0 +1,65 @@
+#!/bin/bash
+# This script installs Klipper on a Beaglebone running Debian Jessie
+# for use with its PRU micro-controller.
+
+# Step 1: Do main install
+install_main()
+{
+ # Run the octopi script - raspbian is close enough to debian for
+ # this to work.
+ ${SRCDIR}/scripts/install-octopi.sh
+}
+
+# Step 2: Install additional system packages
+install_packages()
+{
+ # Install desired packages
+ PKGLIST="gcc-pru"
+
+ report_status "Installing beaglebone packages..."
+ sudo apt-get install --yes ${PKGLIST}
+}
+
+# Step 3: Install startup script
+install_script()
+{
+ report_status "Installing pru start script..."
+ sudo cp "${SRCDIR}/scripts/klipper-pru-start.sh" /etc/init.d/klipper_pru
+ sudo update-rc.d klipper_pru defaults
+}
+
+# Step 4: Install pru udev rule
+install_udev()
+{
+ report_status "Installing pru udev rule..."
+ sudo /bin/sh -c "cat > /etc/udev/rules.d/pru.rules" <<EOF
+KERNEL=="rpmsg_pru30", MODE="0666"
+EOF
+}
+
+# Helper functions
+report_status()
+{
+ echo -e "\n\n###### $1"
+}
+
+verify_ready()
+{
+ if [ "$EUID" -eq 0 ]; then
+ echo "This script must not run as root"
+ exit -1
+ fi
+}
+
+# Force script to exit if an error occurs
+set -e
+
+# Find SRCDIR from the pathname of this script
+SRCDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/.. && pwd )"
+
+# Run installation steps defined above
+verify_ready
+install_main
+install_packages
+install_script
+install_udev