diagnostics: new scriptmodule to collect system/runtime info
Add a new RetroPie system item, used to collect diagnostic information and create an archive containing relevant information. The archive created can be optionally uploaded to a RetroPie diagnostics server or just saved locally.
Information collected (grouped in folders):
- system information: a summary produced by
inxi,dmesginfo, Linux kernel modules loaded, list of.debpackages installed. - RPI specific information: firmware version, RPIOS info, tvservice info about current video mode and supported modes, DRM modes for KMS platforms, RPI bootloader configuration.
- EmulationStation information: configuration files, head of the log file, input configuration
- Emulator log and configuration: runcommand's last log file, RetroArch configurations.
- input device information: input devices present,
udevadminfo about each device, output fromevemu-descwith detected device capabilities - RetroPie related configuration: release version, Git branches present, latest 3 log files, packages installed, RetroPie related configuration files from
$configdir/all - audio information: local ALSA configuration, list of available devices, PulseAudio audio sinks listing (if detected running)
Some info is filtered out from log files (IP addresses, username if not pi) using a filter function.
The information collected can be extended by adding a new function _<xyz>_diagnostics and including <xyz> as a collection module in the _generate_diagnostics function - ex. odroid or osmc specific info can be added by defining the _odroid_diagnostics function similar to other collection functions.
MISSING/TODOS:
- the new entry in the RetroPie system doesn't have an icon
- the verbiage in the dialogs could use a second look for rephrasing.
- the upload server (WebDav ?) should work before including this properly
- other info that we might include in the archive - please let me know.
- handle automatic install for upgrades.
Sorry I've not had a chance to look over this properly yet.