Ghost v2.0 - Rockchip Edition

Ghost v2.0 - Rockchip Edition

Embedded and Shadow has been one of the exciting part I've worked for several years (playing with Shadow components since 2017) as side projects in my batcave, I was excited by the fact I could build custom Shadow fanless client devices, at the cost of less than 15W (for the computer itself) and get performance of full featured gaming machine while maintaining an high WAF and overall low cost.

Must admit that since last week, I'm exciting to have finally something useable in the form of a ready to flash image, that allows to replicate a more modern Shadow Ghost experience on an RK3588 SoC using Rock5B (Ghost runs on the great but ageing RK3399).

It's not only more modern because it runs on higher end hardware, but because most of the components, applications and dependencies of the original Shadow's Ghost Yocto firmware as been migrated to GitLab CI projects and APT repositories in the form of .deb packages.

Reverse a device takes time and efforts : What is this components ? how is it used ? Why ? What is its purpose ? Opensource dependencies that once recompiled were missing symbols/conf/patches, getting hardware, eMMC, eMMC flashers, USB to TTL adapters,... Learning curve for embedded is pretty steep with many trial and errors, but that was worth it !

So what we got ?

A full featured Shadow Ghost experience tested on Rockpi4, Rock5A, Rock5B, Orange Pi 5 plus running on Debian Bookworm 12.5 (Original Shadow Box / Ghost runs on Yocto Dunfell).

What works ?

  • Autoboot on Ghost Launcher from micro-SD or eMMC
  • Language / Keyboard Layout selection
  • H264/HEVC 4:2:0 hardware decoding
  • Supports all resolutions and all refresh rates Shadow supports (FHD@240Hz, QHD@144Hz, UHD@60Hz)
  • HDMI Audio
  • CEC (on startup it should power-on CEC compatible device and sets itself as Active Source)
  • WIFI (using RADXA M.2 WiFi 6 and BT5.2 Wireless Module A8)
  • Bluetooth (using RADXA M.2 WiFi 6 and BT5.2 Wireless Module A8) it will be by default automatically forwarded by Shadow USB Redirection and be useable directly within Windows or can be used in Native Mode using a script
  • USB over IP (USB 2.0 for keyboard and mouse and USB3.0 to forward devices)
  • Ghost Power-off into Standby mode / Power Button
  • LAN over IP (Access your home LAN from Shadow)
  • (NEW: as of March 5th 2023) MangoHUD with Shadow extra infos

What are the ongoing issues ?

  • Sometimes a purple tint overlay may appear, reboot workaround it (very rare) (EDIT: March 2024: A new version fixes this)
  • On Shadow launcher, mouse pointer can wear a purple color (EDIT: March 2024: A new version fixes this)
  • HDMI Dual screen of Shadow Desktop with both HDMI ports (Direct or Hotplug) crashes decoding stack with mesa panfork but doesn't with default Mali blob (EDIT: March 2024: A new version fixes this)
  • 3.5mm audio output and mic input

What doesn't work yet / is not test ?

  • From Shadow Launcher Branch changes: Prod / Beta / Alpha
  • Automatic APT update at boot time (Ongoing)
  • micro HDMI-in to use as a capture card (Untested)
  • xpadneo for controller triggers rumble feature when using local Bluetooth (Untested)
  • Power button to access Shadow Launcher, it's possible this usecase won't be supported
  • 4:4:4 as those SBC (Single-board computer) sadly doesn't supports its decoding profile by default

What are the improvements over Ghost ?

It's has been made compatible with latest librockchip-mpp that includes bugfixes, improvements (debug, AV1, new features) & new SoC being supported, inittab & SysvInit rewriting into systemd services, various improvements, APT repository with dedicated shadow packages, 5.10.110 kernel. With Rock5B, it supports resolution up to 8K@60Hz in HEVC (HDMI-1 only), UHD@60Hz in AV1 and the decoding is smooth either in H264/HEVC without breaking a sweat or requiring a CPU passive cooler (idle ~36°C, playing ~50°C).

How to Flash ?

  • Download & Install Balena Etcher
  • Insert a MicroSD card / eMMC and start Balena Etcher
  • Select custom Shadow Rock 5B image file, select MicroSD card/eMMC and click Flash, wait it reports success.
  • Insert Flashed MicroSD card/eMMC in your Rock5B and boot it.
  • Authenticate on Shadow and Play.

Where can I get one of those nice SBC and what is needed ?

  • The SBC (Single-board computer), for shadow any model 2/4/8/16GB

Users Shots

Special Thanks

Many thanks for Shadow staff members always willing to tackle a bug/give hints : Martial / Mouh / Previsou / Plasma / Shadow2G
My Shadow friends and partner in crime who endure my endless monologues around those projects : Ak, Nelf, Gyzmo, Van, Lasl
My first Rock5B testers : Shot, Ak (v1.42) and all my current supporters!