Commit graph

272 commits

Author SHA1 Message Date
cmitu
4b0d77735a systems: improve Odroid XU detection
Add support for recognizing the XU3/4 boards through `/proc/device-tree/compatible`, seems like recent kernels (just like the RPI boards) have removed the board name from the CPU information
Possibly related file: <https://github.com/raspberrypi/linux/blob/rpi-6.6.y/Documentation/devicetree/bindings/arm/samsung/samsung-boards.yaml#L180-L186>
2025-02-20 16:38:39 +00:00
cmitu
4cd25fe6a9 system: add support for Linux Mint 21/22 2025-01-15 17:09:42 +00:00
G Derber
f7761fd635
Add ability to differentiate group ownership from user ownership. 2024-08-06 09:38:25 -04:00
Jools Wills
cf0e098106 Set distcc variables at the scriptmodule function calling stage
Only configure distcc variables if a module does not have the "nodistcc" flag.

Skip builder/setup modules to avoid having distcc changes propagate to modules built from them.

This allows easily disabling distcc for certain modules that are not compatible.
2024-04-17 00:54:32 +01:00
cmitu
dc85e9a7c7 system: handle Pi5's xorg configuration
Pi5 needs an additional X11 configuration stanza for xorg-xserver to start properly. This configuration is handled by the `gldriver-test` package, which installs a couple of services that create the needed configuration files based on the displays connected to the board (HDMI/DSI/etc.). Technically, once the services have run the package can be removed IIF the type of display connection will not change (i.e. will always use HDMI or DSI, etc.)

 Since this package is only installed with `raspberrrypi-ui-mods` (i.e. the RaspiOS desktop), let's install it by default on Pi5. The only dependency for the package is `raspi-config`, which is already present on any RaspiOS installation.
2024-03-08 04:34:03 +00:00
Steven Swor
f53e5bad48 Don't set dispmanx platform flag on arm64 systems 2024-01-30 09:42:20 +11:00
cmitu
470fef7f6c system: fix Raspbian detection on Bookworm
Bookworm has changed the RP repo location to 'archive.raspberryp.com', due to a larger RPF operation to leave the .org just for the Foundation.
To detect whether we're running on RasPI OS, make sure we check for the new domain in the output from `apt-cache`.
2024-01-28 07:02:34 +00:00
cmitu
87af870da4 system: fix RPI detection with recent RPI kernels
The 'Hardware' field has been removed from the output of '/proc/cpuinfo' after [1], so the setup script will not correctly identify it's running on a Raspberry PI.
Use '/proc/device-tree/compatible' to check whether we're on a Raspberry Pi, the same method used for other SBCs.

Model calculation based on the Revision field from '/proc/cpuinfo' needs to be run in 2 places, so the code has been put in a separate function.

[1] 17804c2030
2023-12-21 21:08:54 +00:00
Jools Wills
4489fc59a8
Merge pull request #3774 from joolswills/rpi5
system - add recognition / platform flags for the Raspberry Pi 5
2023-10-21 17:26:18 +01:00
Jools Wills
8afc44239f system - add recognition / platform flags for the Raspberry Pi 5 2023-10-19 17:12:49 +01:00
cmitu
6b4c980892 systems: add support for Armbian
Added support for detecting if running on a Armbian built system.
Armbian is built on Debian/Ubuntu, so we're not changing the OS release/name.

* Added support for Armbian's Linux kernel package naming, in order to be able to install the kernel headers.
* Removed the ZRAM config from our own menu, Since Armbian has its own configuration tool (`armbian-config`) that handles it. ZRAM is configured and enabled y default on Armbian images.
2023-10-17 18:37:55 +01:00
Rapid Edwin
7fad64bc1d
systems: added LMDE6 Support
Add __os_debian_ver="12" for Linux Mint Debian Edition 6
2023-10-05 14:21:37 +03:00
cmitu
e87f06f4e1 system: bump Debian sid version, since 'bookworm'/12 is the new stable version 2023-07-06 04:38:01 +01:00
cmitu
8fa316ed9b system: add support for the Rockchip 3588 platform
Added basic support for detecting and building on the Rockchip 3588(s) SOC.
The SOC is used in several ARM based SBC including Radxa Rock 5(A/B), Orange Pi 5(B), Khadas Edge 2.
The CPU is an octocore package with 4x Cortex-A76 + 4x Cortex-A55 cores.

There are several distributions that support these systems, vendor provided images including a proprietary Mali blob with OpenGLES 3.2/OpenCL support or community provided images using either a Mesa fork for GLES/X11/Wayland support. For now, the platform has an `x11` flag to allow most of the emulators to be installed, but we might switch to dynamically detecting the desktop platform (i.e. `wayland` / `x11` depending on the system).
2023-05-07 18:00:29 +01:00
Jools Wills
1f749a4812
Merge pull request #3660 from joolswills/bullseye_binaries
system - enable binaries for Raspberry Pi OS 11 (bullseye)
2023-03-07 14:42:46 +00:00
Jools Wills
57f12b6bd3
Merge pull request #3667 from gizmo98/update-os-versions
Update OS versions
2023-03-07 14:38:40 +00:00
Stefan
2d66e682f0
system.sh: update Debian unstable version
Current Debian bookworm/testing has version 12. Debian trixie/unstable has version 13.
2023-03-07 12:36:22 +01:00
Stefan
bab23cb8cc
system.sh: add Ubuntu 22.04
Debian >= 12 and Ubuntu >= 22.10 have libsdl2-tests package. Set __os_debian_ver="12" for Ubuntu versions >= 22.10.
2023-03-07 12:32:01 +01:00
Jools Wills
90d535028b Don't use compareVersions for GCC version comparisons
gcc -dumpversion on GCC >= 7 seems to provide the major version but the documentation suggests this depends on how it's configured.
We only need to test the major version so using compareVersions isn't required.

https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html states:
>Print the compiler version (for example, 3.0, 6.3.0 or 7)—and don’t do anything else. This is the compiler
>version used in filesystem paths and specs. Depending on how the compiler has been configured it can be
>just a single number (major version), two numbers separated by a dot (major and minor version) or three
>numbers separated by dots (major, minor and patchlevel version).

Ensure __gcc_version only contains the major version just in case in system.sh
2023-03-05 14:09:26 +00:00
Jools Wills
8517e142c7 system - enable binaries for Raspberry Pi OS 11 (bullseye)
Adjust logic slightly
2023-03-05 13:53:20 +00:00
Jools Wills
ea2533dd19
Merge pull request #3627 from gizmo98/platform-flag-vulkan
add platform flag vulkan
2023-02-12 19:22:52 +00:00
Stefan
2386c4b22a add platform flag "vulkan" 2023-02-12 19:47:07 +01:00
Stefan
433f316c59
system: add recognition for NXP i.MX6 quad and i.MX6 dual lite/solo
not officially supported
2023-01-24 20:22:35 +01:00
Stefan
af34d24893
system: add recognition for NXP i.MX8M Mini
not officially supported
2023-01-24 20:18:19 +01:00
Jools Wills
b486e0eec3
Merge pull request #3603 from joolswills/kms_chroot
system - use kms on bullseye or newer when building in chroot
2022-12-05 16:51:40 +00:00
Jools Wills
6ff7e3bd70 system - use kms on bullseye or newer when building in chroot
change logic to avoid running the sysfs tests in a chroot
2022-12-03 16:10:14 +00:00
Jools Wills
61c46aa005 Use bash operators instead of compareVersions for __os_debian_ver
There was a mix of compareVersions "$__os_debian_ver" OP $arg and [[ "$__os_debian_ver OP $arg ]] around the code.

As $__os_debian_ver is always an integer, use the bash built in operators for performance.

The compareVersions call is significantly slower as it uses an external command (dpkg).
2022-12-03 16:02:39 +00:00
cmitu
2d12325a95 systems: add support Linux Mint LMDE
Add the Debian version for the Debian Edition of Linux Mint.
  - version 4 is based on Debian 10 'buster
  - version 5 is based on Debian 11 'bullseye'

Older versions (1 to 3) are no longer supported upstream.
2022-12-01 16:22:42 +00:00
theofficialgman
9b9c083319 enable crypto extensions for TX1 and TX2
crc and simd and enable by default in all versions of gcc so would be redundant to add here.

Cortex-A57 armv8.0 has optional crypto extensions so they are not enabled by default. TX1 and TX2 have these extensions available in hardware.
2022-10-05 19:56:37 -04:00
Chris Kobayashi
97674cb707 Add support for Pine64 RockPro64 board. 2022-10-05 14:28:24 +09:00
eouthwaite
8d10ba4ea8 Add Bunsen Linux to supported flavours 2022-09-28 12:38:40 +01:00
Jools Wills
c07e87cf83 system - use architecture for __platform instead of x86
For architectures not handled by custom logic, we previously checked `uname -m` for i686/x86_64/amd64 and then set __platform=x86.

This change switches to using the actual output of `uname -m` as the __platform variable. If a platform_$__platform function exists, we will call it, otherwise we call platform_native (which used to be platform_x86).

In platform_native we check if the platform is i386/i686/x86_64 and then set an x86 flag.

This seems more logical and allows us to more easily check for x86_86 in scriptmodule flags. It also resolves redream incorrectly having x86_64 added to the flags in d877a81 (which work after this change).

The error: fatalError "Unknown platform - please manually set the __platform variable to one of the following is now removed. As we default to platform_native this could potentially allow RetroPie-Setup to work on something we don't specifically support.
2022-05-20 17:40:36 +01:00
Josh Wyse
213443269d
Detect Odroid platforms with 'Hardkernel' in cpuinfo output (#3327) 2022-01-30 20:20:23 +00:00
Chips-fr
4f464162c6 Add uae4arm core support 2021-10-07 21:37:11 +02:00
Jools Wills
5e2b98fc60
Merge pull request #3385 from theofficialgman/master
remove tegra 2 and change tegra 3/4 to gles
2021-08-24 05:11:20 +01:00
Jools Wills
6b00bf9dea system - recognise Elementary OS Odin - fixes #3388
It was reported that Elementary OS Odin identifies as "Elementary" rather than "elementary" via
lsb_release so switch to using "[eE]lementary" in case statement to recognise both.

This doesn't guarantee modules will work as this isn't a distro we test on ourselves.
2021-08-24 02:48:01 +01:00
theofficialgman
5fa8dba1e0
remove tegra 2 and change tegra 3/4 to gles
tegra 2 is armv7 and doesn't support NEON and is unlikely to ever be used
tegra 3 (and maybe 4?) only support gles (up to 2.0) not gl
2021-08-13 23:53:35 -04:00
Jools Wills
50ed2e781e joy2key - split out into standalone module and rework helper code
Move much of the helpers.sh start/stop logic and default parameters to a joy2key wrapper script.

Switch runcommand.sh to use new wrapper script

Add tab button to "y" key for use in edit dialogs

Remove runcommand $md_inst on update. If old joy2key is present in runcommand install, trigger joy2key module install.

Remove system.sh python3-sdl2 dependency check - moved to joy2key_depends
2021-08-04 00:03:32 +01:00
Jools Wills
a65ded72f6 system - added __use_ccache var (=1) to enable ccache 2021-07-31 06:22:55 +01:00
Jools Wills
98da08efc7
Merge pull request #3375 from theofficialgman/jetsons
Add the missing Nvidia Jetsons (update)
2021-07-21 04:57:17 +01:00
theofficialgman
222bf6ec99 change how nvidia jetsons are detected
add detection the latest jetson devkits as well as the older 32bit based boards
2021-07-20 22:42:03 -04:00
Jools Wills
86a1acc5ff
Merge pull request #3356 from cmitu/joy2key-rework
joy2key: new version using PySDL2
2021-06-28 04:48:18 +01:00
cmitu
fab62e2aa3 joy2key: new version using PySDL2
Added a new `joy2key` implementation, using PySDL2 for joystick event handling.
PySDL2 is a python module that wraps SDL2 (and other SDL libraries) using the built-in `ctypes` module.

Pros:
 * event handling is simplified a bit, using SDL's event loop.
 * (subjective) the code is a bit more structured and easy to follow.
 * joystick handling is rewritten based on EmulationStation code, movement is smoother and scrolling is improved.
 * support for input repeat to improve scrolling, just keep the input pressed and scrolling continues

Cons:
 * module is a bit larger (296 LOC vs 224 in current joy2key.py)
 * needs PySDL2 (which might not be packaged, see the notes below) and SDL2
 * arguably, device config to keyboard event mapping is more complex (abstracted as InputDev)

Notes:
 * availability of PySDL2 as a system package is good, but it's not standard in Debian 10 (stable) at the moment.
   The module is present though (as a backport) in Ubuntu 18.04 (and later) and Raspberry Pi OS (Buster).
   When it will be universally available, we should probably revisit the code that checks for the version and make it a hard requirement in `get_retropie_depends`, similar to `python3-pyudev`.

 * added PgUp/PgDown to the default parameters for `joy2key`, they are mapped in a similar fashion to EmulationStation to the shoulder buttons. This doesn't apply to Runcommand's invocation, since it uses a different set of parameters.

 * added a configuration option in `runcommand` for selecting the joy2key version used. Default is the SDL version (when PySDL2 is installed), with the ability to fallback to the previous version (udev based).
2021-06-28 04:14:41 +01:00
Jools Wills
60dbd52d32 system - added icosa_emmc for nintendo switch booted from emmc
Thanks to @theofficialgman for the change
2021-06-21 02:52:24 +01:00
Jools Wills
17aa250975 system - split out platforms configuration to simplify code
Also fix a bug with the generic-x11 platform not using an array for __platform_flags
2021-06-16 04:03:01 +01:00
Jools Wills
70b7b9eeb0 retroarch - updated to v1.9.3
* dropped hotkey hack patch as now integrated with config option input_hotkey_block_delay with default of 5 (as was our patch)
 * rebased disable search patch (code moved back to retroarch.c for now)
 * rebased / updated shader path config enable patch (thanks @cmitu)
 * revert the default saves/states/sytem path change as we rely on the old behaviour
 * default to using ON/OFF text instead of rgui_switch_icons graphics
 * added gles3.1/3.2 configure parameters using gles31/gles32 flags
 * added gles31 flag to rpi4 system. Mali boards should support 3.2 but need to test before adding
2021-05-31 01:23:49 +01:00
Jools Wills
ff9bdad6cc system / packages - allow bypassing signing when creating binaries for testing
Also moved the retropie email used for checking to __gpg_retropie_key and use this rather than __gpg_signing_key
as we hardcode the install of the actual key - so the logic didn't make sense in the case of wanting to sign
with another key. But __gpg_signing_key can now be set to an empty string to bypass signing of binaries as used
by the build scripts. This is only useful for developers/testing binary creation on systems without our signing key.
2021-02-22 02:36:17 +00:00
Jools Wills
b160838a47 system - add subversion as a dependency 2021-02-15 23:54:13 +00:00
Jools Wills
87dbfe9772 system - remove wget dependency 2021-01-22 00:09:41 +00:00
Jools Wills
a0d6c0a109 system - add curl as retropie-setup dependency
Remove curl dependency from steamlink
2021-01-21 05:20:29 +00:00