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 65.0k 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.
    • 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
                                      • M
                                        movisman
                                        last edited by movisman

                                        Not too sure on the portable thumbdrive idea i'm afraid, I personally think a few issues would crop up when attempting this, but other users might be better placed to advise.

                                        A couple of other OS tips to add, I am still documenting the setup and hopefully at some point in the future I will be able to share something which is combined with the above documentation (just have a lack of time!)


                                        Disable screen blanking / energy saving features - Tested over HDMI on my Samsung TV.
                                        This will prevent the TV from 'screen blanking' after 10 minutes of inactivity (screensaver and auto standby). This only happens outside of ES - so for example if you are installing an emulator from source in RetroPie-Setup and it takes longer than 10 minutes, the screen will go off and you have to wake with a keyboard or mouse, it won't wake with the controller which is a pain. Also, if you were in RetroPie-Setup messing around for more than 10 minutes with no keyboard interaction, it will blank out.

                                        To solve, open a terminal (locally on the machine, NOT over SSH as it won't work) and type:

                                        xset q

                                        This will display the current settings, you will see screensaver and DPMS features are all on and set to 600 (10 mins).

                                        To disable and remember for all subsequent reboots, type:

                                        sudo nano ~/.xsession

                                        Add xset s off && xset -dpms to the file - I put it as the first command before launching the Openbox session. Make sure both xset and openbox commands are separated by a line break.

                                        Reboot and done

                                        This will turn the screensaver off, and it will also disable the Energy Star features of the monitor/TV on every boot before Openbox is launched.


                                        Disable blinking cursor on boot (for me this occurs after grub but before the splashscreen, and momentarily before ES starts):

                                        Open a terminal and type:

                                        sudo nano /etc/default/grub

                                        Where it says GRUB_CMDLINE_LINUX="quiet splash" (if you followed the initial install instructions) change it to:

                                        GRUB_CMDLINE_LINUX="quiet splash vt.global_cursor_default=0"

                                        Save, and then run the following in the terminal:

                                        sudo update-grub

                                        Reboot and the cursor will be gone! Combined with the excellent initial instructions above, I now have a totally suppressed/silent boot with the exception of the plymouth splash screen.


                                        Footnote: If you get any TPM related errors flash up upon initial boot and don't use the feature, you can disable it in the BIOS to silence these. This is what I had to do on my machine. I also had to enable keyboardless operation in the BIOS to stop the machine halting on boot when no keyboard was plugged in.

                                        Cheers

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

                                          Nice work movisman!!!

                                          1 Reply Last reply Reply Quote 0
                                          • ClydeC
                                            Clyde @movisman
                                            last edited by

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

                                            Footnote: If you get any TPM related errors flash up upon initial boot and don't use the feature, you can disable it in the BIOS to silence these. This is what I had to do on my machine. I also had to enable keyboardless operation in the BIOS to stop the machine halting on boot when no keyboard was plugged in.

                                            Oh yes, the infamous "no keyboard present, press F1 to continue" error. 😊

                                            (The exact wording varies by manufacturer and firmware.)

                                            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.