Installation

Prerequisites

The Raspberry Pi shall have been initialized with a basic OS.

  • Download and install the Raspberry Pi Imager on your laptop.

  • Insert the Micro SD card into your laptop.

  • Launch Raspberry Pi Imager:
    • Device: Raspberry Pi 5

    • Operating System: Raspberry Pi OS (64-bit)

    • Storage: Your Micro SD card

  • Customize OS settings:
    • Hostname : limenurse.local

    • Set username, password

    • Configure Wi-Fi and locale

    • Enable SSH through password

  • Flash the card and verify.

limenurse.local is the name to use to access the PI through wifi. Any other name can be used, as long as it’s not limelight.local which we will use later on on the USB interface. The installation script will adapt to the chosen name by readiing hostname from the PI installation

Insert the Micro SD card into the Raspberry Pi 5, connect to the Pi through your wifi.

Configuration

  • Clone this repository locally

  • Setup the target gateway IP addresses for the pi usb0 and eth0 interfaces in conf/env.

Here is an example of the env file to modify if needed

export USB_IP_GATEWAY_LINUX=172.30.0.1
export USB_IP_ADDRESSES_LINUX=172.30.0.10,172.30.0.20,255.255.255.0
export USB_IP_GATEWAY_WINDOWS=172.31.0.1
export USB_IP_ADDRESSES_WINDOWS=172.31.0.10,172.31.0.20,255.255.255.0
export ETH_IP_GATEWAY=172.40.0.1
export ETH_IP_ADDRESSES=172.40.0.10,172.40.0.20,255.255.255.0

IP address should be something like 172.XXX.0.1 with XXX not being 29 to avoid IP conflict with the real limelight inside the Pi.

Network Layer Deployment

The second step is to deploy network management services on both eth0 and usb0

sudo scripts/02-configure-network.sh
  • Install the name_resolver.py script to manage name resolution on usb and ethernet interfaces

  • Configure dnsmasq to offer DHCP services on both interfaces and allow laptop to communicate sith those interfaces by getting an IP address on thei network

  • Restrict the current Pi name mangement system to the wifi wlan0 interface

  • Publish limelight.local name on usb0 gateway and limelight.eth.local on eth0 gateway using a custom python script

After the reboot, the PI is accessible from wifi, ethernet and usb gadget interfaces with different names :

  • The wifi wlan0 interface keeps the name configured at Pi installation : limenurse.local

  • The ethernet eth0 interface gets limelight.eth.local name

  • The USB gadget usb0 interface gets limelight.local name to fully mock the PI

Transport Layer Deployment

The third step is to launch forward data between interfaces

sudo scripts/03-configure-routing.sh