Raspberry Pi automation tools for Debian distros- emulate, organize, burn & manage
Raspberry Pi automation tools for Debian distros- emulate, organize, burn & manage
An efficient toolset for Pi devices
Emulate:
clipi
virtualizes many common sbc operating systems with QEMU, and can play with both 32 bit and 64 bit operating systems.
clipi
will handle the rest.Organize:
clipi
builds and maintains organized directories for each OS as well a persistent & convenient .qcow2 QEMU disk image.
clipi
cleans up after itself under the Utilities...
menu.Write:
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.
/boot
in the freshly burned disk./boot
too.clipi
provides options for writing from an emulation’s .qcow2
file via qemu…verbatim
argumentManage:
clipi
can find the addresses of all the Raspberry Pi devices on your local network.
clipi
can install itself as a Bash alias (option under the Utilities...
menu, fire it up whenever you want.Shortcuts & configuration arguments can be passed to clipi
as a .toml (or yaml) file.
# <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'
clipi
exposes 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 \
-no-reboot -monitor stdio
"""
# additional network arguments can be passed like so:
# (clipi may automatically modify network arguments depending on bridge / SLiRP settings)
'network' = """
-netdev bridge,br=br0,id=net0 \
-device virtio-net-pci,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
bridge networking things:
kernel stuff:
automate ramdisk & kernel extraction- some functions to do so are all ready to go in /kernel.py
other random kernel todos-
gcp-io stuff:
# 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
git clone --branch=mini --depth=1 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
# Cook Pi:
python3 clipi.py etc/write_ubuntu64_pi4.toml
# Consume Pi:
git clone https://github.com/wimpysworld/desktopify.git && sudo ./desktopify --de ubuntu-budgie