RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    Retropie Installation on Ubuntu Server x64 18.04.1

    Scheduled Pinned Locked Moved Projects and Themes
    18.04debianubunutux64x86
    223 Posts 34 Posters 66.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • johnodonJ
      johnodon @AndrewH
      last edited by johnodon

      @andrewh said in Retropie Installation on Ubuntu Server x64 18.04.1:

      Out of interest, given that an installation on Ubuntu (on an x86 system) effectively sidesteps the performance limitations of the Raspberry Pi, would it be feasible to install and use one of the newer MAME versions?

      I understand that it'd have to be called directly, rather than through retroarch, so there might be a bit more fiddling to get controls working, but it could potentially allow for running of some of the newer arcade games that MAME 2003 and 2010 don't support, right?

      There is an lr-mameexperimental package that is used for current MAME.

      I'm using current MAME (0.200) right now and it works wonderfully. However, the core that is compiled using the experimental package crashes. I still use the package to install the bits and pieces, but I download a nightly core from the Libretro buildbot page and copy it to /opt/retropie/libretrocores/lr-mame.

      Be aware that the file you download will need to be renamed to arcademame_libretro.so.

      John

      00ninja0 1 Reply Last reply Reply Quote 0
      • 00ninja0
        00ninja @johnodon
        last edited by 00ninja

        @johnodon said in Retropie Installation on Ubuntu Server x64 18.04.1:

        There is an lr-mameexperimental package that is used for current MAME.

        I'm using current MAME (0.200) right now and it works wonderfully. However, the core that is compiled using the experimental package crashes. I still use the package to install the bits and pieces, but I download a nightly core from the Libretro buildbot page and copy it to /opt/retropie/libretrocores/lr-mame.

        Be aware that the file you download will need to be renamed to arcademame_libretro.so.

        John

        Thanks for this tip!

        I reecently added lr-mame2003 to my Peppermint OS desktop build and today decided to upgrade to Mame 0.200. I am using the RetroPie Setup Script and after adding lr-mame, it would attempt to load a game but then dump me back to EmulationStation.

        I added the latest nightly of lr-mame from the buildbot but I had to rename it 'mamearcade_libretro.so' as that is what the one from the setup script installed. Works like a charm now, thanks again!

        johnodonJ 1 Reply Last reply Reply Quote 0
        • johnodonJ
          johnodon @00ninja
          last edited by

          @00ninja said in Retropie Installation on Ubuntu Server x64 18.04.1:

          @johnodon said in Retropie Installation on Ubuntu Server x64 18.04.1:

          There is an lr-mameexperimental package that is used for current MAME.

          I'm using current MAME (0.200) right now and it works wonderfully. However, the core that is compiled using the experimental package crashes. I still use the package to install the bits and pieces, but I download a nightly core from the Libretro buildbot page and copy it to /opt/retropie/libretrocores/lr-mame.

          Be aware that the file you download will need to be renamed to arcademame_libretro.so.

          John

          Thanks for this tip!

          I reecently added lr-mame2003 to my Peppermint OS desktop build and today decided to upgrade to Mame 0.200. I am using the RetroPie Setup Script and after adding lr-mame, it would attempt to load a game but then dump me back to EmulationStation.

          I added the latest nightly of lr-mame from the buildbot but I had to rename it 'mamearcade_libretro.so' as that is what the one from the setup script installed. Works like a charm now, thanks again!

          Quite welcome!

          John

          1 Reply Last reply Reply Quote 0
          • robotronmanR
            robotronman
            last edited by

            @johnodon Thanks much for this great guide. I just setup my NUC 6i5SYH and everything works!

            I do have one issue though. Is there a way to exit EmulationStation using F4, but drop directly to the CLI just like on a RPi? With this build you get dropped into a black screen running openbox. To get to a prompt, i can ssh in and kill the openbox process, but I'm sure there is a cleaner way of doing this :)

            johnodonJ 1 Reply Last reply Reply Quote 1
            • johnodonJ
              johnodon @robotronman
              last edited by johnodon

              @robotronman said in Retropie Installation on Ubuntu Server x64 18.04.1:

              @johnodon Thanks much for this great guide. I just setup my NUC 6i5SYH and everything works!

              I do have one issue though. Is there a way to exit EmulationStation using F4, but drop directly to the CLI just like on a RPi? With this build you get dropped into a black screen running openbox. To get to a prompt, i can ssh in and kill the openbox process, but I'm sure there is a cleaner way of doing this :)

              You get a black screen because you probably performed the 'Optional Steps'. Most of these change the characteristics of the gnome terminal (make background black, hide menu, etc.). You can still right click in the background and tell it to open a new terminal window although it will not be very easy to navigate. If you want a nice looking terminal window, don't do the 'Optional Steps'.

              This is the main culprit in the optional steps: Completely hide gnome terminal

              If you want a mouse pointer, remove -- -nocursor from the .bash_profile.

              John

              robotronmanR wmarcioW M 3 Replies Last reply Reply Quote 0
              • robotronmanR
                robotronman @johnodon
                last edited by

                @johnodon Thanks John, makes sense.

                1 Reply Last reply Reply Quote 0
                • wmarcioW
                  wmarcio @johnodon
                  last edited by wmarcio

                  @johnodon said in Retropie Installation on Ubuntu Server x64 18.04.1:

                  @robotronman said in Retropie Installation on Ubuntu Server x64 18.04.1:

                  @johnodon Thanks much for this great guide. I just setup my NUC 6i5SYH and everything works!

                  I do have one issue though. Is there a way to exit EmulationStation using F4, but drop directly to the CLI just like on a RPi? With this build you get dropped into a black screen running openbox. To get to a prompt, i can ssh in and kill the openbox process, but I'm sure there is a cleaner way of doing this :)

                  You get a black screen because you probably performed the 'Optional Steps'. Most of these change the characteristics of the gnome terminal (make background black, hide menu, etc.). You can still right click in the background and tell it to open a new terminal window although it will not be very easy to navigate. If you want a nice looking terminal window, don't do the 'Optional Steps'.

                  This is the main culprit in the optional steps: Completely hide gnome terminal

                  If you want a mouse pointer, remove -- -nocursor from the .bash_profile.

                  Johthe

                  Hi, its my frist post here, for a long time i read this topic.

                  I want to unhide the terminal window, i need its allways on back of emulationstation, how i can do that, any way?

                  Keep the good work man. Thx.

                  1 Reply Last reply Reply Quote 0
                  • P
                    praetorian55
                    last edited by

                    johnodon - WOW!!! You really nailed the x64/Ubuntu/Retropie installation. The gsettings and rc.xml items in the optional steps are pure gold for getting this to be as seamless as possible

                    I was away from retropie/gaming for some time after I posted my install steps, so I missed you putting these together. Thanks for following up with your success and sharing it with everyone!

                    1 Reply Last reply Reply Quote 0
                    • M
                      movisman @johnodon
                      last edited by movisman

                      @johnodon

                      Hi there,

                      Just wanted to say thanks a lot for creating this detailed guide for people to use. I have an x86 setup, which is pretty much silent/appliance like (no terminal decorations, etc) sat on top of Ubuntu MATE. However I haven't touched it for a while and I never quite finished up with it, as other things took priority in life! I am going to probably reinstall and start again, and I was always tempted by Ubuntu Server, but wasn't sure if it would be too restrictive. I just set it up on a test machine and used your instructions, and so far so good. They really are very well written and all the commands worked perfectly. I haven't tested any games or controllers yet though.

                      However, as ultimately the mini PC would be plugged into the 4K TV, I was having some issues setting the resolution to 1080p/60. At 4k/30, everything will be too laggy. I can use xrandr commands which I discovered when fooling around with Batocera Linux to set the resolution, and this works on the fly by running the command in a terminal, but the change is not persistent, it is lost after reboot and it goes back to 4K. Trying various solutions on the net yielded no luck. Any idea how I can set this permanently?

                      Also, I see if you quit ES, you can right click and open a terminal. Some emulators have a front end configuration utility, like Dolphin. Using your instructions, is there a way to get to these applications easily to configure the settings? Probably if i'm asking these kind of questions, I should probably stick to a desktop edition OS, but it would be good to understand the possibilities if Ubuntu Server is used, and if there are any issues you've come across.

                      My ultimate goal is to have this little machine plugged into the TV and almost used as a console/appliance which has a silent boot, no terminal flashing about etc, which I can switch on and off, without a load of OS related BS running in the background, yet still being able to access applications on the machine to configure certain emus initially, etc. It might be easier to just use something like Lubuntu or Xubuntu Core, but i'm just exploring possiblities if I get round to a reinstall (only want to do it once and this time - finish it!).

                      Cheers and thanks again for creating this guide.

                      1 Reply Last reply Reply Quote 0
                      • P
                        praetorian55
                        last edited by

                        Movisman - I ran into issues using a 4k TV as well - the xrandr command is the key, putting it in the ~/.config/openbox/autostart did the trick for me

                        To be specific, I added the following line prior to calling emulationstation:

                        xrandr --output HDMI-1 --mode 1920x1080 &

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          movisman @praetorian55
                          last edited by movisman

                          @praetorian55

                          Hey there, thanks for replying.

                          The xrandr command I was using in the terminal was identical to yours, and that works fine when changing on the fly. Sounds like we have a similar set up?

                          The bit I was missing though was where to put this command to call it before ES, I had tried a few places suggested but not the openbox/autostart! I should have worked that out. When I get home from work I will give this a shot.

                          I assume the machine boots with the splash screen in 4k, and just before ES launches it changes to 1080p?

                          Can I just ask if you don't mind, in addition to the above step by step guide, have you had to make many more changes to get a seamless Ubuntu Server experience? Are you able to get to the GUI up for things like Dolphin to make changes? I need to test myself but I am assuming I can call it from a terminal as usual and it'll pop up, seeing as openbox is running underneath ES. Will need to keep the mouse pointer turned on though for a bit! On my other system I made a lot of changes to Dolphin so things like hotkey+start quit the emulator, vsync, stuff like that. The other thing I wouldn't mind setting up if some sort of remote access teamviewer style, for things which I might want to play around with which cannot be done over SSH.

                          Thanks!

                          P 1 Reply Last reply Reply Quote 0
                          • P
                            praetorian55 @movisman
                            last edited by

                            @movisman
                            I'm currently not using the splashscreen (still working on finding one I like), but it does start up in 4k and then switches as soon as Openbox loads/before Emulationstation.

                            I've been researching ways to edit /etc/config/grub to force a particular resolution on the server in console mode (the console mode/command line lettering is way too small in 4K) so it might be possible to force the resolution before even calling openbox.

                            With the steps I put together earlier in the year plus johnodon's awesome guide and tweaks it's as seamless as I think it's going to get - I have an UP Core PC board inside of a sega genesis USB hub build and it boots right into emulationstation and is for all intents and purposes a dedicated retro-gaming system with no visible linux/PC extras

                            As far as exiting emulationstation and calling up other things, it should be possible. You could edit the openbox menu.xml config file to have right-click options or hotkeys to launch those tools, but it would still require a mouse or keyboard - Of course there may be other options too, but that's what I'm aware of that should work

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              movisman @praetorian55
                              last edited by movisman

                              @praetorian55

                              Hi,

                              Yeah, actually I stumbled across changing the resolution for the console via grub when looking at the xrandr stuff, but haven't played with it just yet.

                              I just found your guide on the other thread actually, which is excellent. Thanks for putting that together also. Is there anything from johnodon's guide above which you have done differently on yours? From what I can see, it looks like the guide above is a merge of everything, all combined into one pretty much.

                              Regarding calling up other things, it looks like I can configure Openbox to configure keyboard shortcuts via rc.xml, so potentially I could set up alt+f1 for terminal, alt+f2 to relaunch ES, alt+f3 to reboot, etc. Would need to have a play around. Thanks for the tip with the menu.xml config, that is mega useful and if I can remove the non-working items off it, add in shortcuts to Dolphin, Terminal, etc, that would be cool. I can probably even call gnome-terminal with a different profile, so if loaded from the menu, it comes up with regular decorations, scrollbar, etc.

                              To avoid having to use a mouse and keyboard to set those bits up and when playing around inside ES, I am considering trying to install Teamviewer so I can access the machine remotely without hogging the TV, as my spare monitor is kind of tied up at the moment. Hoping I can get that working to make configuration easier while the TV might be in use. Also I can keep the cursor switched off in X as Teamviewer will use the one local to the machine i'm accessing from.

                              One other question, do you have your machine set up to sleep or switch off automatically after a specific time, in case you forget to switch it off/shutdown? Or does it run 24/7? I am considering looking up how to set up a cron job or similar to shut the machine down at 2am every night if it's on, because ES doesn't seem to obey any power management settings you might have set (at least, it doesn't on any desktop Ubuntu flavour I tried).

                              Cheers!

                              1 Reply Last reply Reply Quote 0
                              • P
                                praetorian55
                                last edited by

                                It looks like your on the right path to getting those shortcuts/apps set for how you need them, great option with TeamViewer as well. One other option for the cursor is to use the "interception tools" hideaway plugin - I was researching it when I was working with Sway/Wayland instead of Openbox/X - It basically allows you to "hide" the cursor after a period, but still lets you use it when you move the mouse

                                I haven't investigated a power down/sleep option, but it does seem like something I should! I'm currently powering it up when I need it, down when I'm done

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  movisman @praetorian55
                                  last edited by

                                  @praetorian55

                                  Only had about 20 mins after work before heading out again, but tried adding the xrandr command into the openbox autostart and it worked perfectly. Thanks for that! You saved me from having to look around again for a solution!

                                  Interesting idea about the cursor, I think I might have messed with this on a desktop OS when I had a first attempt, but it was an app called unclutter which I think is designed for X, I just looked it up to try to remember it's name. I can't remember though whether the mouse pointer still flicked up when a rom was loading, even with the app running in the background. Would need to test it out. Are you using X now or did you stick to Wayland?

                                  I tried the TeamViewer install but need to have a play with it as I ran into login issues on the host post-install, and then of course, ran out of time. Will have a look later though.

                                  Yes with the power down thing, I posted another thread about why ES doesn't obey OS power management settings ages back, but it didn't pick up many replies. The only other solution I thought of is the Cron job type approach for a specified time of night, to switch off or put in suspend, just in case you leave the machine on by accident.

                                  1 Reply Last reply Reply Quote 0
                                  • P
                                    praetorian55
                                    last edited by

                                    I've actually got it working with either Sway WM or with Openbox now (can switch by editing the .bash_profile file). Performance and CPU usage is about equal between the two so I'll probably just end up with whichever one is more stable.

                                    The Cron job is a great idea - IF you're not playing at that time of night! Might want to look at creating a script that would identify if retroarch itself is an active process before executing the shutdown

                                    M 1 Reply Last reply Reply Quote 0
                                    • M
                                      movisman @praetorian55
                                      last edited by movisman

                                      @praetorian55 @johnodon

                                      Yes great idea! I will probably have a look into this, there should be a way of only performing the shutdown if certain processes are not in use.

                                      Here are a couple of other tips I have discovered, in case you or anyone else finds them useful:


                                      Remove border which appears on some emulators (dolphin in my case):

                                      Using Dolphin, even though I changed loads of the settings in the GUI, I was always getting a very small grey border (visible at the top of the screen) when using this emu. Doesn't happen on my MATE installation. If you use it and get the same, open your rc.xml and change the "keepBorder" value from yes to no:

                                      <keepBorder>no</keepBorder>

                                      This will take off borders for new windows and solves the problem. This is outside of the tips above to hide the terminal etc.

                                      Btw, I edited the ~/.config/openbox/rc.xml file which is created as per one of the scripts in the first post (it is copied from the default and acts as the config for the local user, rather than editing the global one).


                                      Set up temporary VNC SSH session for working on the box directly

                                      While I still haven't got Teamviewer running correctly, I found a really great script which starts a vnc server on the remote computer via port 5900, and then tunnels back that port over SSH. You don't have to open up any ports (as long as you can already SSH).

                                      https://askubuntu.com/questions/87443/how-to-access-a-machine-through-vnc-using-ssh/87475#87475
                                      Download the script which "Piskvor" made (linked in the comments)

                                      Install the ssvnc viewer:
                                      sudo apt install ssvnc

                                      Install x11vnc on the server:
                                      sudo apt install x11vnc

                                      Run the script:
                                      sudo ./vncssh.sh username@insertcomputerhere

                                      Voila! When you close the window, it should just quit and stop the VNC server on the remote side, which means it isn't always running. It worked first time for me anyway, also it worked even the HDMI was on another input. It just enables me to mess around with a few settings that I cannot easily achieve over SSH and not interrupt the TV if it is in use. Is a little sluggish sometimes, but it works for its purpose.


                                      Remove ES splash screen for even more slickness (personal pref of course, as you may want to keep it):

                                      I also added --no-splash at the end of the openbox/startup script which calls ES. Just a preference, but it means it goes from plymouth splash screen straight to the systems list which I find is slicker than seeing the ES loading screen for less than a second.


                                      Other sound related tips, changing the default device for sound:

                                      If, like me you have a PC with an internal sound card and speaker, but also an HDMI/Displayport output which can carry sound, for some reason on Ubuntu Server it was insistent on using the internal sound card+speaker vs my displayport output which was active. I found two solutions to this in case it helps anyone:

                                      Either:
                                      A) Disable the internal audio card in the BIOS, this will then automatically route sound via HDMI - as it's the only active device

                                      OR

                                      B) Open a terminal on the remote computer, either directly or via SSH and run the command:

                                      pactl list short sinks

                                      make a note of the name of the HDMI device eg:
                                      alsa_output.pci-0000_00_03.0.hdmi-stereo

                                      then type:
                                      pactl set-default-sink 'alsa_output.pci-0000_00_03.0.hdmi-stereo'

                                      (change to suit the output of the first command of course)

                                      Restart ES and sound will now be output from this device. Which means in my case, sound now travels over HDMI rather than the internal sound card and speaker, even though the internal sound card is still enabled.


                                      I will add more tips as I come up with them to help others. I am also documenting all the changes I make, and at the end, if I make it that far, I can share some more of the tips here, or I may create a new thread with all the information, depending on how in depth it goes. I have a document already for all the Dolphin changes I made to suit the x86 environment.

                                      Cheers

                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        movisman
                                        last edited by movisman

                                        Separate one about controllers, so far just set this up quickly with a Wired Xbox 360 pad. Setting the controller up in ES out of the box (on first launch) was a pain, because pressing the buttons for the triggers would always cause the next item to skip, or something to go weird. I read some github issues on it from ages ago, and to solve that, just make sure you install the xpad driver from RetroPie-Setup in the driver section, reboot, and then reconfigure the controller again. You will notice when the triggers are pressed they are assigned as buttons instead of axis+5 or whatever. They should assign nicely though.

                                        The xpad driver as far as I know is installed as part of the standard Pi image:
                                        https://github.com/RetroPie/RetroPie-Setup/blob/3a35c1b25ce051507981fd310bbd1a1573032f26/scriptmodules/admin/image.sh

                                        So I guess if you are using an xbox controller it's useful to have it installed on x86 too.

                                        Cheers

                                        1 Reply Last reply Reply Quote 0
                                        • P
                                          praetorian55
                                          last edited by

                                          Good catch with the xpad driver - I'm not using those, but it definitely helps with the complete documentation process!

                                          1 Reply Last reply Reply Quote 0
                                          • danielmewhouseD
                                            danielmewhouse
                                            last edited by

                                            I did something like this sometime ago, but using Ubuntu Minimal ISO. Installed XFCE as desktop to make things easier to manage if something goes wrong, hided the taskbar and autologin/autolaunch ES. Was a great thing, until my laptop just died... Was an old laptop suffering with ages of use, the keyboard and touchpad don't working, it finally gave up and don't start anymore... R.I.P. my little RetroPie Laptop...

                                            But I have a question: thats a way to make this Ubuntu RetroPie a portable thumbdrive to just put on the pocket and play on any compatible PC?

                                            It's no use!!! Take this!!!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                                            Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.