Knulli is an alternative firmware derived from Batocera, designed for handheld consoles whose Linux kernel is not mainline or whose manufacturer does not publish usable sources. In practice, you write an image to a microSD card, you boot, and you get an EmulationStation interface that handles emulators, controllers, Wi-Fi, scraping and RetroAchievements from a single menu. The current version as we write is called Scarab (build 20260511), released in May 2026. This guide follows the project's official documentation, step by step, with no shortcuts. Allow thirty minutes for the installation, a little more if you are starting from a blank card.
What Knulli is, and what it isn't
Knulli is a fork of Batocera. The project states it plainly: Batocera's licence does not allow closed kernels to be added, which made it impossible to bring machines with a proprietary BSP into the main branch. So Knulli takes the Batocera base and adapts it to low-memory handhelds. If you were coming from Batocera v39 or v40 on that kind of device, Knulli is its direct successor.
It is not a layer laid on top of the original system, and it is not a commercial product: the Knulli trademark is under a non-commercial licence and is not meant to be sold.
Which machines Knulli runs on
The official list is published on the project's Devices page and on the releases page. Here is how it lines up with the machines we sell.
| Machine | Platform | Official image |
|---|---|---|
| Anbernic RG35XX Pro | Allwinner H700 | Yes |
| Anbernic RG35XX Plus / 2024 / H / SP | Allwinner H700 | Yes, one image per variant |
| Anbernic RG28XX, RG34XX, RG CubeXX | Allwinner H700 | Yes |
| Anbernic RG40XX H and RG 40XXV | Allwinner H700 | Yes, two separate images |
| TrimUI Brick and Smart Pro | Allwinner A133 Plus | Yes |
| TrimUI Smart Pro S | Allwinner T527 | Yes |
| Powkiddy X55 and RGB30 | RockChip | Yes |
| Retroid Pocket 5 and Pocket Mini | Snapdragon 865 | Yes, with prior preparation |
| Miyoo Mini Plus | SigmaStar SSD202D | No |
| Android consoles (Retroid Pocket 6, Anbernic RG557, AYN Odin 2 Portal…) | ARM Android | Not concerned |
Two remarks. Each Anbernic H700 has its own image: an RG35XX H will not boot with the one for an RG35XX SP, despite the same chip. And some models we sell are absent from the Scarab release images (RG353V, RG353PS, Powkiddy RGB20S); the list moves with every version. Our firmware compatibility table covers these matches.
What Knulli brings over the stock firmware
The main gain is centralisation: you set the emulators from EmulationStation, without going into each RetroArch core's menu. The rest, in practical terms:
- Built-in scraping of box art and metadata.
- RetroAchievements.
- Bluetooth for external controllers, keyboard and mouse support.
- HDMI output on the machines that have it.
- File transfer over the network, Samba share reachable from Windows Explorer.
- Save synchronisation through Syncthing, improved in the Scarab release.
- Themes, screen bezels, boot logo, shaders, RGB lighting.
- PortMaster, the library of native ports, installable in two menus.
The trade-offs have to be stated too. The official documentation is not translated into French. The interface is denser than a manufacturer firmware's, and a beginner can get lost in it. A major update often calls for a clean reinstall, and therefore a reconfiguration. And as soon as you connect the machine to Wi-Fi, its data is reachable on the local network with no password until you switch on the protection in the Security menu.
The hardware you need
A good quality microSD card, a reliable card reader, and an image-writing tool. The Knulli documentation mentions Rufus, balenaEtcher, Raspberry Pi Imager and Win32 Disk Imager; dd will do if you are comfortable on the command line. Plan for 7-Zip as well: some images are delivered as archives split into several parts.
Don't skimp on the card: a counterfeit or a slow card causes save corruption that then gets blamed on the firmware. Our criteria are detailed in the guide to choosing a microSD card. The cards we ship are checked with a full write-and-read-back pass before they leave.
Step-by-step installation
- Identify your exact model. Not the range, the model and its variant: RG35XX Plus, RG35XX 2024, RG35XX H, RG35XX SP and RG35XX Pro are five different machines. Look at the printing on the back and at the box.
- Check whether your device needs preparation. The quick-start guide points out that certain machines, among them the Miyoo Flip and the Retroid Pocket models, require an operation before the card is written. The Anbernic H700 machines and the TrimUI ones do not.
-
Download the image from the official releases page, repository
knulli-cfw/knulli-linuxon GitHub. The files follow the patternknulli-<chip>-<model>-<version name>-<date>.img.gz, for example anh700image for the Anbernic machines ora133for the TrimUI ones. Never take an image found anywhere else. -
Check the integrity of the download. The project does not publish checksums next to its images: there is no official SHA-256 to compare against. Instead, have the archive tested by 7-Zip before writing, since the gzip and 7z formats carry a CRC. If the image is split, download every part (
.001,.002…) and extract from the first one. - Write the image to the card with the tool of your choice. The operation erases the card completely. Check the drive letter three times before confirming.
- First boot. Put the card in the first slot, remove any card from the second slot, switch on. The boot is long: Knulli expands and formats the games partition. Don't cut the power, don't remove the card.
- Wait for EmulationStation. The installation is only finished when the interface appears. The SHARE partition only reaches its final size at that point: there is no use trying to copy anything to it before.
The configuration to do right after
Language
The interface language is set from the main menu, Start button, in the system settings. The exact menu wording changes from one version to another, to be confirmed on your build. The project documentation, for its part, exists only in English, Spanish, German, Polish, Turkish, Brazilian Portuguese, Italian and Japanese.
Wi-Fi and network
Start then Network settings, switch on Wi-Fi in the settings section. Once connected, the machine appears in Windows Explorer at the address \\KNULLI\share, and SSH access uses the root login. Go straight to the Security menu to set a password if you are not on your home network.
Buttons
Start, Controller & Bluetooth Settings, Controller Mapping to pair an external controller. Do not, however, remap the console's built-in controls: every Knulli image ships with a mapping optimised for the machine, and remapping breaks hidden virtual functions, such as D-pad to stick conversion. To change the buttons for one specific game, go through the emulator's settings.
Sleep and battery life
The official FAQ covers fast battery drain on the Anbernic RG35XX and RG40XX, and a distorted display on recent revisions of the RG35XX SP. Read the project's troubleshooting page before concluding that there is a hardware fault.
Where to put your games
Everything goes through the /userdata folder, which corresponds to the SHARE partition of the main card, or to the main partition of the second card if you use one. The path to remember is /userdata/roms/, with one subfolder per system, plus /userdata/bios for system files and /userdata/saves for saves.
An important point about dual cards: SD1 and SD2 cannot both serve as game storage at the same time. You choose one or the other in the settings, and in dual-card mode the internal SHARE partition is no longer used or reachable over the network. For the detail of folder names per system, refer to our article on firmware folder structures, we are not rewriting it here.
The most common trap
It is rushing the first boot. Three mistakes come up constantly: copying games before the SHARE partition has been expanded, leaving a second card inserted during the installation, accepting Windows' offer to format. All three end in a complete reinstall.
The second trap concerns major updates: after moving up a version, do not restore the system folder from your previous installation. The configuration files are not compatible from one major version to the next and you inherit inconsistent settings. Restore the games, the saves, the themes, not the system folder. If a game still refuses to start despite everything, our guide my game won't launch goes through the causes.
Updating
Three routes exist, documented by the project.
- OTA. Main menu, Updates & Downloads, update type on Stable, then Start Update. An internet connection is needed. Don't interrupt anything during the operation, don't launch a game alongside it.
-
Boot package. For minor updates, you download the matching package from the releases page, replace the
boot/batocerafile on the BATOCERA partition with the supplied file, renamed, then restart. -
Complete rewrite. For major versions. The Scarab release notes explicitly recommend starting again from a clean installation, since the configuration files are not compatible with earlier versions. Back up
/userdatafirst.
On recent versions, a clean installation remains the safe route, even when an update looks possible. It takes longer, but it avoids erratic behaviour that is impossible to diagnose afterwards.
Going back
If you followed the golden rule, there is nothing to undo: you switch the console off, you put the original microSD card back, you switch on again. The manufacturer firmware returns exactly as it was, since Knulli lives on its own card and does not touch the original one.
This holds for machines that boot from the card, the Anbernic H700 and TrimUI ones in particular. On models that required prior preparation, restoring follows the reverse procedure described in their documentation: to be checked case by case. To compare alternative firmwares with each other, see our guide to installing custom firmwares.
Frequently asked questions
Does Knulli erase my console's original firmware?
No, if you install it on a different microSD card. On machines that boot from the card, the manufacturer firmware is on the original card: as long as you don't write over it, it stays intact. Models that require prior preparation are the exception, read their documentation page first.
How can I check that the downloaded file isn't corrupted?
The project does not publish an official checksum file next to its images. Have the archive tested by 7-Zip before writing: the gzip and 7z formats contain an internal CRC and a damaged archive will be reported. If the image comes in several parts, download all of them.
My console boots but nothing shows for several minutes, is that normal?
On the first boot, yes. Knulli expands and formats the games partition, and the documentation warns that the operation can be long. Don't switch the machine off. If the screen stays black after several restarts, you have probably written the image for another variant.
Can I use the same second card as muOS?
The project's troubleshooting FAQ addresses this precise case, as well as reusing a card formatted for Garlic. The behaviour depends on the file system and on the folder structure each firmware expects: consult the official answer before sharing a card, rather than trying it and reformatting everything afterwards.
Is PortMaster included?
It is not pre-installed. After the installation, open the menu, go to Device Settings and choose Install Portmaster. An internet connection is needed to install it and to fetch the ports. The library holds close to five hundred games, but your console will only show the ones compatible with it.
Does Knulli change my machine's emulation performance?
It doesn't change the hardware. An Allwinner H700 will stay in the same waters: Super Nintendo and earlier, PlayStation 1, a little Nintendo 64 or Dreamcast depending on the title. Knulli brings up-to-date emulators and accessible settings, not power.
If you are still hesitating about which machine to install it on, or if you are looking for a model whose alternative firmware is well supported, browse our selection of Linux retro consoles.
