commit 29269cc031ed5fcd0f06dd2ed9f0ca2841027a00 Author: Benjamin Dweck Date: Sun Oct 11 23:51:01 2020 +0200 Initial commit - it works! diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a60a652 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/build/ +parameters.env \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..52e4263 --- /dev/null +++ b/build.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +source parameters.env + +rm -rf build +mkdir build + +eval "cat <<~ +$(cat src/cmdline.txt) +~" > build/cmdline.txt + +mkdir build/cloud-init + +eval "cat <<~ +$(cat src/user-data) +~" > build/cloud-init/user-data + +cp src/meta-data build/cloud-init/ +cp src/initial-setup.sh build/cloud-init/ +cp src/install-torch.sh build/cloud-init/ +cp src/torch-agent_0.0.4-1_all.deb build/cloud-init/ + +mkdir build/cloud-init/torch-config +cp -r $TORCH_CONFIG_DIR/* build/cloud-init/torch-config/ + +tar -C build -czvf build/rpi-cloud-init.tgz cmdline.txt cloud-init + +rm -rf build/cloud-init +rm build/cmdline.txt \ No newline at end of file diff --git a/src/cmdline.txt b/src/cmdline.txt new file mode 100644 index 0000000..c3654ee --- /dev/null +++ b/src/cmdline.txt @@ -0,0 +1 @@ +net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc ipv6.disable=$DISABLE_IPV6 ds=nocloud;s=/boot/firmware/cloud-init/ diff --git a/src/initial-setup.sh b/src/initial-setup.sh new file mode 100755 index 0000000..305e2ca --- /dev/null +++ b/src/initial-setup.sh @@ -0,0 +1,30 @@ +#!/bin/sh -e + +export DEBIAN_FRONTEND=noninteractive + +apt-get -y purge\ + cloud-init cloud-guest-utils\ + cloud-initramfs-copymods cloud-initramfs-dyn-netconf\ + open-iscsi +rm -rf /etc/cloud/ /var/lib/cloud/ + +apt-get update + +apt-get -y\ + -o Dpkg::Options::="--force-confdef"\ + -o Dpkg::Options::="--force-confold"\ + upgrade + +apt-get -y install\ + vim\ + gparted\ + libc6:armhf libstdc++6:armhf\ + lxterminal\ + usbmount + +# Workaround for usbmount bug on Bionic +mkdir -p /etc/systemd/system/systemd-udevd.service.d +echo "[Service]\nMountFlags=shared\n" >\ + /etc/systemd/system/systemd-udevd.service.d/override.conf +systemctl daemon-reload +service systemd-udevd --full-restart diff --git a/src/install-torch.sh b/src/install-torch.sh new file mode 100755 index 0000000..09ef8f5 --- /dev/null +++ b/src/install-torch.sh @@ -0,0 +1,7 @@ +#!/bin/sh -e + +apt-get -y install /boot/firmware/cloud-init/torch-agent_0.0.4-1_all.deb +cp -r /boot/firmware/cloud-init/torch-config/* /etc/torch/ +chown torch -R /etc/torch +systemctl daemon-reload +systemctl enable torch-agent \ No newline at end of file diff --git a/src/meta-data b/src/meta-data new file mode 100644 index 0000000..a74903f --- /dev/null +++ b/src/meta-data @@ -0,0 +1 @@ +dsmode: local diff --git a/src/torch-agent_0.0.4-1_all.deb b/src/torch-agent_0.0.4-1_all.deb new file mode 100644 index 0000000..7c9a311 Binary files /dev/null and b/src/torch-agent_0.0.4-1_all.deb differ diff --git a/src/user-data b/src/user-data new file mode 100644 index 0000000..6bf20eb --- /dev/null +++ b/src/user-data @@ -0,0 +1,33 @@ +#cloud-config + +# The networking setup is a bit of a hack, because the cloud-init network +# configuration doesn't support WiFi, see +# https://cloudinit.readthedocs.io/en/latest/topics/network-config-format-v2.html. + +users: + - name: $USERNAME + gecos: $USERFULLNAME + groups: [sudo, users] + sudo: ALL=(ALL) NOPASSWD:ALL + lock_passwd: false + shell: /bin/bash + ssh_authorized_keys: + - $SSH_PUBKEY + +runcmd: + # Disable optional PAM features for faster SSH login +# - 'mv /etc/pam.d/sshd /etc/pam.d/sshd.bak' +# - 'sed "s/^session[ \t]\+optional/#\0/" /etc/pam.d/sshd.bak > /etc/pam.d/sshd' + + # Back up the SSH default config and activate the new config +# - 'mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak' +# - 'mv /etc/ssh/sshd_config.new /etc/ssh/sshd_config' +# - 'service ssh reload' + + # Multi-arch support on aarch64 + - 'dpkg --add-architecture armhf' + + # Run optional script for additoinal package setup + - '/boot/firmware/cloud-init/initial-setup.sh' + - '/boot/firmware/cloud-init/install-torch.sh' + - 'reboot now' \ No newline at end of file