Retropie Installation on Ubuntu Server x64 18.04.1
-
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!
-
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.
-
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 &
-
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!
-
@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
-
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!
-
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
-
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.
-
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
-
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 ssvncInstall x11vnc on the server:
sudo apt install x11vncRun the script:
sudo ./vncssh.sh username@insertcomputerhereVoila! 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 deviceOR
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-stereothen 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
-
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.shSo I guess if you are using an xbox controller it's useful to have it installed on x86 too.
Cheers
-
Good catch with the xpad driver - I'm not using those, but it definitely helps with the complete documentation process!
-
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?
-
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
-
Nice work movisman!!!
-
@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.)
-
I really like what you did here but can anyone help me to install nvidia drivers and set up my display correct? I want to connect my laptop with emulationstation to my tv.
-
Thanks for this great guide.
Everything runs great but on my hardware i had issues with the lr-reicast core.
I have an H61 motherboard with Intel HD graphics integrated and this core gave me freeze problems right at the start.
Seems all was related to the i915 drivers that Ubuntu installs so i used this useful guide to install RetroPie on a Debian 9 Stretch minimal install distribution and my issues was solved. Maybe Debian install a different Intel drivers that gives me no issues.
Maybe this issue was caused only for my specific hardware but i wanted to share my experience.
-
@movisman said in Retropie Installation on Ubuntu Server x64 18.04.1:
Set up temporary VNC SSH session for working on the box directly
has someone the script that was posted by Piskvor. The file is not available anymore.
-
Awesome guide!
I'm running Ubuntu Server 18.04.2 on a NUC7i5BNK with a DualShock 4 controller.
All is running through HDMI to my 46 inch TV (1080p).Only problem I have is with the audio.
When loading a game, when the game actually begins I hear a (pretty loud) POP sound.
Audio is ok afterwards, it's just an annoying POP when the game loads.Also I'm seeing an error message:
lvl0: VolumeControl::init() - failed to find mixer elements!
Any ideas about this issue?
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.