This is a streamlined process for setting up the Pi. You'll flash a preconfigured version of Raspbian Buster Lite and then fill out a config file.
- Assumes your Pi has access to Wifi, with internet access (during setup). (But all setup methods do currently.) USB networking is still enabled for troubleshooting or manual setup
- This image will work for either headless (tested) or manual (tested less) setup.
- Currently not tested with the rclone method when using headless setup, however you can specify 'none' as the archive method in the config file, which will configure the pi as a wifi-accessible USB drive, so you can then configure rclone or configure rsync and rerun the setup-teslausb script.
-
Flash the latest image release using Raspberry Pi Imager or a similar flashing tool.
In Raspberry Pi Imager, you need to click 'Operating System' and then scroll all the way down and select the 'Use custom' option.
-
Mount the card again, and in the
boot
directory create ateslausb_setup_variables.conf
file to export the same environment variables normally needed for manual setup (including archive info, Wifi, and push notifications (if desired). A sample conf file is located in theboot
folder on the SD card. The latest sample is also available from GitHub. The sample file contains documentation and suggestions for values.Note When creating/editing the configuration file on Windows, ensure that it is saved with the correct extension. It is recommended to disable the "hide extensions for known file types" option in Windows so you can see the full file name.
Be sure that all values, especially your WiFi SSID and password are properly quoted and/or escaped according to bash quoting rules, and that in addition any
&
,/
and\
are also escaped by prefixing them with a\
. If the password does not contain a single quote character, you can enclose the entire password in single quotes, like so:export WIFIPASS='password'
even if it contains other characters that might otherwise be special to bash, like \, * and $ (but note that the \ should still be escaped with an additional \ in order for the password to be correctly handled)
If the password does contain a single quote, you will need to use a different syntax. E.g. if the password is
pass'word
, you would use:export WIFIPASS=$'pass\'word'
and if the password contains both a single quote and a backslash, e.g.
pass'wo\rd
you'd use:export WIFIPASS=$'pass\'wo\\rd'
Similarly if your WiFi SSID has spaces in its name, make sure they're escaped or quoted.
For example, if your SSID were
Foo Bar 2.4 GHz
you would use
export SSID=Foo\ Bar\ 2.4\ GHz
or
export SSID='Foo Bar 2.4 GHz'
-
Boot it in your Pi, give it a few minutes, watching for a series of flashes (2, 3, 4, 5) and then a reboot and/or the CAM/music drives to become available on your PC/Mac. If you configured automatic music syncing, the drives won't be available on the PC/Mac until music syncing is complete. The LED flash stages during setup are:
Stage (number of flashes) Activity 2 Verify the requested configuration is creatable 3 Grab scripts to start/continue setup 4 Create partition and files to store camera clips/music) 5 Setup completed; remounting filesystems as read-only and rebooting
The Pi should be available for ssh
at [email protected]
, over Wifi (if automatic setup works) or USB networking (if it doesn't). It takes about 5 minutes, or more depending on network speed, etc. The default password for user [email protected]
is raspberry
.
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.
You should see in /boot
the TESLAUSB_SETUP_FINISHED
and WIFI_ENABLED
files as markers of headless setup success as well.
Given that the Pi contains sensitive information like your home wifi password and possible a Tesla account access token, please consider the following:
-
If WiFi Access Point is configured, ensure it is configured with a strong password. Make it something better than Passw0rd, more than 8 characters. The longer the password the better. See here or here for password strength.
-
Change the password for the pi account to something other than the default "raspberry". To do that, ssh into the Pi, run the following commands, and enter a new password when prompted:
sudo -i
/root/bin/remountfs_rw
passwd pi
reboot
- Remember that the Pi contains a configuration file with sensitive information. If your Pi is stolen or you suspect an unauthorized person accessed it, immediately change your Tesla account password (if you configured the Pi to use your Tesla credentials to keep the car awake during archiving) and home wifi password.
- If everything seems to be working, but you still don't see the USB drive(s) either on your local machine, or in the car, check that you are indeed using a USB data cable, and not a charge-only cable. Also ensure you are plugged into the USB port on the Raspberry PI, and not the power port.
ssh
to[email protected]
(assuming Wifi came up, or your Pi is connected to your computer via USB) and look at the/boot/teslausb-headless-setup.log
.- Try
sudo -i
and then run/etc/rc.local
. The scripts are fairly resilient to restarting and not re-running previous steps, and will tell you about progress/failure. - If Wifi didn't come up:
- Double-check the SSID and WIFIPASS variables in
teslausb_setup_variables.conf
, and remove/boot/WIFI_ENABLED
, then booting the SD in your Pi to retry automatic Wifi setup. - If you are using a WiFi network with a hidden SSID, edit
/boot/wpa_supplicant.conf.sample
and uncomment the linescan_ssid=1
in thenetwork={...}
block. - If still no go, re-run
/etc/rc.local
- If all else fails, copy
/boot/wpa_supplicant.conf.sample
to/boot/wpa_supplicant.conf
and edit out theTEMP
variables to your desired settings.
- Double-check the SSID and WIFIPASS variables in
- Note: if you get an error about
read-only filesystem
, you may have tosudo -i
and run/root/bin/remountfs_rw
. - Try
date
to ensure the system clock is set correctly. If it is too far off, SSL/TLS Authentication will fail, preventing the installation from completing. You can set the date likedate -s "2 JAN 2022 15:04:05"
- Try
tail -f /boot/teslausb-headless-setup.log
to watch the logs during installation, which may shed some light on any errors occurring. PressCtrl-C
to stop watching logs.
More troubleshooting information in the wiki
When the Pi boots the first time:
- A
/boot/teslausb-headless-setup.log
file will be created and stages logged. - Marker files will be created in
boot
likeTESLA_USB_SETUP_STARTED
andTESLA_USB_SETUP_FINISHED
to track progress. - Wifi is detected by looking for
/boot/WIFI_ENABLED
and if not, creates thewpa_supplicant.conf
file in place, usingSSID
andWIFIPASS
fromteslausb_setup_variables.conf
and reboots. - The Pi LED will flash patterns (2, 3, 4, 5) as it gets to each stage (labeled in the setup-teslausb script).
- 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
orWIFI_ENABLED
files. This is how the system knows setup is complete.
The sources for the image modifications, and instructions, are in the pi-gen-sources folder.