Archive

Archive for June, 2016

RetroPie – turning your Raspberry Pi into a retro-gaming console!

June 12th, 2016 No comments

Recently I decided to pick up a new Raspberry Pi 3 B from BuyaPi.ca. I wasn’t exactly sure what I was going to do with it but I figured with all of the neat little projects going on for the device I would find something. After doing some searching I stumbled upon a few candidate projects before finally settling on RetroPie as my first shot at playing around with the Raspberry Pi.

RetroPie works great on other Raspberry Pi models as well but performance is much better on the 3

RetroPie works great on other Raspberry Pi models as well but performance is much better on the 3

RetroPie, as their site says, “allows you to turn your Raspberry Pi into a retro-gaming machine.” It does this by linking together multiple Raspberry Pi projects, including Raspbian, EmulationStation, RetroArch and more, into a really nice interface that essentially just works out of the box.

Setup

The setup couldn’t be easier. Simply follow the instructions to download a ready made image for your SD Card, put the RetroPie image on your SD Card, plug in a controller (I used a wired Xbox 360 controller), power it on and follow the setup instructions.

When it gets to the controller configuration settings screen be careful what you select. If you follow the on-screen button pushes by default (i.e. button “A” for “A” and button “B” for “B”, etc.) you will end up with something that matches the name of the button but not the placement you’re expecting. This is because RetroPie/RetroArch uses the SNES Controller layout as its default.

The 'default' SNES controller layout

The ‘default’ SNES controller layout

So if you simply followed the on-screen wizard and pushed the Xbox 360 controller’s “A” button instead of it’s “B” button (which is the location of the “A” button on the SNES) you’ll experience all sorts of weird behaviour in the various emulators. So be sure to actually follow the setup guide for your particular controller (see below for example).

Notice how you actually have to push "B" when it asks for "A" and so on during the initial controller configuration

Notice how you actually have to push “B” when it asks for “A” and so on during the initial controller configuration

The one confusing downside to this work around is that all of the menus in RetroPie itself still ask you to push “A” or “B” but they really mean what you mapped that to, so it’s kind of backwards until you actually get into a game. That said it’s a minor thing and one that I’m sure I could fix, if I cared enough to do so, by setting a custom alternative controller layout for the menu only.

Games

RetroPie supports a crazy number of emulators. No seriously it’s a bit ridiculous. Look at this list (as of the time of writing):

RetroPie automatically detects if you have games for the systems. So if you had a SNES game for example you would get a SNES system to choose from on the main menu.

RetroPie automatically detects if you have games for the systems. So if you had a SNES game you would get a SNES system to choose from on the main menu.

Additionally you get PC emulators like DOSBox and the Apple II and there are a number of custom ports of PC games including DOOM, Duke Nukem 3D, Minecraft Pi Edition, OpenTTD and more!

Now obviously not all of the above emulators work flawlessly. Some are still labeled experimental and some systems even offer multiple emulators so you can customize it to the game you are trying to play – just in case one emulator happens to offer better compatibility than another. That said for the majority of the emulators I tried, especially for the older systems, things work great.

The RetroPie SD Card contains various folders that you simply copy the ROM or various bits of game data to. Once the files are there you just restart EmulationStation and it automatically discovers the new games.

Remote Storage

One thing I had to try was to see if I could use a remote share to play the games on the RetroPie off of my NAS instead. This would save quite a bit of space on the SD Card and as long as the transfer speeds between the Raspberry Pi and the NAS were decent enough should actually work.

I figured using a Windows share from the NAS was the easiest (this would also let you share games from basically any computer on your network). Here are the steps to set it up:

SSH into the Raspberry Pi

The default login for RetroPie is username pi and password raspberry. You can usually find it on the network by simply connecting to the device name retropie.

Add remote mounts to fstab

The most simple way to set up the remote mounts is to use fstab. This will ensure that the system gets the share as soon as it boots up. However you might run into problems booting the RaspberryPi if it can’t find the share on the network… so that is something to keep in mind.

Open up /etc/fstab (I used nano):

sudo nano /etc/fstab

Then add a line that looks like this to the end of the file

//{the location of the share}    /home/pi/RetroPie/roms/{the location to mount it}    cifs    guest,uid=1000,iocharset=utf8    0    0

replacing the pieces in { brackets } with where you actually want things to mount. So for example let’s say the NAS is at IP address 192.168.1.50 and you wanted to mount a share on the NAS called SNES that contains SNES ROMs for RetroPie. First I would recommend creating a new sub-directory in the standard SNES ROMs location so that you can have both ROMs on the SD Card and remote ones:

mkdir /home/pi/RetroPie/roms/snes/NASGames

Then you would add something like this to your fstab file:

//192.168.1.50/SNES    /home/pi/RetroPie/roms/snes/NASGames    cifs    guest,uid=1000,iocharset=utf8    0    0

The next time you boot up your Raspberry Pi it should successfully add that remote share and show you any SNES ROMs that are on the NAS in RetroPie!

After testing a few remote games this way I can say that it does indeed work well (via WiFi no less!). This is especially true for the older systems where game size is only a few KiB or MiBs. When you start to get into larger PC or disc based games were the sizes are in the hundreds of MiB it still works decently well but the first time you access something you might notice a bit of a delay. Thankfully Linux does a decent job of caching the file data after it’s read it once and so subsequent reads are much faster. That said if you had a good wired connection I have no doubt that things would work even more smoothly.

Portable Console? Best Console? A bit of both.

The RetroPie project is really neat, not only for its feature set but also because as a games console it’s one of the smallest and has the potential to have one of the largest games library ever!

My setup is pretty plain but some people have done awesome things with theirs!

My setup is pretty plain but some people have done awesome things with theirs like turning it into a full arcade cabinet!

If you like to play classic games then I would seriously recommend giving RetroPie a try.

This post originally appeared on my website here.

KWLUG: Raspberry Pi Projects (2016-06)

June 11th, 2016 No comments

This is a podcast presentation from the Kitchener Waterloo Linux Users Group on the topic of Raspberry Pi Projects published on June 7th 2016. You can find the original Kitchener Waterloo Linux Users Group post here.

Read more…

KWLUG: Sound in Linux, Part 2 (2016-05)

June 11th, 2016 No comments

This is a podcast presentation from the Kitchener Waterloo Linux Users Group on the topic of Sound in Linux, Part 2 published on May 3rd 2016. You can find the original Kitchener Waterloo Linux Users Group post here.

Read more…

Surviving systemd – a quick look at a few alternatives…

June 5th, 2016 2 comments

Regardless of why (and there a number of valid reasons), you might like to avoid using such a large project without so much as a specification or standard behind it.  Fortunately there are still a number of options out there if you don’t want a systemdOS clone.  I’ll present three options ranging from could do better to plausible and then finally the best in class.

Devuan

Sadly I have to say Devuan is a real disappointment, its taken a very long time to get to beta let alone release and while it provides you with a familiar Debian like environment (before Debian morphed into yet another systemdOS clone) I have to say I have very serious reservation about the security of Devuan and this is not down to any particular defaults, but solely to lack of regular package updates.  It appears as if they have taken Debian packages and rooted them firmly in cement.  Opting for a fork of udev instead of a more actively pursued eudev (from Gentoo) I have to wonder how much day to day work is being done on vdev, although it does seems there is a package for eudev this isn’t installed by default.

All in all I’m really not sure about the viability of Devuan they seem to have taken a long time to provide a lot of old packages, with very sparse updates, the back ports repo looks empty and I’m unsure what their policy is regarding timely updates to packages for security updates (recently published zero days etc).  You might think I’m being harsh but where more than a week can go by without an update it doesn’t inspire confidence.

Gentoo

The only real criticisms you can level at Gentoo is the constant compiling and its quite technical nature, you’re not going to leave this installed on some none technical relatives computer unless you visit them regularly and probably if they also cook for you, you’re looking at extended building of packages as often as every few days – while you can lash something up to compile in the wee small hours – not everyone leaves their computer on 24/7 and it certainly wouldn’t be a hands off affair… That said hardware is faster today then it ever was and AMD have some 32+ core chips on the horizon that look promising so…. who knows….

Of course the real place that Gentoo shines is in its flexibility, you can configure most packages to work with (or without need for) many different dependencies and this level of flexibility is unprecedented maybe only approached by an adventurous off piste riffle through the LFS

If you are confident in your technical ability and don’t mind you cpu grinding away while you are doing other things, Gentoo should definitely not be discarded out of hand.

Void Linux

For a while this OS did struggle with my favourite waste of time and money (Steam) but they have by now got a firm grasp on avoiding the less than ideal implementation of SSL that many others seem to lean towards.  This isn’t the only indication they aren’t scared of doing something different for the sake of improving things (not just to be new!), while I’m not convinced of any desperate need to improve sysv – runit plays its role just fine, for a little bit of learning its a low overhead low pain replacement.  There really isn’t any need to add a whole extra layer to the userland just to “solve” a none problem that’s not intrinsically that complex.

This rolling release is maintained brilliantly and there are updates usually on a daily basis, the package manager (xbps) while it take a little learning is fast and has yet to choke on me in some of the spectacular ways I’ve seen RPM do in my past history.  I’ve left a number of none technical people with Void on their machines and while the xbps gui (OctoXbps) needs some explaining (it could be a little more intuitive) I’ve basically had a hands off experience with their machines. Xbps will even allow some actions without root access, for example you can synchronise the repo in memory (the sync is volatile), this allows you to check for an update without root credentials – coupled with zenity its trivial to whip up a GUI script to notify you of updates without need to type a password after log in ! There are a lot of options and its a powerful suite of tools.  Another nice touch is the vkpurge tool which lets you easily get rid of old kernels properly – something often not so well implemented on some systems.

 

So there really is life after systemd and despite people wanting to dictate exactly how your machine should be set up, you still can have a system that feels distinct, flexible and easy to use… Maybe Linux will survive the corporate onslaught….

Introducing Chris C, our occasional guest writer.
This article was originally published at his personal website here.

Categories: Chris C, Linux Tags:

Fix: trying to overwrite ‘/usr/share/accounts/services/google-im.service’ installing kubuntu-desktop

June 5th, 2016 No comments

I have an Ubuntu 16.04 desktop installation with Unity and wanted to try KDE, so I ran sudo apt-get install kubuntu-desktop. apt failed with the following message:

trying to overwrite '/usr/share/accounts/services/google-im.service', which is also in package account-plugin-google [...]

The original issue at Ask Ubuntu has several suggestions but none of them worked – any apt commands returned the same requirement to run apt-get -f install, which in turn gave the original “trying to overwrite” error message. synaptic also wasn’t installed so I couldn’t use it (or install it, as all other apt installation commands failed.)

I was able to get the dpkg database out of its bad state and continue to install kubuntu-desktop by running the following:

dpkg -P account-plugin-google unity-scope-gdrive
apt-get -f install

(Link to original Kubuntu bug for posterity: https://bugs.launchpad.net/kubuntu-ppa/+bug/1451728)

This post was cross-posted to my personal website.

Categories: God Damnit Linux, Jake B, KDE, Kubuntu, Ubuntu Tags: