How to Build Apps Using a Toolchain for Retrohandhelds

Опубликовано: 25 Апрель 2026
на канале: Archivers
206
8

This is not a guide since I have no idea what I'm doing. This is more of a documentation of the steps I took to produce a binary for a custom OS using a toolchain (gmu for the v90 running miyoo cfw 2.0.0).

I hope this helps others get started in tinkering around with building apps.

=
Links
=
►Virtual Box: https://www.virtualbox.org/wiki/Downl...
►Ubuntu VB Image: https://www.linuxvmimages.com/images/...
►7-Zip: https://www.7-zip.org/
►Miyoo CFW Toolchain (scroll down to "Important Notes - For other developers": https://github.com/TriForceX/MiyooCFW...
►Ubuntu Packages: https://ubuntu.pkgs.org/
►Written Toolchain Guide: https://duckyobrien.com/2024/05/28/ho...
►Podcast Feed: https://the-ducky-obrien-show.pinecas...
►Audio Version: https://pinecast.com/listen/b3245238-...

=
Resources
=
►Enable copy & paste in VB: https://www.techrepublic.com/article/...
►Setting up Docker: https://stackoverflow.com/questions/4...
►Install SDL: https://gist.github.com/aaangeletakis...
►Fix compiler error: https://github.com/iraf-community/ira...
►Exiting a Docker container but leaving it running: https://phoenixnap.com/kb/exit-docker...

=
Commands
=
$ sudo apt update
Update Ubuntu
$ sudo apt install docker.io -y
Install Docker
$ sudo usermod -aG docker ubuntu
Add Docker to group so we don't have to sudo everytime
$ newgrp docker
Login to docker group
$ docker run hello-world
Check to see if Docker is installed and running correctly
===========
Optional
===========
$ groups
Check to see if Docker was added to groups
$ sudo groupadd docker
Add docker to groups if it wasn't added
=================
Ending Optional
=================
$ docker pull miyoocfw/toolchain-static-uclibc
Download miyoocfw toolchain
$ docker images
List Docker images currently installed
$ docker run -it miyoocfw/toolchain-static-uclibc
Run Docker with the miyoocfw toolchain in an interactive terminal
========================
Inside Docker Terminal
========================
$ apt update
Update our toolchain enviornment
$ git clone https://github.com/denis-n-kuznetsov/gmu
Copy gmu repository into our Docker container
$ cd gmu
Change to our newly created gmu directory
$ ./configure
Run gmu configuration script
$ apt install libsdl2-dev libsdl2-2.0-0 libmikmod-dev libfishsound1-dev libsmpeg-dev liboggz2-dev libflac-dev libfluidsynth-dev libsdl2-mixer-dev libsdl2-mixer-2.0-0 ibfreetype6-dev libsdl2-ttf-dev libsdl2-ttf-2.0-0 libsdl-gfx1.2-dev opus-tools libmpg123-dev libvorbisidec-dev libmodplug-dev libopenmpt-dev libsdl-image1.2-dev liblirc-dev -y
Install all the missing library files for gmu to compile correctly
$ ./configure
Run gmu configuration script again
$ make
Compile gmu
$ apt install vim -y
Install vim (text editor)
$ vim Makefile
Edit the makefile for gmu
============
Inside Vim
============
*move the cursor to line 21, after "-pipe"
i
edit file

type in this line of code in between "-pipe" and "-Wall"

-g O2 $(CARCH) -fcommon

so that the line of code looks like this now
"CFLAGS+=$(COPTS) -pipe -g -O2 $(CARCH) -fcommon -Wall"
fixes compile error for gmu

esc
exit edit mode

:wq
write and quit vim
=============
Exiting Vim
=============

$ make clean
clean up compilation files
$make
compile gmu again

ctrl + p, ctrl + q
exit Docker container while leaving it running
==========================
Exiting Docker Container
==========================
$ sudo docker cp b8b2ab1cef8b:/gmu/gmuc /mnt
copy the compiled gmu binary from our docker container to our linux directory, mnt is our shared folder

=
Table of Contents
=
00:00 - Start
01:09 - Virtual Box
01:57 - Installing Virtual Box
02:40 - Downloading the Ubuntu Image
03:52 - Adding the Ubuntu Image to VB
04:24 - Adding Mouse Support
05:16 - Logging in (default psw: ubuntu)
05:31 - Adding a Shared Clipboard
05:58 - Adding a Shared Folder
07:56 - Starting the Terminal
08:09 - Installing Docker
11:03 - Installing the Toolchain
13:28 - Starting the Toolchain
14:24 - Clone GMU
15:05 - Simple Terminal Commands
15:51 - Configure GMU
16:37 - Install Dependecies
17:27 - Configure and Make GMU
19:20 - Installing VIM
19:39 - Compile Error Fix
21:01 - Exit Docker
21:18 - Copy Binary to Shared Folder
22:34 - Goodbye Friends!

#SBCGaming #duckyobrien #archivers