Eric Radman : a Journal

Protectli Appliances

Protectli Vault Appliances are built to a higher standard than any other small computer I have used tried in recent years.

The UART is built in, connect using a USB-C cable

uftdi0 at uhub1 port 5 configuration 1 interface 0 "FTDI FT232R USB UART" rev 2.00/6.00 addr 6
ucom0 at uftdi0 portno 1: usb1.0.00005.0

Connect using

cu -s 115200 -l cuaU0

VP2430

✓ Removable heatsinks allow direct cooling to memory and M.2 slots
✓ SATA and SATA power, room for 15mm 2.5" drive
✗ Four USB TypeA ports are 2.0, and not detected by OpenBSD

With the addition of a M.2 NVME to SATA adaptor, a total of five SATA disks can be connected.

ahci0 at pci0 dev 23 function 0 "Intel ADL-N AHCI" rev 0x00: msi, AHCI 1.3.1
ahci0: PHY offline on port 0
scsibus1 at ahci0: 32 targets
ahci1 at pci5 dev 0 function 0 vendor "ASMedia", unknown product 0x1064 rev 0x02: msi, AHCI 1.3.1
ahci1: port 3: 6.0Gb/s
scsibus2 at ahci1: 32 targets

Boot Device

Depending on the OS, the built-in EMMC storage may not be the first first device.

OpenBSD sd1 (with NVMe SSD installed)
FreeBSD mmcsd0
Linux mmcblk0

Having a disk to install the operating system, is very useful, since it allows an unattended installation without wiping the data disk.

Linux / iPXE Chainload

Configure dhcpd(8) to supply an .ipxe file to chainload

next-server 192.168.0.2;

host V1211-N5105 {
    hardware ethernet 64:62:66:2f:9d:de;
    fixed-address 192.168.0.33;
    filename "chainload/v1211-n5105.ipxe";
    option host-name "v1211-n5105";
}

Include a kernel option to switch the console to ttyS0

#!ipxe
set base-url http://192.168.0.2/pub

kernel /fedora43/vmlinuz initrd=initrd.img ip=dhcp inst.repo=${base-url}/fedora43 inst.ks=${base-url}/fedora43-srv-ks.cfg console=ttyS0,115200n8
initrd /fedora43/initrd.img
boot

See also Automated RHEL/Fedora Installation.

OpenBSD

At the boot prompt switch to the console

stty com0 115200
set tty com0
boot

As of OpenBSD 7.8, iPXE can load BOOTX64.EFI but the loader is not able to fetch images over TFTP. Start an autoinstall by booting from USB or by patching the EFI loader.

FreeBSD

The serial console can be modified on the boot medium to select serial console

mount /dev/da0s2a /mnt/
vim /mnt/boot/loader.conf

And set the

console="comconsole"
comconsole_speed="115200"

FreeBSD ≥ 15.0 is required for compatibility with this UEFI implementation. A TTY is not displayed on the serial console, so HDMI and USB keyboard are still be required.

efibootmgr(8) on FreeBSD may not be able to create an EFI boot entry. If this is the case, we boot off of the EDK II EFI shell (found on Linux distributions in the edk2-shell-x64 package.)

iPXE> dhcp
iPXE> chain tftp://192.168.0.2/Shell.efi
FS1:\> bcfg boot dump
FS1:\> bcfg boot mv 03 00
FS1:\> reset