I bought the Odroid HC4 to use as an offsite backup target for my server. I couldn't really trust the toaster-like case, however, so I decided to model a new case for it.
You'll need:
The photos should already be explanatory, except for the fan: I used a NF-B9 PWM I had lying around from an NH-L12, with 2 low noise adapters (which also serves as extensions). In this case, or with any 12v fan, you can solder the positive to TP11 and GND to TP2. If you have to buy one, I'd suggest a Noctua NF-A9 5V PWM so you can let the board control it.
I wanted to use ZFS if possible, to sync snapshots from my TrueNAS box instead of using simple rsync. I also wanted an easy way to set everything up and manage it.
I decided on OpenMediaVault as the solution, with the ZFS plugin.
Install Armbian Buster as base, you can find it here: https://www.armbian.com/odroid-hc4/#kernels-archive-all
Follow OMV installation from the wiki: https://openmediavault.readthedocs.io/en/latest/installation/on\_debian.html
If you try to install the ZFS community plugin now, you'll get errors saying it cannot satisfy dependencies. This is basically because the situation on ARM is too complicated to handle every board, so we'll have to install the requirements ourselves.
apt install linux-headers-common-${uname -r}
reboot
apt install spl-dkms zfs-dkms lz4
systemctl daemon-reload
modprobe zfs
aptitude install zfsutils-linux # let it install the version it wants
You should now be able to install the plugin from the GUI, so go ahead and do it.
Create the pool using something like the following (replace disk serials with yours):
zpool create \
-o ashift=12 \
-o autoexpand=on \
-O atime=off \
-O compression=lz4 \
-m /mnt/obox \
obox \
mirror \
ata-WDC_WD30EFRX-68AX9N0_WD-WMC1T0638111 \
ata-WDC_WD30EFRX-68EUZN0_WD-WMC4N0M5R0YP
This only applies if you used a 5V fan connected to the PWM connector of the original one. You can use fan control, following this guide: https://docs.linuxfactory.or.kr/guides/sensors.html?highlight=fancontrol#fanspeed-control-using-fancontrol
Copy openvpn configuration files (.ovpn + .p12 + .key) to /etc/openvpn.
Rename the .ovpn file to .conf
Edit the .conf file, changing
auth-users-pass
to
auth-users-pass .secrets
Create a /etc/openvpn/.secrets file and put username and password inside (one per line, just username and password).
chmod 600 .secrets
# replace whatever with the name of your .conf file
systemctl enable [email protected]
reboot
2022-02-06: Added a version for 2.5 inches drives (should fit all HDD thicknesses). This is untested, if you try it, please report on it
Update 2022-02-12: model links:
- [3.5in](https://cad.onshape.com/documents/9b00b8b64f535e96004054ab/w/dde333186904b29c6b9b02dd/e/0456db18e2ccbd8574a2c04c?renderMode=0&uiState=6207931a62b38911ca685128)
- [2.5in](https://cad.onshape.com/documents/636743d17a48f047c8554274/w/081727aec42d4c164d3cef98/e/6c414f8908b636a907bc2696?renderMode=0&uiState=6207a3774929bd49602b3fb8)
The author marked this model as their own original creation. Imported from Thingiverse.