mirror of
https://github.com/cimryan/teslausb.git
synced 2026-03-01 04:30:33 +00:00
4.5 KiB
4.5 KiB
Flashable image to get started more quick
This is a WORK IN PROGRESS, NOT CURRENTLY WORKING.
For now the image creation work is at:
- Modified pi-gen rtgoodwin's fork of pi-gen in (whatever current branch I'm working at the time).
headless-patchbranch of https://github.com/rtgoodwin/teslausb
Notes
- Assumes your Pi comes up on Wifi, with internet access. (But so does most of this guide.) USB networking still enabled for troubleshooting.
- I moved all script downloads and variable creation to the initial setup. 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!
- The archive server might not be reachable during the first boot during setup, ex. if building the card somewhere away from the archive server location. So I no longer fail on it not being reachable.
Building the Pi
WORK IN PROGRESS BUT MOSTLY RIGHT
- Flash the image from: XXXXXXXX
- 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).) See the main README for these instructions for now. - 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
- TODO: Cache the remount packages? Might mess with first boot like
rsyslog - Aspirational TODO: Remove more packages etc to make the boot process faster? OR start from
stage1if we don't need all ofstage2