mirror of
https://github.com/FunKey-Project/FunKey-OS.git
synced 2025-12-12 15:48:51 +01:00
Updated README.md file
This commit is contained in:
parent
85204e25a8
commit
3a9357bbc5
28
README.md
28
README.md
@ -1,28 +1,28 @@
|
|||||||
<!--  -->
|
<!--  -->
|
||||||
# FunKey-OS
|
# FunKey OS
|
||||||
|
|
||||||
## Intro
|
## Intro
|
||||||
This repository contains all the sources required to build FunKey-OS, the Open-Source firmware at the heart of the [FunKey S retro-gaming console](https://www.funkey-project.com/).
|
This repository contains all the sources required to build FunKey OS, the Open-Source firmware at the heart of the [FunKey S retro-gaming console](https://www.funkey-project.com/).
|
||||||
|
|
||||||
As the FunKey-S console is based on a sophisticated [Allwinner V3s ARM Cortex-A7 1.2GHz CPU](http://www.allwinnertech.com/index.php?c=product&a=index&id=38), an Operating System is mandatory in order to access all the hardware resources without re-inventing the wheel.
|
As the FunKey-S console is based on a sophisticated [Allwinner V3s ARM Cortex-A7 1.2GHz CPU](http://www.allwinnertech.com/index.php?c=product&a=index&id=38), an Operating System is mandatory in order to access all the hardware resources without re-inventing the wheel.
|
||||||
|
|
||||||
FunKey-OS is based on Linux, and is built from scratch using the [buildroot](http://nightly.buildroot.org/) tool that simplifies and automates the process of building a complete Linux system for an embedded system like this.
|
FunKey OS is based on Linux, and is built from scratch using the [buildroot](http://nightly.buildroot.org/) tool that simplifies and automates the process of building a complete Linux system for an embedded system like this.
|
||||||
|
|
||||||
Technically, Funkey-OS is a [buildroot (v2) based external tree](https://buildroot.org/downloads/manual/manual.html#outside-br-custom) for building the bootloader, the Linux kernel and user utilities, as well as the optimized retro-game launcher and console emulators.
|
Technically, Funkey OS is a [buildroot (v2) based external tree](https://buildroot.org/downloads/manual/manual.html#outside-br-custom) for building the bootloader, the Linux kernel and user utilities, as well as the optimized retro-game launcher and console emulators.
|
||||||
|
|
||||||
## Build host requirements
|
## Build host requirements
|
||||||
Even if the resulting disk image and firmware update files are relatively small (202 MB and 55MB, respectively), the size of the corresponding sources and the compilation by-products tend to be rather large, such that an available disk space of at least 12GB is required during the build.
|
Even if the resulting disk image and firmware update files are relatively small (202 MB and 55MB, respectively), the size of the corresponding sources and the compilation by-products tend to be rather large, such that an available disk space of at least 12GB is required during the build.
|
||||||
|
|
||||||
And even if the resulting FunKey-OS boots in less than 5s, it still requires a considerable amount of time to compile: please account for 1 1/2 hour on a modern multi-core CPU with SSD drives and a decent Internet bandwidth.
|
And even if the resulting FunKey OS boots in less than 5s, it still requires a considerable amount of time to compile: please account for 1 1/2 hour on a modern multi-core CPU with SSD drives and a decent Internet bandwidth.
|
||||||
|
|
||||||
As the target CPU is probably different from the one running on your build host machine, a process known as [_cross-compilation_](https://en.wikipedia.org/wiki/Cross_compiler) is required for the build, and as the target system will eventually be Linux, this is much better handled on hosts running a Linux-based operating system too.
|
As the target CPU is probably different from the one running on your build host machine, a process known as [_cross-compilation_](https://en.wikipedia.org/wiki/Cross_compiler) is required for the build, and as the target system will eventually be Linux, this is much better handled on hosts running a Linux-based operating system too.
|
||||||
|
|
||||||
As a matter of fact, the FunKey-OS is meant to be built on a native Ubuntu or Debian Linux host machine (Ubuntu 20.04 LTS in our case, but this should also work with other versions, too). And with only a few changes to the prerequisites, it can certainly be adapted to build on other common Linux distros.
|
As a matter of fact, the FunKey OS is meant to be built on a native Ubuntu or Debian Linux host machine (Ubuntu 20.04 LTS in our case, but this should also work with other versions, too). And with only a few changes to the prerequisites, it can certainly be adapted to build on other common Linux distros.
|
||||||
|
|
||||||
However, if your development machine does not match this setup, there are still several available solutions:
|
However, if your development machine does not match this setup, there are still several available solutions:
|
||||||
- use a lightweight container system such as [Docker](https://www.docker.com/) and run an Ubuntu or Debian Linux container in it
|
- use a lightweight container system such as [Docker](https://www.docker.com/) and run an Ubuntu or Debian Linux container in it
|
||||||
- use a VM (Virtual Machine) , such as provided by [VirtualBox](https://www.virtualbox.org/) and run an Ubuntu or Debian Linux in it
|
- use a VM (Virtual Machine) , such as provided by [VirtualBox](https://www.virtualbox.org/) and run an Ubuntu or Debian Linux in it
|
||||||
- for Windows 10 users, use the [WSL2](https://docs.microsoft.com/en-us/windows/wsl/install-win10) (Windows System for Linux 2) subsystem and run an Ubuntu Linux distro in it
|
- for Windows 10/11 users, use the [WSL2](https://learn.microsoft.com/en-us/windows/wsl/install) (Windows System for Linux 2) subsystem and run an Ubuntu Linux distro in it
|
||||||
|
|
||||||
In order to install one of these virtualized environments on your machine, please refer to the corresponding documentation.
|
In order to install one of these virtualized environments on your machine, please refer to the corresponding documentation.
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ $ sudo apt install bash bc binutils build-essential bzip2 ca-certificates cpio c
|
|||||||
When using either physical or virtual Linux machines, you must clone the FunKey OS repository from Github (here we place it into a `FunKey-OS` directory):
|
When using either physical or virtual Linux machines, you must clone the FunKey OS repository from Github (here we place it into a `FunKey-OS` directory):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ git clone https://github.com/FunKey-Project/FunKey-OS.git FunKey-OS
|
$ git clone https://github.com/DrUm78/FunKey-OS.git FunKey-OS
|
||||||
```
|
```
|
||||||
|
|
||||||
Then enter into the created directory:
|
Then enter into the created directory:
|
||||||
@ -107,27 +107,27 @@ After building, you should obtain the SD Card image `FunKey-sdcard-X.Y.Z.img` an
|
|||||||
When using a Docker container, all the prerequisites are automatically installed.
|
When using a Docker container, all the prerequisites are automatically installed.
|
||||||
|
|
||||||
### How to get the sources
|
### How to get the sources
|
||||||
When using a Docker container, you must first create a new directory (here we create a `FunKey-OS` directory) and get the FunKey-OS [Dockerfile](https://github.com/FunKey-Project/FunKey-OS/blob/master/docker/Dockerfile):
|
When using a Docker container, you must first create a new directory (here we create a `FunKey-OS` directory) and get the FunKey OS [Dockerfile](https://github.com/DrUm78/FunKey-OS/blob/master/docker/Dockerfile):
|
||||||
```bash
|
```bash
|
||||||
$ mkdir FunKey-OS
|
$ mkdir FunKey-OS
|
||||||
$ cd FunKey-OS
|
$ cd FunKey-OS
|
||||||
$ wget https://raw.githubusercontent.com/FunKey-Project/FunKey-OS/master/docker/Dockerfile -o Dockerfile
|
$ wget https://raw.githubusercontent.com/DrUm78/FunKey-OS/master/docker/Dockerfile -o Dockerfile
|
||||||
```
|
```
|
||||||
|
|
||||||
You must then build the docker image (don't forget the final dot!):
|
You must then build the docker image (don't forget the final dot!):
|
||||||
```bash
|
```bash
|
||||||
$ docker build -t funkeyproject/funkey-os .
|
$ docker build -t DrUm78/funkey-os .
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build the disk image & firmware update files
|
### Build the disk image & firmware update files
|
||||||
You may now build your FunKey with:
|
You may now build your FunKey with:
|
||||||
```bash
|
```bash
|
||||||
$ docker run --name funkey-os funkeyproject/funkey-os
|
$ docker run --name funkey-os DrUm78/funkey-os
|
||||||
```
|
```
|
||||||
|
|
||||||
Or alternatively, you can run it in the background with:
|
Or alternatively, you can run it in the background with:
|
||||||
```bash
|
```bash
|
||||||
$ docker run -d --name funkey-os funkeyproject/funkey-os
|
$ docker run -d --name funkey-os DrUm78/funkey-os
|
||||||
```
|
```
|
||||||
|
|
||||||
If you launch it in the background, you can still follow what is going on with either:
|
If you launch it in the background, you can still follow what is going on with either:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user