jamesMcMeex / m8c-rg35xx-knulli

A Docker platform to hopefully make it easier to compile a runnable executable of the M8 Tracker software for RG35XX* devices running Knulli CFW
MIT License
5 stars 1 forks source link

m8c-Knulli Build Environment

This repository contains a Dockerfile and build script for compiling the m8c (DirtyWave M8 Headless Client) and necessary kernel modules for use with Knulli custom firmware on the Anbernic RG35XX* family of embedded Linux handheld retro console devices.

Note: I have only tested this on an Anbernic RG35XXSP, but others in the Discord community have basically run this on other RG35XX* devices

Overview

The idea behind this is to provide a platform that makes it relatively easy for most people to compile a runnable executable of the M8 Tracker software for handheld gaming consoles. With a bit more tinkering, this could be made more flexible so that it's easy to build m8c for other devices and/or other firmware.

Requirements

Dependencies

This version builds using:

Usage

  1. Clone this repository:

    git clone https://github.com/jamesMcMeex/m8c-rg35xx-knulli.git
  2. Go into the directory:

    cd m8c-rg35xx-knulli
  3. Build the Docker image:

    docker build -t m8c-knulli .
  4. Run the Docker container to start the build process:

    For Windows (PowerShell):

    docker run -v ${pwd}/output:/build/compiled m8c-knulli

    For Mac/Linux:

    docker run -v $(pwd)/output:/build/compiled m8c-knulli
  5. After the build process completes, you'll find the compiled files in a new output/ directory located inside inside the source directory (m8c-build-environment).

What's Included

Build Process

The build process includes the following steps:

  1. Downloads and extracts the Linux kernel source (version 4.9.170)
  2. Downloads and extracts the Knulli ARM64 toolchain
  3. Downloads the Knulli Linux config file for RG35XX* devices
  4. Downloads and extracts the m8c project
  5. Configures and builds the necessary kernel modules
  6. Builds m8c
  7. Collects all built files and creates a startup script

Output

After a successful build, you'll find the following in the output directory:

Installation on device (Knulli CFW-specific)

Customization

You could modify the Dockerfile and build_script.sh to adjust the build process according to your needs. For example, you can change the kernel version, the toolchain used for , or M8C repository URL.

Troubleshooting

If you encounter any issues during the build process:

  1. Ensure you have a stable internet connection for downloading dependencies.
  2. Check that you have the latest version of Docker installed.
  3. Verify that you have sufficient disk space for the build process.

If problems persist, please open an issue in this repository with detailed information about the error you're experiencing. I will try to help but I am a frontend engineer and a Linux noob!

Contributing

Contributions to improve the build process or extend functionality are welcome. Please fork the repository, make your changes, and submit a pull request.

Acknowledgments

License

MIT License