Category: Linux

Retro Gaming Emulation Made Easy and Portable with Lakka

In the past few months, I’ve been thinking about setting up a place in my home where I could play video games from my youth. Having no time and money to invest in buying old consoles, emulation came as the best solution for me. Great emulators exist for the systems I mostly care about: NES, GameBoy, SNES, Sega Genesis and Nintendo 64. I wanted the whole installation process to be as painless as possible, I wanted good emulation performance, and most of all, I wanted the system to be very easy to use. As a bonus came portability, and I’ll talk about it in a few lines.

RetroPie and Lakka: emulation kings

While searching for an emulation Linux distribution, I found RetroPie, a nice Raspbian-based distro built to turn your RaspberryPi into a retro gaming emulation machine. I already own several RaspberryPi, and didn’t feel to invest in yet another one. Then I thought: “Do I want to dedicate one of my computers to this task?”. The answer was “no”. There came Lakka, a distribution that promises to turn almost any computer into an old school gaming machine. Nice! More than that: you don’t have to install it. You can leave it on a USB flash drive, and carry it with your controllers to play wherever you go. That’s even better!

A USB thumb drive and controllers is all you’ll need

Logitech Gamepad F310 - Great for emulation

Logitech Gamepad F310

One of my goals in all this was to invest as little as possible. So no new box of any kind as any computer already in the house will do,  and no new expensive hardware like external hard drives. One thing though, my old USB controllers had only the four basic buttons, no start or select buttons, and their d-pads were really not the best. After reading people’s comments on Reddit and Amazon, I decided to go with two refurbished  Logitech Gamepad F310 that arrived with minor scratches, but I really don’t care at all as they work like new. I was told and also read that these two other models will do a fantastic job (and in fact, Lakka supports a very long list of controllers natively):

Kingston HyperX Savage - Perfect for portable emulation

Kingston HyperX Savage – Perfect for portable emulation

Next, you’ll need a USB flash drive on which to copy an image of Lakka. Almost any USB drive will do the trick, at least for older console emulators like NES and SNES. But if you’re looking for maximum performance while going with portable option like I did, a USB 3.0 drive, optimized for random 4KB read/write will give you the best results. Here’s an excellent choice based on several online benchmarks: the Kingston HyperX Savage 64GB.

Download Lakka

Now you’ll need to copy an image of Lakka to the USB flash drive. Simply visit Lakka’s website and follow their easy instructions.

Copy Lakka on the USB thumb drive

For this job, whether you are on Windows, Linux or MacOS, I truly recommend using Etcher. This visual tool is the easiest to use, and you don’t even have to install it. Two easy steps and it copies any system image on a USB thumb drive or SD card.

Copy your roms

Your newly created Lakka system is ready, but it’s missing ROMs. I’ll suppose you already have some, and whether they are legal or not is none of my business. Connect the USB drive to the computer where your ROMs reside. You’ll see two partitions on the drive. The first one holds the operating system. The second is much more Lakka related, and has a “roms” folder at its root. Just copy all your ROM files in there, organized or not. Follow Lakka’s documentation to make the system scan for new ROMs. Lakka will automatically show gaming console menus for the ROMs it finds, hence, no need to install any emulator, they are already good to go!

Boot from the USB thumb drive and start playing

Take your Lakka thumb drive and connect it to the computer you want to play on. Boot the computer, and access its boot menu or BIOS/UEFI by pressing the F2 or del key when a message on the screen says to do so. If you can’t find how to do it, you’ll most likely find the answer with simple googling. From your computer’s boot menu, find and select your USB thumb drive and boot from it. When Lakka’s screen appears, decide whether you simply want to launch Lakka (portable mode) or install it on the computer. Connect your gaming controllers, if not done already. Then a confirmation message will appear at the bottom of the screen with your controller’s model name in it.

There you go! If you have any question at this point, I suggest you read Lakka’s documentation but everything should run pretty smoothly.

 

Ubuntu: Activate multi-touch on Elantech touchpad

Acer Aspire S7-392-9890

Acer Aspire S7-392-9890 13.3-Inch Touchscreen Ultrabook (Intel Core i7-4500U Processor, 8GB DDR3L, 256GB SSD)

If like me you recently bought a new computer with an Elantech touchpad, and installed Ubuntu on it, chances are your touchpad lacks the multitouch features, and therefore, you can’t scroll with it. This is extremely annoying to most of us. Tonight, I went back to Ubuntu bug page to realize someone has submitted a fix, and it seems to be working for many users. Just tried it on my Acer Aspire S7, and it worked perfectly for me too. So let me share it with you…

Make sure you have an Elantech touchpad

First, if you aren’t sure your computer was built with an Elantech touchpad, open a terminal, and type the following:

cat /proc/bus/input/devices

You should find a block containing a line looking like this one, which confirms you are on an Elantech touchpad:

N: Name="ETPS/2 Elantech Touchpad"

Fix the bug

Download this archive (from Ubuntu’s bug reporting page).

Open a terminal, and follow these steps (after step 4, you will have no mouse at all):

cd ~/Downloads
sudo dkms ldtarball psmouse-elantech-x551c.tar.gz
sudo dkms install -m psmouse -v elantech-x551c
sudo rmmod psmouse
sudo modprobe psmouse

Enjoy multitouch!

Source: Original bug discussion on Launchpad

Installing Apache Flex SDK under Linux

apache-flex-small

Recently, the Apache Flex team released the latest version of Flex SDK: 4.10. This release came with a Linux installer for the first time since Adobe Flex Builder 3 alpha, several years ago. As a member of their user mailing list, I take part in certain discussions, often on the Linux support subject. It seems that users have difficulty installing the Flex SDK, even with the .deb (Debian software package) available on Apache Flex’s website. Taken from those discussions, here’s the easy way to install the Apache Flex SDK under Linux.

AIR dependency

Flex SDK is best installed using the SDK Installer, which requires Adobe AIR 2.6. If you didn’t already know, installing Adobe AIR on Linux isn’t that easy, as it is not supported by Adobe anymore. The easiest way I have found is this one:

  1. If you’re using a 64-bit Linux system, install the ia32-libs (AIR is 32-bit only):
    sudo apt-get install ia32-libs
  2. Go here (http://update.devolo.com/linux/apt/pool/main/a/adobeair/) and download the AIR installer for 64-bit systems (amd64) or 32-bit (i386)
  3. Install the package you just downloaded:
    sudo dpkg -i adobeair_2.6.0.19170_amd64.deb

You’re done with the installation of Adobe AIR.

Installing the SDK Installer

  1. Download the installer (.deb) here: http://flex.apache.org/installer.html
  2. Once you have downloaded the .deb, install it using dpkg (this command will force the installation, even if the AIR dependency is not resolved):
    sudo dpkg -i --force-depends apache-flex-sdk-installer-2.6.0-bin.deb
  3. Once the installer has been installed (you might encounter several warnings and errors, just ignored them), open a terminal and go the installation folder:
    cd "/opt/Apache Flex/Apache Flex SDK Installer/bin"
  4. Run the installer:
    ./Apache Flex SDK Installer
  5. Now you just need to decide where you want the SDK to be installed, and you’re good. Everything should go smoothly.

Uninstalling the SDK Installer

I really suggest that you uninstall the SDK Installer (but not the SDK, of course!) when you’re done, because it will cause you all sorts of errors with apt-get in the future. Errors that look like this:

 

org.apache.flex.installapacheflex:i386 : PreDepends: adobeair:i386 (>= 1:2.6.0.0) but it is not installable
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

This can be done very easily with the following command:

sudo apt-get -f install

As always, feel free to ask any question you might have, I’ll do my best to answer them. Have fun developing with Apache Flex and Linux!

Advanced Linux Mouse Configuration Made Easy

logitech-mouseThose of you using a mouse with multiple buttons, such as the one shown here, probably already know how painful it can be to make it work just as you’d like on Linux. I have myself been postponing the configuration of my Evoluent VerticalMouse for years. I recently gave myself a little kick in the butt, and came up with the following solution.

Identify your mouse

First, find the exact name of your, and copy it somewhere for later use:

xinput list

Mine is: “Evoluent VerticalMouse 4”

Learn your mouse’s buttons’ positions

Install xev if not already installed:

sudo apt-get install xev

Open a terminal, and run xev from the command line. A small white window will open. Put your mouse in that window, and try clicking one of your mouse’s buttons. You will get a lot of output for every click. You need to find a block that looks like this, the most important part being near the end (button 3 in this case):

ButtonPress event, serial 36, synthetic NO, window 0x3c00001,
 root 0x269, subw 0x3c00002, time 14058208, (44,38), root:(1725,240),
 state 0x10, button 3, same_screen YES

Now you can easily write down the number associated to every button of your mouse.

Choose the right order for your buttons

We will use xinput to change the button mapping. Starting with the button map you have just written down, you can easily swap buttons to match your preferences. For example, here’s what I had at first (my mouse has three buttons like in the old times, and two thumb buttons) :

  1. Left click
  2. Middle click (paste selected text in Linux)
  3. Right click
  4. Wheel scroll up
  5. Wheel scroll down
  6. ?
  7. ?
  8. Upper thumb click (back)
  9. Wheel click (forward)
  10. Lower thumb click

Here’s what I wanted :

  1. Left click (1)
  2. Right click (3)
  3. Forward (9)
  4. Wheel scroll up (4)
  5. Wheel scroll down (5)
  6. ?
  7. ?
  8. Back (8)
  9. Paste selected text (2)
  10. Lower thumb click (unused… 10)

In my case, the xinput command looks like this:

xinput -set-button-map "Evoluent VerticalMouse 4" 1 3 9 4 5 6 7 8 2 10

You can run this command in the terminal to test if your configuration works well. You can always come back to default with :

xinput -set-button-map "Evoluent VerticalMouse 4" 1 2 3 4 5 6 7 8 9 10

Make your command run at startup

We’re almost done… Now create a file in your home directory with a name something like .mouse_config, and paste your xinput command in it. Open the automatic startup program that comes with your OS. Its name in Ubuntu 12.04 is Startup Applications. Add a new entry that points to your script, add a name and a description if you want to, and that’s it! Enjoy a perfectly working mouse!

Installing a Transmission Daemon on Ubuntu

TransmissionLet’s say you have a computer (could be your home file server) on which you want to install a torrent client as daemon (command line), and manage it through a Web interface. Would be great, right? It’s pretty easy to achieve but there are a couple of details you need to pay attention to.

Note: This tutorial was written for Ubuntu Server 12.04 but it doesn’t mean it can’t be useful for other versions or distros.

Required packages

It’s pretty simple as only a couple of packages need to be installed, and they are already in the repositories. For readability, I’m putting each of them on a different line, but they should all go on the same.

sudo apt-get install transmission-cli
                     transmission-common
                     transmission-daemon

Create folders for Transmission

Even if you could always use the default folders, I like keeping track of everything, the way I want it. So here’s what I’ve done. I think the folder names talk by themselves.

sudo mkdir ~/transmission
sudo mkdir ~/transmission/complete
sudo mkdir ~/transmission/downloading
sudo mkdir ~/transmission/torrents

Permissions

This step isn’t crucial, but it will save you lots of “sudo” commands in the future. By default, Transmission always gives downloaded files permissions to the transmission group (debian-transmission to be more precise). This is why adding your user to this group could be a good idea. Make sure your replace your_user in the following commands:

sudo usermod -a -G debian-transmission your_user

Now you need to set the correct ownership and permissions:

sudo chown -R your_user:debian-transmission ~/transmission
sudo chmod -R 755 ~/transmission

A good configuration file

Now this part is very important. The configuration file must be filled correctly or else you might not be able to access Transmission’s web interface. Many other things could also “go wrong”. But don’t worry, you can edit this file anytime in the future to fix any problem you might encounter.

First thing to do is to stop the daemon. If you don’t, the configuration file will be overridden when Transmission closes the next time.

sudo /etc/init.d/transmission-daemon stop

Use any text editor (I use Nano here) to edit the configuration file.

sudo nano /etc/transmission-daemon/settings.json

You will find all possible settings here: official Transmission wiki.

When you’re done, restart the daemon.

sudo /etc/init.d/transmission-daemon start

Configuration file example

Here’s an example of what I have added or changed from the default configuration file. Don’t forget to change your_favorite_list_url and your_user in the following example.

"blocklist-enabled": true,
"blocklist-updates-enabled": true,
"blocklist-url": "your_favorite_list_url",

"download-dir": "/home/your_user/transmission/complete",

"incomplete-dir-enabled": true,
"incomplete-dir": "/home/your_user/transmission/downloading",

"rpc-authentication-required": false,
"rpc-whitelist-enabled": false,

"watch-dir-enabled": true,
"watch-dir": "/home/your_user/transmission/torrents"

Make sure there’s a comma at the end of each line, except for the last one. The last entry (watch-dir), means every torrent file your copy in that folder will be automatically added by Transmission. Download should start only seconds after that.

Port forwarding

For optimal performance in both download and upload, it is recommended to open/forward Transmission’s default port, 51413. To do that, you will need to access your router’s from your favorite Web browser (usually at http://192.168.0.1 or http://192.168.1.1). If you need help passed that point, I suggest googling for something like “your_router_model port forwarding”. You should find plenty of information.

Access Transmission WebUI

Now that you have stopped the daemon, edited settings.json, and restarted the daemon, you should be able to access the Web interface. Simply navigate to your server/computer’s IP and port 9091 (can be changed in settings.json if it doesn’t suit your needs), which should look something like: http://192.168.1.101:9091.

Last step: show your girlfriend how to add new torrents using WebUI. 😉

Playing Diablo 3 on Ubuntu Made Very Easy!

After trying to install Diablo 3 on my Hackintosh from and original DVD an failing (it installed fine but the game won’t start), I decided to look for an Ubuntu solution. This is when I learned about PlayOnLinux, a Wine graphic user interface that makes installation of Windows programs very easy. So here’s a VERY EASY guide to install Diablo 3 on Ubuntu with online installation files.

  1. Make sure your game is correctly registered in your Battle.net account
  2. Download the Diable 3 Game Client (for Windows) from that same account
  3. Open the Ubuntu Software Center
  4. Search for PlayOnLinux and install it (this might take a while)
  5. Start PlayOnLinux, and complete the basic configuration steps (mostly automatic)
  6. Click on the Install button, and select the Testing category in the menu on the left
  7. Select Diablo 3, click install, and follow the instructions
  8. Complete the download/install process
  9. You’re done! Enjoy Diablo 3 on Ubuntu!

Note: I had a little resolution glitch when first started the game. Changing the resolution from the login screen inside the game fixed it.

Other note: the guys at PlayOnLinux say they will support the DVD install method soon.

—-EDIT—-

If you’re using Ubuntu 12.04, and experience the connection error #3007 over and over, here’s a solution that seems to work. Before connection, open a terminal and type this command:


echo 0|sudo tee /proc/sys/kernel/yama/ptrace_scope

This solution comes from that thread in PlayOnLinux forums. Please let us know if it works for you or not.

Linux Mint 12: Making a Bootable USB Stick

Linux MintWith the release of Linux Mint 12 “Lisa” on November 26th, the distribution gets a lot of attention these days. If you’re like me, you probably like to try “new” distributions from time to time. This is why I felt like giving a try to Mint this week.

Creating the bootable device

  1. Download a Linux Mint image from here
  2. If you’re under Ubuntu, use Startup Disk Creator (installed by default)
  3. If you’re under Windows,  use Univeral USB Installer, free and available here
  4. The rest is pretty straightforward…

Fixing a common problem

Once your USB device is “ready”,  you will get the following error if you try booting from it:

vesamenu.c32: not a COM32R image
boot:

After some short research I found the following fix, which is very simple to apply, and completely solves the problem:

  1. Browse the USB device to the syslinux folder
  2. Open and edit the syslinux.cfg file
  3. The first line should read: default vesamenu.c32
  4. Change it to: default live
  5. Save and close the file

That’s it! You’re now ready to try/install Linux Mint 12 “Lisa”.

© 2017 Evil Coding Monkey

Theme by Anders NorenUp ↑