Output to an external tv via HDMI or VGA doesn't appear to be working with Recalbox installed on PC



  • Hi
    I've decided to put an old Asus Eee PC 1015BX to good use and installed Recalbox to run snes, nes and megadrive emulation.

    The specs of the netbook are not very good but would have exceeded that of those systems at the time. So far, running recalbox on the netbook itself has been a real pleasure given the diminutive specs, however, when I try to connect it to a tv or a monitor via HDMI or VGA nothing* is displayed.

    Now, when I say nothing*, I mean the following behaviour is observed on the TV and monitor I tried.

    • Splash screen for laptop is displayed
    • Grub bootloader is displayed - chose verbose
    • Verbose output is displayed and followed
    • After this I'll either see a screen full of verticle scanlines, pixel noise in various shades of green, or the rarest (and therefore my favourite), random tiles made up of various parts of the UI.
      This occurs in the top half of the netbook screen (the recalbox splash screen appears in the bottom half) and also on the entire screen of the connected tv/monitor.

    Once I get to this point, I can see the UI on the netbook screen displaying in the bottom half of the screen, nothing displayed in the top half and nothing displayed at all on the tv/monitor

    I've had a look at the documentation for configuring a display -https://github.com/recalbox/recalbox-os/wiki/Video-configuration-detailled-(EN)
    but this seems to be very specific to raspi configurations and I couldn't find an alternative guide for windows.
    I've also tried setting "global.videomode=CEA 16 HDMI" in the recalbox.conf but that doesn't appear to work.

    Specs for the netbook are as follows
    RAM: 1GB (bumped to 8gb for testing)
    CPU: AMD® APU C60 1.0GHz (dual core)
    GPU: Radeon HD 6290

    Not sure if I was initially looking in the right place in relation to HDMI config. Perhaps there is some other config file I would need to modify? Maybe it's just a hardware compatibility issue. Any info or advice would be greatly appreciated.
    Cheers!





  • @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 with su - 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 :)



  • @qoobit

    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.



  • @chabayo

    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 following

    DISPLAY=: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 tv

    Thank you so much for your investigation and output



Want to support us ?

Join us on :

223
Online

29681
Users

14865
Topics

111997
Posts

Looks like your connection to Recalbox Forum was lost, please wait while we try to reconnect.