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
Orange Pi RV2 βœ… Works perfectly with most tools, but slower than Milk-V Jupiter
Milk-V Mars ❌ Software support is currently unavailable. Docker installation is problematic
UP Squared Series βœ… Works perfectly with most tools

Installation

RF Swift now offers a streamlined one-line installer that automatically installs all dependencies (including Docker) and configures your system for optimal performance.

One-Line Installer

Our new installer takes care of everything for you in a single command! It will:

  • Install Docker if it’s not already present
  • Download and install the latest RF Swift release
  • Configure your system for USB, audio, and GUI support
  • Create a convenient shell alias for easy access
  • Set up proper permissions and configurations

Linux and macOS

curl -fsSL "https://get.rfswift.io/" | sh

Or if you prefer wget:

wget -qO- "https://get.rfswift.io/" | sh

After installation completes, simply open a new terminal and run:

rfswift
For security reasons, it is advised to review the script before execution. As we don’t currently have a fully secured installation method, the recommended approach is to perform a manual installation using the install.sh script provided with each release. Always download the script from the official repository to ensure authenticity.

Windows

Follow the manual installation steps.

Manual Installation

If you prefer to have more control over the installation process, you can install the components separately.

Linux Manual Installation (Preferred)

ℹ️
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

Repository Installation

# 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

Windows Manual Installation

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 Manual Installation

⚠️
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

System Requirements

The minimum requirements to run RF Swift are:

  • CPU: Any dual-core CPU (quad-core recommended for better performance)
  • RAM: 4GB minimum (8GB or more recommended)
  • Storage: 10GB free space (20GB+ recommended for multiple container images)
  • Docker: Automatically installed by the one-line installer
  • Internet Connection: Required for initial setup and image downloads

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

After installation, you can dive right into:

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

Common Issues with the One-Line Installer

If you encounter issues with the one-line installer:

  • Permission Denied: Ensure you have sudo privileges for Linux/macOS installation
  • Docker Service Not Starting: Try restarting your system after installation
  • Shell Alias Not Working: Open a new terminal window or manually source your shell configuration file
  • GitHub API Rate Limiting: If you see an error about GitHub API limits, wait a few minutes and try again

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) βœ…
One-Line Installer βœ… ❌ βœ…
Last updated on