HELP
OS installation
Put nodexOS on a new BeagleBone, Raspberry Pi, Variscite or ESP32 board, or Nodex Nomad on an x86_64 PC.
Write nodexOS to an SD card
A new board needs nodexOS once. After that, OS and supervisor updates arrive over the network, and the board rolls back on its own if an update doesn't boot.
- Download the image
In your fleet, click Add device, pick the device type and download nodexOS. The
nodexa-os-<version>-<board>.wic.zipfile already carries the fleet's provisioning, and the WiFi network if you entered one. - Write it to a microSD card
The easiest way is balenaEtcher (Windows, macOS, Linux): pick the
.wic.zipas-is, pick the card, and flash. From a terminal instead:macOS
diskutil list # find the card, e.g. /dev/disk4 diskutil unmountDisk /dev/disk4 unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/rdisk4 bs=4m status=progress sync && diskutil eject /dev/disk4Linux
lsblk # find the card, e.g. /dev/sdb sudo umount /dev/sdb?* unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/sdb bs=4M status=progress conv=fsyncddoverwrites the whole disk you give it. Check the device name indiskutil listorlsblktwice; picking your computer's own disk erases it. - Boot the board from the card, as described below
- Wait for the device to appear in the fleet's device list
This takes a few minutes and needs Ethernet with DHCP, or the WiFi network you set when downloading.
Boot a BeagleBone Black
The board has its own eMMC storage. nodexOS boots once from the SD card, copies itself onto the eMMC, and from then on runs from the eMMC without the card.
- Insert the card, hold the S2 (boot) button and power on
Let go once the LEDs start. Without S2 the board boots whatever is already on its eMMC.
- Wait while it copies itself to the eMMC
This starts on its own. USR2 blinks while copying and goes solid when it's done; USR0 blinks whenever nodexOS is running. The board then powers itself off.
- Remove the SD card and power on again
No need to hold S2. The board now boots nodexOS from the eMMC.
Any board that boots from this card has its eMMC overwritten without asking. Don't put the card into a board you want to keep as it is.
Serial console
Connect a USB-to-TTL (3.3V) adapter to the debug UART header at 115200 8N1. On macOS the adapter shows up as /dev/tty.usbserial-*.
If the eMMC copy doesn't seem to happen
systemctl status nodexa-flash-emmc.service --no-pager
journalctl -u nodexa-flash-emmc.service --no-pager
ls /var/lib/nodexa/nodexa-emmc-flash/done # exists once the copy has finished To copy again, delete that done file, or run nodexa-flash-emmc by hand (nodexa-flash-emmc --help lists its options).
Check the device
Log in on the serial console or the board's terminal in the dashboard, then:
cat /etc/os-release # nodexOS version
systemctl status nodexa-agent --no-pager # supervisor running
journalctl -u nodexa-agent -n 50 # registering with the cloudMore in Debugging.
Write nodexOS to an SD card
A new board needs nodexOS once. After that, OS and supervisor updates arrive over the network, and the board rolls back on its own if an update doesn't boot.
- Download the image
In your fleet, click Add device, pick the device type and download nodexOS. The
nodexa-os-<version>-<board>.wic.zipfile already carries the fleet's provisioning, and the WiFi network if you entered one. - Write it to a microSD card
The easiest way is balenaEtcher (Windows, macOS, Linux): pick the
.wic.zipas-is, pick the card, and flash. From a terminal instead:macOS
diskutil list # find the card, e.g. /dev/disk4 diskutil unmountDisk /dev/disk4 unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/rdisk4 bs=4m status=progress sync && diskutil eject /dev/disk4Linux
lsblk # find the card, e.g. /dev/sdb sudo umount /dev/sdb?* unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/sdb bs=4M status=progress conv=fsyncddoverwrites the whole disk you give it. Check the device name indiskutil listorlsblktwice; picking your computer's own disk erases it. - Boot the board from the card, as described below
- Wait for the device to appear in the fleet's device list
This takes a few minutes and needs Ethernet with DHCP, or the WiFi network you set when downloading.
Boot a Raspberry Pi 4
- Insert the card and power on
The Pi 4 boots from the microSD card by default, so there's no button or switch to set.
- Keep the card in
The Pi runs nodexOS from the card, so leave it in the board.
Use a good-quality card and the official power supply. Most unexplained reboots and corrupted cards come from a weak supply.
Check the device
Log in on the serial console or the board's terminal in the dashboard, then:
cat /etc/os-release # nodexOS version
systemctl status nodexa-agent --no-pager # supervisor running
journalctl -u nodexa-agent -n 50 # registering with the cloudMore in Debugging.
Write nodexOS to an SD card
A new board needs nodexOS once. After that, OS and supervisor updates arrive over the network, and the board rolls back on its own if an update doesn't boot.
- Download the image
In your fleet, click Add device, pick the device type and download nodexOS. The
nodexa-os-<version>-<board>.wic.zipfile already carries the fleet's provisioning, and the WiFi network if you entered one. - Write it to a microSD card
The easiest way is balenaEtcher (Windows, macOS, Linux): pick the
.wic.zipas-is, pick the card, and flash. From a terminal instead:macOS
diskutil list # find the card, e.g. /dev/disk4 diskutil unmountDisk /dev/disk4 unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/rdisk4 bs=4m status=progress sync && diskutil eject /dev/disk4Linux
lsblk # find the card, e.g. /dev/sdb sudo umount /dev/sdb?* unzip -p nodexa-os-<version>-<board>.wic.zip '*.wic' | sudo dd of=/dev/sdb bs=4M status=progress conv=fsyncddoverwrites the whole disk you give it. Check the device name indiskutil listorlsblktwice; picking your computer's own disk erases it. - Boot the board from the card, as described below
- Wait for the device to appear in the fleet's device list
This takes a few minutes and needs Ethernet with DHCP, or the WiFi network you set when downloading.
Boot a Variscite DART
- Set the board to boot from SD
This is a jumper or DIP switch on the carrier board, and its position depends on the carrier and its revision. Check Variscite's documentation for your board.
- Insert the card and power on
Serial console
115200 8N1 on the debug UART (ttymxc0). If the board doesn't come up, capture the whole U-Boot and kernel log from here first; it's the only view into early boot.
Check the device
Log in on the serial console or the board's terminal in the dashboard, then:
cat /etc/os-release # nodexOS version
systemctl status nodexa-agent --no-pager # supervisor running
journalctl -u nodexa-agent -n 50 # registering with the cloudMore in Debugging.
Flash nodexOS onto the board
A new board needs nodexOS before you can deploy apps to it. You only do this once; after that, OS updates arrive over WiFi.
- Download the firmware
Open your ESP32 fleet, click Add device, choose your board and enter your WiFi details, then download the
.binfile (for examplenodexa-os-0.1.2-esp32.bin). The file already contains your fleet and WiFi settings. - Install esptool in a virtual environment
macOS and Linux:
python3 -m venv espflash source espflash/bin/activate pip install esptoolWindows (PowerShell):
python -m venv espflash espflash\Scripts\Activate.ps1 pip install esptoolIn a new terminal, run the
activateline again before usingesptool.py. - Find the board's serial port
Connect the board over USB with a data cable (not a charge-only one), then list the ports.
macOS, usually
/dev/cu.usbserial-0001:ls /dev/cu.usbserial-* /dev/cu.usbmodem* /dev/cu.SLAB_USBtoUART* 2>/dev/nullLinux, usually
/dev/ttyUSB0:ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/nullWindows: find the
COMport (for exampleCOM3) under Ports (COM & LPT) in Device Manager. If no port appears on any system, install the board's USB driver (CP210x or CH340). - Erase the flash
Replace the port with yours from the previous step.
esptool.py --port /dev/cu.usbserial-0001 erase_flash - Write nodexOS
Use the path of the file you downloaded. It must be written at offset
0x0.esptool.py --port /dev/cu.usbserial-0001 --baud 460800 write_flash 0x0 ~/Downloads/nodexa-os-<version>-esp32.bin - Reset the board
Press the board's EN/RST button or reconnect the USB cable. The board joins your WiFi and shows up in the fleet's device list within a few minutes.
If you didn't enter WiFi details, the board opens a WiFi network named Nodexa-XXXXXX. Join it and open
http://192.168.4.1to choose a network.
Troubleshooting
esptool.pysaysFailed to connectwhile flashing an ESP32Hold the board's BOOT button, run the command again, and let go once
Connecting...appears. Also close anything else using the port, such as a serial monitor. If it connects but writing fails, drop the speed to--baud 115200.
Install Nodex Nomad on a PC
Flash the image onto an SD card, put the card in a USB card reader, plug it into the PC and boot from it. A USB card reader works like a normal USB drive, so the PC boots from it just as it would from a pen drive. A 16 GB card is plenty: on first boot the data partition grows to fill it.
Use a USB card reader, not a laptop's built-in SD slot. Most PCs can't boot from the built-in slot.
What the PC needs
| Requirement | Details |
|---|---|
| CPU | 64-bit x86 (Intel or AMD) |
| Firmware | UEFI boot with Secure Boot turned off (no Legacy BIOS/CSM) |
| Boot media | SD card in a USB card reader, or a USB pen drive: 4 GB minimum, 16 GB recommended |
| Network | Wired Ethernet with DHCP, or Wi-Fi set when downloading the image |
| PC disks | Never written to: the whole OS and its data stay on the card |
Supported network cards
Wired:
| Vendor | Chips |
|---|---|
| Intel | e1000e, igb, igc (most desktop and laptop Ethernet) |
| Realtek | RTL8111/8168 family (firmware included) |
Wi-Fi:
| Vendor | Chips |
|---|---|
| Intel | Wireless 7260 through AX2xx (iwlwifi) |
| Realtek | RTL8822BE/CE, RTL8821CE, RTL8723DE, RTL8852AE/BE/CE, and USB dongles (rtw88, rtw89, rtl8xxxu) |
| MediaTek | MT7921/MT7922 and MT7601U/MT76x2U USB dongles |
| Qualcomm Atheros | ath9k, ath10k, ath11k |
| Ralink | RT2800 USB dongles |
Broadcom Wi-Fi cards (wl driver) are not supported. If the PC's own card isn't listed, plug in a supported USB Wi-Fi dongle or use wired Ethernet.
- Download the image
Open the fleet, click Add device and choose Nodex Nomad. To use Wi-Fi, enter the network name and password there: they're built into the image. Download the
.wic.zipfile (for examplenodexa-os-<version>-generic-x86_64.wic.zip). - Flash the card
The easy way: open balenaEtcher, pick the
.wic.zipfile (no need to unzip it), pick the card and click Flash.Or from the terminal (macOS): find the card first. It's the ~16 GB disk marked "external, physical", for example
/dev/disk4.diskutil list # find the card diskutil unmountDisk /dev/disk4 unzip -p nodexa-os-<version>-generic-x86_64.wic.zip '*.wic' | sudo dd of=/dev/rdisk4 bs=4m status=progress sync && diskutil eject /dev/disk4Double-check the disk number.
ddoverwrites the whole disk without asking. - Set up the PC's firmware
Open the firmware settings (usually F2 or Del at power-on), turn off Secure Boot, and make sure the PC boots in UEFI mode, not Legacy/CSM.
- Connect to the network
Plug in an Ethernet cable on a network with DHCP, or rely on the Wi-Fi network you entered when downloading. If both are connected, Ethernet is used. Check that the PC's network card is in the list above.
- Boot from the card
Plug the card reader, with the card in it, into the PC. Power on and press the one-time boot menu key (usually F12, F11, F8 or Esc). Choose the card reader, which may be listed as "USB" or "UEFI: <reader name>".
- Check it on the PC's screen
Log in as
root(no password), then run:cat /etc/os-release # NAME="Nodex Nomad" systemctl status nodexa-grow-data nodexa-agent lsblk # p6 (nodexa-data) fills the rest of the card ip -br addr # has an IP address journalctl -u nodexa-agent -n 50 # registering with the cloud grub-editenv /boot/nodexa.env list 2>/dev/null || cat /proc/cmdline # nodexa.slot=a - Check it in the dashboard
The device shows up in your fleet with architecture
x86_64. From its page you can view its logs, open the SSH terminal and deploy containers to it (see Deploy apps).
Specification
| Item | Details |
|---|---|
| Architecture | x86_64 |
| Boot | GRUB (UEFI) with A/B system slots and automatic rollback |
| System slots | 2 × 1.5 GB, read-only; OS updates install into the inactive slot |
| Data partition | Grows to fill the card on first boot; survives OS updates |
| Apps | Docker containers deployed with nodex push |
| Remote access | Logs and SSH terminal from the dashboard |
| Console | PC screen, or serial ttyS0 at 115200 8N1 |
OS updates
When a new Nodex Nomad version is published, start an OS update from the device page. The PC installs it on its other system slot and reboots into it. Afterwards, cat /proc/cmdline shows nodexa.slot=b (or a, after the next update).
If it doesn't boot
| What you see | What it means |
|---|---|
| The card isn't in the boot menu | Secure Boot is still on, the PC is in Legacy mode, or you're using the built-in SD slot. |
GRUB appears, then a VFS: unable to mount root panic | The PC can't find the system partition. Note the last lines on screen (a photo is fine) and contact support. |
| It boots, but the device never shows up in the dashboard | The network card may not be supported (see the list above), or it may need firmware Nodex Nomad doesn't ship. Check ip -br addr and dmesg | grep -i firmware. For Wi-Fi, check nmcli device status. |
