Usage¶
pmbootstrap offers many options and actions and is normally ran from a shell.
Before pmbootstrap can be used, a number of configuration questions need to be answered. The sections below go into detail for the various questions.
$ pmboostrap init
If you already ran this before, run the following to update your local clone of pmaports.git instead, before moving straight onto the installation step:
$ pmbootstrap pull
Quick health check and config overview:
$ pmbootstrap status
After successfully finishing the init
sequence with answering all questions, its time to build the
installation:
Devices like the PinePhone, Samsung Galaxy S II, Nokia N900, various laptops etc. can boot from an SD card, USB stick or other external storage. Find the name with lsblk first and make sure it is the right one as you will overwrite everything on it. Use a path without partition number at the end, such as /dev/mmcblk0. If your device is able to boot from SD card without flashing anything (such as the PinePhone), you should then be able to insert SD card into your device and boot it up.
$ pmbootstrap install --sdcard=/dev/mmcblk... --fde
For devices where you will flash directly to the internal storage, as mostly all sdm845 devices, you can build the installation as:
$ pmbootstrap install
or with full disk encryption:
$ pmbootstrap install --fde
and then flash it with the pmbootstrap flasher
while the device is in fastboot
mode:
$ pmbootstrap flasher flash_rootfs
and also the kernel:
$ pmbootstrap flasher flash_kernel
For getting images on the local machine instead of directly flashing them, execute:
$ pmbootstrap export
To extract the generated initramfs:
$ pmbootstrap initfs extract
Build and flash Android recovery zip:
$ pmbootstrap install --android-recovery-zip
$ pmbootstrap flasher --method=adb sideload
Update existing installation on SD card:
$ pmbootstrap install --disk=/dev/mmcblk0 --rsync
Run the image in QEMU:
$ pmbootstrap qemu --image-size=1G
Device Porting Assistance
Analyze Android boot.img files (also works with recovery OS images like TWRP):
$ pmbootstrap bootimg_analyze ~/Downloads/twrp-3.2.1-0-fp2.img
Check kernel configs:
$ pmbootstrap kconfig check
Edit a kernel config:
$ pmbootstrap kconfig edit
For further details on the different actions please see below and refer to the wiki-arcticle on pmbootstrap.
pmbootstrap¶
usage: pmbootstrap [-h] [-V] [-c CONFIG] [-j JOBS] [-E EXTRA_SPACE]
[-B BOOT_SIZE] [-p APORTS] [-t TIMEOUT] [-w WORK] [-y]
[--as-root] [-o] [--no-ccache] [--no-cross] [-l LOG]
[--details-to-stdout] [-v] [-q]
{init,shutdown,index,work_migrate,repo_bootstrap,repo_missing,kconfig,export,sideload,netboot,flasher,initfs,qemu,pkgrel_bump,pkgver_bump,aportupgrade,newapkbuild,lint,test,status,ci,log,zap,stats,update,build_init,chroot,install,checksum,aportgen,build,deviceinfo_parse,apkbuild_parse,apkindex_parse,config,bootimg_analyze,pull}
...
options¶
- -h, --help¶
show this help message and exit
- -V, --version¶
show program’s version number and exit
- -c <config>, --config <config>¶
path to pmbootstrap_v3.cfg file (default in ~/.config/)
- -j <jobs>, --jobs <jobs>¶
parallel jobs when compiling
- -E <extra_space>, --extra-space <extra_space>¶
specify an integer with the amount of additionalspace to allocate to the image in MB (default 0)
- -B <boot_size>, --boot-size <boot_size>¶
specify an integer with your preferred bootpartition size on target machine in MB (default 256)
- -p <aports>, --aports <aports>¶
postmarketos aports (pmaports) path
- -t <timeout>, --timeout <timeout>¶
seconds after which processes get killed that stopped writing any output (default: 900)
- -w <work>, --work <work>¶
folder where all data gets stored (chroots, caches, built packages)
- -y, --assume-yes¶
Assume ‘yes’ to all question prompts. WARNING: this option will cause normal ‘are you sure?’ prompts to be disabled!
- --as-root¶
Allow running as root (not recommended, may screw up your work folders directory permissions!)
- -o, --offline¶
Do not attempt to update the package index files
- --no-ccache¶
do not cache the compiled output
- --no-cross¶
disable cross compiler, build only with QEMU and gcc (slow!)
- -l <log>, --log <log>¶
path to log file
- --details-to-stdout¶
print details (e.g. build output) to stdout, instead of writing to the log
- -v, --verbose¶
write even more to the logfiles (this may reduce performance)
- -q, --quiet¶
do not output any log messages
pmbootstrap apkbuild_parse¶
usage: pmbootstrap apkbuild_parse [-h] [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
pmbootstrap apkindex_parse¶
usage: pmbootstrap apkindex_parse [-h] apkindex_path [package]
- apkindex_path¶
- package¶
- -h, --help¶
show this help message and exit
pmbootstrap aportgen¶
usage: pmbootstrap aportgen [-h] [-a | -r] packages [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
- -a, --fork-alpine¶
fork the alpine upstream package
- -r, --fork-alpine-retain-branch¶
fork the alpine upstream, but don’t change branch to match the current channel
pmbootstrap aportupgrade¶
usage: pmbootstrap aportupgrade [-h] [--dry] [--ref REF] [--all]
[--all-stable] [--all-git]
[packages ...]
- packages¶
- -h, --help¶
show this help message and exit
- --dry¶
instead of modifying APKBUILDs, print the changes that would be made
- --ref <ref>¶
git ref (tag, commit, etc) to use
- --all¶
iterate through all packages
- --all-stable¶
iterate through all non-git packages
- --all-git¶
iterate through all git packages
pmbootstrap bootimg_analyze¶
usage: pmbootstrap bootimg_analyze [-h] [--force] path
- path¶
path to the boot.img
- -h, --help¶
show this help message and exit
- --force, -f¶
force even if the file seems to be invalid
pmbootstrap build¶
usage: pmbootstrap build [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
[--force] [--strict] [--src SRC] [-i] [-n]
[--go-mod-cache] [--no-go-mod-cache] [--envkernel]
packages [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
CPU architecture to build for (default: x86_64 or first available architecture in APKBUILD)
- --force¶
even build if not necessary
- --strict¶
(slower) zap and install only required depends when building, to detect dependency errors
- --src <src>¶
override source used to build the package with a local folder (the APKBUILD must expect the source to be in $builddir, so you might need to adjust it)
- -i, --ignore-depends¶
only build and install makedepends from an APKBUILD, ignore the depends (old behavior). This is faster for device packages for example, because then you don’t need to build and install the kernel. But it is incompatible with how Alpine’s abuild handles it.
- -n, --no-depends¶
never build dependencies, abort instead
- --go-mod-cache¶
for go packages: Usually they should bundle the dependency sources instead of downloading them at build time. But if they don’t (e.g. with pmbootstrap build –src), then this option can be used to let GOMODCACHE point into pmbootstrap’s work dir to only download dependencies once. (default: true with –src, false otherwise)
- --no-go-mod-cache¶
don’t set GOMODCACHE
- --envkernel¶
Create an apk package from the build output of a kernel compiled locally on the host or with envkernel.sh.
pmbootstrap build_init¶
usage: pmbootstrap build_init [-h]
[-b [{armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}]
| -s SUFFIX]
- -h, --help¶
show this help message and exit
- -b {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}, --buildroot {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}¶
Chroot for building packages, defaults to device architecture
- -s <suffix>, --suffix <suffix>¶
Specify any chroot suffix, defaults to ‘native’
pmbootstrap checksum¶
usage: pmbootstrap checksum [-h] [--verify] packages [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
- --verify¶
download sources and verify that the checksums of the APKBUILD match, instead of updating them
pmbootstrap chroot¶
usage: pmbootstrap chroot [-h] [--add ADD] [--user]
[--output {log,stdout,interactive,tui,background}]
[--image] [-x] [-i]
[-r | -b [{armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}]
| -s SUFFIX]
[command ...]
- command¶
command to execute inside the chroot. default: sh
- -h, --help¶
show this help message and exit
- --add <add>¶
build/install comma separated list of packages in the chroot before entering it
- --user¶
run the command as user, not as root
- --output {log,stdout,interactive,tui,background}¶
how the output of the program should be handled, choose from: ‘log’, ‘stdout’, ‘interactive’, ‘tui’ (default), ‘background’. Details: pmb/helpers/run_core.py
- --image¶
Mount the rootfs image and treat it like a normal chroot.
- -x, --xauth¶
Copy .Xauthority and set environment variables, so X11 applications can be started (native chroot only)
- -i, --install-blockdev¶
Create a sparse image file and mount it as /dev/install, just like during the installation process.
- -r, --rootfs¶
Chroot for the device root file system
- -b {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}, --buildroot {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86,device}¶
Chroot for building packages, defaults to device architecture
- -s <suffix>, --suffix <suffix>¶
Specify any chroot suffix, defaults to ‘native’
pmbootstrap ci¶
usage: pmbootstrap ci [-h] [-a | -f] [script ...]
- script¶
name of the CI script to run, depending on the git repository
- -h, --help¶
show this help message and exit
- -a, --all¶
run all scripts
- -f, --fast¶
run fast scripts only
pmbootstrap config¶
usage: pmbootstrap config [-h] [-r] [name] [value]
- name¶
variable name, one of: aports, auto_zap_misconfigured_chroots, boot_size, build_default_device_arch, build_pkgs_on_install, ccache_size, device, extra_packages, extra_space, hostname, is_default_channel, jobs, kernel, keymap, locale, mirrors.alpine, mirrors.alpine_custom, mirrors.pmaports, mirrors.pmaports_custom, mirrors.systemd, mirrors.systemd_custom, providers, qemu_redir_stdio, ssh_key_glob, ssh_keys, sudo_timer, systemd, timezone, ui, ui_extras, user, work
- value¶
set variable to value
- -h, --help¶
show this help message and exit
- -r, --reset¶
Reset config options with the given name to it’s default.
pmbootstrap deviceinfo_parse¶
usage: pmbootstrap deviceinfo_parse [-h] [--kernel KERNEL] [devices ...]
- devices¶
- -h, --help¶
show this help message and exit
- --kernel <kernel>¶
the kernel to select (for device packages with multiple kernels), e.g. ‘downstream’, ‘mainline’
pmbootstrap export¶
usage: pmbootstrap export [-h] [--odin] [--no-install] [export_folder]
- export_folder¶
export folder, defaults to /tmp/postmarketOS-export
- -h, --help¶
show this help message and exit
- --odin¶
odin flashable tar (boot.img/kernel+initramfs only)
- --no-install¶
skip updating kernel/initfs
pmbootstrap flasher¶
usage: pmbootstrap flasher [-h] [--method FLASH_METHOD] [--no-reboot]
[--resume]
{boot,flash_kernel,flash_lk2nd,flash_rootfs,flash_vbmeta,flash_dtbo,sideload,list_flavors,list_devices}
...
- -h, --help¶
show this help message and exit
- --method <flash_method>¶
override flash method
- --no-reboot¶
don’t automatically reboot after flashing
- --resume¶
resume flashing after using –no-reboot
pmbootstrap flasher boot¶
usage: pmbootstrap flasher boot [-h] [--cmdline CMDLINE] [--no-install]
- -h, --help¶
show this help message and exit
- --cmdline <cmdline>¶
override kernel commandline
- --no-install¶
skip updating kernel/initfs
pmbootstrap flasher flash_dtbo¶
usage: pmbootstrap flasher flash_dtbo [-h] [--partition PARTITION]
- -h, --help¶
show this help message and exit
- --partition <partition>¶
partition to flash the dtbo to (defaults to deviceinfo_flash_*_partition_dtbo)
pmbootstrap flasher flash_kernel¶
usage: pmbootstrap flasher flash_kernel [-h] [--no-install]
[--partition PARTITION]
- -h, --help¶
show this help message and exit
- --no-install¶
skip updating kernel/initfs
- --partition <partition>¶
partition to flash the kernel to (defaults to deviceinfo_flash_*_partition_kernel)
pmbootstrap flasher flash_lk2nd¶
usage: pmbootstrap flasher flash_lk2nd [-h] [--partition PARTITION]
- -h, --help¶
show this help message and exit
- --partition <partition>¶
partition to flash lk2nd to (defaults to default boot image partition
pmbootstrap flasher flash_rootfs¶
usage: pmbootstrap flasher flash_rootfs [-h] [--partition PARTITION]
- -h, --help¶
show this help message and exit
- --partition <partition>¶
partition to flash the rootfs to (defaults to deviceinfo_flash_*_partition_rootfs, ‘userdata’ on Android may have more space)
pmbootstrap flasher flash_vbmeta¶
usage: pmbootstrap flasher flash_vbmeta [-h] [--partition PARTITION]
- -h, --help¶
show this help message and exit
- --partition <partition>¶
partition to flash the vbmeta to (defaults to deviceinfo_flash_*_partition_vbmeta
pmbootstrap flasher list_devices¶
usage: pmbootstrap flasher list_devices [-h]
- -h, --help¶
show this help message and exit
pmbootstrap flasher list_flavors¶
usage: pmbootstrap flasher list_flavors [-h]
- -h, --help¶
show this help message and exit
pmbootstrap flasher sideload¶
usage: pmbootstrap flasher sideload [-h]
- -h, --help¶
show this help message and exit
pmbootstrap index¶
usage: pmbootstrap index [-h]
- -h, --help¶
show this help message and exit
pmbootstrap init¶
usage: pmbootstrap init [-h]
- -h, --help¶
show this help message and exit
pmbootstrap initfs¶
usage: pmbootstrap initfs [-h]
{hook_ls,hook_add,hook_del,ls,build,extract} ...
- -h, --help¶
show this help message and exit
pmbootstrap initfs build¶
usage: pmbootstrap initfs build [-h]
- -h, --help¶
show this help message and exit
pmbootstrap initfs extract¶
usage: pmbootstrap initfs extract [-h]
- -h, --help¶
show this help message and exit
pmbootstrap initfs hook_add¶
usage: pmbootstrap initfs hook_add [-h] hook
- hook¶
name of the hook aport, without the ‘postmarketos-mkinitfs-hook-’ prefix, for example: ‘debug-shell’
- -h, --help¶
show this help message and exit
pmbootstrap initfs hook_del¶
usage: pmbootstrap initfs hook_del [-h] hook
- hook¶
name of the hook aport, without the ‘postmarketos-mkinitfs-hook-’ prefix, for example: ‘debug-shell’
- -h, --help¶
show this help message and exit
pmbootstrap initfs hook_ls¶
usage: pmbootstrap initfs hook_ls [-h]
- -h, --help¶
show this help message and exit
pmbootstrap initfs ls¶
usage: pmbootstrap initfs ls [-h]
- -h, --help¶
show this help message and exit
pmbootstrap install¶
usage: pmbootstrap install [-h] [--no-sshd] [--no-firewall]
[--password PASSWORD] [--no-cgpt] [--zap]
[--sector-size {512,2048,4096}]
[--no-split | --split | --disk BLOCKDEV | --android-recovery-zip | --no-image]
[--rsync]
[--recovery-install-partition RECOVERY_INSTALL_PARTITION]
[--recovery-no-kernel] [--fde] [--cipher CIPHER]
[--iter-time ITER_TIME] [--add PACKAGES]
[--no-base] [--no-recommends]
[--sparse | --no-sparse] [--on-device-installer]
[--no-local-pkgs]
[--cp HOST_SRC:CHROOT_DEST [HOST_SRC:CHROOT_DEST ...]]
[--no-rootfs] [--filesystem {ext4,f2fs,btrfs}]
- -h, --help¶
show this help message and exit
- --no-sshd¶
do not enable the SSH daemon by default
- --no-firewall¶
do not enable the firewall by default
- --password <password>¶
dummy password for automating the installation - will be handled in PLAIN TEXT during install and may be logged to the logfile, do not use an important password!
- --no-cgpt¶
do not use cgpt partition table
- --zap¶
zap chroots before installing
- --sector-size {512,2048,4096}¶
set the sector size for the image file
- --no-split¶
create combined boot and root image file
- --split¶
create separate boot and root image files
- --disk <blockdev>, --sdcard <blockdev>¶
do not create an image file, instead write to the given block device (SD card, USB stick, etc.), for example: ‘/dev/mmcblk0’
- --android-recovery-zip¶
generate TWRP flashable zip (recommended read: https://postmarketos.org/recoveryzip)
- --no-image¶
do not generate an image
- --rsync¶
update the disk using rsync
- --recovery-install-partition <recovery_install_partition>¶
partition to flash from recovery (e.g. ‘external_sd’)
- --recovery-no-kernel¶
do not overwrite the existing kernel
- --fde¶
use full disk encryption
- --cipher <cipher>¶
cryptsetup cipher used to encrypt the the rootfs (e.g. ‘aes-xts-plain64’)
- --iter-time <iter_time>¶
cryptsetup iteration time (in milliseconds) to use when encrypting the system partition
- --add <packages>¶
comma separated list of packages to be added to the rootfs (e.g. ‘vim,gcc’)
- --no-base¶
do not install postmarketos-base (advanced)
- --no-recommends¶
do not install packages listed in _pmb_recommends of the UI pmaports
- --sparse¶
generate sparse image file
- --no-sparse¶
do not generate sparse image file
- --on-device-installer, --ondev¶
enable on-device installer
- --no-local-pkgs¶
do not install locally compiled packages and package signing keys
- --cp <host_src:chroot_dest>¶
copy one or more files from the host system path HOST_SRC to the target path CHROOT_DEST
- --no-rootfs¶
do not generate a pmOS rootfs as /var/lib/rootfs.img (install chroot). The file must either exist from a previous ‘pmbootstrap install’ run or by providing it as CHROOT_DEST with –cp
- --filesystem {ext4,f2fs,btrfs}¶
root filesystem type
pmbootstrap kconfig¶
usage: pmbootstrap kconfig [-h] {check,edit,migrate} ...
- -h, --help¶
show this help message and exit
pmbootstrap kconfig check¶
usage: pmbootstrap kconfig check [-h] [-f]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
[--file FILE] [--no-details] [-k]
[package ...]
- package¶
kernel package (e.g. linux-postmarketos-allwinner)
- -h, --help¶
show this help message and exit
- -f, --force¶
check all kernels, even the ones that would be ignored by default
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
- --file <file>¶
check a file directly instead of a config in a package
- --no-details¶
print one generic error per component instead of listing each option that needs to be adjusted
- -k, --keep-going¶
continue on errors instead of aborting on the first error
pmbootstrap kconfig edit¶
usage: pmbootstrap kconfig edit [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
[-x | -n]
package
- package¶
kernel package (e.g. linux-postmarketos-allwinner)
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
- -x¶
use xconfig rather than menuconfig for kernel configuration
- -n¶
use nconfig rather than menuconfig for kernel configuration
pmbootstrap kconfig migrate¶
usage: pmbootstrap kconfig migrate [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
package
- package¶
kernel package (e.g. linux-postmarketos-allwinner)
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
pmbootstrap lint¶
usage: pmbootstrap lint [-h] [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
pmbootstrap log¶
usage: pmbootstrap log [-h] [-n LINES] [-c]
- -h, --help¶
show this help message and exit
- -n <lines>, --lines <lines>¶
count of initial output lines
- -c, --clear¶
clear the log
pmbootstrap netboot¶
usage: pmbootstrap netboot [-h] {serve} ...
- -h, --help¶
show this help message and exit
pmbootstrap netboot serve¶
usage: pmbootstrap netboot serve [-h] [--replace]
- -h, --help¶
show this help message and exit
- --replace¶
replace stored netboot image
pmbootstrap newapkbuild¶
usage: pmbootstrap newapkbuild [-h] [--folder FOLDER] [-n PKGNAME]
[-d PKGDESC] [-l LICENSE] [-u URL]
[-a | -C | -m | -p | -y | -e | -r] [-s] [-c]
[-f]
PKGNAME[-PKGVER] | SRCURL
- pkgname[-pkgver] | srcurl¶
set either the package name (optionally with the PKGVER at the end, e.g. ‘hello-world-1.0’) or the download link to the source archive
- -h, --help¶
show this help message and exit
- --folder <folder>¶
set postmarketOS aports folder (default: main)
- -n <pkgname>¶
set package name (only use with SRCURL)
- -d <pkgdesc>¶
set package description
- -l <license>¶
set package license identifier from <https://spdx.org/licenses/>
- -u <url>¶
set package URL
- -a¶
create autotools package (use ./configure …)
- -C¶
create CMake package (assume cmake/ is there)
- -m¶
create meson package (assume meson.build is there)
- -p¶
create perl package (assume Makefile.PL is there)
- -y¶
create python package (assume setup.py is there)
- -e¶
create python package (assume pyproject.toml is there)
- -r¶
create rust package (assume Cargo.toml is there)
- -s¶
use sourceforge source URL
- -c¶
copy a sample init.d, conf.d and install script
- -f¶
force even if directory already exists
pmbootstrap pkgrel_bump¶
usage: pmbootstrap pkgrel_bump [-h] [--dry] (--auto | packages ...)
- packages¶
- -h, --help¶
show this help message and exit
- --dry¶
instead of modifying APKBUILDs, exit with >0 when a package would have been bumped
- --auto¶
all packages which depend on a library which had an incompatible update (libraries with a soname bump)
pmbootstrap pkgver_bump¶
usage: pmbootstrap pkgver_bump [-h] [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
pmbootstrap pull¶
usage: pmbootstrap pull [-h]
- -h, --help¶
show this help message and exit
pmbootstrap qemu¶
usage: pmbootstrap qemu [-h] [--cmdline CMDLINE] [--image-size IMAGE_SIZE]
[--second-storage [IMAGE_SIZE]] [-m MEMORY] [-p PORT]
[--no-kvm] [--cpu QEMU_CPU] [--tablet]
[--display [{sdl,gtk,none}]] [--no-gl]
[--video QEMU_VIDEO] [--audio [{alsa,pa,sdl}]]
[--host-qemu] [--efi]
- -h, --help¶
show this help message and exit
- --cmdline <cmdline>¶
override kernel commandline
- --image-size <image_size>¶
set rootfs size, e.g. 2048M or 2G (default: 4G)
- --second-storage <image_size>¶
add a second storage with the given size (default: 4G), gets created if it does not exist. Use to test install from SD to eMMC
- -m <memory>, --memory <memory>¶
guest RAM (default: 1024)
- -p <port>, --port <port>¶
SSH port (default: 2222)
- --no-kvm¶
Avoid using hardware-assisted virtualization with KVM even when available (SLOW!)
- --cpu <qemu_cpu>¶
Override emulated QEMU CPU. By default, the host CPU will be emulated when using KVM and the QEMU default otherwise (usually a CPU with minimal features). A useful value is ‘max’ (emulate all features that are available), use –cpu help to get a list of possible values from QEMU.
- --tablet¶
Use ‘tablet’ instead of ‘mouse’ input for QEMU. The tablet input device automatically grabs/releases the mouse when moving in/out of the QEMU window. (NOTE: For some reason the mouse position is not reported correctly with this in some cases…)
- --display {sdl,gtk,none}¶
QEMU’s display parameter (default: gtk,gl=on)
- --no-gl¶
Avoid using GL for accelerating graphics in QEMU (use software rasterizer, slow!)
- --video <qemu_video>¶
Video resolution for QEMU (WidthxHeight@RefreshRate). Default is 1024x768@60.
- --audio {alsa,pa,sdl}¶
QEMU’s audio backend (default: none)
- --host-qemu¶
Use the host system’s qemu
- --efi¶
Use EFI boot (default: direct kernel image boot)
pmbootstrap repo_bootstrap¶
usage: pmbootstrap repo_bootstrap [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
repository
- repository¶
which repository to bootstrap (e.g. systemd)
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
pmbootstrap repo_missing¶
usage: pmbootstrap repo_missing [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
[--built] [--overview]
[package]
- package¶
only look at a specific package and its dependencies
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
- --built¶
include packages which exist in the binary repos
- --overview¶
only print the pkgnames without any details
pmbootstrap shutdown¶
usage: pmbootstrap shutdown [-h]
- -h, --help¶
show this help message and exit
pmbootstrap sideload¶
usage: pmbootstrap sideload [-h] [--host HOST] [--port PORT] [--user USER]
[--arch ARCH] [--install-key]
packages [packages ...]
- packages¶
- -h, --help¶
show this help message and exit
- --host <host>¶
ip of the device over wifi (defaults to 172.16.42.1)
- --port <port>¶
SSH port of the device over wifi (defaults to 22)
- --user <user>¶
use a different username than the one set in init
- --arch <arch>¶
skip automatic architecture deduction and use the given value
- --install-key¶
install the apk key from this machine if needed
pmbootstrap stats¶
usage: pmbootstrap stats [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
pmbootstrap status¶
usage: pmbootstrap status [-h]
- -h, --help¶
show this help message and exit
pmbootstrap test¶
usage: pmbootstrap test [-h] {apkindex_parse_all} ...
- -h, --help¶
show this help message and exit
pmbootstrap test apkindex_parse_all¶
usage: pmbootstrap test apkindex_parse_all [-h]
- -h, --help¶
show this help message and exit
pmbootstrap update¶
usage: pmbootstrap update [-h]
[--arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}]
[--non-existing]
- -h, --help¶
show this help message and exit
- --arch {armv7,aarch64,x86_64,riscv64,ppc64le,armhf,x86}¶
only update a specific architecture
- --non-existing¶
do not only update the existing APKINDEX files, but all of them
pmbootstrap work_migrate¶
usage: pmbootstrap work_migrate [-h]
- -h, --help¶
show this help message and exit
pmbootstrap zap¶
usage: pmbootstrap zap [-h] [--dry] [-hc] [-d] [-p] [-m] [-n] [-o] [-r] [-a]
- -h, --help¶
show this help message and exit
- --dry¶
instead of actually deleting anything, print out what would have been deleted
- -hc, --http¶
also delete http cache
- -d, --distfiles¶
also delete downloaded source tarballs
- -p, --pkgs-local¶
also delete all locally compiled packages
- -m, --pkgs-local-mismatch¶
also delete locally compiled packages without existing aport of same version
- -n, --netboot¶
also delete stored images for netboot
- -o, --pkgs-online-mismatch¶
also delete outdated packages from online mirrors (that have been downloaded to the apk cache)
- -r, --rust¶
also delete rust related caches
- -a, --all¶
delete everything, equivalent to: –http –distfiles –pkgs-local –pkgs-local-mismatch –netboot –pkgs-online-mismatch –rust
Requirements¶
pmbootstrap requires the following:
Linux distribution on the host system (x86, x86_64, aarch64 or armv7)
Note
Windows subsystem for Linux (WSL) does not work! Please use VirtualBox instead.
Linux kernel 3.17 or higher (oldkernel)
Note
Kernel version 5.8 - 6.0 might have issues with loop-devices
Python 3.10+
For python3 < 3.11: tomli
OpenSSL
git
ps
tar
sudo or doas