Output to an external tv via HDMI or VGA doesn't appear to be working with Recalbox installed on PC
-
@qoobit well, handling this on a laptop is much different than what you'd read in the wiki so far hich is, as you've noticed, pi only.
On a PC, things absolutely don't work this way. Technically speaking, the laptop screen and the HDMI output are 2 different screens. And so far, we haven't worked on making things easy to select a screen. But you can do some manual edits to get this working.
The files/bins involves are :
xrandr
-> will help you detect and select screens- .xinitrc (this file is somewhere in the /etc/X11/conf somethibg like that. It's a standard path) to set the screen you want
Some resources :
https://gitlab.com/recalbox/recalbox/issues/182
https://forum.recalbox.com/post/78097 (in french sorry)
https://gitlab.com/recalbox/recalbox/blob/master/board/recalbox/x86/fsoverlay/etc/X11/xinit/xinitrc#L17 -
Thanks @gnubit.
This was pretty helpful thank you. -
Cheers @substring
Both responses from yourself and @gnubit helped me understand the files that need to be modified and what needs to be included.In both instances, however, I get stuck at the first hurdle which is displaying the list of connections available. When I run 'xrandr' as root the message I receive is "Can't open displays"
I checked online for a solution for this and in a separate forum, it appears that there is a xorg.conf file that a user modified and was able to resolve his issue.
https://ubuntuforums.org/showthread.php?t=1947733
While it's a separate issue I assumed the configuration would be similar. As such, I tried to find a xorg.conf file but the only thing I could find the X11 directory was a xorg.conf.d directory which contained a file called "99-avoid-joysticks.conf".I did notice that a list of connections are present in var/log/messages and I considered modifying the conf file in .xinitrc but I'm not sure if I need to include the full name as displayed in the /var/log/messages "HDMI-A-1"
[code]
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817368] [drm] Radeon Display Connectors
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817372] [drm] Connector 0:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817374] [drm] LVDS-1
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817376] [drm] HPD1
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817380] [drm] DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438 0x643c 0x643c
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817381] [drm] Encoders:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817383] [drm] LCD1: INTERNAL_UNIPHY
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817385] [drm] Connector 1:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817386] [drm] HDMI-A-1
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817387] [drm] HPD2
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817391] [drm] DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448 0x644c 0x644c
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817392] [drm] Encoders:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817393] [drm] DFP1: INTERNAL_UNIPHY
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817394] [drm] Connector 2:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817396] [drm] VGA-1
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817399] [drm] DDC: 0x64d8 0x64d8 0x64dc 0x64dc 0x64e0 0x64e0 0x64e4 0x64e4
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817400] [drm] Encoders:
Jul 22 11:51:03 RECALBOX user.info kernel: [ 10.817402] [drm] CRT1: INTERNAL_KLDSCP_DAC1
Jul 22 11:51:03 RECALBOX user.info kernel: [ 11.292043] snd_hda_codec_hdmi hdaudioC0D0: HDMI ATI/AMD: no speaker allocation for ELD
[code] -
@qoobit you may beed to specify the display like
DISPLAY=:0.0 xrandr
-
@substring - AWESOME! that worked. Thank you.
I'll come back here once I've modified the .xinitrc conf file and let you know how it went.
Thanks again.
-
@Substring ok, so I'm unable to actually modify the xinitrc file as it's read only (no surprises there).
I tried following the instructions here
https://github.com/recalbox/recalbox-os/wiki/Change-display-resolution-on-x86---x86_64
but I kept getting "read only system file" message when copying the file to a different directory.I then modified the file on my local machine but again, when I try to copy the modified file back to the xinitrc directory I get a read only error on the directory.
I tried to chmod the xinitrc directory but that didn't work.
I tried to chmod the file but that also didn't work.
I tried to change user to sudo but sudo isn't a recognised command.
I tried to use su instead but when I enable su withsu -
I wasn't prompted for a password so su didn't work.I am logged in as the root user as outlined here so I'm not sure what else I could do to actually modify this file.
https://github.com/recalbox/recalbox-os/wiki/Root-access-on-terminal-(EN)Any help would be great.
-
Just thinking there. Is the reason that I cannot modify the file is because it is currently in use?
Is there a command I can run to say stop a service that might be using the xinitrc file so I can modify it?
-
I tried following the instructions here
https://github.com/recalbox/recalbox-os/wiki/Change-display-resolution-on-x86---x86_64
but I kept getting "read only system file" message when copying the file to a different directory.Just to note that I was actually able to see the .xinitrc file in the /recalbox/share/system directory after trying a second time. Not sure what happened first time around, possibly missed something when copying the command initially.
Anyway, I was able to modify the file there and added the following parameter
xrandr --output HDMI-0 --mode 1920x1080 --same-as LVDS-0
Once I rebooted Recalbox the issue still persisted. Not sure what else to do at this point.
-
@qoobit it's still better to quit ES first with
/etc/init.d/S31emulationstation stop
Then to edit the file out of the user's home path, you need to
mount -o remount, rw /
-
@substring, thanks very much. I was able to write to xinitrc in the /X11/xinit directory after stopping ES.
Now that I am able to start and stop the service freely it's a lot quicker to verify if the changes made to xinitrc actually work. Unless I should be doing a full reboot after making those changes?So far though, I haven't had any luck. Behaviour is still this same.
I stripped back the xrandr attributes to just output as HDMI now in case there is some issue with outputting to both the netbook and the tv.
Not sure if it's an issue trying to output HD to a 4k tv but I would have just assumed the image would be smaller.If you have any other suggestions that would be great. If not, I appreciate the help anyway.
Cheers! -
@qoobit from my holidays place, there is not much more I can do for now
Maybe @rockaddicted can be of some help from now On
-
@substring enjoy your holidays! I appreciate the help so far. Thanks
-
Have you tried switching off the laptops display and only displaying via HDMI ?
xrandr --output LVDS-0 --off --output HDMI-0 --mode 1920x1080
-
As i was pleasured last night, today i got the behaviour that Xorg-server doubled the viewport of LVDS1 (laptop screen) --same-as VGA1 (external monitor): scratch! - external Monitor spots the RecalBox menu and Kodi only in a 1280X800 view upper left inside a 1920x1080 view.
By your help i fond the xinitrc and wrote:
# xrandr --output output_name --off
DISPLAY=:0
xrandr --listmonitors | grep VGA1 && {
xrandr --output LVDS1 --off
xrandr --output VGA1 --mode 1920x1080
}out of that.
-
Thanks to all the thread I was able to do it
My machine is a laptop and was connected to a second screen via display port
So I have not modified the .xinicrt since I didn't find it but I manually ran the followingDISPLAY=:0 xrandr --listmonitors
Then I had two connected monitors
eDP-1
And DP-1
So I did DISPLAY=:0 xrandr --output eDP1 --off
And the laptop screen went black
After that I did DISPLAY=:0 xrandr --output DP-1 primary
And then I clicked escape on the laptop and I was back in the main screen displayed on the tvThank you so much for your investigation and output