mirror of
https://github.com/cimryan/teslausb.git
synced 2026-03-01 04:30:33 +00:00
Also in prev commit always download pushover script as it doesn't hurt (user can set it up later) and removes some conditional logic.
Flashable image to get started more quick
This is a WORK IN PROGRESS, NOT CURRENTLY WORKING.
For now the image creation work is at rtgoodwin's fork of pi-gen in (whatever current branch I'm working at the time).
- Assumes your Pi comes up on Wifi, with internet access. (But so does most of this guide.) USB networking still enabled for troubleshooting.
- At this point, I'm designing it to pull the setup scripts dynamically, since development is still ongoing. If/when we reach a good frozen state, we can generate an image that is ready to run. I think it'll also be pretty tricky to do some of the remounting and creating the backing files etc. on the image creation side. Open to suggestions/contributions there though!
- Flash the image
- Mount the card again, and in the
bootdirectory create ateslausb_setup_variables.conffile to export the same environment varibles normally needed for setup (including archive, wifi, and push notifications if desired.) - Run the
setup-piForHeadlessBuild.sh(note: notsetup-piForHeadlessSetup.sh):curl https://raw.githubusercontent.com/rtgoodwin/teslausb/headless-patch/headless-scripts/setup-piForHeadlessBuild.sh -o setup-piForHeadlessBuild.shchmod +x setup-piForHeadlessBuild.sh./setup-piForHeadlessBuild.sh . - If all goes well, put card into Pi and boot.
- A
/boot/teslausb-headless-setup.logfile will be created and stages logged. This takes the place of the "STOP" commands - Marker files will be created in
bootlikeTESLA_USB_SETUP_STARTEDandTESLA_USB_SETUP_FINISHEDto 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).
- 10 flashes means setup failed!
Modifications to pi-gen builder from master
Built image on a Raspi running Stretch, for maximum Pi-ception.
- Add SKIP and SKIP_IMAGES files to stage3, 4, and 5 (if present).
- Add a stage6. (There are stages0-5, but may be a stage5 in some cases. This will help keep a clean merge later.)
- Copy the prerun.sh from
stage2. Be SURE to markchmod +xit. - Remove or rename the EXPORT_NOOBS files in all stages. We don't need a NOOBS image built.
- In
stage6, create a00-tweaksfolder, with a00-patchesfolder and patch inside to patchcmdline.txtto remove the resize and add the needed modules. The build process usesquiltfor patching. Note: the path for any patching you do at this stage isstage6/rootfs/FILEPATHwhererootfsrepresents the Pi's/. So,cmdline.txtisstage6/rootfs/boot/cmdline.txt. - Add a patch for the
config.txtfile. - Add a file called
seriesin the patches directory with the name of each.difffile in the order you want them applied. - Add a
filesfolder in stage6 with modifiedrc.local. The modifiedrc.localwill handle pulling down thesetup-teslausb-headlessfile the first time. (Still working on build logic here.) Files are moved into final locations in a00-run.shscript and theinstallcommand. See the script for details. - (Yes at this point you could suggest that just putting the end state files in place instead of patching would be good, but why not be idiomatic? :) )
- Add a script to flash LEDs
- Run
sudo ./build.shfrom thepi-gendirectory. - If you get a failure, it's almost certainly after stage2, so you can add SKIP files in stage2-stage5 present) and rerun
sudo CLEAN=1 ./build.sh
Image creation TODOs
- TODO: Patch the hostname to teslausb
- TODO: I still see some errors during pi-gen about locale, may need to be fixed? stage0/01-locale/debconf en_US.UTF-8
- Aspirational TODO: Remove more packages etc to make the boot process faster? OR start from
stage1if we don't need all ofstage2