This is an old revision of the document!
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.
This tutorial is for the technical minded but should be simple to follow until we get a full install package/script working. 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. However, we can try and help in the forums. This has been recently tested on Jan 28, 2017 and working with PirateBox v1.1.2
0. PreSetup
- Having a Zsun running OpenWrt. I've used the hackerspace.pl method.
- microSD card (current data will be destroyed)
- Root password set.
- Connect to OpenWRT SSID and then connect via SSH to 192.168.1.1 as root
- Bunch of uci commands. Copy and paste each into the command line of the shell prompt.
uci set uhttpd.main.listen_http=9080 uci set uhttpd.main.listen_https=9443 uci commit uci set wireless.radio0.channel=auto uci set wireless.radio0.txpower=18 uci set wireless.radio0.country=00 uci set wireless.radio0.disabled=0 uci add wireless wifi-iface uci set wireless.@wifi-iface[-1].device=radio0 uci set wireless.@wifi-iface[-1].ssid='yourWifiName'
- Change “yourWifiName” before pressing enter
uci set wireless.@wifi-iface[-1].mode=sta uci set wireless.@wifi-iface[-1].network=wwan uci set wireless.@wifi-iface[-1].encryption=psk2 uci set wireless.@wifi-iface[-1].key='yourSuperSecurePass'
- Change “yourSuperSecurePass” before pressing enter
uci set wireless.@wifi-iface[-1].disabled=0 uci commit uci set wireless.@wifi-iface[0].ssid='Piratebox - Share Freely' uci commit uci set network.wwan=interface uci set network.wwan.proto=dhcp uci commit uci set firewall.@zone[1].network='wan wan6 wwan' uci commit /etc/init.d/network reload && /etc/init.d/firewall reload && wifi
- Press Enter (you will be disconnected)
- Reconnect to 'Piratebox - Share Freely' SSID and back to 192.168.1.1
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
1. Setup Mounts
Format SD card
- Copy and paste one line at a time
cd /tmp export LD_LIBRARY_PATH='/lib:/usr/lib:/tmp/lib:/tmp/usr/lib' opkg update && opkg install -d ram e2fsprogs mkdosfs fdisk wget http://raw.githubusercontent.com/TheExpertNoob/scripts/parts/parts chmod +x /tmp/parts ./parts /tmp/usr/sbin/mkfs.vfat /dev/sda1 /tmp/usr/sbin/mkfs.ext4 /dev/sda2
- copy and paste into command shell
mkdir -p /opt/piratebox/share uci add fstab mount uci set fstab.@mount[-1].target=/opt/piratebox/share uci set fstab.@mount[-1].device=/dev/sda1 uci set fstab.@mount[-1].fstype=vfat 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 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
- Reconnect to PirateBox - Share Freely
2. Install Packages
- Copy and paste each code block and reboot between installation blocks as noted. Due to “newer” packages, I have been running out of ram and I am having to split them up so the process doesn't kill itself while configuring. I will work on an alternate solution soon. (Testing on A5-V11)
opkg update && opkg install python lighttpd lighttpd-mod-cgi lighttpd-mod-redirect lighttpd-mod-alias lighttpd-mod-setenv lighttpd-mod-fastcgi
- Reboot
opkg update && opkg install perl perlbase-base perlbase-cgi perlbase-essential perlbase-file perlbase-bytes perlbase-config perlbase-data perlbase-db-file perlbase-digest perlbase-encode perlbase-encoding perlbase-fcntl perlbase-gdbm-file perlbase-integer perlbase-socket perlbase-time perlbase-unicode perlbase-unicore perlbase-utf8 perlbase-xsloader
- Reboot
opkg update && opkg install php5-cgi php5-fastcgi unzip minidlna
- Reboot
3. Set-up Piratebox, Imageboard & MiniDLNA
- Copy and paste each line separately.
cd /tmp wget http://downloads.piratebox.de/piratebox-ws_current.tar.gz tar xzf piratebox-ws_current.tar.gz cd piratebox mkdir -p /opt cp -rv piratebox /opt cp /opt/piratebox/src/openwrt.example.minidlna /etc/config/minidlna sed -i 's|DO_IFCONFIG="yes"|DO_IFCONFIG="no"|g' /opt/piratebox/conf/piratebox.conf sed -i 's|USE_APN="yes"|USE_APN="no"|g' /opt/piratebox/conf/piratebox.conf sed -i 's|NET=192.168.77|NET=192.168.1|g' /opt/piratebox/conf/piratebox.conf sed -i 's|DNSMASQ_INTERFACE="wlan0"|DNSMASQ_INTERFACE="br-lan"|g' /opt/piratebox/conf/piratebox.conf sed -i 's|DROOPY_CHMOD|#DROOPY_CHMOD|g' /opt/piratebox/conf/piratebox.conf sed -i 's|getenv = CDLL("libc.so.6").getenv|getenv = CDLL("libc.so.0").getenv|g' /opt/piratebox/bin/droopy /etc/init.d/lighttpd stop /etc/init.d/lighttpd disable /opt/piratebox/init.d/piratebox_alt start /opt/piratebox/bin/install_piratebox.sh /opt/piratebox/conf/piratebox.conf imageboard /opt/piratebox/bin/board-autoconf.sh
- Enter in a code for your imageboard.
/opt/piratebox/init.d/piratebox_alt stop uci set wireless.@wifi-iface[1].disabled=1 uci commit /etc/init.d/network reload && wifi
- Press Enter (you will be disconnected)
- Reconnect to 'Piratebox - Share Freely' SSID and back to 192.168.1.1
4. Create piratebox start
vi /etc/init.d/piratebox
- Copy the below code. In your shell window, press I to insert text then right-click or paste to insert. Be sure ALL of it has been pasted. Press ESC, SHIFT+Z, Shift+Z to save. (editor will auto close)
#!/bin/sh /etc/rc.common NAME=piratebox START=55 STOP=20 start() { /opt/piratebox/init.d/piratebox_alt start } stop() { /opt/piratebox/init.d/piratebox_alt stop }
5. Finalization
- Copy and paste each line separately.
chmod +x /etc/init.d/piratebox /etc/init.d/piratebox start /etc/init.d/piratebox enable reboot
6. Options are optional
~Sarge, RvB
6.1 Enable PHP
sed -i 's|#include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"|include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"|g' /opt/piratebox/conf/lighttpd/lighttpd.conf sed -i 's|doc_root =|;doc_root =|g' /etc/php.ini echo "<?php phpinfo() ?>" > /opt/piratebox/share/content/phpinfo.php /etc/init.d/piratebox reload
- test
http://piratebox.lan/content/phpinfo.php you should get a long php info page of stuff. If it works, you can delete the phpinfo page with this command.
rm /opt/piratebox/share/content/phpinfo.php
6.2 Enable IRC
- Copy and past each line
sed -i 's|ENABLE_IRC_SERVER="no"|ENABLE_IRC_SERVER="yes"|g' /opt/piratebox/conf/piratebox.conf /etc/init.d/piratebox restart
6.3 Change Upload Folder
mkdir -p /opt/piratebox/share/Shared/Uploaded sed -i 's|UPLOADFOLDER="$SHARE_FOLDER/Shared"|UPLOADFOLDER="$SHARE_FOLDER/Shared/Uploaded"|g' /opt/piratebox/conf/piratebox.conf /etc/init.d/piratebox restart
7. Fixes
- MiniDLNA
Minidlna config points to the wrong path. So we need to fix it
vi /etc/config/minidlna
Press I on the keyboard to get into edit mode
change the line that reads list media_dir '/mnt/usb/PirateBox/Shared/'
to list media_dir '/opt/piratebox/share/Shared/'
Press SHIFT+Z, SHIFT+Z on the keyboard to save.
/etc/init.d/minidlna reload
to save changes
Credits
- Matthias - for the Piratebox Project and updated code.
- 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.