- BerryBoot allows to put multiple operating systems on one sd card.
- the low power micro wifi adapter edimax ew-7811un is used in accesspoint mode
- PirateBox 1.01 exists as arch linux based raspberry pi image
Install BerryBox (reference)
- download latest berryboot zip archive from sourceforge
- reformat an sd card with one fat32 partition
- copy the contents of the zip archive into this partition
- attach screen, mouse and wired ethernet to raspberry pi and boot from sd card
- follow the instructions and install one “standard os”, e.g. “webserver”
Install PirateBox raspberry pi image
- download latest piratebox raspberry pi image (ArchLinuxARM) from downloads.piratebox.de (using a bit torrent client like deluge)
- this image has to modified on a linux machine (e.g. ubuntu 14.04 lts):
/lib and /sbin which are symbolic links in the image have to be changed to real directories (reference)
the resulting root partition has to be copied into a squash filesystem (reference) - unzip the image and use kpartx as helper to mount the second partition
kpartx -av filename_of_unpacked_image
mount /dev/mapper/loopNp2 your_mountpoint (with N=0, 1, 2 … as displayed by kpartx - use mc, navigate to the root directory of the mounted image.
i) Remove the symlinks lib, binĀ and sbin.
ii) Move usr/lib to the root directory of the image; also move usr/bin to the root directory of the image.
iii) Inside the root directory of the image rename bin to sbin and make a symlink from sbin to bin (ln -s sbin bin).
iv) inside usr/ create symlinks for lib, bin and sbin to the root directory (ln -s bin ../bin; ln -s sbin ../sbin; ln -s lib ../lib) - create the squash filesystem image (excluding the kernel modules because the kernel of BerryBoot is used)
mksquashfs your_mountpoint archlinux.img -comp lzo -e lib/modules - copy archlinux.img to an usb stick, plug this usb stick into the usb port of the raspberry pi running berryboot “edit boot”
and copy archlinux.img to the sd card (using a long mouse click on “Add OS”) - set archlinux as default boot entry and exit the boot menu configuration
- the raspberry pi should boot to the arch linux boot prompt (alarmpi: user: root; password: root)
Configure PirateBox with edimax ew-7811un wifi as access point (reference)
- replace /usr/bin/hostapd by this version (reference)
- use editor nano and change the line driver=… in /opt/piratebox/conf/hostapd.conf
driver=rtl871xdrv - edit /opt/piratebox/www/board/config.pl and uncomment and set
ADMIN_PASS (=forum administrator password) and SECRET (seed for cryptography) - workaround: piratebox.service (version 2014-10-10) needs to be started with a delay (else it fails to start hostapd):
use nano and create /etc/systemd/system/piratebox.timer:
[Unit]
Description=piratebox delayed start
[Timer]
OnBootSec=1min
Unit=piratebox.service
[Install]
WantedBy=multi-user.target - activate this timer with
systemctl enable piratebox.timer - test if piratebox runs with
systemctl piratebox status
and try to rerun it with
systemctl piratebox stop
systemctl piratebox start
systemctl piratebox status - connect to piratebox access point; reboot; wait about 2 minutes; try again to connect
- use passwd to set your own root password
- reboot without wired lan connection and without keyboard, mouse and monitor
For a clean shutdown without keyboard ssh could be used (use hostname piratebox.lan)
To upload files from ios other than photos and videos from photo roll and camera:
- install icab-mobile (has an affordable price)
- on the settings page of icab-mobile set Network/Upload to icab mobile mode (defaults to ios mode)
- even with this setting the iframed upload page uses ios upload mode, but
http://piratebox.lan:8080
opened as a separate page (and not as iframe) allows to upload files (which have been previously downloaded by icab-mobile) - documents displayed in safari can be transferred to icab-mobile download folder using “open with …” / icab mobile;
then icab mobile asks if the document should be downloaded.