Table of Content
ToggleExecutive Summary
This case study documents the development of an embedded Linux system that shares USB devices over Ethernet networks. Built on the RV1106G3 processor (Luckfox Pico Max), the solution enables USB peripherals connected to an embedded device to be accessed by computers across standard network infrastructure.
Project Objective
Create a minimal embedded Linux system that shares USB devices over Ethernet, allowing network-connected computers to access USB peripherals (mice, keyboards, fingerprint sensors) as if they were locally connected.
Target Platform:
- Processor: RV1106G3 (Rockchip)
- Board: Luckfox Pico Max
- Storage: SPI Flash / microSD
- Interfaces: USB 2.0 Host, Ethernet, Serial Console
Technical Architecture
Hardware: RV1106G3 processor, SPI Flash/microSD storage, USB 2.0 host, Ethernet interface, serial console
Software Stack: Buildroot-based Linux image (Luckfox SDK), USB-over-Ethernet Software package with daemon and supported binaries, Docker build system, license validation
Development Phases
Phase 1: Minimal Linux System
- A minimal Linux image developed using the Luckfox SDK (Buildroot) for the RV1106G3 platform.
- Serial console-only setup
- Dual boot capability
- Docker build environment
Learning: Starting minimal and adding only required features prevented bloat.
Phase 2: USB-over-Ethernet Integration
- Cross-compiled the USB-over-Ethernet software package and its dependencies using the ARM Rockchip toolchain.
- Integrated the compiled binaries into the Buildroot image using root filesystem overlay.
- Configured automatic service startup through initialization scripts.
- Validated operation across standard Ethernet networks.
Key Challenges & Solutions:
- Challenge: The build environment did not include a predefined target for the Luckfox (RV1106G3) platform, which caused compatibility issues during cross-compilation.
Solution: Used a compatible 32-bit build configuration and customized the compilation flags and paths to align with the Rockchip ARM toolchain.
- Challenge: Certain code segments and dependencies were not fully compatible with the target toolchain.
Solution: Adjusted configuration files and minor source definitions to ensure successful compilation and stable execution on the embedded board.
Phase 3: Testing & Validation
Network Testing:
- Verified stable operation over standard Ethernet networks using TP-Link switches (both managed and unmanaged).
- No special configurations required.
Functional Testing:
- Tested successful remote access to connected USB devices through USB-over-Ethernet client software.
- Devices recognized correctly by remote hosts.
- Verified service persistence across reboots and runtime stability during long-term operation.
USB Devices Tested:
- Mice: Cursor responsiveness, <10ms latency
- Keyboards: Keystroke latency <15ms, full functionality
- Fingerprint Sensors: Successful enrollment and authentication over network
Client Platforms: Linux and Windows – both fully functional
Key Features
- USB devices shared over standard Ethernet
- Automatic server startup on boot
- Minimal footprint (Buildroot optimized)
- Dual boot (SPI Flash/microSD)
- Docker-based reproducible builds
- License validation at sharing
- Works with standard network switches (tested on TP-Link)
Technical Challenges & Solutions
Challenge 1: Minimal System with Full Functionality
Solution: Selective kernel configuration using Buildroot, enabling only essential USB gadget drivers and network components.
Challenge 2: Cross-Compilation Compatibility
Solution: Adapted the build configuration of software package to work with the Rockchip ARM toolchain by selecting compatible 32-bit build configuration and customized the compilation flags and paths to align with the Rockchip ARM toolchain.
Challenge 3: USB Device Latency
Solution: Optimized USB polling rates and network buffer management for interactive devices (mice, keyboards).
Performance: Mouse <10ms latency, keyboard <15ms, fingerprint sensors >95% enrollment success
Use Case: USB Device Sharing Over Network
Application: Embedded device shares connected USB peripherals over Ethernet to any network-connected computer.
Benefits:
- Cost effective: One device serves multiple systems
- Flexible: USB devices accessible from any network location
- Standard infrastructure: Works with existing switches
- Simple deployment: No complex network setup
Key Lessons Learned
- Minimal System Design: Building up from bare minimum provided better control than reducing a full distribution.
- Real-World Testing Essential: Testing with actual devices (mice, keyboards, fingerprint sensors) on real network hardware (TP-Link switches) revealed practical issues not apparent in specifications.
- Build System Adaptation Approach: Using and adapting existing build system (Autotools) of software package was more efficient than developing from scratch.
- 4. Docker for Embedded: Containerized builds ensured reproducibility despite initial
- 5. Manual Updates: Manual update control proved more reliable than automatic updates for embedded systems.
Conclusion
This project successfully developed a minimal embedded Linux system that shares USB devices over standard Ethernet networks. The solution demonstrates practical USB device sharing using common network switches, with validated support for mouse, keyboards, and fingerprint sensors on both Windows and Linux clients.
Key Success Factors:
- Minimal Buildroot-based system design
- Adaptation of existing USB-over-Ethernet software package for Luckfox.
- Real-world testing with actual devices and network hardware
- Docker-based reproducible builds
- Lightweight license integration
Validated Performance: Mouse, keyboards, and fingerprint sensors functional over network through standard TP-Link switches with acceptable latency for interactive use.