Odroid N1 as NAS in a 19″ rack

There is some months ago now, I was offered an ODROID N1 by Hardkernel for a debug party. Being short in time, I could not publish something earlier. But here it is, I used this SBC as a NAS to replace my Banana PI based solution.

The ODROID N1, is a lot more powerfull and I plan to use it for more than NAS activities in the future (I think about a custom docker registry and an ELK server).

For now, let’s focus on what I use it for now : a very good NAS !

Hardware

19″ rack mount case

I put all my servers (and my smartpower) in a 19″ cabinet. This NAS makes no exception. To do so, I created a custom enclosure for the Odroid N1.

Files can be found on Thingiverse. I printed it in three parts so it fitted my 20x20x20 printer. However, the original Freecad source file is available.

The enclosure provides the following:

one 5.25″ bay, for a removable 3.5″ HDD for example

one 3.5″ bay for an full size HDD

enough space behind the Odroid N1 to put a 2.5″ device (e.g: a SSD)

2 holes for 40 mm fan

some space for 2 leds (e.g: HDD activity leds)

As seen in the photo below, I used the originals skrews and glued them on the printed enclosure to fix the Odroid N1:

Important : gpio number can be found in file include/dt-bindings/pinctrl/rk.h. In my case, GPIO 45 and 50 are named GPIO1_B.5 and GPIO1_C.2, so the corresponding numbers for the devicetree are GPIO1_B5 and GPIO1_C2 in the file rk.h.

Initialization

Install archlinux

I received the Odroid N1 with a 16GB emmc module containing a Debian Linux. Being a fan of Archlinux I replaced the installed OS.

The is no official support form Archlinuxarm, but the Odroid N1 uses the same SOC than the supported ChromeBook (RK3399). So the main steps was to keep the kernel and modules and replace the root file system with archlinuxarm’s 64 bits root file-system archive.

Form another computer, I mounted the emmc module:

cp-R/lib/modules /some/safe/location
rm-Rf/
bsdtar archlinuxarm

As there is no official support from archlinuxarm, the kernel should never be updated though pacman. So I added the following to /etc/pacman.conf: