New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add armhf dependencies for Pegasus #3586
Conversation
@darksaviorx Could you try this out? |
I don't think the proposed changes will work, since |
Correct, it will not work until the armhf architecture is added with that command. |
Yeah, I remember RetroPie having an I fully agree that a proper solution would be to provide a 64-bit build. On the other hand, as the devices can run both 32 and 64 bit distros (eg. Pi 3 and 4), setting up and providing a build for every device + platform combination is IMHO might not be the optimal strategy either. The patch here is a workaround for the issue, as currently Pegasus won't launch on As far as I know the current RetroPie releases are all based on |
Yes, we have, but that's just for enabling specific video drivers in SDL (RPI on Pi models or mali on SBC's having the Mali GPU drivers). In both cases, a source installation is available and verified working on both 32bit and 64bit ARMs.
Yes, not necessarily from the released assets in the Pegasus repo; the
Yes 64bit installations are just a manual option right now.
My preference would be to have a source install available, which we can add to the scriptmodule. 64bit support is still labeled as beta in RetroPie (for ARM). I don't have an I noticed also the similar size, the binary is small since it dynamically linked - does I can take a look at a source |
I'm fine with building it myself. I just need a complete list of all the required packages and whatever else that might be needed. I tried again today with @cmitu 's listed modules and I also added these Pegasus is still having issues. Loading a game loads to a black screen. Running Pegasus remotely I can see this error: Log file: https://pastebin.com/vMVHvgNv |
I don't have a list available, but might get one if I start from scratch the build process.
Yes,
I'm seeing this also on my build, so it's not specific to If I use the |
Might this be needed? https://github.com/mmatyas/pegasus-frontend/blob/master/etc/rpi4/kms_launch_fix.diff Again, I'm not familiar with most of this so I'm not sure if: This is needed, this is already compiled, or if this needs to be manually added. |
Investigating further the DRM master is not released theory, this is what is logged when a game is started: ...
[ 4333.167603] [drm:drm_mode_setcrtc [drm]] [CONNECTOR:41:HDMI-A-2]
[ 4333.433432] [drm:drm_mode_addfb2 [drm]] [FB:339]
[ 4333.443867] [drm:drm_mode_addfb2 [drm]] [FB:344]
# game is started here, pegasus is trying to disable the video output to release the DRM master lease.
[ 4343.025256] vc4-drm gpu: [drm:drm_mode_rmfb_work_fn [drm]] Removing [FB:344] from all active usage due to RMFB ioctl
[ 4343.025602] vc4-drm gpu: [drm:drm_framebuffer_remove [drm]] Disabling [PLANE:95:plane-4] because [FB:344] is removed
# this is from the emulator trying to initiliaze the video, but failing since the `drm` master is still help by QT.
[ 4343.085055] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:32:HDMI-A-1] but is not the DRM master, demoting to read-only probe
[ 4343.085255] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:41:HDMI-A-2] but is not the DRM master, demoting to read-only probe
[ 4348.388580] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:32:HDMI-A-1] but is not the DRM master, demoting to read-only probe
[ 4348.388796] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:41:HDMI-A-2] but is not the DRM master, demoting to read-only probe
[ 4348.389031] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:32:HDMI-A-1] but is not the DRM master, demoting to read-only probe
[ 4348.389506] vc4-drm gpu: [drm:drm_mode_getconnector [drm]] User-space requested a forced probe on [CONNECTOR:41:HDMI-A-2] but is not the DRM master, demoting to read-only probe
# this is pegasus re-initializing the video.
[ 4349.081603] [drm:drm_mode_addfb2 [drm]] [FB:339]
[ 4349.450128] [drm:drm_mode_addfb2 [drm]] [FB:341] Clearly there's a conflict somewhere. |
Running |
When Pegasus was added, the issue with source build was that the Qt libraries of the system were years behind, and similarly to SDL, weren't configured well for embedded graphics. The situation seems to be better now, Qt 5 will likely receive only patch updates, and recently I've seen a When using KMS, like on the Pi 4, you do need the KMS fix applied before the build. The program has to completely disconnect from the driver for the launching to work, but it requires some workarounds to access the Qt internals to do this. This might fix the DRM issues you encounter. The |
@mmatyas thank you for the pointers, that got me on the right track. Indeed, the missing KMS patch is what's causing the issue.
To launch, I'm using
and I guess the other option can be added. |
I reverted to 1080p so I can test without the
Made the new build. No change with those new steps. Loading a game still gets the same error: Now, if I run the new build with just Runcommand log: https://pastebin.com/SCpfR7Ua |
Not sure if you're using the binary in this case. I get no more errors from the DRM layer and the |
I started over fresh just in case. Same results as before. If the kms patch is required then I'm not sure how to add it. |
The patch is required, I thought that was obvious from my previous comment. To apply it:
|
It finally works. Thank you both. |
At the moment the Pegasus binaries are built for the traditional 32-bit ARM platform, and as such link to the 32-bit system libraries. On 64-bit distros however these will be missing, so the script should explicitly install the 32-bit
armhf
variant of the dependencies.