Home Server Setup: Turn Your Board Into A Retro Console – Zima Store Online Saltar para o conteúdo
Zima Store OnlineZima Store Online
Zimaboard 2 Dual-Use Practical Guide: My Server + Retro Gaming Console

Zimaboard 2 Dual-Use Practical Guide: My Server + Retro Gaming Console

Eva Wong is the Technical Writer and resident tinkerer at ZimaSpace. A lifelong geek with a passion for homelabs and open-source software, she specializes in translating complex technical concepts into accessible, hands-on guides. Eva believes that self-hosting should be fun, not intimidating. Through her tutorials, she empowers the community to demystify hardware setups, from building their first NAS to mastering Docker containers.

I. Equipment Selection and Core Requirements

I am a backend developer. The remote server I was previously renting was outdated and lacked sufficient performance, no longer meeting my self-hosting needs. Therefore, I purchased a Zimaboard 2 1664 with clear core goals: first, to build a fully configured, backup-enabled self-hosted home server for application deployment, data management, and remote connectivity; second, without affecting the core server usage, to utilize the hardware's idle performance and transform it into a plug-and-play retro gaming console, achieving dual-purpose functionality and balancing practical technical needs with everyday entertainment.

II. Self-hosted Server Setup Process

System Selection and Installation

After acquiring the equipment, I first tried the ZimaOS that came with the Zimaboard 2. It was easy to operate and convenient for remote access, but the immutable nature of the NAS system severely limited my subsequent application deployments. Based on my usage habits, I ultimately chose to switch to Fedora Server—the same system as my old server, offering greater compatibility. During installation, I only replaced the USB boot disk creation tool in the tutorial. Using Fedora Server's built-in local WebUI and terminal, I easily completed the initial steps before SSH configuration and security hardening. The overall installation went very smoothly.

Storage and Backup Configuration

To ensure proper data backup for the server, I used two spare hard drives and formatted them as BTRFS file systems. This system is integrated into the Linux kernel, natively supports snapshots, and is highly stable, perfectly matching my backup needs for the self-hosted server. It also provides a reliable storage foundation for the server's stable operation.

Core Service Deployment

I built a complete self-hosted service on the server using Docker to meet daily usage needs: Jellyfin as a media server for unified management of personal audio and video resources; Filebrowser to build a private cloud drive for remote access to files anytime, anywhere; and Karakeep to manage my bookmarks and notes for convenient work and study. I also reserved deployment space for Minecraft and RustDesk servers to accommodate future online entertainment with friends and to assist family members with computer and mobile device issues.

Network and Monitoring Configuration

For reverse proxy, I switched from my usual Traefik to Godoxy, and paired it with Tailscale to achieve interconnection between the local server and the original remote server, effectively avoiding exposure of the home network. Moreover, Godoxy comes with a built-in monitoring dashboard, allowing me to view the server's CPU, memory, temperature, disk, and other statuses in real time, significantly improving server management efficiency.

Server monitoring dashboard displaying CPU usage spikes and memory usage graphs for multiple servers

III. Retro Gaming Console Retrofit: On-Demand Start/Stop, No Server Interference

Three Core Principles of Retrofit

To ensure that gaming and server functions do not interfere with each other, I set three core retrofit principles for myself: ① Do not install a full desktop environment to avoid consuming system resources and ensure lightweight server operation; ② Start and stop gaming functions on demand, automatically terminating all related processes when not in use to avoid wasting hardware performance; ③ Ensure simple operation so that even roommates without a technical background can use it independently without my assistance.

Core Ideas and Tool Combinations

The core idea of the entire transformation is not complex. I leveraged native Linux tools and open-source game software to achieve automatic game service startup and shutdown triggered by HDMI plug/unplugging: plugging in the TV's HDMI cable automatically launches the game's graphical interface; unplugging the HDMI cable immediately terminates all game processes, reverting to a pure server state—fully automated, requiring no manual operation. The selected tools have clearly defined roles and are all mature, open-source products that are easy to configure:

  • udev rules + custom Shell scripts: responsible for detecting the HDMI cable's plug/unplug status and triggering corresponding service startup/shutdown commands;
  • systemd service: manages the orderly startup and graceful termination of game sessions, preventing process remnants from affecting the server;
  • Gamescope: a lightweight Wayland synthesizer that optimizes game screen scaling, allowing older games to perfectly adapt to 1080P TV resolution;
  • ES-DE + Retroarch: ES-DE serves as the game library frontend, enabling game management by console category and automatically capturing game covers and descriptions; Retroarch handles various retro game console emulators and automatically configures game controllers, making it extremely user-friendly.

Practical Configuration Steps

1. Permission Configuration: I added the regular user running the game service to user groups such as input, video, audio, and seat, and enabled the seated service to ensure Wayland sessions could be created normally, preparing permissions for game functionality.

2. Detection and Trigger Configuration: I created a udev rule file, defining the detection conditions for HDMI plug/unplug, triggering my custom shell script. The script included logic to determine HDMI connection status, allowing the system to automatically start and stop the user-level systemd game service based on the HDMI connection status.

3. Game Service Configuration: I created a user-level systemd service file, defining the core command for Gamescope to start ES-DE, and set up dual logic for "graceful termination + forced termination" to prevent abnormal game process remnants from affecting server operation.

4. Dependency Installation: I installed all necessary hardware drivers and software at once, including Intel integrated graphics, gamepad drivers, and core game software such as Gamescope, Retroarch, and ES-DE, ensuring perfect hardware and software compatibility.

5. Configuration Activation: I reloaded the udev rules and... With the systemd service installed, the retro game console's modification is now complete, and game functionality is fully automated for starting and stopping.

IV. Optimization and Debugging: Balancing Game Experience and Server Stability

Dedicated Game Experience Optimization

To ensure a smoother retro gaming experience, I specifically optimized the configuration for Wii/NGC games: I abandoned running the Dolphin emulator through Retroarch, opting instead for independent operation to reduce the performance overhead of the Libretro layer; I adjusted Dolphin's configuration file to optimize the game's aspect ratio and rendering logic; and I updated Gamescope's startup parameters, enabling FSR scaling to deliver optimal image quality on 1080p TVs. Testing showed that the optimized configuration kept GPU usage between 70% and 80%, and in a 20℃ indoor environment, the device's highest temperature was only 55℃. With the official fan, the cooling performance was fully adequate, ensuring smooth gameplay without affecting the server due to overheating.

Terminal screen showing system performance stats including CPU usage, memory, and running processes

Practical Debugging Techniques

During the modification process, I also compiled a set of simple and efficient debugging techniques. These techniques can not only troubleshoot problems encountered during the modification but also adapt to more emulators not managed by Retroarch: Use the journalctl command to view udev event logs in real time, manually trigger HDMI status change events, and test the effectiveness of rules; temporarily remove udev rules, connect to the device via SSH, manually launch the game program, and personalize the controller configuration; after debugging, restore the rules to return to automated usage mode. The operation is simple and efficient.

V. Final Result: Dual Functionality, Fully Exploring Hardware Potential

After a series of setup and modifications, my Zimaboard 2 perfectly achieves the dual functions of a server and a retro game console: In daily use, it's a low-power, stable self-hosted server, silently handling core tasks such as application deployment, data backup, and remote access. The performance of the Intel N150 chip is perfectly suited to my daily workload. During downtime, simply plugging the TV's HDMI cable into the device automatically launches the game interface, allowing you to enjoy classic retro games like PS1 and Wii, and even supports local multiplayer. Unplugging the HDMI cable immediately terminates all game processes, reverting to pure server mode, with no interference between the two.

(file:15)	Laptop connected to a wall-mounted TV showing Nintendo DS emulator home screen in a decorated living room
Laptop connected to a large TV via HDMI displaying a Mario Kart Wii split-screen gameplay in a living room

This setup and modification of the Zimaboard 2 allowed me to fully explore the hardware's potential and once again experience the flexibility of the Linux system and the charm of open-source technology. A small development board is never limited to meeting only a single need; as long as you combine it with your own usage scenarios and dare to try and experiment, you can unleash its greater value.

Join the Community to Unlock More Useful Content!

Welcome to the IceWhale Discord community! We'll be releasing more detailed setup tutorials, user case studies, and product updates to help you easily navigate the digital world and find the perfect hardware platform for every passion.

Deixe um comentário

O seu endereço de email não será publicado..

    1 out of ...
    Carrinho 0

    O seu carrinho está atualmente vazio.

    Começar a Comprar