# HushBox The idea is to get rid of both hardware and software backdoors, install all necessary tools on a Pi 4 and sell it as a plug-and-play device. Including shipping cost the total estimated price is 250 USD, we accept HUSH only. If you have [Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b) already you can just follow the guide. ## HushBox includes the following: * [Raspberry Pi 4 model b](https://www.raspberrypi.com/products/raspberry-pi-4-model-b) with 4GB of RAM. * [Devuan GNU+Linux](https://arm-files.devuan.org/RaspberryPi%20Latest%20Builds), a fork of Debian without [systemd](https://ebin.city/~werwolf/posts/systemd-sucks), but [sysvinit](https://www.devuan.org/os/init-freedom). * [Hush](https://hush.land) cryptocurrency and [HushChat](https://git.hush.is/hush/hushchat). * Hush full node [software](https://git.hush.is/hush/hush3). *([cross compiled from amd64 to aarch64](https://git.hush.is/onryo/hush-box/issues/2#issuecomment-2105))* * The Invisible Internet Project [I2P](https://geti2p.net/en/). (*in progress*) HushBox | SilentDragonLite :-------------------------:|:-----------------------------: ![](files/HushBox_08.jpg) | ![](files/startupGIF_03.png) # Devuan GNU+Linux Download the latest image and its hash from [arm-files.devuan.org](https://arm-files.devuan.org/RaspberryPi%20Latest%20Builds) ``` curl https://arm-files.devuan.org/RaspberryPi%20Latest%20Builds/rpi-4-.zip --output devuan.zip curl https://arm-files.devuan.org/RaspberryPi%20Latest%20Builds/rpi-4-.zip.sha256sum --output sha256sum ``` Verify the integrity of the file by comparing the hash value. ``` cat sha256sum sha256sum devuan.zip unzip devuan.zip ``` MicroSD card is needed to image the file, change `5.10.82-v8-ext4-2021-12-05` and `mmcblk1` to whatever you have, use `ls` and `lsblk` to check it. Unmount SD card and if it has more than one partition, you will need to unmount each partition. * *Substitute the microSD for a real USB hard drive as the Raspberry Pi 4 8GB model supports booting directly off USB. If you're using a Pine64 Rock64 board, then it gets more complicated and requires you to flash some new firmware to enable USB boot.* ``` sudo umount /dev/mmcblk1 sudo dd if=rpi-4-devuan-beowulf-5.10.82-v8-ext4-2021-12-05.img of=/dev/mmcblk1 ``` Now [install](https://www.devuan.org/os/documentation/dev1fanboy/en/minimal-xfce-install.html) the desktop environment, [XFCE](https://www.xfce.org/about) in this case. ``` sudo apt-get install xfce4-panel xfdesktop4 xfwm4 xfce4-settings xfce4-session xfce4-terminal xfce4-appfinder xfce4-power-manager thunar ristretto blackbird-gtk-theme papirus-icon-theme slim xinit firefox-esr fonts-liberation webext-ublock-origin -y ``` (Optional) Install the necessary packages to support auto-mounting of drives. ``` sudo apt-get install thunar-volman gvfs policykit-1 -y ``` Run update-alternatives to set the x-session-manager to xfce4-session. ``` sudo update-alternatives --config x-session-manager ``` Start XFCE, you run it only once. ``` startxfce4 ``` (Optional) To enable Mobile tether you need to uncomment `allow-hotplug usb0` and `iface usb0 inet dhcp` strings: ``` sudo vi /etc/network/interfaces ``` ``` ### Mobile tether allow-hotplug usb0 iface usb0 inet dhcp ``` # Notes `xfce4-terminal --hide-menubar --hide-scrollbar --hide-toolbar` # [Compile Qt 5.15.2](https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/compile-qt5-from-source.md) from source Remove & purge all Qt packages ``` sudo apt -y remove qt5* libqt5* qtcreator && sudo apt autoremove -y ``` Download Qt 5.15.2 Source to qt5-sources folder ``` mkdir qt5-sources && cd qt5-sources && mkdir build-shadow wget https://download.qt.io/official_releases/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz ``` Verify MD5 hash, should be e1447db4f06c841d8947f0a6ce83a7b5 ``` md5sum qt-everywhere-src-5.15.2.tar.xz ``` Un-tar Qt5 archive & move into build-shadow directory to configure your Qt 5.15.2 ``` tar xf qt-everywhere-src-5.15.2.tar.xz cd build-shadow ``` Install Qt5 Minimal Dependencies ``` sudo apt update sudo apt install build-essential libfontconfig1-dev libdbus-1-dev libfreetype6-dev libicu-dev libinput-dev libxkbcommon-dev libsqlite3-dev libssl-dev libpng-dev libjpeg-dev libglib2.0-dev -y ``` (Optional) Install VC4 Drivers for RPi 4 type devices (i.e. cortex-a53 & cortex-a72) ``` sudo apt install libgles2-mesa-dev libgbm-dev libdrm-dev -y ``` Install X11 Support Dependencies ``` sudo apt install libx11-dev libxcb1-dev libxext-dev libxi-dev libxcomposite-dev libxcursor-dev libxtst-dev libxrandr-dev libfontconfig1-dev libfreetype6-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxkbcommon-dev libxkbcommon-x11-dev -y ``` Configure Qt 5.15.2 ``` ../qt-everywhere-src-5.15.2/configure -v -bundled-xcb-xinput -opensource -confirm-license -release -ssl -glib -no-feature-geoservices_mapboxgl -qt-pcre -nomake examples -no-compile-examples -nomake tests -reduce-exports -system-freetype -fontconfig -qpa xcb ``` Make the configuration (`-j 4` is number of cpus you want to use) ``` make -j 4 ``` Install Qt5 into: (default) /usr/local/ ``` sudo make install ``` Update profile to know where Qt5.15.2 bins are ``` nano ~/.bashrc ``` Add this at the bottom of your .bashrc file. ``` # set PATH for Qt 5.15.2 export PATH="/usr/local/Qt-5.15.2/bin:$PATH" ``` Reload your ~/.bashrc file & create a new shell window. ``` source ~/.bashrc exit ``` Verify Qt 5.15.2 has been installed ``` qmake --version QMake version 3.1 Using Qt version 5.15.2 in /usr/local/Qt-5.15.2/lib ``` # HushChat To use HushChat we need to install Rust first. ``` curl --proto '=https' --tlsv1.3 -sSf https://sh.rustup.rs | sh -s -- -y && exit ``` Then install SilentDragonLite. ``` git clone https://git.hush.is/hush/SilentDragonLite.git && cd SilentDragonLite/util && ./install.sh ```