Table of Contents
Hardware
- Mainboard: Odroid-H2 Rev B+ https://wiki.odroid.com/odroid-h2/hardware
- CPU compare with Odroid-M1 https://www.cpubenchmark.net/compare/ROC-RK3568-PC-HDMI-(Android)-vs-Intel-Celeron-J4105/4752vs3159
- Memory: 1×260Pin SO-DIMM 8GB DDR4 2400 CL14 1,2V: HX424S14IB2/8 2. Slot available (max 2×16GB DDR4)
- 8GB eMMC 5.0 (read rate ~130MB/s)
- M.2 PCIe 2.0 x4 slot (support NGFF-2280): Kingston SV1 NVME 250GB (not compatible with M.2 SATA SSD)
- some HDDs (1x 12TB will be connected, 2 SATA-Ports available)
Powerconsumption
BIOS: (Odroid H2, SSD X250 128GB, 8GB Memory DDR4 2400 CL14 “HX424S14IB2/8”; HDMI on, Ethernet 1x, 1x USB-Keyboard):
7,5W
Idle: (Odroid H2, SSD X250 128GB, 8GB Memory DDR4 2400 CL14 “HX424S14IB2/8”; HDMI on, Ethernet 1x, 1x USB-Keyboard):
~5W
BIOS configuration
For booting fom emmc: XHCI enabled
NixOS crypt setup
Encrypted NixOS via standard installer by Nov.2022 (v22.05) but changed ext4 root filesystem to btrfs after installation.
Before reboot you can unmount the new installation-system partitions. Then you can simply convert the ext4-filesystem with
btrfs-convert /dev/mapper/luks-btrfs
With blkid you can get the new UUID for the converted logical volume and copy in hardware-configuration.nix file:
hardware-configuration.nix
fileSystems."/" = { device = "/dev/disk/by-uuid/d11cd5b3-8a41-42d0-b671-04efbdd8b18b"; fsType = "btrfs"; options = [ "subvolid=5" "subvol=/" ]; neededForBoot = true; }; boot.initrd.luks.devices."luks-btrfs".device = "/dev/disk/by-uuid/085ffcdf-5a5c-43fc-9231-eed8b5d0bbd4";
changed also
configuration.nix
added here also (maybe not needed?)
boot.initrd.supportedFilesystems = ["btrfs"];
After changing the config, you have to run nixos-rebuild boot and nixos-rebuild switch
Benchmarks
[picloud@picloud2:~]$ sudo nix-shell -p hdparm --run "hdparm -Tt /dev/mapper/luks-btrfs" /dev/mapper/luks-btrfs: Timing cached reads: 8778 MB in 1.99 seconds = 4411.76 MB/sec Timing buffered disk reads: 1032 MB in 3.00 seconds = 343.78 MB/sec [picloud@picloud2:~]$ sudo nix-shell -p hdparm --run "hdparm -Tt /dev/nvme0n1p2" /dev/nvme0n1p2: Timing cached reads: 6826 MB in 1.99 seconds = 3426.54 MB/sec Timing buffered disk reads: 1094 MB in 3.00 seconds = 364.46 MB/sec [picloud@picloud2:~]$ sudo nix-shell -p hdparm --run "hdparm -Tt /dev/mmcblk0p2" /dev/mmcblk0p2: Timing cached reads: 8476 MB in 1.99 seconds = 4259.80 MB/sec Timing buffered disk reads: 2 MB in 0.03 seconds = 74.21 MB/sec [picloud@picloud2:~]$ sudo cryptsetup benchmark # Die Tests sind nur annähernd genau, da sie nicht auf den Datenträger zugreifen. PBKDF2-sha1 840205 Iterationen pro Sekunde für 256-Bit-Schlüssel PBKDF2-sha256 1394382 Iterationen pro Sekunde für 256-Bit-Schlüssel PBKDF2-sha512 542741 Iterationen pro Sekunde für 256-Bit-Schlüssel PBKDF2-ripemd160 375564 Iterationen pro Sekunde für 256-Bit-Schlüssel PBKDF2-whirlpool 273636 Iterationen pro Sekunde für 256-Bit-Schlüssel argon2i 4 Iterationen, 604968 Speicher, 4 parallele Threads (CPUs) für 256-Bit-Schlüssel (Zieldauer 2000 Millisekunden) argon2id 4 Iterationen, 601444 Speicher, 4 parallele Threads (CPUs) für 256-Bit-Schlüssel (Zieldauer 2000 Millisekunden) # Algorithmus | Schlüssel | Verschlüsselung | Entschlüsselung aes-cbc 128b 654,6 MiB/s 1433,1 MiB/s serpent-cbc 128b 49,9 MiB/s 150,8 MiB/s twofish-cbc 128b 106,7 MiB/s 120,6 MiB/s aes-cbc 256b 511,2 MiB/s 1222,6 MiB/s serpent-cbc 256b 50,0 MiB/s 150,8 MiB/s twofish-cbc 256b 106,6 MiB/s 120,7 MiB/s aes-xts 256b 1294,1 MiB/s 1293,4 MiB/s serpent-xts 256b 149,6 MiB/s 148,7 MiB/s twofish-xts 256b 116,2 MiB/s 117,3 MiB/s aes-xts 512b 1127,2 MiB/s 1131,4 MiB/s serpent-xts 512b 148,7 MiB/s 148,5 MiB/s twofish-xts 512b 115,8 MiB/s 117,0 MiB/s