Domain: Embedded Systems Engineering & Hardware Modding
Persona: Senior Embedded Systems Engineer / Firmware Researcher
Abstract:
This technical assessment details the porting of the Doom engine to the GL-iNet GL-BE10000 (Slate 7 Pro) travel router. The device serves as a high-performance networking platform featuring a 2.8-inch integrated touchscreen and an OpenWRT-based Linux environment. The porting process involves leveraging root-level SSH access to analyze the stock GUI application (GL screen) via static analysis (IDA Pro), identifying the frame buffer and input event device mappings. By utilizing a frame-buffer-compatible Doom implementation (fbdoom) and injecting a custom touchscreen input handler, the author successfully bypasses the native UI to execute the game directly on the hardware. The ease of implementation highlights the platform’s open architecture and robust processing capabilities.
Technical Summary & Implementation Log
0:00 Hardware Overview: The GL-iNet Slate 7 Pro (GL-BE10000) is identified as a high-performance travel router. Key hardware features include a 2.8-inch color touchscreen and a SoC capable of exceeding standard networking throughput requirements.
1:24 I/O and Power Specifications: The unit requires a USB-C Power Delivery (PD) adapter to meet current demands. It features dual LAN/WAN ports, a USB-C data port (replacing traditional USB-A), foldable antennas, and a physical mode switch.
2:55 Software Environment: The device operates on a modified OpenWRT distribution. Initial boot-up and configuration take approximately two minutes, after which the touchscreen interface and web-based management portal become active.
4:08 Root Access and Reconnaissance: The system is highly accessible via SSH using standard admin credentials. The "GL screen" application is identified as the process responsible for managing the native GUI and I/O.
5:26 Reverse Engineering the Display Path: Using WinSCP for file exfiltration and IDA Pro for disassembly, the engineer analyzed the stock GUI binary. The display is confirmed to be driven by a standard Linux frame buffer, and user input is handled via an input event device.
6:02 Porting and Compilation: The engineer utilized the fbdoom (Frame Buffer Doom) port from GitHub. Because the stock port lacks native touchscreen support, a custom input handler was integrated to map specific screen coordinates to directional and action keys (Up, Down, Left, Right, Shoot, Start, Select).
6:34 Process Management: To ensure exclusive access to the frame buffer, the fbdoom binary was modified to actively terminate the native GL screen process, which otherwise attempts to re-initialize and overwrite the display.
7:02 Deployment and Validation: The compiled binary and WAD files were transferred to the router via SFTP. Functional testing confirms the game runs at full speed with responsive touch-based controls.
Architecture Openness: The device is praised for its lack of "locked-down" firmware, allowing developers full root control without complex exploits.
Performance: The router’s SoC handles the Doom engine with significant overhead remaining, suggesting it can support more complex third-party applications.
Code Availability: The modified source code for the input handler and deployment instructions are hosted on GitHub for peer review.