Arch RPI Image Prepare
This repository contains tools to create a 2GB SD card image based upon latest arch sources including all dependencies for PirateBox.
To create an image you will need to have the following tools available on your system:
- sudo environment
- losetup from util-linux 2.2 (at least)
On Debian based systems simply run:
sudo apt-get install pv qemu-system-arm qemu-user-static zip
Build The RPi Image
Running make will acquire all dependencies, install PirateBox and package the image for distribution:
By default this target builds the image for the RPi 1 to build the image for RPi 2 simply pass the ARCH variable:
There is a script in place that will build the images for RPi 1 and RPi 2, simply invoke:
Packaging the images
To zip the image simply invoke the dist target:
The versioning scheme of the image is like so:
Each parameter is described below.
Available make Parameters
You can pass different parameters to the build script, lets describe them briefly.
May be rpi or rpi2, defaults to rpi.
Number of the build. Leave empty for a date stamp. Defaults to date stamp
Used piratebox version in format x.y.z, defaults to devBuild
May be piratebox or librarybox, defaults to piratebox
The branch of pirtebox-ws used, defaults to master.
Accessing Image via chroot
To access the image via chroot simply mount the image by invoking
In case you need network access within the chroot mount proc to the mounted image:
sudo mount -t proc proc /mount/root/proc/
Then chroot into the environment:
sudo chroot /mount/root/
Do not forget to unmount the image when you are done:
Testing via Qemu
After the image is build it may be run in QEMU by invoking the helper script:
cd qemu-arm-rpi ./rpi.sh /path/to/piratebox.img
This only works with the RPi 1 image.
Dumping image to SD card
To dump the raw image to an SD card run:
sudo dd if=piratebox-rpi.img bs=2048 | pv | sudo dd of=/dev/mmcblk0 bs=2048 sync
Supported Platforms by image
There are only two images needed to support all different Raspberry Pi boards.
- Raspberry Pi 1 A
- Raspberry Pi 1 A+
- Raspberry Pi 1 B
- Raspberry Pi 1 B+
- Raspberry Pi Zero
- Raspberry Pi 2 B
Big shout outs to all the people helping with testing (in alphabetical order):