...post updated 06/22/2020
...and again 07/14/2020
An efficient toolset for Pi devices
Emulate, organize, burn, manage a variety of distributions for Raspberry Pi.
Choose your own adventure....
clipi virtualizes many common sbc operating systems with QEMU, and can play with both 32 bit and 64 bit operating systems.
- Select from any of the included distributions (or add your own to /sources.toml!) and
clipiwill handle the rest.
clipi builds and maintains organized directories for each OS as well a persistent & convenient .qcow2 QEMU disk image.
- Too many huge source .img files and archives?
clipicleans up after itself under the
- additional organizational & gcc compilation methods are available in /kernel.py
clipi burns emulations to external disks! Just insert a sd card or disk and follow the friendly prompts. All files,
/home, guest directories are written out.
- Need to pre-configure (or double check) wifi? Add your ssid and password to /wpa_supplicant.conf and copy the file to
/bootin the freshly burned disk.
- Need pre-enabled ssh? copy /ssh to
clipiprovides options for writing from an emulation's
.qcow2file via qemu...
- ...as well as from the source's raw image file with the
clipi can find the addresses of all the Raspberry Pi devices on your local network.
- Need to do this a lot?
clipican install itself as a Bash alias (option under the
menu, fire it up whenever you want.
- Shortcut files access clipi's tools in a similar fashion to the interactive menu:
# <shortcut>.toml # you can access the same tools and functions visible in the interactive menu like so: 'Burn a bootable disk image' = true # same as selecting in the interactive cli 'image' = 'octoprint' 'target_disk' = 'sdc'
clipiexposes many features only accessible via configuration file arguments, such as distribution options and emulation settings.
# <shortcut>.toml # important qemu arguments can be provided via a shortcut file like so: 'kernel' = "bin/ddebian/vmlinuz-4.19.0-9-arm64" 'initrd' = "bin/ddebian/initrd.img-4.19.0-9-arm64" # qemu arguments like these use familiar qemu lexicon: 'M' = "virt" 'm' = "2048" # default values are be edited the same way: 'cpu' = "cortex-a53" 'qcow_size' = "+8G" 'append' = '"rw root=/dev/vda2 console=ttyAMA0 rootwait fsck.repair=yes memtest=1"' # extra arguments can be passed too: '**args' = " -device virtio-blk-device,drive=hd-root \\ -netdev user,id=net0 -no-reboot \\ -monitor stdio \\ -device virtio-net-device,netdev=net0 "
Supply a shortcut file like so:
python3 clipi.py etc/find_pi.toml
take a look in /etc for some shortcut examples and default values
# clone: git clone https://github.com/Jesssullivan/clipi cd clipi # preheat: pip3 install -r requirements.txt # (or pip install -r requirements.txt) # begin cooking some Pi: python3 clipi.py