- Create file "ssh" to enable SSH server
- Add "dtoverlay=dwc2" to end of /boot/config.txt
- Remove resize_init from cmdline.txt
- Create "wpa_supplicant.conf" with the following config:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid=""
psk=""
key_mgmt=WPA-PSK
}
country=US
apt update
apt upgrade -y
apt install -y xfsprogs
apt autoremove
apt clean
hostnamectl set-hostname dashcam
timedatectl set-timezone UTC
localectl set-locale en_US.UTF-8
swapoff /var/swap
rm /var/swap
sed -i 's/$/ noswap fastboot/' /boot/cmdline.txt
START="$(parted /dev/mmcblk0 unit s print free | awk '/Free Space/ { print $1 }' | tail -1)"
parted -- /dev/mmcblk0 mkpart primary xfs "$START" -1s
mkdir /mnt/storage
echo "/dev/mmcblk0p3 /mnt/storage xfs defaults 0 2" >> /etc/fstab
mkfs.xfs /dev/mmcblk0p3
fallocate -l 10G /mnt/storage/cam
losetup -fP /mnt/storage/cam
echo "type=c" | sfdisk /dev/loop0
mkfs.vfat /dev/loop0p1 -F 32 -n CAM
mkdir /mnt/cam
mount /dev/loop0p1 /mnt/cam
mkdir -p /mnt/cam/TeslaCam
touch /mnt/cam/.metadata_never_index
umount /mnt/cam
losetup -d /dev/loop0
echo "options g_mass_storage file=/mnt/storage/cam removable=1 ro=0 stall=0 iSerialNumber=123456" > /etc/modprobe.d/g_mass_storage.conf
- Create /etc/systemd/system/export.service as shown below:
[Unit]
Description=Setup foo
After=mnt-storage.mount
[Service]
Type=oneshot
ExecStart=modprobe g_mass_storage
RemainAfterExit=true
ExecStop=modprobe -r g_mass_storage
StandardOutput=journal
[Install]
WantedBy=multi-user.target
- Enable auto-updates/upgrades for packages
- Slack notifications for health alerts
- Slack notifications for saved clips
- Remove unneeded packages
- Make rootfs read-only
- Upload clips
- Update password