mirror of
https://github.com/cimryan/teslausb.git
synced 2026-03-01 04:30:33 +00:00
3.5 KiB
3.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 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) - 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.)
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? :) )
- 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