aboutsummaryrefslogtreecommitdiff
path: root/images/raspberry-pi-2/firstboot
diff options
context:
space:
mode:
Diffstat (limited to 'images/raspberry-pi-2/firstboot')
-rw-r--r--images/raspberry-pi-2/firstboot82
1 files changed, 82 insertions, 0 deletions
diff --git a/images/raspberry-pi-2/firstboot b/images/raspberry-pi-2/firstboot
new file mode 100644
index 0000000..c384d50
--- /dev/null
+++ b/images/raspberry-pi-2/firstboot
@@ -0,0 +1,82 @@
+#!/bin/bash
+set -e
+echo "first boot: starting"
+
+led_blink() {
+ local led=/sys/class/leds/"$1"
+
+ local time_on="$2"
+ local time_off="$time_on"
+ local blinks="$3"
+
+ local trigger=$(cat "$led/trigger" | sed 's/.*\[\(.*\)\].*/\1/g' -)
+ local brightness=$(cat "$led/brightness")
+
+ echo "none" > "$led/trigger"
+ for i in $(seq 1 $blinks); do
+ echo 255 > "$led/brightness"
+ sleep "$time_on"
+ echo 0 > "$led/brightness"
+ sleep "$time_off"
+ done
+ echo "$brightness" > "$led/brightness"
+ echo "$trigger" > "$led/trigger"
+}
+
+led_trigger() {
+ local led=/sys/class/leds/"$1"
+
+ if [ "$2" == "heartbeat" ]; then
+ modprobe ledtrig_heartbeat || true
+ fi
+ echo "$2" > "$led/trigger"
+}
+
+echo "first boot: starting led trigger"
+led_blink ACT 0.1 20 &
+led_blink PWR 0.1 20
+led_trigger PWR heartbeat
+led_trigger ACT mmc0
+
+echo "first boot: generating ssh host keys"
+systemctl stop sshd
+rm -f /etc/ssh/ssh_host_*
+ssh-keygen -q -t rsa -N "" -f /etc/ssh/ssh_host_rsa_key
+ssh-keygen -q -t dsa -N "" -f /etc/ssh/ssh_host_dsa_key
+ssh-keygen -q -t ecdsa -N "" -f /etc/ssh/ssh_host_ecdsa_key
+ssh-keygen -q -t ed25519 -N "" -f /etc/ssh/ssh_host_ed25519_key
+systemctl start sshd
+
+echo "first boot: generating dbus machine-id"
+rm -f /var/lib/dbus/machine-id
+dbus-uuidgen --ensure
+
+echo "first boot: expanding root file system"
+fdisk /dev/mmcblk0 <<EOF || true
+p
+d
+2
+n
+p
+2
+
+
+n
+w
+EOF
+partprobe
+resize2fs /dev/mmcblk0p2
+
+echo "first boot: generating initramfs"
+update-initramfs -u
+
+echo "first boot: deleting script"
+rm -f /etc/firstboot
+sed -i '/.*firstboot/d' /etc/rc.local
+
+echo "first boot: stopping led trigger"
+led_trigger ACT heartbeat
+led_trigger PWR none
+
+echo "first boot: finished"
+reboot