From 1bcca1b8dd36ee333ed43bf0ed20d3a48d1a2476 Mon Sep 17 00:00:00 2001 From: Richard Goodwin Date: Wed, 24 Oct 2018 08:31:16 -0500 Subject: [PATCH] 10-24 image scripts Tested working for me. --- headless-scripts/Readme.md | 26 +++++------ headless-scripts/setup-teslausb-headless | 44 +++++++++---------- .../teslausb_setup_variables.conf.sample | 10 +++++ 3 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 headless-scripts/teslausb_setup_variables.conf.sample diff --git a/headless-scripts/Readme.md b/headless-scripts/Readme.md index 52127ff..5a3e6df 100644 --- a/headless-scripts/Readme.md +++ b/headless-scripts/Readme.md @@ -11,8 +11,8 @@ ## Configure the SD card before first boot of the Pi -1. Flash the image from [here](https://www.dropbox.com/s/zfzjbmx4744q810/image_2018-10-21-teslausb_headless-lite.zip?dl=0) using Etcher or similar. -1. Mount the card again, and in the `boot` directory create a `teslausb_setup_variables.conf` file to export the same environment varibles normally needed for setup (including archive, Wifi, and push notifications (if desired).) See the main README for all the variables. I.e. file should contain at a minimum (replace with your own values): +1. Flash the image from [here (10-24 dated image)](https://www.dropbox.com/s/6f8kxenvtz8pkj9/image_2018-10-24-teslausb_headless-lite.zip?dl=0) using Etcher or similar. +1. Mount the card again, and in the `boot` directory create a `teslausb_setup_variables.conf` file to export the same environment varibles normally needed for setup (including archive, Wifi, and push notifications (if desired).) A sample conf file is in this repo. I.e. file should contain at a minimum (replace with your own values): ``` export archiveserver=Nautilus export sharename=SailfishCam @@ -22,29 +22,25 @@ export SSID=your_ssid export WIFIPASS=your_wifi_password ``` -1. Run the `setup-piForHeadlessBuild.sh` (note: **not** `setup-piForHeadlessSetup.sh`): - ``` - curl https://raw.githubusercontent.com/rtgoodwin/teslausb/headless-patch/headless-scripts/setup-piForHeadlessBuild.sh -o setup-piForHeadlessBuild.sh - - chmod +x setup-piForHeadlessBuild.sh - - ./setup-piForHeadlessBuild.sh - ``` -1. If all goes well, put card into Pi and boot. -1. Wait for the the Pi to come up as a CAM USB drive, if you have it plugged into your computer. If plugged into just a power source, or your car, give it a few minutes until the LED starts pulsing steadily which means the archive loop is running and you're good to go. +* Boot it in your Pi, give it a bit, watching for a series of flashes (2, 3, 4, 5, maybe 6) and then a reboot and/or the CAM to become available on your PC/Mac. +* The Pi should be available at teslausb.local over Wifi (if it works) or USB networking (if it doesn't). Takes about 5 minutes for me. You should see in `/boot` the TESLAUSB_SETUP_FINISHED and WIFI_ENABLED files as markers of success too. +* Currently doesn't create the TeslaCam folder, so you'll need to do that before taking to your car. +* If plugged into just a power source, or your car, give it a few minutes until the LED starts pulsing steadily which means the archive loop is running and you're good to go. ## What happens under the covers When the Pi boots the first time: * A `/boot/teslausb-headless-setup.log` file will be created and stages logged. This takes the place of the "STOP" commands -* Marker files will be created in `boot` like `TESLA_USB_SETUP_STARTED` and `TESLA_USB_SETUP_FINISHED` to track progress. May use a progress system so the script can pick back up if needed. (This is probably useful for the general/old way of setup too.) -* The Pi LED will flash patterns as it gets to each stage (labeled in the setup-teslausb-headless script). +* Marker files will be created in `boot` like `TESLA_USB_SETUP_STARTED` and `TESLA_USB_SETUP_FINISHED` to track progress. +* (Working on a progress system so the script can pick back up if needed. This is probably useful for the general/old way of setup too.) +* Wifi is detected by looking for `/boot/WIFI_ENABLED` and if not, creates the `wpa_supplicant.conf` file in place and reboots. +* The Pi LED will flash patterns (2, 3, 4, 5, maybe 6) as it gets to each stage (labeled in the setup-teslausb-headless script). * 10 flashes means setup failed! * After the final stage and reboot the LED will go back to normal. Remember, the step to remount the filesystem takes a few minutes. At this point the next boot should start the Dashcam/music drives like normal. If you're watching the LED it will start flashing every 1 second, which is the archive loop running. -> NOTE: Don't delete the `TESLAUSB_SETUP_FINISHED` file. This is how the system knows setup is complete. +> NOTE: Don't delete the `TESLAUSB_SETUP_FINISHED` or `WIFI_ENABLED` files. This is how the system knows setup is complete. ### Image builder source and patches diff --git a/headless-scripts/setup-teslausb-headless b/headless-scripts/setup-teslausb-headless index b713bf1..f9396d2 100644 --- a/headless-scripts/setup-teslausb-headless +++ b/headless-scripts/setup-teslausb-headless @@ -88,7 +88,7 @@ function check_available_space () { } # function get_ancillary_setup_scripts () { -# pushd /tmp +# pushd # wget https://raw.githubusercontent.com/"$REPO"/teslausb/"$BRANCH"/windows_archive/create-backingfiles-partition.sh # chmod +x ./create-backingfiles-partition.sh # wget https://raw.githubusercontent.com/"$REPO"/teslausb/"$BRANCH"/windows_archive/create-backingfiles.sh @@ -111,20 +111,20 @@ BACKINGFILES_MOUNTPOINT=/backingfiles function create_usb_drive_backing_files () { mkdir "$BACKINGFILES_MOUNTPOINT" - /tmp/create-backingfiles-partition.sh "$BACKINGFILES_MOUNTPOINT" + /root/bin/tmp/create-backingfiles-partition.sh "$BACKINGFILES_MOUNTPOINT" setup_log "Mounting the partition for the backing files..." mount /backingfiles setup_log "Mounted the partition for the backing files." - /tmp/create-backingfiles.sh "$campercent" "$BACKINGFILES_MOUNTPOINT" + /root/bin/tmp/create-backingfiles.sh "$campercent" "$BACKINGFILES_MOUNTPOINT" } function configure_archive () { setup_log "Configuring the archive..." mkdir /mnt/archive local archive_server_ip_address="$(ping -c 1 -w 1 $archiveserver 2>/dev/null | head -n 1 | grep -o -e "(\([[:digit:]]\{1,3\}\.\)\{3\}[[:digit:]]\{1,3\})" | tr -d '()')" - echo "//$archive_server_ip_address/$sharename /mnt/archive cifs vers=3,credentials=/root/.teslaCamArchiveCredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0" >> /etc/fstab + echo "//$archive_server_ip_address/$sharename /mnt/archive cifs credentials=/root/.teslaCamArchiveCredentials,iocharset=utf8,file_mode=0777,dir_mode=0777 0" >> /etc/fstab echo "username=$shareuser" > /root/.teslaCamArchiveCredentials echo "password=$sharepassword" >> /root/.teslaCamArchiveCredentials @@ -189,20 +189,20 @@ EOF setup_log "Configured rc.local." } -function configure_hostname () { - setup_log "Configuring the hostname..." +# function configure_hostname () { +# setup_log "Configuring the hostname..." - local new_host_name="teslausb" - cp /etc/hosts ~ - sed "s/raspberrypi/$new_host_name/g" ~/hosts > /etc/hosts +# local new_host_name="teslausb" +# cp /etc/hosts ~ +# sed "s/raspberrypi/$new_host_name/g" ~/hosts > /etc/hosts - cp /etc/hostname ~ - sed "s/raspberrypi/$new_host_name/g" ~/hostname > /etc/hostname - setup_log "Configured the hostname." -} +# cp /etc/hostname ~ +# sed "s/raspberrypi/$new_host_name/g" ~/hostname > /etc/hostname +# setup_log "Configured the hostname." +# } function make_root_fs_readonly () { - /tmp/make-root-fs-readonly.sh + /root/bin/tmp/make-root-fs-readonly.sh } # TURN OFF LED so we can start watching progress @@ -214,13 +214,13 @@ sleep 5 /etc/stage_flash 1 -setup_log "SETUP STAGE 1: Check variables file." -if [ ! -e /boot/teslausb_setup_variables.conf ] -then - setup_log "ERROR: teslausb_setup_variables.conf file not found. Can't continue setup." - /etc/stage_flash 10 - exit 1 -fi +# setup_log "SETUP STAGE 1: Check variables file." +# if [ ! -e /boot/teslausb_setup_variables.conf ] +# then +# setup_log "ERROR: teslausb_setup_variables.conf file not found. Can't continue setup." +# /etc/stage_flash 10 +# exit 1 +# fi source /boot/teslausb_setup_variables.conf @@ -267,7 +267,7 @@ configure_archive configure_rc_local -configure_hostname +# configure_hostname # SETUP STAGE 5 and reboot # If you see 5 flashes we are probably good! diff --git a/headless-scripts/teslausb_setup_variables.conf.sample b/headless-scripts/teslausb_setup_variables.conf.sample new file mode 100644 index 0000000..aae9f34 --- /dev/null +++ b/headless-scripts/teslausb_setup_variables.conf.sample @@ -0,0 +1,10 @@ +export archiveserver=your_archive_name_or_ip +export sharename=your_archive_share_name +export shareuser=username +export sharepassword=password +export campercent=100 +export SSID=your_ssid +export WIFIPASS=your_pass +# export pushover_enabled=false +# export pushover_user_key=user_key +# export pushover_app_key=app_key \ No newline at end of file