Software

Operating system and driver information

The Interceptor Carrier Board works with standard Linux distributions. The SATA controller (JMB585) and Ethernet switch (RTL8367RB) drivers are included in the mainline kernel and work out of the box.

Software Options

Use standard Raspberry Pi OS (64-bit) and install the Exaviz Debian packages for full hardware support. No custom OS image is required.

# Add the Exaviz repository
curl -fsSL https://apt.exaviz.com/exaviz-repo-key.asc | sudo gpg --dearmor -o /usr/share/keyrings/exaviz-archive-keyring.gpg

DISTRO=$(lsb_release -cs 2>/dev/null || (grep VERSION_CODENAME /etc/os-release 2>/dev/null | cut -d= -f2) || echo "bookworm")
echo "deb [arch=arm64 signed-by=/usr/share/keyrings/exaviz-archive-keyring.gpg] https://apt.exaviz.com ${DISTRO} main" | sudo tee /etc/apt/sources.list.d/exaviz.list

sudo apt update
sudo apt install exaviz-dkms exaviz-pse-dkms exaviz-netplan exaviz-poe-tool
PackageDescription
exaviz-dkmsKernel modules: RTL8367RB switch driver, device tree overlays
exaviz-pse-dkmsIP808AR PoE (PSE) driver — required for PoE port control
exaviz-netplanNetwork configuration for WAN port and switch ports
exaviz-poe-toolGTK3 GUI for PoE port monitoring and control

Option 2: Exaviz OS (Deprecated)

Included Drivers

Ethernet Switch (RTL8367RB)

The 4-port Gigabit switch is managed by the RTL8367RB chip. The driver is included in the kernel and activated automatically.

Features:

  • VLAN configuration
  • Port mirroring
  • QoS settings
  • Per-port statistics

SATA Controller (JMB585)

The 5-port SATA controller uses the JMicron JMB585 chip.

Features:

  • AHCI mode support
  • Hot-plug capability
  • RAID support via mdadm (software)

PoE Controller (IP808AR)

When PoE boards are connected, the ip808ar driver provides port control.

Control Interface: /proc/pse

Example commands:

# Check port status (first 20 lines — /proc/pse streams continuously)
head -20 /proc/pse

# Disable port 3 on board 0
echo "disable-port 0 3" > /proc/pse

# Enable port 3 on board 0
echo "enable-port 0 3" > /proc/pse

See PoE Control for complete documentation.

Network Configuration

The exaviz-dkms package loads a device tree overlay that creates the Interceptor’s network interfaces. The exaviz-netplan package then configures them via netplan and optionally sets up dnsmasq as a DHCP server for connected devices.

Interface Names

The four Gigabit Ethernet ports on J8 are named by default:

InterfaceRoleIP Configuration
wanWAN/uplink (internet connection)DHCP client
lan0LAN portDHCP server (dnsmasq)
lan1LAN portDHCP server (dnsmasq)
lan2LAN portDHCP server (dnsmasq)

The wan port is automatically excluded from the DHCP server list and configured as a DHCP client (uplink to your router). The lan0-lan2 ports and any PoE expansion ports (poe0-poe15) are configured as DHCP servers, each on its own subnet, so connected devices receive an IP address automatically.

Device Tree Overlay

The exaviz-dkms package installs a device tree overlay and configures /boot/firmware/config.txt with dtoverlay entries for the Interceptor. Port names are passed as overlay parameters:

[cm4]
dtoverlay=interceptor-raspberrypi-cm4,p0_0=wan,p0_1=lan0,p0_2=lan1,p0_3=lan2
dtparam=eee=off
otg_mode=1

[cm5]
dtoverlay=interceptor-raspberrypi-cm5,p0_0=wan,p0_1=lan0,p0_2=lan1,p0_3=lan2
dtoverlay=dwc2,dr_mode=host

This uses the standard Raspberry Pi firmware overlay loader — the same mechanism used on Cruiser boards.

Static IP Example

To assign a static IP to a LAN port, edit the netplan configuration in /etc/netplan/ or use nmtui if NetworkManager is installed.

WiFi Setup

For compute modules with WiFi (CM4/CM5 with wireless), configure WiFi using wpa_supplicant:

# Create WiFi configuration
wpa_passphrase "YourNetworkName" "YourPassword" | \
    sudo tee /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

# Enable WiFi at boot
sudo systemctl enable wpa_supplicant@wlan0
sudo systemctl start wpa_supplicant@wlan0

WiFi is pre-configured for DHCP. For static IP, use the System Settings GUI.

Power Saving Tip: If you don’t need WiFi/Bluetooth, disable them via raspi-config to reduce power consumption.

Storage Configuration

Viewing SATA Drives

# List all block devices
lsblk

# Check SATA controller status
sudo dmesg | grep -i sata

Setting Up RAID

The JMB585 controller supports software RAID via mdadm.

# Install mdadm if not present
sudo apt install mdadm

# Create partitions on each drive (using entire disk)
sudo parted /dev/sda mklabel gpt
sudo parted /dev/sda mkpart primary 0% 100%
# Repeat for /dev/sdb and /dev/sdc

# Create RAID 5 array using partitions (example with 3 drives)
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 \
    /dev/sda1 /dev/sdb1 /dev/sdc1

# Format and mount
sudo mkfs.ext4 /dev/md0
sudo mount /dev/md0 /mnt/storage

Boot Configuration

Raspberry Pi CM4

Standard boot from eMMC or SD card. Configure via config.txt.

Raspberry Pi CM5

Boot options for CM5:

  1. SD Card - If CM5 has blank eMMC, it defaults to SD card boot
  2. eMMC - Flash OS using rpiboot on a separate IO board

SATA Boot Workaround

The Raspberry Pi firmware cannot boot directly from SATA. However, you can:

  1. Keep /boot partition on eMMC or SD card
  2. Mount root filesystem from SATA drive
  3. Edit cmdline.txt to point root to SATA partition

Example cmdline.txt:

root=/dev/sda1 rootfstype=ext4 ...

Updating Software

System Updates

sudo apt update
sudo apt upgrade

raspi-firmware Package Error

If you see an error during apt upgrade about raspi-firmware:

Error: missing /boot/firmware, did you forget to mount it?

This is a known issue with Raspberry Pi OS Bookworm (Debian 12). The raspi-firmware package expects /boot/firmware to be a mount point, but on Interceptor systems it’s a regular directory.

Workaround:

# Bind mount /boot/firmware to itself (makes it appear as a mount point)
sudo mount --bind /boot/firmware /boot/firmware

# Configure the package
sudo dpkg --configure -a

After this, apt upgrade should work normally. The bind mount persists until reboot. Alternatively, install the exaviz-dkms package which includes a fix for this issue.

Troubleshooting

Drivers not loading

# Check loaded modules
lsmod | grep -E "(rtl|jmb|ip808)"

# Check kernel messages for errors
sudo dmesg | tail -50

Network interface missing

# List all interfaces
ip link show

# Check switch driver status
sudo dmesg | grep rtl

Next Steps

Last modified February 25, 2026