Usage Guide
This guide shows you how to add OS images to HOFI and use it to install or update the operating system on your robot’s Single Board Computer (SBC).
This guide assumes that your HOFI image is already set up and ready to use. If you haven’t configured it yet, follow the HOFI setup guide.
To boot HOFI, you need to configure your device to prioritize USB storage during startup. This ensures the board will attempt to boot from the HOFI USB drive before falling back to internal storage (e.g., microSD card, eMMC, or NVMe).
The method for setting USB boot priority depends on the target platform, eg.:
- Raspberry Pi
- x64-Based SBCs
- Jetson Orin Nano
Edit the bootloader configuration using:
sudo -E rpi-eeprom-config --edit
Set BOOT_ORDER
so that 4
(USB) comes first. For example:
BOOT_ORDER=0xf164
→ USB → NVMe → SD card (repeat)BOOT_ORDER=0xf14
→ USB → SD card (repeat)
Save the changes and reboot the Pi.
👉 Learn more in the Raspberry Pi bootloader configuration guide
During boot, press the key required to enter BIOS or UEFI settings — commonly ESC
, F2
, or F12
depending on the board. Then change the boot order to prefer USB devices.
USB boot is usually enabled by default. If HOFI doesn't boot:
- Connect an HDMI display and USB keyboard to the Jetson
- Power it on and press
ESC
during boot - Select Boot Manager and set USB as the first boot device
⚠️ Jetson Orin Boot Firmware
Boot firmware
If you want to install and boot Husarion’s customized Ubuntu system images on a Jetson SBC using HOFI, you’ll first need to update the device’s firmware. This guide follows the steps outlined in the official Ubuntu installation instructions for NVIDIA Jetson.
Before flashing an OS image, you must update the boot firmware on the Jetson Orin Nano.
Preparing the Host Computer (Linux)
First, install required tools and download the Jetson Linux firmware package:
cd ~
sudo apt update
sudo apt install lbzip2
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v4.3/release/Jetson_Linux_r36.4.3_aarch64.tbz2
tar -xf Jetson_Linux_r36.4.3_aarch64.tbz2
Install the required dependencies:
sudo apt install -y python3 mkbootimg bzip2 cpp device-tree-compiler
cd ~/Linux_for_Tegra/
sudo ./tools/l4t_flash_prerequisites.sh
Flashing the Boot Firmware
To flash the Jetson Orin Nano’s boot firmware:
- Short the
FC REC
andGND
pins on the Jetson - Connect the Jetson's USB-C port to your laptop using a USB-A to USB-C cable
- Power on the Jetson
- On your laptop, run the firmware flashing script:
cd ~/Linux_for_Tegra/
sudo ./flash.sh p3768-0000-p3767-0000-a0-qspi internal
- Wait ~8 minutes until you see a confirmation like:
[ 508.5119 ] Flashing completed
[ 508.5120 ] Coldbooting the device
[ 508.5125 ] tegrarcm_v2 --chip 0x23 0 --ismb2
[ 508.5130 ] MB2 version 01.00.0000
[ 508.6113 ] Coldbooting the device
[ 508.6121 ] tegrarcm_v2 --chip 0x23 0 --reboot coldboot
[ 508.6127 ] MB2 version 01.00.0000
*** The target generic has been flashed successfully. ***
Reset the board to boot from internal eMMC.
- Disconnect power from the Jetson, remove the jumper between
FC REC
andGND
, and unplug the USB cable.
1. Add OS Images to HOFI
Step 1: Connect the HOFI USB Drive to Your Computer
After connecting the HOFI USB drive, your system may display multiple mounted partitions. The exact layout depends on the HOFI variant you are using (x64
, tegra
for NVIDIA Jetson, or rpi
for Raspberry Pi). These include system partitions used internally by HOFI’s Yocto-based OS — you can safely ignore them.
The only partition you need to interact with is:
os_images
– This is where you store your target OS images for flashing.
All other partitions are required for HOFI to operate and should not be modified.
Step 2: Copy the OS Image
.img
files.If your OS image is in .img.xz
format, you must extract it first.
-
On Linux/macOS, run:
xz -dv /path/to/os/image.img.xz # This will produce /path/to/os/image.img
-
On Windows (using PowerShell + 7-Zip):
7z e C:\path\to\os\image.img.xz -oC:\output\
📌 Where to Find OS Images for Husarion Robots?
If you need an OS image for your Husarion robot, check the official sources below:
1️⃣ Husarion OS
A customized Ubuntu Desktop with setup scripts for:
- Panther User Computer
- Lynx User Computer
- ROSbot XL
- ROSbot 3 / 3 PRO
- ROSbot 2R / 2 PRO
🔗 Download: Husarion OS
2️⃣ Panther / Lynx Built-in (Embedded) Computer Image
OS images specifically for Panther and Lynx Built-in Computers based on real-time Linux kernel with running husarion_ugv_ros ROS 2 Driver.
🔗 Download: Panther & Lynx Built-in Computer OS
Once you've extracted your .img
file, copy it to the os_images
partition. You can simply drag and drop the file using your file manager — this works on Linux, macOS, and Windows:
Alternatively, you can copy the file using the terminal. For example, on Linux:
cd /media/$USER/os_images # Adjust if needed for non-Ubuntu systems
sudo cp /path/to/os/image.img .
sync
Do not unplug the USB drive until the copy process is fully completed.
Before physically removing the drive, always unmount the os_images
partition to avoid data corruption.
2. Flash an OS Using HOFI
Step 1: Connect and Boot
- Insert the HOFI USB drive into your SBC.
- Power on the SBC.
- Connect an Ethernet cable between the SBC and your laptop. Alternatively, you can connect an HDMI display and a USB keyboard directly to the SBC (Ethernet and user's laptop is not required in this case).
HOFI automatically assigns your laptop an IP address in the 192.168.77.0/24
subnet, so no manual network configuration is needed.
Step 2: Open the HOFI Interface
Choose one of the following access methods:
- Web UI
- Terminal UI (SSH)
- Native UI (HDMI + Keyboard)
Open http://192.168.77.2:8080
in the web browser on your laptop.
Connect via SSH from your laptop:
ssh 192.168.77.2
The HOFI interface will appear on the connected display. Use the keyboard to navigate, select the desired image, and choose the target disk.
Regardless of whether you access HOFI through a web browser, an SSH session, or an HDMI display, the user interface looks the same (screenshot below shows the Web UI version).
Step 3: Select and Flash the OS
-
Choose the target drive (usually only one available).
-
Pick the OS image you want to flash.
-
Start flashing by pressing
ENTER
or clicking theFlash Image
button. -
Wait for the flashing to complete.
🎥 Here’s a demo of HOFI in action (option over SSH connection):
3. Final Steps
- Power off the SBC.
Press and hold the
ESC
key in the HOFI interface to safely shut down the system. - Remove the HOFI USB drive.
- Boot your robot with the new OS! 🚀