Getting Started

Getting Started

Getting Started with RF Swift πŸš€

This guide will help you get started with RF Swift by covering system requirements, installation steps, and next actions.

Supported Platforms

RF Swift is designed to work across multiple platforms and architectures to suit your specific environment.

Operating Systems

Platform x86_64/amd64 arm64/v8 riscv64
Windows βœ… Fully supported ❓ Limited testing ❌ Not supported
Linux βœ… Fully supported βœ… Fully supported βœ… Fully supported
macOS ❓ Limited support βœ… Supported (better inside a VM for USB devices) ❌ Not supported

Tested Single-Board Computers

SBC Status Comments
Raspberry Pi 5 βœ… Works perfectly with most tools
Milk-V Jupiter βœ… Works perfectly with most tools, but slower than Raspberry Pi 5
Milk-V Mars ❌ Software support is currently unavailable. Docker installation is problematic
UP Squared Series βœ… Works perfectly with most tools

System Requirements

The minimum requirements to run RF Swift are:

Linux Requirements

ℹ️
On Linux, Docker, BuildX, and Go can be directly installed with the install.sh script included in the repository.

Essential Components

  • Docker: Required to run RF Swift containers
    curl -fsSL "https://get.docker.com/" | sh
  • xhost: Required for GUI application support (install via your distribution’s package manager)
  • PulseAudio: Required for audio support (install via your distribution’s package manager)

Optional Components

  • Go Compiler: Required if you want to build RF Swift from source
  • BuildX: Required for cross-architecture compilation

Quick Installation

RF Swift provides a comprehensive installation script that automatically installs all required tools and dependencies on Linux systems.

# Clone the repository
git clone https://github.com/PentHertz/RF-Swift.git
cd RF-Swift

# Run the installation script to automatically install all dependencies
./install.sh

The install.sh script will:

  • Install Docker if not already present
  • Set up BuildX for cross-architecture support
  • Install Go compiler if needed
  • Configure xhost for GUI application access
  • Set up PulseAudio for sound
  • Configure user permissions for Docker
  • Download and install the latest RF Swift binary

This is the recommended method for Linux users as it ensures all components are correctly configured to work together.

Windows Requirements

Required Software

For Audio Support

For programs requiring PulseAudio:

  1. Follow the setup guide on Linux Uprising
  2. Use the updated binaries available at pgaskin.net/pulseaudio-win32
⚠️
Make sure Docker Desktop runs in WSL2 mode for optimal performance and compatibility.

Installation Steps

  1. Install Docker Desktop and ensure WSL2 integration is enabled
  2. Install usbipd for USB device support
  3. Set up PulseAudio if audio functionality is needed
  4. Download the latest RF Swift binary from the releases page

macOS Requirements

⚠️
macOS support will be fully implemented soon. Currently, some features may have limited functionality.

Current Status

  • Container functionality works without USB forwarding
  • For full functionality including USB device support, running in a Linux VM is recommended

Required Software

  • Docker Desktop for macOS
  • XQuartz for X11 forwarding (optional)

Known Limitations

  • USB device forwarding is not currently supported natively
  • Some specialized RF tools may have compatibility issues

Architecture Overview

RF Swift organizes its functionality in a hierarchical structure:

graph TD
    A[rfswift] --> B[Host manager]
    B --> C[Host]
    B --> D[USB]
    B --> F[Sound]
    B --> G[Images Container manager]
    H[Dockerfiles] --> G
    G --> I[Pull]
    G --> J[List]
    G --> K[Save]
    G --> L[Tag]
    G --> M[Run]
    G --> N[Exec]
    
    style A fill:#f9f,stroke:#333,stroke-width:4px
    style B fill:#bbf,stroke:#333,stroke-width:2px
    style H fill:#afa,stroke:#333,stroke-width:2px
    style G fill:#bbf,stroke:#333,stroke-width:2px

This structure allows RF Swift to provide:

  • Comprehensive container management
  • Host resource integration
  • Device forwarding (USB, audio, display)
  • Streamlined workflow for RF testing and development

Next Steps

Dive right into the following sections to continue:

Troubleshooting

If you encounter issues during installation or usage:

  1. Check the GitHub Issues page for known problems
  2. Verify your Docker installation is working correctly with docker run hello-world
  3. Ensure you have the required permissions (e.g., user is in the docker group on Linux)
  4. Join our Discord community for direct assistance

Feature Compatibility Matrix

Feature Linux Windows macOS
Container Execution βœ… βœ… βœ…
GUI Applications βœ… βœ… βœ… (with XQuartz)
USB Device Forwarding βœ… βœ… (with usbipd) ❌
Audio Support βœ… βœ… (with PulseAudio) ❓ Limited
Hardware Acceleration βœ… ❓ Limited ❓ Limited
Cross-Compilation βœ… βœ… (in WSL) βœ…
Last updated on