According to the Raspi docs, `dwc_otg.speed=1` sets the USB port to USB 1.0 speed and should be enabled only for debugging purposes.
I don't think it's needed anymore.
Added support for NetworkManager and predictable network interface device names.
NetworkManager is default on RaspiOS 12 and also on Armbian. Armbian doesn't disable the predictable ifnames, so the changes here will help adding support for configuring WiFi on it.
Changes included:
- interface name is not hardcoded to 'wlan0', but taken from `/sys/net/devices`.
Most of the functions had to be modified and an extra parameter for ifname was added.
- config/remove wifi functions have been added for each management version (wpasupplicant/nm)
- tweaked the interface in a few places (colors, title, phrasing)
- the NetworkManager configuration methods will create a connection named 'RetroPie-WiFi'.
This helps identifying the connection during removal, since I didn't find a way to add some info/metadata to
a connection in order to mark the one we're configuring with our script.
- the country code is now read with `raspi-config` instead of querying the `wpa_supplicant.conf`, since it might not exist when NetworkManager is active.
Only tested WPA and Open networks, since I lack any WEP capable AP/device.
Co-authored-by: Gemba <uid0@sdf-eu.org>
From https://github.com/detain/skyscraper/pull/2447868bd303
- Switch to active fork https://github.com/Gemba/skyscraper
- Compacted config file copy section by using RP provided functions, plus:
- Add platforms.json, mobygames.json, screenscraper.json
- Add docs/ folder
- hints.txt > hints.xml (Version 3.5.4 - 14th May 2020)
- Revert commit 693dbfd ("prevent hall of mirrors effect") - This is now implemented upstream in the new fork
- Don't use unix:examples.files -- Copy resource files explicitly
- Minor cleanup:
-- Removed some trailing spaces
-- Removed errant ']]'
Changed the build method by using Golang's module support and creating a module from the upstream sources. Fixes the current build errors due to a transitive depedency which requires upgrading Go to 1.17+.
This simplifies applying the patch and rolling back (downgrading) the TGDB module dependency. As a bonus, we can use the normal way of retrieving the sources and generating the scriptmodule `.pkg` info file.
Fixed also the `golang` installation, the new version was not installed automatically due to a insufficient version check.
On RaspiOS (10/11), the ALSA configurations folder doesn't exist, so make sure we're creating it before saving/moving the ALSA configuration file we generate with the scriptmodule.
Move resetting alsa to function to avoid duplication.
Add dialog when migrating ~/.asoundrc to the new location.
If ~/.asoundrc exists and there is no config in /etc/alsa/conf.d/99-retropie.conf then offer to move the file.
Asking the user is safer as we don't want to migrate a users own custom ALSA configuration.
`bash` 5.2 introduced a new option (`patsub_replacement`) which affects how `%ROM%` is replaced in the command line:
From https://tiswww.case.edu/php/chet/bash/NEWS:
> x. New shell option: patsub_replacement. When enabled, a `&' in the replacement
> string of the pattern substitution expansion is replaced by the portion of
> the string that matched the pattern. Backslash will escape the `&' and
> insert a literal `&'.
This breaks the substitution of `%ROM%` when the replacement string (ROM name) contains `&`.
1. with `bash` version 5.1
$ COMMAND="run %ROM%" && COMMAND=${COMMAND//%ROM%/a & b.rom} && echo $COMMAND
run a & b.rom
2. with `bash` version 5.2
$ COMMAND="run %ROM%" && COMMAND=${COMMAND//%ROM%/a & b.rom} && echo $COMMAND
run a %ROM% b.rom
3. with `bash` version 5.2, option disabled
$ shopt -u patsub_replacement
$ COMMAND="run %ROM%" && COMMAND=${COMMAND//%ROM%/a & b.rom} && echo $COMMAND
run a & b.rom
Disable this option in `runcommand` for now so users won't be affected by it when using Ubuntu 22.10+/Debian 12 (bookworm)
The last runtime detection changes for the build instructions enable the GL21 renderer only on non-RPI platforms.
The V3D Mesa driver supports OpenGL 2.1, so enable the GL21 renderer when it's used on a Raspberry Pi.
Without this change, the build will use the GL1.4 renderer.
* modified the input configuration script to export Vendor/Product IDs, if exported by EmulationStation.
* added vendor/product to RetroArch's script for generating joypad profile.
EmulationStation, when using the RPI videodrivers, displays at layer 10000.
Increased the layer index for video/images in order to run above EmulationStation.
The "X is running" test in emulationstation startup script is deprecated. X was replaced by Xorg a long time ago (pre Debian stretch and Ubuntu bionic). The test could be modified to support Xorg, but emulationstation runs quiet well under x11. Just remove it.
Needed for configurations using the 'vc4-kms-v3d' overlay (default in RPI OS 11).
The names are (almost) similar, but the default order of the cards is different:
* (fkms/videocore) the order is HDMI, Headphones
* (kms) the order is Headphones, HDMI
The `vc4hdmi` driver also has an extra PCM (hdmi) that does the audio conversion, since the default one understands only the `IEC958_SUBFRAME_LE` format.
The new PCM is configured in `/usr/share/alsa/cards/vc4-hdmi.conf`, and it needs a recent `libasound2-data` package (on Buster, Bullseye already has the configuration included).
The default ALSA configuration may have a bug (?) in the definition of the volume control (mixer) for the `vc4hdmi` cards, so add a software volume control with a mute toggle for these cards. For compatibility with previous configurations, the control is named 'HDMI'.
Added the Free fonts, since `attract` will not start without it's default font (FreeSans).
The font search code has changed recently, triggering now an error without FreeSans being present.
The impact of this is that any device name that's reported with special characters from grep's default regular expression
engine would fail. For example, "*" would be misinterpreted. This change makes the script more aligned with other
grep commands in the file.
Emulationstation has focus problems under Ubuntu 22.04's "GNOME on Wayland" session. Don't use SDL2's wayland driver and run emulationstation with --fullscreen-borderless if desktop session is "GNOME on Wayland".
Use our helper function for package removal (which uses apt-get).
apt will throw a warning when run via retropie_setup
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
Modified the netplay configuration dialog to use the new 'inputBox' helper function.
If OSK is installed, it will be used automatically so a keyboard is no longer required to configure these options.
If the OSK is installed it will be used for input, otherwise it will fall back to using dialog --inputbox
function takes 3 parameters:
The title of the dialog, the default text and a minimum number of characters to accept.
Adjusted wifi module to use the new inputBox. There is no need to redirect cmd output with 2>&1 >/dev/tty as the inputBox function does this.
Due to https://github.com/libsdl-org/SDL/issues/5399 which breaks darkplaces-quake in RetroPie we are keeping Buster at 2.0.10 until there is a resolution.
Added libsamplerate0-dev dependency to module.
Branch includes reworking the patch for kms modesetting via env variables, some minor changes to our Mali and RPI patches, and some removal of no longer needed changes.
It also includes removal of some debian/control build dependencies which were added to upstream to align with Debian's packaging. The additions caused dependencies like libwayland-dev and libpulse-dev to be required for all platforms. As we handle adding dependencies in our sdl module code, these have been removed in our retropie-2.0.16+ sdl2 branches.
Include fix for detection of videocore due to our renamed include folders (thanks @cmitu).
I have done some tests running weston/wayland from CLI with a rpi4/raspbian-lite. After startup of weston $XDG_SESSION_TYPE is still "tty". If I start a weston/wayland session with graphical login (display manager sddm or gdm3) $XDG_SESSION_TYPE is "wayland". $WAYLAND_DISPLAY can be found in both constellations and seems to be more reliable. On a rpi4 $WAYLAND_DISPLAY=wayland-0. Just replace $XDG_SESSION_TYPE with $WAYLAND_DISPLAY.
PulseAudio is pulled by installing the desktop since [1] on `buster`.
Changed the install procedure to disable it after adding the desktop and to replace the volume applet for `lxpanel` with the version that supports ALSA (otherwise `lxpanel` crashes, leaving the deskop unusable).
[1] https://www.raspberrypi.com/news/new-raspberry-pi-os-release-december-2020/
This is a hotfix release to fix broken SDL/Steam mappings.
Previous version (0.9.4) was just a re-release of 0.9.3 which adds a missing uhid warning and fixes the module version number.