Add additional documentation, move device specific stuff down a level.
This commit is contained in:
parent
d9584466c2
commit
f8d6c3ce56
20 changed files with 589 additions and 367 deletions
|
@ -44,7 +44,7 @@ OS_VERSION=$(date +%Y%m%d)
|
|||
BUILD_DATE=$(date)
|
||||
|
||||
# defines supported systems documentation path
|
||||
SYSDOCROOT="${ROOT}/documentation/${DEVICE}/"
|
||||
SYSDOCROOT="${ROOT}/documentation/PER_DEVICE_DOCUMENTATION/${DEVICE}/"
|
||||
SYSDOC="${SYSDOCROOT}/SUPPORTED_EMULATORS_AND_CORES"
|
||||
|
||||
# include helper functions
|
||||
|
|
85
documentation/GENERAL_FREQUENTLY_ASKED_QUESTIONS.md
Normal file
85
documentation/GENERAL_FREQUENTLY_ASKED_QUESTIONS.md
Normal file
|
@ -0,0 +1,85 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
## Does JELOS offer any formal support?
|
||||
* No. JELOS is something that we develop for fun, it is provided as-is. There are a variety of avenues to seek community help, but this is a tinkerer's distribution so you will need to get your hands dirty to solve your problems.
|
||||
|
||||
## Do you plan to add additional ports, software, or emulators?
|
||||
* We are a community developed distribution, and we believe that it is the responsibility of the person who wants a new feature to develop and contribute that feature. If you would like to add something to JELOS, pull requests are welcomed. Please review our [code of conduct](https://github.com/JustEnoughLinuxOS/distribution/blob/main/CODE_OF_CONDUCT.md), our [contributing guidelines](https://github.com/JustEnoughLinuxOS/distribution/blob/main/CONTRIBUTING.md), and our [build guide](https://github.com/JustEnoughLinuxOS/distribution/blob/main/BUILDING.md) before submitting your first pull request.
|
||||
## Which emulators and game engines are supported by JELOS?
|
||||
* [See JELOS emulators and game engines](https://github.com/JustEnoughLinuxOS/distribution/wiki/JELOS-emulators-and-game-engines)
|
||||
|
||||
## Licensing JELOS for redistribution
|
||||
JELOS utilizes a non-commercial CC BY-NC-SA 4.0 copyleft license on our branding which is intended to prevent abuse of our software. Device Makers and others who would like to bundle on devices may not do so without our express permission.
|
||||
|
||||
### Redistribution Authorization Requirements
|
||||
If you would like to receive permission from our project to redistribute JELOS, you must request permission in writing. We can be reached at contact@jelos.org.
|
||||
|
||||
#### Benefits
|
||||
Authorization to use our branding will allow you to distribute JELOS on your device without needing to maintain a fork of the project for your device. This would include access to our online update feature.
|
||||
|
||||
#### Minimum Requirements
|
||||
To receive permission to redistribute JELOS the following *minimum* criteria must be met. Please note, that taking these actions without formally receiving approval from our project does not grant you the authority to use our branding. You MUST receive approval from JELOS.
|
||||
|
||||
1. We receive sources for device(s) before they ship to consumers and we have irrevokable authority to publish at our leisure. We strongly prefer device makers contribute changes to support their device(s) directly to the distribution themselves.
|
||||
2. Provide, upon request, device samples for every JELOS team member (including core developers, moderation team, and outside contributors), as well as any community developer designated by JELOS, for all devices planned, supported by, or bundled with JELOS for as long as the device maker manufactures the device.
|
||||
3. It is up to the requestor to secure distribution rights for software included with JELOS that is not developed or owned by JELOS.
|
||||
4. A support representative must join and participate in our community to support their device(s).
|
||||
|
||||
#### Selling JELOS
|
||||
JELOS branding is licensed for non-commercial use only. Even if approved to be distributed on a device, it is not allowed to be sold or included as an up charge in any form what-so-ever. Period. This is not negotiable.
|
||||
|
||||
## What if you stop working on JELOS?
|
||||
* I don't expect that to happen, however JELOS is an Open Source project hosted here on GitHub which means the source code is readily available for anyone in the world to pick up and continue where we left off. Our [license model](https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)) allows for this to happen by providing and encouraging redistribution ([freedom 2](https://www.gnu.org/philosophy/free-sw.en.html#four-freedoms)) and the right to distribute a modified version ([freedom 3](https://www.gnu.org/philosophy/free-sw.en.html#four-freedoms)). JELOS only prohibits commercial use through our branding which is licensed by the [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://tldrlegal.com/license/creative-commons-attribution-noncommercial-sharealike-4.0-international-(cc-by-nc-sa-4.0)).
|
||||
|
||||
## I have a device with single storage and I can't see the games partition in Windows or macOS.
|
||||
* JELOS does not create an ExFAT partition on the boot device, and expands the full partition using ext4. You can sync files to the device using SyncThing, copy files to the device using SAMBA, or by loading your files onto a EXT4, ExFAT, or FAT32 formatted usb stick and copy them with FileMan or over ssh.
|
||||
* Windows Users can connect to their device by unc path using the device name such as ```\\handheld``` or by IP ```\\device IP address``` into the address bar in Windows Explorer.
|
||||
* Mac users can connect by selecting "Go" from the Finder menu, followed by "Connect to Server", then enter ```smb://handheld``` or ```smb://device IP address```.
|
||||
* Log in as root. The root password is required for access which can be found in the system menu.
|
||||
|
||||
## I'm using an Intel or AMD based device and I have no sound.
|
||||
* Press Start, select System Settings, select your audio output device, save, then choose an available audio path.
|
||||
|
||||
## EmuStation displays duplicate game titles. How can I disable a file extension to remove the duplicates? (e.g. display only ```.cue``` and don't display ```.bin``` files for PlayStation)
|
||||
|
||||
* Within EmuStation, select the relevant game system (e.g. PlayStation)
|
||||
* Press ```Select``` to View Options
|
||||
* In View Options section, choose View Customisation
|
||||
* Under File Extensions, deselect any file extensions that are not required (e.g. deselect ```.bin``` for PlayStation when also using ```.cue``` files)
|
||||
|
||||
## How do I edit ```es_systems.cfg``` (for example, to modify the list of systems in EmuStation, add a custom core or script, or change the order that systems are displayed)?
|
||||
|
||||
* Delete the ~/.config/emulationstation/es_systems.cfg symlink.
|
||||
* Copy the custom version of ```es_systems.cfg``` to ```~/.config/emulationstation```.
|
||||
* Stop the UI service.
|
||||
|
||||
`systemctl stop ${UI_SERVICE}`
|
||||
* Restart the UI service to use the custom version
|
||||
|
||||
`systemctl start ${UI_SERVICE}`
|
||||
|
||||
> Note: once it's edited any changes made by system updates will be ignored
|
||||
|
||||
## Where do I put bios files and files and Retroarch system files
|
||||
|
||||
* They go in ```roms/bios```
|
||||
* System bios checker in ```game settings, missing bios``` identities missing files per emulator and indicates their required location
|
||||
|
||||
## Where do I put music files to enable background music within emulationstation (while browsing my game library)?
|
||||
`/storage/roms/BGM`
|
||||
|
||||
## My game has slowdown and stuttering issues. What can I do to improve performance?
|
||||
First make sure you do not have a TDP configured that is too low for your emulator to function correctly. Next, try adjusting settings within the emulator, either retroarch core or standalone emulator configuration menu. First make sure that rewind is disabled. Search online to check for recommended settings that others may have determined.
|
||||
|
||||
## Where are log files stored?
|
||||
`/var/log/`
|
||||
|
||||
Various logs are generated, including
|
||||
* EmuStation logs `es_log.txt` (cumulative log of all ES activity), `es_launch_stdout.log` (last emulator launched from ES) and `es_launch_stderr.log` (blank if there wasn't an error for the last emulator launch)
|
||||
* Execution log `exec.log` (generic execution log that indicates what was last executed, including the command to launch the emulator) e.g. for gzdoom launch of heretic.doom `runemu.sh: Executing /usr/bin/bash start_gzdoom.sh /storage/roms/doom/heretic.doom`
|
||||
* Boot log `boot.log` (Output from autostart during system startup)
|
||||
* Emulator-specific log (for non-retroarch emulators) e.g. `gzdoom.log` is the log specific to gzdoom to indicate whether there is any issue within the emulator when launching heretic.doom, noted above
|
||||
* Retroarch logs are [turned off by default](https://github.com/JustEnoughLinuxOS/distribution/blob/main/packages/games/emulators/retroarch/sources/handheld/retroarch.cfg#L420), but can be enabled within Retroarch (`Tools > Retroarch`: `Settings > Logging > Log to a File`), are stored in `/var/log/retroarch` and are quite detailed, so should provide sufficient detail to identify missing roms within a game's romset, configuration issues and other errors that prevent games from working
|
||||
|
||||
> Note: Retroarch uses a shared config file, so logging can be enabled within 64bit or 32bit and it will be enabled for all Retroarch cores
|
91
documentation/GENERAL_GAME_ENGINES_AND_LAUNCH_FILES.md
Normal file
91
documentation/GENERAL_GAME_ENGINES_AND_LAUNCH_FILES.md
Normal file
|
@ -0,0 +1,91 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Game Engine Launch Files
|
||||
Game engines such as Build Engine, GZDoom, LZDoom, ScummVM and ECWolf use launch files for launching the game with the specified files and mods. Most are configurable to enable different configurations of game files and mods per game.
|
||||
> Note: the extensions for game engine launch files are case-sensitive, so make sure the launch extensions `.build`, `.doom`, `.scummvm` and `.ecwolf` are lower case, and make sure any references to game files match the case of the game files exactly (e.g. if the game file is `DOOM.WAD` then trying to launch it as `doom.wad` won't work).
|
||||
|
||||
## .build files
|
||||
These files must be created for each build engine game that will be launched with raze. The file contains a `PATH` variable and an optional `GRP` variable. The `PATH` variable points to the subfolder containing the game's **GRP** file. The optional `GRP` variable is used to identify the specific **GRP** file to load for games with multiple **GRP** files.
|
||||
|
||||
Example: `/storage/roms/build/shadow warrior.build` contains
|
||||
```
|
||||
PATH=sw
|
||||
GRP=SW.GRP
|
||||
-- end --
|
||||
```
|
||||
where the Shadow Warrior games files are stored in subfolder `sw`, i.e. `/storage/roms/build/sw/`
|
||||
> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
|
||||
|
||||
> Note: add `-- end --` to the end of the file if it contains multiple lines
|
||||
|
||||
## .doom files
|
||||
These files must be created for each **WAD** that you want to load with gzdoom or lzdoom. The file contains `IWAD` variables and optional `MOD` variables. Multiple `IWAD` and `MOD` variables can be used in the same file to load multiple wads, mods and packages. Therefore, multiple **.doom** files can be created for the same **WAD** for each configuration of the game. It is recommended to store **WAD** files in a **iwads** subfolder and `MODs` in a **mods** subfolder and include the full path to each file in the **.doom** file.
|
||||
|
||||
Example: `/storage/roms/doom/doom.doom` contains
|
||||
```
|
||||
IWAD=/storage/roms/doom/iwads/doom.wad
|
||||
```
|
||||
to load vanilla doom
|
||||
> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
|
||||
|
||||
Example: `/storage/roms/doom/heretic-mod.doom` contains
|
||||
```
|
||||
IWAD=/storage/roms/doom/iwads/heretic.wad
|
||||
IWAD=/storage/roms/doom/iwads/IWMPP_Heretic.wad
|
||||
MOD=/storage/roms/doom/mods/precise-crosshair-v1.4.1.pk3
|
||||
MOD=/storage/roms/doom/mods/target-spy-v2.0.1.pk3
|
||||
-- end --
|
||||
```
|
||||
to load Heretic with additional patches and mods.
|
||||
> Note: add `-- end --` to the end of the file when it contains multiple lines
|
||||
|
||||
## .scummvm or .svm files
|
||||
These files are created by `_Scan ScummVM Games.sh` script in `/storage/.config/scummvm` folder (which is also displayed in EmuStation). The script scans for game folders and generates the relevant `.scummvm` files to launch those games. The files are stored in `/storage/.config/scummvm/games`.
|
||||
|
||||
`.scummvm` files are named using the common name of the game and the <a href="https://www.scummvm.org/compatibility/"> <strong>Game Short Name</strong></a> in brackets (e.g. `Beneath a Steel Sky (sky).scummvm`).
|
||||
|
||||
`.scummvm` files contain a single line in the form:
|
||||
* `--path=` variable and the path to the folder containing the game, *followed by*
|
||||
* <a href="https://www.scummvm.org/compatibility/"> <strong>Game Short Name</strong></a>
|
||||
|
||||
Example: `/storage/.config/scummvm/games/Beneath a Steel Sky (sky).scummvm` contains
|
||||
```
|
||||
--path="/storage/roms/scummvm/Beneath a Steel Sky (CD VGA)" sky
|
||||
```
|
||||
> Note: enclose filenames containing spaces with "quotes"
|
||||
|
||||
> Note: `.scummvm` and `.svm` files are identical and interchangeable
|
||||
|
||||
> Note: the `.scummvm` files are **NOT** stored in `/storage/roms/scummvm` and any `.scummvm` files stored there will not be displayed by EmuStation. EmuStation only displays `.scummvm` files that are in `/storage/.config/scummvm/games`.
|
||||
|
||||
> Note: to display metadata and media within EmuStation, put `gamelist.xml` in `/storage/.config/scummvm/games` and media into relevant subfolders (e.g. `/storage/.config/scummvm/games/media` folder with `boxart`, `images` and `videos` subfolders)
|
||||
|
||||
## .ecwolf files
|
||||
These files must be created for each Wolfenstein 3D compatible game. The file contains `PATH` variable that points to the subfolder containing the game's game files, `DATA` variable with the extension of the game files and `PK3` variables for each separate package file to load. `PK3` variables must be sequentially numbered with **_1**, **_2** etc.
|
||||
|
||||
Example: `/storage/roms/ecwolf/wolfenstein3d.ecwolf` contains
|
||||
```
|
||||
PATH=Wolfenstein 3D
|
||||
DATA=WL6
|
||||
PK3_1=/storage/roms/ecwolf/ecwolf.pk3
|
||||
-- end --
|
||||
```
|
||||
where the Wolfenstein 3D game files have extension **.WL6**
|
||||
> Note: the data value must match the file extension of the game exactly and is case sensitive so `WL6` is not the same as `wl6`
|
||||
|
||||
> Note: don't leave any space between `GRP` or `PATH` and `=` and enclose filenames containing spaces with "quotes"
|
||||
|
||||
> Note: add `-- end --` to the end of the file
|
||||
|
||||
Example: `/storage/roms/ecwolf/spear of destiny.ecwolf` contains
|
||||
```
|
||||
PATH=SOD
|
||||
DATA=SOD
|
||||
PK3_1=/storage/roms/ecwolf/SOD/ecwolf.pk3
|
||||
-- end --
|
||||
```
|
||||
where the Spear of Destiny game files have extension **.SOD**
|
||||
> Note: add `-- end --` to the end of the file
|
||||
|
||||
|
|
@ -1,366 +0,0 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Hotkey Auto-configuration
|
||||
By default JELOS will detect your controller and configure RetroArch hotkeys automatically. If this behavior is not desired it can be disabled in the System Settings menu by disabling the "AUTOCONFIGURE RETROARCH HOTKEYS" option.
|
||||
|
||||
# RetroArch Hotkeys
|
||||
* [Hotkey Enable](https://docs.libretro.com/guides/input-and-controls/#hotkey-controls): Select (Hold)
|
||||
* Exit: Start (Press Twice)
|
||||
* Menu: X
|
||||
* Favorite: Hold X
|
||||
* Show/Hide FPS: Y
|
||||
* Save State: R1
|
||||
* Load State: L1
|
||||
* Rewind: L2
|
||||
* Fast-Forward Toggle: R2
|
||||
> Note: X and Y are reversed on some devices, this is normal behavior.
|
||||
|
||||
# Global Hotkeys
|
||||
* Pause: Start
|
||||
* Quit: Start+Select
|
||||
* Force-Close: L1+Start+Select
|
||||
* Skip 5s: R1
|
||||
* Back 5s: L1
|
||||
* Skip 60s: R2
|
||||
* Back 60s: L2
|
||||
* Battery Status: L2+Vol-Up
|
||||
* WIFI Toggle: L2+Vol-Down
|
||||
* Brightness Up: R2+Vol-Up
|
||||
* Brightness Down: R2+Vol-Down
|
||||
|
||||
# Per Device Hotkeys
|
||||
|Device|Brightness Up|Brightness Down|Battery Status|WIFI Toggle|
|
||||
|----|----|----|----|----|
|
||||
|Anbernic RG351M|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|Anbernic RG353M|Select & Vol +|Select & Vol -|Fn & Vol +|Fn & Vol -|
|
||||
|Anbernic RG353P|Select & Vol +|Select & Vol -|Fn & Vol +|Fn & Vol -|
|
||||
|Anbernic RG353V|Select & Vol +|Select & Vol -|Fn & Vol +|Fn & Vol -|
|
||||
|Anbernic RG503|Select & Vol +|Select & Vol -|Fn & Vol +|Fn & Vol -|
|
||||
|Anbernic RG552|Select & Vol +|Select & Vol -|Fn & Vol +|Fn & Vol -|
|
||||
|ATARI VCS 800 Onyx|NA|NA|NA|NA|
|
||||
|AYANEO AIR|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AIR Plus|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AIR Pro|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYANEO 2|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYA NEO 2021|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYANEO 2021|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYANEO 2021 Pro|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYANEO 2021 Pro Retro Power|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYA NEO AYA NEO Founder|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO AYANEO NEXT Pro|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO GEEK|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO NEXT|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO NEXT Advance|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|AYANEO NEXT Pro|Aya Button & Vol + | Aya Button & Vol - | = Button & Vol + | = Button & Vol -|
|
||||
|GPD G1619-04|TBD|TBD|TBD|TBD|
|
||||
|Hardkernel ODROID-GO-Ultra|F1 & Vol +|F1 & Vol -|F2 & Vol +|F2 & Vol -|
|
||||
|Indiedroid Nova|NA|NA|NA|NA|
|
||||
|LENOVO 81TC|NA|NA|NA|NA|
|
||||
|ODROID-GO Advance|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|ODROID-GO Advance Black Edition|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|ODROID-GO Super|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|Orange Pi 5|NA|NA|NA|NA|
|
||||
|Powkiddy RGB10 MAX 3|F1 & Vol +|F1 & Vol -|F2 & Vol +|F2 & Vol -|
|
||||
|Powkiddy RK2023|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|Powkiddy x55|Select & Vol +|Select & Vol -|Start & Vol +|Start & Vol -|
|
||||
|Valve Jupiter|Steam Button & Vol + | Steam Button & Vol - | ... Button & Vol + | ... Button & Vol -|
|
||||
|
||||
[Reference](https://github.com/JustEnoughLinuxOS/distribution/blob/main/packages/jelos/profile.d/98-jslisten)
|
||||
|
||||
# Emulator Hotkeys and Button Assignments
|
||||
<table>
|
||||
<tr style="vertical-align:top">
|
||||
<th align="left">Emulator</th><th align="left">Notes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/midwan/amiberry/wiki">Amiberry</a></td><td><a href="https://github.com/midwan/amiberry/wiki/Kickstart-ROMs-(BIOS)">Standalone</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://github.com/dolphin-emu/dolphin">Dolphin (dolphin-sa)</a></td><td><a href="https://dolphin-emu.org/">Standalone</a>
|
||||
|
||||
```
|
||||
HOTKEYS (BASED ON GAMECUBE CONTROLLER PROFILE)
|
||||
=======
|
||||
SELECT hotkey enable
|
||||
START exit to EmulationStation ("ES")
|
||||
R save state
|
||||
L load state
|
||||
A screenshot
|
||||
B internal resolution
|
||||
Z game speed (fast forward)
|
||||
X aspect ratio
|
||||
Y fps on / off
|
||||
DUP +1 save state slot
|
||||
DDOWN -1 save state slot
|
||||
```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="http://maniacsvault.net/ecwolf/wiki/Main_Page">ecwolf</a></td><td><a href="http://maniacsvault.net/ecwolf/wiki/Game_data">Game Engine</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/coelckers/gzdoom">gzdoom</a></td><td><a href="https://zdoom.org/wiki/IWAD">Game Engine</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://git.tuxfamily.org/hatari/hatari.git">Hatari (Hatarisa)</a></td><td><a href="https://docs.libretro.com/library/hatari/#bios">Standalone</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://github.com/DirtBagXon/hypseus-singe">Hypseus-singe</a></td><td><a href="https://www.daphne-emu.com:9443/mediawiki/index.php/Main_Page">Standalone</a>
|
||||
|
||||
```
|
||||
SELECT coin
|
||||
START start
|
||||
BUTTON 1 a
|
||||
BUTTON 2 b
|
||||
BUTTON 3 x
|
||||
MOVEMENT d-pad or left-analog
|
||||
QUIT select+start
|
||||
```
|
||||
to add functions, edit `/storage/.config/game/configs/hypseus/hypinput.ini` under `[KEYBOARD]` section by changing third number for a function from `0` (disabled) to the joystick button number
|
||||
|
||||
retrieve joystick button numbers with
|
||||
|
||||
```jstest /dev/input/js0```
|
||||
|
||||
the following assigns quit to ```L1``` and pause to ```R1```
|
||||
|
||||
```
|
||||
[KEYBOARD]
|
||||
KEY_QUIT = SDLK_ESCAPE 0 5
|
||||
KEY_PAUSE = SDLK_p 0 6
|
||||
|
||||
```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/drfrag666/gzdoom">lzdoom</a></td><td><a href="https://zdoom.org/wiki/IWAD">Game Engine</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://github.com/mupen64plus/mupen64plus-video-glide64mk2">mupen64plus (mupen64plussa)</a></td><td><a href="https://mupen64plus.org/docs">Standalone</a>
|
||||
|
||||
```
|
||||
SELECT hotkey enable
|
||||
START start
|
||||
B a
|
||||
Y b
|
||||
RIGHT ANALOG C-stick
|
||||
LEFT ANALOG analog
|
||||
L1 L
|
||||
L2 Z
|
||||
R1 R
|
||||
|
||||
HOTKEYS
|
||||
=======
|
||||
SELECT+START exit to EmulationStation ("ES")
|
||||
SELECT+R1 save state
|
||||
SELECT+L1 load state
|
||||
SELECT+Y screenshot
|
||||
SELECT+B reset current game
|
||||
```
|
||||
CONTROLLER PROFILES
|
||||
|
||||
Z and L button assignment can be changed in ES.
|
||||
|
||||
* Highlight the game and press X
|
||||
* Select ADVANCED GAME OPTIONS (A to confirm)
|
||||
* Set EMULATOR to either MUPEN64PLUSSA
|
||||
* Change INPUT CONFIGURATION
|
||||
* DEFAULT: L1 = L, L2 = Z
|
||||
* Z & L SWAP: L1 = Z, L2 = L
|
||||
* CUSTOM: Users can create their own controller layout in ```/storage/.configs/game/configs/mupen64plussa```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://github.com/DCurrent/openbor">Openbor</a></td><td><a href="https://www.chronocrash.com/forum/index.php?resources/">Standalone</a>
|
||||
|
||||
```
|
||||
START start, confirm
|
||||
A attack 1
|
||||
X attack 2
|
||||
L1 attack 3
|
||||
R1 attack 4
|
||||
B jump
|
||||
Y special
|
||||
D-PAD up/down/left/right
|
||||
SELECT cancel, screenshot
|
||||
```
|
||||
note: pressing A on title screen will exit
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://github.com/hrydgard/ppsspp">PPSSPPSDL</a></td><td><a href="https://www.ppsspp.org/faq.html">Standalone</a>
|
||||
|
||||
```
|
||||
START start
|
||||
SELECT select
|
||||
B cross
|
||||
A circle
|
||||
X triangle
|
||||
Y square
|
||||
L1 L
|
||||
R1 R
|
||||
ANALOG LEFT analog
|
||||
ANALOG RIGHT cross(down) circle(right) triangle(up) square(left)
|
||||
D-PAD up/down/left/right
|
||||
L3 PPSSPPSDL menu
|
||||
```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://zdoom.org/wiki/Raze">Raze</a></td><td><a href="https://zdoom.org/wiki/Raze#Supported_games">Game Engine</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://www.scummvm.org">Scummmvm (Scummvmsa)</a></td><td><a href="https://www.scummvm.org/compatibility/">Standalone</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://vice-emu.sourceforge.io/vice_toc.html">vice (vicesa)</a></td><td><a href="https://vice-emu.sourceforge.io/vice_2.html#SEC5">Standalone</a>
|
||||
|
||||
```
|
||||
SELECT onscreen keyboard
|
||||
START show menu
|
||||
A back (in menus); show menu
|
||||
B fire (joystick port 1); confirm (in menus)
|
||||
L1 back (in menus); show menu
|
||||
L2 assign hotkey
|
||||
L3 fire (joystick port 2)
|
||||
R1 confirm (in menus)
|
||||
R2 swap joystick port (either [left analog + B=fire] or [right analog + L3=fire])
|
||||
```
|
||||
Notes:
|
||||
|
||||
Games will require keyboard key presses to progress through messages and to launch
|
||||
(e.g. SPACE, RSTR [run/start], F3, F7).
|
||||
|
||||
SELECT to show onscreen keyboard, left analog/d-pad to move cursor, B to confirm
|
||||
|
||||
C= on keyboard resets the machine
|
||||
|
||||
L2 to assign highlighted key or menu function to gamepad button (save config to retain)
|
||||
|
||||
To cancel onscreen keyboard, move cursor to blank area and A/L1 to close keyboard
|
||||
or click on X in top left corner of keyboard
|
||||
|
||||
Joystick can be assigned to port 1 or 2. R2 to switch ports.
|
||||
port 1: [left analog] + [B = fire]
|
||||
port 2: [right analog] + [L3 = fire].
|
||||
|
||||
To quit emulator, START, highlight Exit Emulator, B to confirm
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="http://wiki.yabause.org/index.php5?title=Documentations">Yabasanshiro</a></td><td><a href="http://www.uoyabause.org">Standalone</a>
|
||||
|
||||
```
|
||||
SELECT menu
|
||||
START start
|
||||
D-PAD up/down/left/right
|
||||
Y a
|
||||
B b
|
||||
A c
|
||||
X x
|
||||
L1 (shoulder) y
|
||||
R1 (shoulder) z
|
||||
L2 (trigger) l
|
||||
R2 (trigger) r
|
||||
LEFT ANALOG analog stick
|
||||
START+SELECT+L1+R1 exit emulator
|
||||
```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top"><a href="https://www.retroarch.com">Retroarch with Libretro Cores (<strong>RA:</strong>)</a></td><td>64-bit and 32-bit versions use shared config files
|
||||
|
||||
```
|
||||
SELECT+START: exit (press twice)
|
||||
SELECT+A: pause emulation
|
||||
SELECT+B: reset emulation
|
||||
SELECT+X: Retroarch menu
|
||||
SELECT+Y: toggle fps
|
||||
SELECT+L1: load state
|
||||
SELECT+R1: save state
|
||||
SELECT+L2: rewind toggle
|
||||
SELECT+R2: fast-forward toggle
|
||||
```
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/christianhaitian/PortMaster/blob/main/README.md">Port Master</a></td><td><a href="https://github.com/christianhaitian/PortMaster/wiki">Port Installer</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
# Button Codes
|
||||
From ssh terminal:
|
||||
```
|
||||
evtest
|
||||
```
|
||||
then select `retrogame_joypad` to see details for each button press, including button labels, codes and analog stick values in real-time
|
||||
|
||||
```
|
||||
jstest-sdl -t 0
|
||||
```
|
||||
to see interactive keymap
|
||||
|
||||
<table>
|
||||
<tr style="vertical-align:top">
|
||||
<th align="left">Joypad Button</th><th align="left" colspan=4>Button Codes</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<strong>DIGITAL</strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L63">RG552/RG503/RG353P</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L33">RG351MP</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L6">RG351P/M</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L6">RG351V</a></strong></td></tr>
|
||||
<tr><td>
|
||||
A (EAST) </td><td><strong>1</strong> (305 BTN_EAST)</td><td><strong>1</strong> (305 BTN_EAST)</td><td><strong>0</strong> (305 BTN_EAST)</td><td><strong>0</strong> (305 BTN_EAST)</td></tr>
|
||||
<tr><td>
|
||||
B (SOUTH) </td><td><strong>0</strong> (304 BTN_SOUTH)</td><td><strong>0</strong> (304 BTN_SOUTH)</td><td><strong>1</strong> (304 BTN_SOUTH)</td><td><strong>1</strong> (304 BTN_SOUTH)</td></tr>
|
||||
<tr><td>
|
||||
X (NORTH) </td><td><strong>2</strong> (307 BTN_NORTH)</td><td><strong>2</strong> (307 BTN_NORTH)</td><td><strong>2</strong> (307 BTN_NORTH)</td><td><strong>2</strong> (307 BTN_NORTH)</td></tr>
|
||||
<tr><td>
|
||||
Y (WEST) </td><td><strong>3</strong> (308 BTN_WEST)</td><td><strong>3</strong> (308 BTN_WEST)</td><td><strong>3</strong> (306 BTN_C)</td><td><strong>3</strong> (306 BTN_C)</td></tr>
|
||||
<tr><td>
|
||||
L1 </td><td><strong>4</strong> (310 BTN_TL)</td><td><strong>4</strong> (310 BTN_TL)</td><td><strong>4</strong> (308 BTN_WEST)</td><td><strong>4</strong> (308 BTN_WEST)</td></tr>
|
||||
<tr><td>
|
||||
L2 </td><td><strong>6</strong> (312 BTN_TL2)</td><td><strong>6</strong> (312 BTN_TL2)</td><td><strong>10</strong> (314 BTN_SELECT)</td><td><strong>10</strong> (314 BTN_SELECT)</td></tr>
|
||||
<tr><td>
|
||||
L3 </td><td><strong>11</strong> (317 BTN_THUMBL)</td><td><strong>14</strong> (706 BTN_TRIGGER_HAPPY3)</td><td><strong>8</strong> (312 BTN_TL2)</td><td><strong>8</strong> (312 BTN_TL2)</td></tr>
|
||||
<tr><td>
|
||||
R1 </td><td><strong>5</strong> (311 BTN_TR)</td><td><strong>5</strong> (311 BTN_TR)</td><td><strong>5</strong> (309 BTN_Z)</td><td><strong>5</strong> (309 BTN_Z)</td></tr>
|
||||
<tr><td>
|
||||
R2 </td><td><strong>7</strong> (313 BTN_TR2)</td><td><strong>7</strong> (313 BTN_TR2)</td><td><strong>11</strong> (315 BTN_START)</td><td><strong>11</strong> (315 BTN_START)</td></tr>
|
||||
<tr><td>
|
||||
R3 </td><td><strong>12</strong> (318 BTN_THUMBR)</td><td><strong>15</strong> (707 BTN_TRIGGER_HAPPY4)</td><td><strong>9</strong> (313 BTN_TR2)</td><td><strong>9</strong> (313 BTN_TR2; F)</td></tr>
|
||||
<tr><td>
|
||||
SELECT </td><td><strong>8</strong> (314 BTN_SELECT)</td><td><strong>12</strong> (704 BTN_TRIGGER_HAPPY1)</td><td><strong>7</strong> (311 BTN_TR)</td><td><strong>7</strong> (311 BTN_TR)</td></tr>
|
||||
<tr><td>
|
||||
START </td><td><strong>9</strong> (315 BTN_START)</td><td><strong>13</strong> (705 BTN_TRIGGER_HAPPY2)</td><td><strong>6</strong> (310 BTN_TL)</td><td><strong>6</strong> (310 BTN_TL)</td></tr>
|
||||
<tr><td>
|
||||
HOTKEY ENABLE </td><td><strong>10</strong> (316) </td><td><strong>12</strong> (704 BTN_TRIGGER_HAPPY1) </td><td><strong>7</strong> (311 BTN_TR) </td><td><strong>7</strong> (311 BTN_TR) </td></tr>
|
||||
<tr><td>
|
||||
DPAD UP </td><td><strong>13</strong> (544 BTN_DPAD_UP) </td><td><strong>8</strong> (544 BTN_DPAD_UP) </td><td><strong>hat(1)</strong> (16 -ve ABS_HAT0Y -1)</td><td><strong>hat(1)</strong> (16 -ve ABS_HAT0Y -1)</td></tr>
|
||||
<tr><td>
|
||||
DPAD DOWN </td><td><strong>14</strong> (545 BTN_DPAD_DOWN) </td><td><strong>9</strong> (545 BTN_DPAD_DOWN) </td><td><strong>hat(4)</strong> (16 +ve ABS_HAT0Y 1)</td><td><strong>hat(4)</strong> (16 +ve ABS_HAT0Y 1)</td></tr>
|
||||
<tr><td>
|
||||
DPAD LEFT </td><td><strong>15</strong> (546 BTN_DPAD_LEFT) </td><td><strong>10</strong> (546 BTN_DPAD_LEFT) </td><td><strong>hat(8)</strong> (17 -ve ABS_HAT0X -1)</td><td><strong>hat(8)</strong> (17 -ve ABS_HAT0X -1)</td></tr>
|
||||
<tr><td>
|
||||
DPAD RIGHT </td><td><strong>16</strong> (547 BTN_DPAD_RIGHT) </td><td><strong>11</strong> (547 BTN_DPAD_RIGHT) </td><td><strong>hat(2)</strong> (17 +ve ABS_HAT0X 1)</td><td><strong>hat(2)</strong> (17 +ve ABS_HAT0X 1)</td></tr>
|
||||
<tr><td>
|
||||
<strong>ANALOG</strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L63">RG552/RG503/RG353P</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L33">RG351MP</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L6">RG351P/M</a></strong></td><td><strong><a href="https://github.com/JustEnoughLinuxOS/distribution/blob/5ae14a65cc446c1e6f7083ac47adeafc806134a6/packages/ui/emulationstation/config/es_input.cfg#L6">RG351V</a></strong></td></tr>
|
||||
<tr><td>
|
||||
LEFTANALOGLEFT </td><td><strong>AXIS 0 -ve</strong> (ABS_X)</td><td><strong>AXIS 0 -ve</strong> (ABS_X)</td><td><strong>AXIS 2 +ve</strong> (ABS_Z 4095)</td><td><strong>AXIS 2 +ve</strong> (ABS_Z 4095)</td></tr>
|
||||
<tr><td>
|
||||
LEFTANALOGRIGHT </td><td><strong>AXIS 0 +ve</strong> (ABS_X)</td><td><strong>AXIS 0 +ve</strong> (ABS_X)</td><td><strong>AXIS 2 -ve (ABS_Z 0)</strong></td><td><strong>AXIS 2 -ve</strong> (ABS_Z 0)</td></tr>
|
||||
<tr><td>
|
||||
LEFTANALOGUP </td><td><strong>AXIS 1 -ve</strong> (ABS_Y)</td><td><strong>AXIS 1 -ve</strong> (ABS_Y)</td><td><strong>AXIS 3 +ve</strong> (ABS_RX 4040)</td><td><strong>AXIS 3 +ve</strong> (ABS_RX 4040)</td></tr>
|
||||
<tr><td>
|
||||
LEFTANALOGDOWN </td><td><strong>AXIS 1 +ve</strong> (ABS_Y)</td><td><strong>AXIS 1 +ve</strong> (ABS_Y)</td><td><strong>AXIS 3 -ve</strong> (ABS_RX 0)</td><td><strong>AXIS 3 -ve</strong> (ABS_RX 0)</td></tr>
|
||||
<tr><td>
|
||||
RIGHTANALOGLEFT </td><td><strong>AXIS 2 -ve</strong> (ABS_RX)</td><td><strong>AXIS 2 -ve</strong> (ABS_RX)</td><td><strong>AXIS 4 -ve</strong> (ABS_RY)</td><td></td></tr>
|
||||
<tr><td>
|
||||
RIGHTANALOGRIGHT </td><td><strong>AXIS 2 +ve</strong> (ABS_RX)</td><td><strong>AXIS 2 +ve</strong> (ABS_RX)</td><td><strong>AXIS 4 +ve</strong> (ABS_RY)</td><td></td></tr>
|
||||
<tr><td>
|
||||
RIGHTANALOGUP </td><td><strong>AXIS 3 -ve</strong> (ABS_RY)</td><td><strong>AXIS 3 -ve (ABS_RY)</strong></td><td><strong>AXIS 5 -ve</strong> (ABS_RZ)</td><td></td></tr>
|
||||
<tr><td>
|
||||
RIGHTANALOGDOWN </td><td><strong>AXIS 3 +ve</strong> (ABS_RY)</td><td><strong>AXIS 3 +ve (ABS_RY)</strong></td><td><strong>AXIS 5 +ve</strong> (ABS_RZ)</td><td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
180
documentation/SETUP_CLOUD_DRIVES.md
Normal file
180
documentation/SETUP_CLOUD_DRIVES.md
Normal file
|
@ -0,0 +1,180 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Configuring Rclone in JELOS
|
||||
JELOS now supports mounting cloud volumes, and backing up and restoring save games and save states to your cloud provider. Using Rclone is easy, however configuration must be performed manually before it will function correctly.
|
||||
|
||||
rclone.cfg is stored in `/storage/.config/rclone/rclone.conf` and can be copied from another device but only after the destination device has booted into Jelos (so copy to secondary sd, boot device, launch 351files, copy from there to proper path above)
|
||||
|
||||
## Setup Rclone
|
||||
### Credentialed Access
|
||||
To set up rclone, open an ssh connection to your handheld using PowerShell ssh, putty, or ssh on Linux and Mac.
|
||||
* Username: root (all lower case!)
|
||||
* Password: (To get the root password, press Start, then Select System Settings.)
|
||||
* Connection: (Your device, example RG552 or RG351MP.)
|
||||
|
||||
### Example using PowerShell ssh, Linux, or macOS:
|
||||
```ssh root@RG552```
|
||||
|
||||
### Setting up Rclone
|
||||
Now that you're connected you will need to configure Rclone. This process is menu driven, but also requires steps on your PC. To complete configuration of Rclone, run `rclone config` in your ssh session and then follow the provider documentation and headless configuration steps to configure it for your cloud provider of choice.
|
||||
|
||||
* [Rclone Provider Documentation](https://rclone.org/#providers)
|
||||
* [Rclone Headless Configuration](https://rclone.org/remote_setup/)
|
||||
|
||||
[See detailed setup example below](https://github.com/JustEnoughLinuxOS/distribution/wiki/Using-Cloud-Drives/#setting-up-rclone-detailed-example)
|
||||
|
||||
### Using Rclone
|
||||
In JELOS you are able to mount your cloud drive like any other storage device, as long as you are network connected. To mount your cloud drive, press Start, select Network Settings, and then select the Mount Cloud Drive option. This drive is available on /storage/cloud by default, and is accessible from ssh and from 351Files. To mount the cloud drive over ssh use ```rclonectl mount``` to mount the drive and ```rclonectl unmount``` to unmount it.
|
||||
|
||||
> Note: Mounting the cloud drive is not persistent, you will need to select it before use.
|
||||
|
||||
### Using Cloud Backup and Restore
|
||||
In the tools menu you will find two options, `Cloud Backup`, and `Cloud Restore`. These tools will back up or restore your save games and save states by connecting your cloud drive and copying them. These tools are configurable by editing /storage/.config/rsync.conf and /storage/.config/rsync-rules.conf.
|
||||
|
||||
> Note: The cloud backup and restore tools are destructive, but they do not delete data by default. Deletes are left to the user to manage.
|
||||
|
||||
#### rsync.conf
|
||||
The rsync.conf configuration file contains parameters used by the cloud tools that provide the path for your cloud drive to be mounted, the path to sync the data from, the destination for the sync and rsync options for cloud backup and restore. The configuration is user editable, and the defaults are as follows:
|
||||
```
|
||||
### This is the path where your cloud volume is mounted.
|
||||
MOUNTPATH="/storage/cloud"
|
||||
|
||||
### This is the path to your game folder on your cloud drive.
|
||||
SYNCPATH="GAMES"
|
||||
|
||||
### This is the path we are backup up from.
|
||||
BACKUPPATH="/storage/roms"
|
||||
|
||||
### This allows changes to the rsync options for cloud_backup (pending stable release)
|
||||
RSYNCOPTSBACKUP="-raiv --prune-empty-dirs"
|
||||
|
||||
### This allows changes to the rsync options for cloud_restore (pending stable release)
|
||||
RSYNCOPTSRESTORE="-raiv"
|
||||
```
|
||||
|
||||
#### rsync-rules.conf
|
||||
The rsync-rules.conf configuration file contains the pattern used by rsync to know which files to backup and restore. This file is user editable. The default settings are as follows:
|
||||
```
|
||||
# This is a required rule for subdirectory matching.
|
||||
+ */
|
||||
|
||||
### Do not include BIOS.
|
||||
- bios/**
|
||||
|
||||
### Retroarch saves
|
||||
+ *.sav
|
||||
+ *.srm
|
||||
+ *.auto
|
||||
+ *.state*
|
||||
|
||||
### This is a required rule to exclude all other file types.
|
||||
- *
|
||||
```
|
||||
|
||||
To create custom match rules, use - to exclude and + to include. Use caution as a mismatched rule can copy every single file from the source path or no files at all.
|
||||
|
||||
## Setting Up Rclone detailed example
|
||||
This example configures rclone to use Dropbox
|
||||
|
||||
Rclone provide detailed examples for connecting to all supported cloud servers, including [Rclone Dropbox example](https://rclone.org/dropbox/)
|
||||
|
||||
### Configure cloud backup connection on JELOS device using ssh
|
||||
From the terminal command line type
|
||||
```
|
||||
rclone version
|
||||
```
|
||||
|
||||
and press `enter`
|
||||
|
||||
Note the version number, which is required for a later step
|
||||
|
||||
![Rclone version installed in JELOS](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20version.png "Check version of rclone")
|
||||
|
||||
Now type
|
||||
```
|
||||
rclone config
|
||||
```
|
||||
|
||||
and press `enter`
|
||||
|
||||
type `n` to create a new remote site
|
||||
|
||||
type in a name for the site (use a name without spaces), then press `enter`
|
||||
|
||||
> rclone suggest using `remote`, but in this example the remote site is called `rg503`
|
||||
|
||||
> don’t include spaces in the site’s name. Rclone does allow names that include spaces, but rsync will fail if a site name with spaces is used in the cloud backup script.
|
||||
|
||||
![Type: rclone config](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config.png "rclone config")
|
||||
|
||||
Choose from the list of cloud providers that is displayed. For Dropbox, type `12` and `enter` in this example
|
||||
|
||||
![Select cloud provider](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config%20select%20dropbox.png "type 12 for Dropbox")
|
||||
|
||||
*The next options displayed are slightly different from the Dropbox example on rclone website*
|
||||
|
||||
For client_id and client_secret press `enter` and `enter` to skip, or read [Rclone Dropbox example](https://rclone.org/dropbox/) for details about setting up your own App ID (rclone App ID is shared with all rclone users by default)
|
||||
|
||||
Type `n` to skip editing the advanced config
|
||||
|
||||
![Skip Client ID, secret and advanced config](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config%20client%20id.png "type enter to skip, then n for no")
|
||||
|
||||
For auto config, select `n` for remote or headless machine (i.e. JELOS device that doesn't have a web browser)
|
||||
|
||||
![No auto-config for remote or headless machine](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config%20remote%20machine.png "type n for no")
|
||||
|
||||
Instructions are provided explaining how to authorize the connection from the remote device to the cloud service
|
||||
|
||||
![Device with web-browser is required for authorization](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png "Use pc to authorize connection")
|
||||
|
||||
### Install and run rclone on machine with a web-browser to authorize connection to cloud service
|
||||
|
||||
Download rclone on a device with a web-browser so rclone can use a web-page to authorize the connection by allowing you to login with your authorization credentials for the cloud service
|
||||
|
||||
[Rclone download server](https://downloads.rclone.org/ "Download same version of rclone for authorisation")
|
||||
|
||||
> Download the same version of rclone as is installed on JELOS device, as noted above.
|
||||
|
||||
Use terminal window (e.g. `CMD` on Windows) to browse to rclone executable and run
|
||||
|
||||
```
|
||||
rclone authorize dropbox
|
||||
```
|
||||
|
||||
and press `enter`
|
||||
|
||||
![Authorize dropbox for rclone](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/rclone%20authorise%20dropbox.png "Authorize rclone from terminal command prompt")
|
||||
|
||||
Rclone will launch a web page to enable login to the cloud service and authorization of the connection
|
||||
|
||||
![Authorize dropbox for rclone](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/rclone%20authorise%20from%20pc.png "Confirm authorization of rclone connection")
|
||||
|
||||
After successful authorization, the terminal window will display the authorization token that needs to be pasted into JELOS ssh
|
||||
|
||||
![Copy authorization token](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/rclone%20authorise%20login%20then%20paste%20into%20remote%20ssh.png "Copy token to paste into JELOS ssh")
|
||||
|
||||
Copy the entire token
|
||||
|
||||
### Update JELOS with authorization token
|
||||
|
||||
Paste authorization token into JELOS command prompt, then type `y` to confirm that the remote connection is correct
|
||||
|
||||
![Paste authorization token into ssh](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20config%20authorize%20and%20paste%20token.png "Paste token at config_token prompt")
|
||||
|
||||
The connection is now configured and can be tested (`q` to quit rclone config)
|
||||
|
||||
Type
|
||||
```
|
||||
rclone lsd rg503:
|
||||
```
|
||||
|
||||
where `rg503` is the name of the remote connection (rclone example names the remote connection as `remote`)
|
||||
|
||||
> **don't forget to add `:` to the name of remote connection**
|
||||
|
||||
The names of the top-level folders within Dropbox cloud service will be displayed
|
||||
|
||||
![Dropbox folder names are displayed](https://github.com/JustEnoughLinuxOS/distribution/blob/gh-pages/images/ssh%20rclone%20list%20top-level%20directories%20on%20dropbox.png "Top-level folder names in Dropbox cloud service")
|
||||
|
||||
Now that the connection is set up and authorized [Using Rclone](https://github.com/JustEnoughLinuxOS/distribution/wiki/Using-Cloud-Drives#using-rclone) and [Using Cloud Backup and Restore](https://github.com/JustEnoughLinuxOS/distribution/wiki/Using-Cloud-Drives#using-cloud-backup-and-restore) explain how to configure and use the connection for backup
|
32
documentation/SETUP_MOONLIGHT_STREAMING.md
Normal file
32
documentation/SETUP_MOONLIGHT_STREAMING.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Using Moonlight Game Streaming
|
||||
|
||||
JELOS now supports Moonlight Game Streaming, which allows to connect to your local computer running [Moonlight](https://moonlight-stream.org/) and stream AAA games.
|
||||
|
||||
## Setup Moonlight on your local PC
|
||||
Please follow standard guide to setup Moonlight on your home PC, [link](https://github.com/moonlight-stream/moonlight-docs/wiki/Setup-Guide).
|
||||
|
||||
## Setup Moonlight in JELOS
|
||||
The setup requires pairing with your local PC running Moonlight and then populating Moonlight Streaming tab with all your games. After those are completed, you can select an individual game to start streaming.
|
||||
|
||||
### Pair with your local PC
|
||||
* On your JELOS device press "start" button to go into Emulation Station Main Menu
|
||||
* Select "MOONLIGHT GAME STREAMING" submenu
|
||||
* Please note the "PAIRING PIN" at the bottom of the window
|
||||
* You can also specify "SERVER IP" address, but it should be detected automatically
|
||||
* Select "PAIR WITH SERVER" option
|
||||
* Now, go to the local PC and enter PIN to continue the pairing process
|
||||
* You should see a confirmation message on your device
|
||||
* The paring process should complete
|
||||
|
||||
After pairing was successful, select "UPDATE MOONLIGHT GAMES" option. This should query the server for the list of all games and populate Moonlight Streaming tab in Emulation Station.
|
||||
|
||||
## Play Games
|
||||
Find Moonlight Game Streaming tab in Emulation Station. Select the game you want to play. The game should start and you should be able to interact with it.
|
||||
|
||||
## Remote Playing over internet
|
||||
* The easiest option is to add your device to your Tailscale network with your local PC, [link](https://github.com/JustEnoughLinuxOS/distribution/wiki/Tailscale-VPN).
|
||||
* Moonlight allows to open several ports to connect to the local PC to stream over the internet. Setup might be somewhat complicated.
|
||||
* Another option is to use [WireGuard VPN](https://github.com/JustEnoughLinuxOS/distribution/wiki/WireGuard-VPN) to setup the connection with the device. This approach requires only a single open port, but it requires WireGuard server to be running on your local network.
|
34
documentation/SETUP_P2P_ZEROTIER.md
Normal file
34
documentation/SETUP_P2P_ZEROTIER.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# ZeroTier quickstart
|
||||
JELOS now supports ZeroTier. ZeroTier allows you to build robust peer-to-peer networks, connetcting all of your devices together. It's very similar to [Tailscale](https://github.com/JustEnoughLinuxOS/distribution/wiki/Tailscale-VPN).
|
||||
|
||||
## Step 1: Sign up for ZeroTier account
|
||||
[Sign up for a ZeroTier account](https://my.zerotier.com).
|
||||
|
||||
## Step 2: Add other devices to your ZeroTier network
|
||||
|
||||
You can add devices that you want connected to the ZeroTier network. One device can be connected to multiple networks, so you can even have different networks for different purposes.
|
||||
|
||||
It's most likely going to run everywhere you want it, since the software exists for OpenWRT, Desktop Linux, Windows, Android, etc.
|
||||
|
||||
[Download ZeroTier](https://www.zerotier.com/download)
|
||||
|
||||
## Step 3: Add your device to your network
|
||||
|
||||
JELOS Emulation Station has customized UI with ZeroTier support.
|
||||
|
||||
- Create a file called "zerotier-networks" in ```/storage/.config/zerotier-networks```, containing one network ID per line
|
||||
- Press "start" button to go into Emulation Station Main Menu.
|
||||
- Select Network Settings submenu.
|
||||
- Select "ZeroTier VPN" and turn it on.
|
||||
- Select "Back" button to exit setting dialog.
|
||||
|
||||
Don't forget to authenticate your device in the ZerTier [control panel](my.zerotier.com) after starting the service. It should show up on the webpage.
|
||||
|
||||
You can also use the traditional way of adding a network ID by using ```zerotier-cli join``` through SSH shell, but in this cae the zerotier-networks file shouldn't be present.
|
||||
|
||||
## Links
|
||||
* ZeroTier homepage [link](https://zerotier.com/)
|
||||
* Script used to add networks on start [link](https://github.com/JustEnoughLinuxOS/distribution/blob/dev/packages/network/zerotier-one/scripts/zerotier-join.sh)
|
43
documentation/SETUP_VPN_TAILSCALE.md
Normal file
43
documentation/SETUP_VPN_TAILSCALE.md
Normal file
|
@ -0,0 +1,43 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Tailscale quickstart
|
||||
JELOS now supports Tailscale. Tailscale is a VPN service that makes the devices and applications you own accessible anywhere in the world, securely and effortlessly. It enables encrypted point-to-point connections using the open source [WireGuard](https://www.wireguard.com/) protocol, which means only devices on your private network can communicate with each other.
|
||||
|
||||
## Step 1: Sign up for Tailscale account
|
||||
[Sign up for a Tailscale account](https://login.tailscale.com/start).
|
||||
|
||||
Tailscale requires a Single Sign-On (SSO) provider, so you’ll need a Google, Microsoft, GitHub, Okta, OneLogin, or other [supported SSO identity provider](https://tailscale.com/kb/1013/sso-providers) account to begin.
|
||||
|
||||
## Step 2: Add a PC to your Tailscale network
|
||||
|
||||
Tailscale helps you connect your devices together. For that to be possible, Tailscale needs to run on your PC.
|
||||
|
||||
Tailscale works seamlessly with Linux, Windows, macOS, Raspberry Pi, Android, Synology, and more. Download Tailscale and log in on the PC.
|
||||
|
||||
[Download Tailscale](https://tailscale.com/download/)
|
||||
|
||||
## Step 3: Add your device to your network
|
||||
|
||||
JELOS Emulation Station has customized UI with Tailscale support.
|
||||
|
||||
- Press "start" button to go into Emulation Station Main Menu.
|
||||
- Select Network Settings submenu.
|
||||
- Select "Tailscale VPN" and turn it on.
|
||||
- Select "Back" button to exit setting dialog.
|
||||
|
||||
The initial connection to Tailscale will require authentication.
|
||||
|
||||
- Select Network Settings submenu again.
|
||||
- You should see Tailscale authentication url. You need to type this url on your PC browser and authenticate.
|
||||
- After login on PC is successful, Select "Tailscale VPN" and turn it on again.
|
||||
- Select "Back" button to exit setting dialog.
|
||||
- Tailscale VPN should be connected.
|
||||
|
||||
The magic of Tailscale happens when it’s installed on multiple devices. Add more of your devices and share Tailscale with your peers to grow your private network.
|
||||
|
||||
Add more machines to your network by repeating step 2, or 3, or by [inviting others to join your network](https://tailscale.com/kb/1064/invite-team-members).
|
||||
|
||||
## Links
|
||||
* Tailscale homepage [link](https://tailscale.com/)
|
||||
|
123
documentation/SETUP_VPN_WIREGUARD.md
Normal file
123
documentation/SETUP_VPN_WIREGUARD.md
Normal file
|
@ -0,0 +1,123 @@
|
|||
<img src="https://raw.githubusercontent.com/JustEnoughLinuxOS/distribution/dev/distributions/JELOS/logos/jelos-logo.png" width=192> [![Latest Version](https://img.shields.io/github/release/JustEnoughLinuxOS/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/JustEnoughLinuxOS/distribution?color=5998FF&style=flat-square)](https://github.com/JustEnoughLinuxOS/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
|
||||
#
|
||||
|
||||
# Using WireGuard VPN
|
||||
JELOS now supports WireGuard VPN, which connects securely to your local network from any place in the world. As game streaming becomes more popular, it enables AAA games, streamed over the internet from your home computer, to be played on your console while traveling.
|
||||
|
||||
## Configuring WireGuard VPN in JELOS
|
||||
Typically the configuration involves copying your WireGuard VPN config file over to your JELOS device and then enabling WireGuard VPN in Emulation Station Network Settings menu.
|
||||
|
||||
### WireGuard Config
|
||||
JELOS uses standard WireGuard config file format. The file is typically provided by your VPN provider. If you want to host your own VPN Server on your local network, there are plenty of tutorials available online.
|
||||
|
||||
Currently only the single connection is supported. The WireGuard config file must be placed in the following location - `/storage/.config/wireguard/wg0.conf`. Please use SSH or Samba to create the file there.
|
||||
|
||||
Don't forget to restart Emulation Station to pick up the changes.
|
||||
|
||||
Sample `wg0.conf` file
|
||||
```
|
||||
[Interface]
|
||||
PrivateKey = <your private key>
|
||||
Address = 10.111.10.2/24
|
||||
|
||||
[Peer]
|
||||
PublicKey = <server public key>
|
||||
AllowedIPs = 0.0.0.0/0
|
||||
Endpoint = <server>:<port>
|
||||
```
|
||||
> Note: "DNS" option is not yet supported in the config. Please remove line starting with "DNS" from your config file.
|
||||
|
||||
### Enabling WireGuard connection
|
||||
Emulation Station now has a new menu item toggle to enable or disable WireGuard VPN connection. Use it turn the connection on or off.
|
||||
|
||||
> Note: make sure that WireGuard config file is present on the device, see the [Configuring WireGuard VPN in JELOS](https://github.com/JustEnoughLinuxOS/distribution/wiki/WireGuard-VPN#Configuring-WireGuard-VPN-in-JELOS) section above. The menu option is only available when the config file is present.
|
||||
|
||||
Connect to configured VPN server
|
||||
* Press "start" button to go into Emulation Station Main Menu
|
||||
* Select Network Settings submenu
|
||||
* Select "Wireguard VPN" and turn it on
|
||||
* Select "Back" button to exit setting dialog
|
||||
* WireGuard VPN should be connected
|
||||
|
||||
Disconnect from configured VPN server
|
||||
* Press "start" button to go into Emulation Station Main Menu
|
||||
* Select Network Settings submenu
|
||||
* Select "Wireguard VPN" and turn it off
|
||||
* Select "Back" button to exit setting dialog
|
||||
* WireGuard VPN should be disconnected
|
||||
|
||||
### Server Configuration (for advanced users)
|
||||
The local PC can be setup to be a WireGuard server. This allows accessing that PC (and a local network if SNAT is enabled) from the remote location using the device.
|
||||
|
||||
The configuration is the following:
|
||||
* Generate pair of configuration files
|
||||
* Install WireGuard on your local PC and import server config
|
||||
* Setup Port Forwarding for WireGuard port from your local router to your local PC
|
||||
* Enable WireGuard on your device
|
||||
|
||||
#### Config Pair generation
|
||||
The device have a helper script which can generate a pair of configuration files for the device and for the local PC with WireGuard server.
|
||||
|
||||
The script should be executed from SSH terminal.
|
||||
```
|
||||
# Generate config file
|
||||
wg-genconfig
|
||||
```
|
||||
The script will generate `wg0.conf` and `wg0.conf.server` files.
|
||||
|
||||
##### `wg0.conf.server` server config
|
||||
```
|
||||
[Interface]
|
||||
PrivateKey = <server private key>
|
||||
# PublicKey = <server public key>
|
||||
Address = 10.111.10.1/24
|
||||
ListenPort = 51820
|
||||
|
||||
# If you want to access other devices on the same network,
|
||||
# you need to enable SNAT, the lines below.
|
||||
# Make sure that eth0 matches your main network interface.
|
||||
#PostUp = echo 1 > /proc/sys/net/ipv4/ip_forward
|
||||
#PostUp = iptables -A FORWARD -i %i -j ACCEPT
|
||||
#PostUp = iptables -A FORWARD -o %i -j ACCEPT
|
||||
#PostUp = iptables -t nat -A POSTROUTING -s 10.111.10.0/24 -o eth0 -j MASQUERADE
|
||||
#PostDown = iptables -D FORWARD -i %i -j ACCEPT
|
||||
#PostDown = iptables -D FORWARD -o %i -j ACCEPT
|
||||
#PostDown = iptables -t nat -D POSTROUTING -s 10.111.10.0/24 -o eth0 -j MASQUERADE
|
||||
|
||||
[Peer]
|
||||
PublicKey = <device public key>
|
||||
AllowedIPs = 10.111.10.2/32
|
||||
```
|
||||
If you want you device to access your local network, you need to enable SNAT, allow your local PC forward network packets to other devices on your local network. That is done by uncommenting PostUp/PostDown commands in the config.
|
||||
|
||||
#### Install WireGuard on your local PC
|
||||
* Download the client for your OS from [here](https://www.wireguard.com/install/).
|
||||
* Import wg0.conf.server and enable the tunnel.
|
||||
|
||||
## Troubleshooting
|
||||
### Diagnostics
|
||||
Sometimes the tunnel doesn't establish successfully. The following commands can useful to diagnose issues.
|
||||
|
||||
The commands below should be executed on the device using SSH shell access.
|
||||
|
||||
```
|
||||
# Check the status of active tunnels.
|
||||
# You should see the connection statistics.
|
||||
wg show
|
||||
```
|
||||
```
|
||||
# Check my public ip address
|
||||
curl ifconfig.co -4
|
||||
```
|
||||
```
|
||||
# Bring tunnel up
|
||||
wg-quick up /storage/.config/wireguard/wg0.conf
|
||||
```
|
||||
```
|
||||
# Bring tunnel down
|
||||
wg-quick down /storage/.config/wireguard/wg0.conf
|
||||
```
|
||||
|
||||
### Links
|
||||
* WireGuard homepage [link](https://www.wireguard.com/)
|
||||
* WireGuard is also supported in ConnMan VPN plugin using ssh command line [link](https://wiki.libreelec.tv/configuration/wireguard)
|
Loading…
Reference in a new issue