This is an old revision of the document!


startSectionEdit: $data "plugin_wrap_start" is NOT an array! One of your plugins needs an update.
startSectionEdit: $data "plugin_wrap_end" is NOT an array! One of your plugins needs an update.
startSectionEdit: $data "plugin_wrap_start" is NOT an array! One of your plugins needs an update.
startSectionEdit: $data "plugin_wrap_end" is NOT an array! One of your plugins needs an update.

Piratebox on the Zsun

Like many of us have read the article on slashdot about the Openwrt capabilities of the Zsun Wifi card Reader. The idea of having PirateBox running on the smallest device yet made me order one from China. After many hours of installing, troubleshooting, resetting e.d. I now have a complete working Piratebox installation. I would like to share my installation scripts in order to let you install your own.

OpenWrt (15.05 “Chaos Calmer”) and PirateBox (1.0.7) were used in the making of this tutorial.

DISCLAIMER: NOBODY will take responsibility or be liable for anything you do to your zsun. If you brick it trying these procedures, YOU are solely responsible for your actions. YOU HAVE BEEN WARNED.

0. Prerequisite (manual)

  • Having a Zsun running OpenWrt. I've used the hackerspace.pl method.
  • 1 SD card with 2 primary partitions. For the first partition I've used vfat (size:remaining), the second is ext4 (size:1GiB) Setup based on link. This can be done on any linux machine with Gparted.
  • Download and extract meduza's custom zsun install package with modified ext config to the vfat partition of the SDcard (will become sda1).
  • Root password set.
  • Changed the default uhhtpd (LuCI) ports to 9080 and 9443.
vi /etc/config/uhttpd
/etc/init.d/uhttpd reload
  • Get internet working on the zsun.

Adjust the wan config zone in /etc/config/firewall like so:

config zone
	option name		wan
	option network		'wan wan6 wwan'
	option input		REJECT
	option output		ACCEPT
	option forward		REJECT
	option masq		1
	option mtu_fix		1

/etc/config/wireless should look like so (adjust essids and encryption as you need it):

config wifi-device 'radio0'
	option type 'mac80211'
	option hwmode '11g'
	option path 'platform/ar933x_wmac'
	option htmode 'HT20'
	option disabled '0'
	option channel 'auto'
	option txpower '18'
	option country '00'

config wifi-iface
	option ssid 'OpenWrt'
	option device 'radio0'
	option mode 'ap'
	option network 'lan'
	option encryption 'none'

config wifi-iface
	option ssid 'yourWifiName'
	option device 'radio0'
	option mode 'sta'
	option network 'wwan'
	#option encryption 'none'
	option encryption 'psk2'
	option key 'yourSuperSecurePass'

Allow the wwan to get it's IP via DHCP by adding the following to /etc/config/network:

config interface 'wwan'
	option proto 'dhcp'
reboot
  • Reconnect to OpenWRT

An additional wireless connection with your own WiFi is made in 'sta' mode. Because OpenWrt (and PirateBox) are using the IP 192.168.1.1 (sub-netmask /24) the network (WiFi) you are connecting to can't use the same sub-net mask.

  • Verify your internet connection using
ping google.com
opkg update
  • Mount the first partition of the SD card to gain access to the scripts.
mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1

1. PreSetup (script)

  • There is a small script with the following lines
  • cd /mnt/sda1/zsun
  • Make it executable and run script ./1.preSetup.sh
mkdir /mnt/ext
mkdir /mnt/usb
mkdir /mnt/sda2 
mount /dev/sda2 /mnt/sda2
tar -C /overlay -cvf - . | tar -C /mnt/sda2 -xf -
uci add fstab mount
uci set fstab.@mount[-1].target=/overlay
uci set fstab.@mount[-1].device=/dev/sda2
uci set fstab.@mount[-1].fstype=ext4
uci set fstab.@mount[-1].options=rw,sync
uci set fstab.@mount[-1].enabled=1
uci set fstab.@mount[-1].enabled_fsck=0
uci commit
  • Reboot

2. ApplySetup (script)

  • remount the vfat partition
mount /dev/sda1 /mnt/sda1
cd /mnt/sda1/zsun
  • Make it executable and run script ./2.applySetup.sh
  • This script includes the following lines:
cp -r ./extendRoot/etc/* /etc/
chmod o+w /etc/init.d/ext
cp -r ./extendRoot/usr/* /usr/
mount /dev/sda2 /mnt/usb
cp -r ./piratebox.zip/install /mnt/usb/
gzip -dc /mnt/usb/install/OpenWRT_ext4_50MB.img.gz > /mnt/usb/OpenWRT.img
/etc/init.d/ext init
  • Manually type this, but im not sure if it is necessary:
source /etc/profile

3. PirateboxInstall (script)

  • Make it executable and run script ./3.installPiratebox.sh
  • This script includes the following lines:
echo "src/gz piratebox http://stable.openwrt.piratebox.de/all/packages" >> /etc/opkg.conf
sed 's|option check_signature 1||g' -i /etc/opkg.conf
rmdir /mnt/ext/usr
ln -s /etc /mnt/ext/
ln -s /lib /mnt/ext/
ln -s /tmp /mnt/ext/
ln -s /usr /mnt/ext/
opkg update
opkg -d ext install piratebox

4.PirateboxInstall (manual)

  • After firewall configuration network has been disconnected.
  • Set fixed ip on client pc and finish install
    • IP: 192.168.1.2
    • SN: 255.255.255.0
    • GW: 192.168.1.1
  • Log back into the zsun
/etc/init.d/piratebox init
  • If you get a losetup error, run it again.
  • Next run:
/etc/init.d/piratebox start

Post piratebox install config

date
  • Adjust if needed.
date YYYYMMDDHHMM

Install timesave

/opt/piratebox/bin/timesave.sh  /opt/piratebox/conf/piratebox.conf install
/etc/init.d/piratebox timesave

Get shoutbox working

chmod a+w /opt/piratebox/share/tmp
/etc/init.d/piratebox enable

Install Minidlna

opkg update
opkg -d ext install minidlna
cp /opt/piratebox/src/openwrt.example.minidlna /mnt/ext/etc/config/minidlna
/etc/init.d/minidlna start
/etc/init.d/minidlna enable

Install Imageboard

opkg -d ext install piratebox-mod-imageboard
  • if you get and error about failing to get dependencies * libc * libc *, try this:
cd /tmp
wget http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/packages/base/libc_0.9.33.2-1_ar71xx.ipk
opkg -d ext install libc_0.9.33.2-1_ar71xx.ipk
  • Then try installing the imageboard again.

post install config imageboard

  • This is a password YOU set for the imageboard.
/opt/piratebox/bin/board-autoconf.sh
  • Verify the password set correctly
vi /opt/piratebox/www/board/config.pl

(CTRL+Z) to exit vi

Turn off Internet connection

vi /etc/config/wireless
config wifi-iface
	option network 'wwan'
....	
	option disabled '1'

All done!

reboot
  • Return your Client PC back to its original IP settings.

Credits

  • Matthias - for the Piratebox Project.
  • meduza - for the majority of the scripting for the Zsun.
  • stylesuxx - for the wifi configuration and troubleshooting.
  • TheExpertNoob - for troubleshooting and this wiki guide.

If I forgot anyone else, PM me.