From 29269cc031ed5fcd0f06dd2ed9f0ca2841027a00 Mon Sep 17 00:00:00 2001 From: Benjamin Dweck Date: Sun, 11 Oct 2020 23:51:01 +0200 Subject: [PATCH] Initial commit - it works! --- .gitignore | 2 ++ build.sh | 29 ++++++++++++++++++++++++++++ src/cmdline.txt | 1 + src/initial-setup.sh | 30 +++++++++++++++++++++++++++++ src/install-torch.sh | 7 +++++++ src/meta-data | 1 + src/torch-agent_0.0.4-1_all.deb | Bin 0 -> 7156 bytes src/user-data | 33 ++++++++++++++++++++++++++++++++ 8 files changed, 103 insertions(+) create mode 100644 .gitignore create mode 100755 build.sh create mode 100644 src/cmdline.txt create mode 100755 src/initial-setup.sh create mode 100755 src/install-torch.sh create mode 100644 src/meta-data create mode 100644 src/torch-agent_0.0.4-1_all.deb create mode 100644 src/user-data 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 0000000000000000000000000000000000000000..7c9a31108a415ee447e97a0a03d8d6ffce30c799 GIT binary patch literal 7156 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 WaL2CzxYd8n7XX2P+SC7;U;GQ={Fkc$ literal 0 HcmV?d00001 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