Files
infix/board/aarch64/raspberrypi-rpi64

Raspberry Pi 3B/4B/CM4

Overview

The Raspberry Pi is one of the most popular single-board computers with full Infix support for networking features, making it an excellent platform for learning, prototyping, and lightweight network applications.

Hardware Features

Raspberry Pi 3B:

  • Broadcom BCM2837B0 ARM Cortex-A53 quad-core processor @ 1.4 GHz
  • 1 GB LPDDR2 RAM
  • microSD card slot for storage
  • 4x USB 2.0 ports
  • Fast Ethernet (100 Mbps)
  • Dual-band WiFi (2.4 GHz + 5 GHz) and Bluetooth 4.2
  • HDMI port
  • GPIO header (40-pin)

Raspberry Pi 4B:

  • Broadcom BCM2711 ARM Cortex-A72 quad-core processor @ 1.5 GHz
  • 1 GB, 2 GB, 4 GB, or 8 GB LPDDR4 RAM (depending on model)
  • microSD card slot for storage
  • 2x USB 3.0 + 2x USB 2.0 ports
  • Gigabit Ethernet
  • Dual-band WiFi (2.4 GHz + 5 GHz) and Bluetooth 5.0
  • 2x micro-HDMI ports (up to 4K output)
  • GPIO header (40-pin)
  • PoE support (with add-on HAT)

Compute Module 4 (CM4):

  • Same processor as Pi 4B
  • Compact form factor for embedded applications
  • Optional eMMC storage (0 GB, 8 GB, 16 GB, or 32 GB)
  • Requires carrier board for I/O connectivity
  • Various configurations tested and working

Default Network Configuration

Infix comes preconfigured with:

  • Ethernet port: DHCP client enabled for internet connectivity
  • WiFi interfaces (wlan0, wlan1): Available for configuration as AP or client
  • GPIO: Available but extension boards not currently supported

Support Level

Full support for base board networking and core functionality. GPIO extension boards (HATs) are not currently supported. Other Raspberry Pi boards of the same generation may work but may require additional testing.

Getting Started

Quick Start with SD Card

The easiest way to get started is using a microSD card:

  1. Download the SD card image: infix-rpi64-sdcard.img
  2. Flash the image to a microSD card: see this guide
  3. Boot the board:
    • Insert the microSD card into your Raspberry Pi
    • Connect an Ethernet cable to your network
    • Connect power (see Power Supply Requirements)
    • The board will boot automatically
  4. Connect and login:
    • SSH to the DHCP-assigned IP address
    • Default login: admin / admin

Note

Raspberry Pi 3B and 4B boot with a factory configuration (factory-config.cfg) that enables DHCP client on the Ethernet port. This means you can access the device over the network without needing a serial console. Simply find the assigned IP address and SSH in!

Compute Module 4 (CM4) and some other variants do not have this factory configuration, so you'll need to use a serial console for initial setup or configure the carrier board accordingly.

First Boot Notes

On first boot, Infix will:

  • Obtain an IP address via DHCP on the Ethernet port
  • Generate unique SSH host keys
  • Initialize the configuration system

You can find the assigned IP address by:

  • Checking your DHCP server/router's client list
  • Using network scanning tools like nmap or arp-scan
  • Connecting via serial console and running ip addr (if needed)

Hardware-Specific Features

WiFi Configuration

Both Pi 3B and Pi 4B include dual-band WiFi that can be configured as a client (station mode). See the Infix WiFi documentation for detailed configuration examples.

To configure WiFi as a client, first store your WiFi password in the keystore:

admin@infix:/> configure
admin@infix:/config/> edit keystore symmetric-key mywifi
admin@infix:/config/keystore/…/mywifi/> set key-format wifi-preshared-key-format
admin@infix:/config/keystore/…/mywifi/> set cleartext-key YourWiFiPassword
admin@infix:/config/keystore/…/mywifi/> leave

Then configure the WiFi interface using the keystore reference:

admin@infix:/> configure
admin@infix:/config/> edit interface wifi0
admin@infix:/config/interface/wifi0/> set ipv4 dhcp-client
admin@infix:/config/interface/wifi0/> set wifi ssid YourNetworkName
admin@infix:/config/interface/wifi0/> set wifi secret mywifi
admin@infix:/config/interface/wifi0/> set wifi country-code US
admin@infix:/config/interface/wifi0/> leave

Note

The WiFi password (8-63 characters) is stored securely in the keystore as mywifi (or any name you choose), which is then referenced in the WiFi configuration. The country-code must match your location for regulatory compliance (e.g., US, SE, DE, JP).

Touch Screen Support

The Raspberry Pi Touch Display v1 (800x480 resolution) is supported on the Pi 4B, including touch functionality. To use graphical applications with the touch screen, you need to run them in a container with proper device access.

Requirements for Graphical Applications

Containers need:

  • Access to /dev/dri/ for graphics card access
  • Access to /run/udev for input device detection
  • Privileged mode or specific capabilities

Example: Running Doom with Touch Screen

admin@infix:/> configure
admin@infix:/config/> edit container doom
admin@infix:/config/container/doom/> set image docker://mattiaswal/alpine-doom:latest
admin@infix:/config/container/doom/> set privileged
admin@infix:/config/container/doom/> edit mount udev
admin@infix:/config/container/…/udev/> set type bind
admin@infix:/config/container/…/udev/> set target /run/udev/
admin@infix:/config/container/…/udev/> set source /run/udev/
admin@infix:/config/container/…/udev/> end
admin@infix:/config/container/doom/> edit mount xorg.conf
admin@infix:/config/container/…/xorg.conf/> set content U2VjdGlvbiAiT3V0cHV0Q2xhc3MiCiAgSWRlbnRpZmllciAidmM0IgogIE1hdGNoRHJpdmVyICJ2YzQiCiAgRHJpdmVyICJtb2Rlc2V0dGluZyIKICBPcHRpb24gIlByaW1hcnlHUFUiICJ0cnVlIgpFbmRTZWN0aW9uCg==
admin@infix:/config/container/…/xorg.conf/> set target /etc/X11/xorg.conf
admin@infix:/config/container/…/xorg.conf/> end
admin@infix:/config/container/doom/> edit volume var
admin@infix:/config/container/…/var/> set target /var
admin@infix:/config/container/…/var/> leave

Note

The xorg.conf content mount is a useful Infix feature that allows you to keep all configuration in a single file. The data is base64 encoded, and everything can be set up remotely using curl if preferred.

Power Supply Requirements

Proper power supply is critical for stable operation:

  • Raspberry Pi 4B: 5V/3A USB-C power supply (official recommended)
  • Raspberry Pi 3B: 5V/2.5A micro-USB power supply
  • Compute Module 4: Power requirements depend on carrier board

Inadequate power can cause:

  • Random reboots or crashes
  • USB device failures
  • Network disconnections
  • Corrupted storage
GPIO Pinout

Serial Console Access (Optional)

A serial console is useful for debugging but not required for Pi 3B/4B, since the factory configuration enables network access via DHCP. For CM4 and other variants without factory configuration, serial console access is required for initial setup.

To connect via serial:

  1. Connect a USB-to-TTL serial adapter (3.3V) to GPIO pins:
    • GND (black wire) → Pin 6 (Ground)
    • TX → Pin 8 (GPIO 14, RXD)
    • RX → Pin 10 (GPIO 15, TXD)
    • VCC (red wire) → Leave disconnected (Pi has its own power supply)
  2. Use 115200 baud, 8 data bits, no parity, 1 stop bit (115200 8N1)
  3. Connect using screen, minicom, or similar terminal emulator

The image shows the standard 40-pin GPIO header pinout. For serial console:

  • Pin 6 (black) = Ground
  • Pin 8 (orange) = TxD (UART) - connect to RX on your adapter
  • Pin 10 (orange) = RxD (UART) - connect to TX on your adapter

Warning

Use only 3.3V serial adapters. 5V adapters will damage your Raspberry Pi!

Troubleshooting

Board won't boot

  • Verify the power supply meets requirements (see Power Supply Requirements)
  • Check that the SD card is properly seated
  • Try re-flashing the SD card image
  • Look for the green LED activity indicator (should flash during boot)
  • Connect via serial console to see boot messages if needed

Can't find IP address

  • Ensure Ethernet cable is properly connected (look for link LED activity)
  • Verify your DHCP server is running and has available addresses
  • Check your router/DHCP server's client list for new devices
  • Use nmap or arp-scan to scan your network
  • Connect via serial console and run ip addr to see the assigned address

WiFi not working

  • Verify WiFi regulatory domain is set correctly
  • Check that SSID and password are correct
  • Ensure WiFi channel is supported in your region
  • Try connecting to a 2.4 GHz network first (better compatibility)

SD card corruption

If the system becomes unresponsive or won't boot:

  • Always use proper shutdown procedures (don't just pull power)
  • Use a quality SD card (Class 10, A1, or better recommended)
  • Consider using a UPS or battery backup for critical deployments
  • Verify power supply meets requirements (see Power Supply Requirements)

Container/Docker issues

  • Verify adequate RAM is available (check with free -h)
  • Ensure sufficient SD card space (check with df -h)
  • For Pi 3B, consider using lighter containers due to limited RAM

Additional Resources

Building Custom Images

See the main Infix documentation for building from source. To build a custom Raspberry Pi image:

# Build the bootloader (only needed once or when bootloader changes)
make O=x-boot rpi64_boot_defconfig
make O=x-boot

# Build main system
make aarch64_defconfig
make

# Create SD card image
./utils/mkimage.sh -od raspberrypi-rpi64

The resulting image will be in output/images/infix-rpi64-sdcard.img.

Customizing the Build

You can customize the build by:

  • Modifying board/aarch64/raspberrypi-rpi64/config.txt for boot configuration
  • Adding packages to the Buildroot configuration
  • Customizing the device tree in board/aarch64/raspberrypi-rpi64/dts/

Performance Notes

Raspberry Pi 4B vs 3B

The Pi 4B offers significant improvements over the 3B:

  • 3x faster processor
  • Up to 8x more RAM
  • Gigabit Ethernet (vs 100 Mbps)
  • USB 3.0 for faster storage and peripherals
  • Better thermal performance

For network-intensive applications, the Pi 4B is strongly recommended.

Raspberry Pi as a Router

While capable of basic routing tasks, be aware of limitations:

  • Single Ethernet port (consider USB Ethernet adapters for multi-port setups)
  • CPU-based packet processing (no hardware offload)
  • Best suited for home/lab use rather than high-throughput production

For applications requiring multiple ports or high performance, consider dedicated networking hardware like the Banana Pi R3.