Archive for the ‘Non-Free Software’ Category

Applying updates to Docker and the Plex container

December 7th, 2014 No comments

In my last post, I discussed several Docker containers that I’m using for my home media streaming solution. Since then, Plex Media Server has updated to for non-Plex Pass users, and there’s another update if you happen to pay for a subscription. As the Docker container I used (timhaak/plex) was version at the time, I figured I’d take the opportunity to describe how to

  • update Docker itself to the latest version
  • run a shell inside the container as another process, to review configuration and run commands directly
  • update Plex to the latest version, and describe how not to do this
  • perform leet hax: commit the container to your local system, manually update the package, and re-commit and run Plex

Updating Docker

I alluded to the latest version of Docker having features that make it easier to troubleshoot inside containers. Switching to the latest version was pretty simple: following the instructions to add the Docker repository to my system, then running

sudo apt-get update
sudo apt-get install lxc-docker

upgraded Docker to version 1.3.1 without any trouble or need to manually uninstall the previous Ubuntu package.

Run a shell using docker exec

Let’s take a look inside the plex container. Using the following command will start a bash process so that we can review the filesystem on the container:

docker exec -t -i plex /bin/bash

You will be dropped into a root prompt inside the plex container. Check out the filesystem: there will be a /config and a /data directory pointing to “real” filesystem locations. You can also use ps aux to review the running processes, or even netstat -anp to see active connections and their associated programs. To exit the shell, use Ctrl+C – but the container will still be running when you use docker ps -a from the host system.

Updating Plex in-place: My failed attempt

Different Docker containers will have different methods of performing software updates. In this case, looking at the Dockerfile for timhaak/plex, we see that a separate repository was added for the Plex package – so we should be able to confirm that the latest version is available. This also means that if you destroy your existing container, pull the latest image, then launch a new copy, the latest version of Plex will be installed (generally good practice.)

But wait – the upstream repository at does contain the latest .deb packages for Plex, so can’t we just run an apt-get update && apt-get upgrade?

Well, not exactly. If you do this, the initial process used to run Plex Media Server inside the Docker container ( gets terminated, and Docker takes down the entire plex container when the initial process terminates. Worse, if you then decide to re-launch things with docker start plex, the new version is incompletely installed (dpkg partial configuration).

So the moral of the story: if you’re trying this at home, the easiest way to upgrade is to recreate your Plex container with the following commands:

docker stop plex

docker rm plex

# The 'pull' process may take a while - it depends on the original repository and any dependencies in the Dockerfile. In this case it has to pull the new version of Plex.
docker pull timhaak/plex

# Customize this command with your config and data directories.
docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 timhaak/plex

Once the container is up and running, access http://yourserver:32400/web/ to confirm that Plex Media Server is running. You can check the version number by clicking the gear icon next to your server in the left navigation panel, then selecting Settings.

Hacking the container: commit it and manually update Plex from upstream

If you’re more interested in hacking the current setup, there’s a way to commit your existing Plex image, manually perform the upgrade, and restart the container.

First, make sure the plex container is running (docker start plex) and then commit the container to your local filesystem (replacing username with your preferred username):

docker commit plex username/plex:latest

Then we can stop the container, and start a new instance where bash is the first process:

docker stop plex

docker rm plex

# Replace username with the username you selected above.
docker run -t -i --name="plex" -h plex username/plex:latest /bin/bash

Once inside the new plex container, let’s grab the latest Plex Media Server package and force installation:

curl -O

dpkg -i plexmediaserver_0.

# When prompted, select Y to install the package maintainer's versions of files. In my instance, this updated the init script as well as the upstream repository.

Now, we can re-commit the image with the new Plex package. Hit Ctrl+D to exit the bash process, then run:

docker commit plex username/plex:latest

docker rm plex

# Customize this command with your config and data directories.
docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 username/plex /

# Commit the image again so it will run if ever relaunched:
docker commit plex username/plex:latest

You’ll also need to adjust your /etc/init/plex.conf upstart script to point to username/plex.

The downside of this method is now that you’ve forked the original Plex image locally and will have to do this again for updates. But hey, wasn’t playing around with Docker interesting?

I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: Docker, Jake B, Plex, Ubuntu Tags:

Running a containerized media server with Ubuntu 14.04, Docker, and Plex

November 23rd, 2014 No comments

I recently took it upon myself to rebuild a general-purpose home server – installing a new Intel 530 240GB solid-state drive to replace a “spinning rust” drive, and installing a fresh copy of Ubuntu 14.04 now that 14.04.1 has released and there is much less complaining online.

The “new hotness” that I’d like to discuss has been the use of Docker to containerize various processes. Docker gets a lot of press these days, but the way I see it is a way to ensure that your special snowflake applications and services don’t get the opportunity to conflict with one another. In my setup, I have four containers running:

I like the following things about Docker:

  • Since it’s new, there are a lot of repositories and configuration instructions online for reference.
  • I can make sure that applications like Sonarr/NZBDrone get the right version of Mono that won’t conflict with my base system.
  • As a network administrator, I can ensure that only the necessary ports for a service get forwarded outside the container.
  • If an application state gets messed up, it won’t impact the rest of the system as much – I can destroy and recreate the individual container by itself.

There are some drawbacks though:

  • Because a lot of the images and Dockerfiles out there are community-based, there are some that don’t follow best practices or fall out of an update cycle.
  • Software updates can become trickier if the application is unable to upgrade itself in-place; you may have to pull a new Dockerfile and hope that your existing configuration works with a new image.
  • From a security standpoint, it’s best to verify exactly what an image or Dockerfile does before running it – for example, that it pulls content from official repositories (the docker-plex configuration is guilty of using a third-party repo, for example.)

To get started, on Ubuntu 14.04 you can install a stable version of Docker following these instructions, although the latest version has some additional features like docker exec that make “getting inside” containers to troubleshoot much easier. I was able to get all these containers running properly with the current stable version (1.0.1~dfsg1-0ubuntu1~ubuntu0.14.04.1). Once Docker is installed, you can grab each of the containers above with a combination of docker search and docker pull, then list the downloaded containers with docker images.

There are some quirks to remember. On the first run, you’ll need to docker run most of these containers and provide a hostname, box name, ports to forward and shared directories (known as volumes). On all subsequent runs, you can just use docker start $container_name – but I’ll describe a cheap and easy way of turning that command into an upstart service later. I generally save the start commands as shell scripts in /usr/local/bin/docker-start/*.sh so that I can reference them or adjust them later. The start commands I’ve used look like:

docker run -d -h plex --name="plex" -v /etc/docker/plex:/config -v /mnt/nas:/data -p 32400:32400 timhaak/plex
docker run -d -h sabnzbd --name="sabnzbd" -v /etc/docker/sabnzbd:/config -v /mnt/nas:/data -p 8080:8080 -p 9090:9090 timhaak/sabnzbd
docker run -d -h sonarr --name="sonarr" -v /etc/docker/sonarr:/config -v /mnt/nas:/data -p 8989:8989 tuxeh/sonarr
docker run -d -h couchpotato --name="couchpotato" -e EDGE=1 -v /etc/docker/couchpotato:/config -v /mnt/nas:/data -v /etc/localtime:/etc/localtime:ro -p 5050:5050 needo/couchpotato
These applications have a “/config” and a “/data” shared volume defined. /data points to “/mnt/nas”, which is a CIFS share to a network attached storage appliance mounted on the host. /config points to a directory structure I created for each application on the host in /etc/docker/$container_name. I generally apply “chmod 777” permissions to each configuration directory until I find out what user ID the container is writing as, then lock it down from there.

For each initial start command, I choose to run the service as a daemon with -d. I also set a hostname with the “-h” parameter, as well as a friendly container name with “–name”; otherwise Docker likes to reference containers with wild adjectives combined with scientists, like “drunk_heisenberg”.

Each of these containers generally has a set of instructions to get up and running, whether it be on Github, the developer’s own site or the Docker Hub. Some, like SABnzbd+, just require that you go to http://yourserverip:8080/ and complete the setup wizard. Plex required an additional set of configuration steps described at the original repository:

  • Once Plex starts up on port 32400, access http://yourserverip:32400/web/ and confirm that the interface loads.
  • Switch back to your host machine, and find the place where the /config directory was mounted (in the example above, it’s /etc/docker/plex). Enter the Library/Application Support/Plex Media Server directory and edit the Preferences.xml file. In the <Preferences> tag, add the following attribute: allowedNetworks=”″ where the IP address range matches that of your home network. In my case, the entire file looked like:

    <?xml version="1.0" encoding="utf-8"?>
    <Preferences MachineIdentifier="(guid)" ProcessedMachineIdentifier="(another_guid)" allowedNetworks="" />

  • Run docker stop plex && docker start plex to restart the container, then load http://yourserverip:32400/web/ again. You should be prompted to accept the EULA and can now add library locations to the server.

Sonarr needed to be updated (from the NZBDrone branding) as well. From the GitHub README, you can enable in-container upgrades:

[C]onfigure Sonarr to use the update script in /etc/service/sonarr/ This is configured under Settings > (show advanced) > General > Updates > change Mechanism to Script.

To automatically ensure these containers start on reboot, you can either use restart policies (Docker 1.2+) or write an upstart script to start and stop the appropriate container. I’ve modified the example from the Docker website slightly to stop the container as well:

description "SABnzbd Docker container"
author "Jake"
start on filesystem and started docker
stop on runlevel [!2345]
/usr/bin/docker start -a sabnzbd
end script
pre-stop exec /usr/bin/docker stop sabnzbd

Copy this script to /etc/init/sabnzbd.conf; you can then copy it to plex, couchpotato, and sonarr.conf and change the name of the container and title in each. You can then test it by rebooting your system and running “docker ps -a” to ensure that all containers come up cleanly, or running “docker stop $container; service $container start”. If you run into trouble, the upstart logs are in /var/log/upstart/$container_name.conf.

Hopefully this introduction to a media server with Docker containers was thought-provoking; I hope to have further updates down the line for other applications, best practices and how this setup continues to operate in its lifetime.

I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: Docker, Jake B, Plex, Ubuntu Tags:

Initial thoughts about PC-BSD

January 16th, 2014 No comments

[Please note: this is a historical post – I’m no longer running *BSD in 2014, and this is a collection of thoughts on its setup in case I decide to return to the operating system. Further posts from me will focus on other Linux experiences.]

So after not too much effort, I’ve gotten PC-BSD to replace my FreeBSD installation and am back up and running. Some minor tips, interesting facts and tweaks:

  • Default filesystem and mountpoints all seem to be ZFS, which would make PC-BSD probably the quickest and easiest way to get a functional desktop environment running with this neat filesystem.
  • To enable Flash playback in Chromium (and I assume Firefox), run
    flashpluginctl on

    from the terminal (under your own user account, not root) and restart the browser. Thanks to the PC-BSD forums for this answer.

  • Enabling SSH server: add sshd_enable=”YES” to /etc/rc.conf, then /etc/rc.d/sshd start. You’ll also need to allow TCP port 22 inbound through the firewall in the PC-BSD Control Panel/Networking/Firewall Manager application.
  • Sound worked out of the box without any driver finagling, and is a much more simplistic setup:


From the PC-BSD Control Panel, a very simple way to select the default sound device.

From the PC-BSD Control Panel, a very simple way to select the default sound device.

I’m assuming the situation would have been better than the Kubuntu trials and tribulations with PulseAudio – all the possible nVidia HDMI output ports are listed in this dropdown list, as well as my onboard sound and USB/stereo audio adapter. In Phonon, the list is much simpler:

No greyed-out cards or shenanigans - Phonon just shows the default sound card from PC-BSD.

No greyed-out cards or “missing sink”s – Phonon just shows the default sound card from PC-BSD.


So far this has been a pretty great introductory experience – the desktop is polished, KDE integration appears to work well, and manual configuration has been limited to what I’d consider more advanced functionality like the SSH daemon.

I am currently running Ubuntu 14.04 LTS for a home server, with a mix of Windows, OS X and Linux clients for both work and personal use.
I prefer Ubuntu LTS releases without Unity - XFCE is much more my style of desktop interface.
Check out my profile for more information.
Categories: Flash, Jake B, PC-BSD Tags: , ,

My Initial Thoughts/Experiences with ArchLinux

July 29th, 2013 2 comments

Hello again everyone! By this point, I have successfully installed ArchLinux, as well as KDE, and various other everyday applications necessary for my desktop.

Aside from the issues with the bootloader I experienced, the installation was relatively straight forward. Since I have never used ArchLinux before, I decided to follow the Beginner’s Guide in order to make sure I wasn’t screwing anything up. The really nice thing about this guide is that it only gives you the information that you need to get up and running. From here, you can add any packages you want, and do any necessary customization.

Overall, the install was fairly uneventful. I also managed to install KDE, Firefox, Flash, and Netflix (more below) without any issues.

Some time ago, there was a package created for Ubuntu that allows you to watch Netflix on Linux. Since then, someone has created a package for ArchLinux called netflix-desktop. What this does, is creates an instance of Firefox in WINE that runs Silverlight so that the Netflix video can be loaded. The only issue that I’m running into with this package is that when I full-screen the Netflix video, my taskbar in KDE still appears. For the time being, I’ve just set the taskbar to allow windows to go over top. If anyone has any suggestions on how to resolve this, please let me know.


This isn’t my screenshot. I found it on the interweb. I just wanted to give you a good idea of how netflix-desktop looked. I’d like to thank Richard in advance for the screenshot.

Back to a little more about ArchLinux specifically. I’ve really been enjoying their package management system. From my understanding so far, there are two main ways to obtain packages. The official repositories are backed by “pacman” which is the main package manager. Therefore, if you wanted to install kde, you would do “pacman -S kde”. This is similar to the package managers on other distributions such as apt-get. The Arch User Repository is a repository of build scripts created by ArchLinux users that allow you to compile and configure other packages not contained within the official repositories. The really neat thing about this is that it can also download and install and dependencies contained in the official repositories using pacman automatically.

As I go forward, I am also thinking of ways I can contribute to the ArchLinux community, but for now, I will continue to explore and experiment.

I am currently running ArchLinux (x86_64).
Check out my profile for more information.

Linux From Scratch: We Have Lift-off…

November 4th, 2011 No comments

Hi Everyone,

Now that I have a relatively stable environment, I just wanted to write an update of how things went, and some issues that I ran into while installing my desktop environment.

No Sound

Not that I was expecting anything different from LFS, but I had no sound upon booting into KDE. I found this quite strange, as alsamixer was showing my sound card fine. One thing I can tell you, is that alsaconf is a filthy liar. My sound is now working, and it still says it can’t find my card. I’m not sure how I got it working, but here are a few tips.

  • Make sure your sound is un-muted in alsamixer.
  • Check your kernel to make sure that either support is compiled in for your card, or module support is selected.
  • If you selected module supprt, make sure the modules are loaded. For me, this was snd-hda-intel.

Firefox and Adobe Flash

I’m not going to go into too many details about Firefox, as Jake covered this in his post here, but I’d like to note that installing Flash into Firefox was quite easy. All I had to do was download the .tar.gz from Adobe, and do the following:

tar -xvf flash.tar.gz (or whatever the .tar.gz is called)
cd flash
cp ~/.mozilla/plugins (make sure plugins is created if it does not exist.)

KDE Crash On Logout

The first time I tried to logout of KDE, I noticed that it crashed. After doing some investigations, I found a solution here. You want to edit your $KDE4_PREFIX/share/config/kdm/kdmrc to reflect the following:



What’s Next?

I’m actually not sure what I’m going to do next. I suppose I should get VLC running on the system, but that shouldn’t be too difficult. I now have a working web browser, flash, and sound, which should be fine until I can get other things working.

I am currently running ArchLinux (x86_64).
Check out my profile for more information.

On Veetle, Linux Mint, and ICEauthority

September 21st, 2011 4 comments

Like most people, I use my computer for multimedia. Recently I’ve discovered a multi-platform program called Veetle. It’s a pretty good program, but I ran into an issue after having installed it on my system (currently running Linux Mint 11): while I was using it to stream video, my computer basically locked up – every running process continued working, but I had no control over it. Since I was watching a full-screen video, this was pretty unfortunate. After all, it often helps to be able to maneuver your windows when you’re in a bind. I also immediately noticed that I lost all sound control on my keyboard. I rebooted my computer, but when I tried to log in, I got an error telling me that my computer could not update /home/user/.ICEauthority, followed by another error message, which I’m assuming was related but of less importance.

I actually into this exact problem before on an older machine, but before I had the chance to investigate, the hard disk died (for unrelated reasons). Luckily, I recognized the error on my newer machine and put two and two together: both failures coincided with the installation of Veetle. Now, because I’m a nerd, I have two functioning and constantly active computers right next to each other, for just such an occasion! It may also be related to the fact that websites that stream media tend to be a bit iffy so I feel more secure not using my Windows machine while exploring them, but enough about that! I Googled (or Binged, assuming “Bong” or “Bung” isn’t the past tense) a solution.

The solution

As it turns out, other people have run into this same problem, and it’s been covered on the Ubuntu forums and elsewhere. Basically, I ran the Veetle script as root (D’oh!), and this royally boned everything. This post by mjcritchie at the ubuntu Forums (which follows the advice of tommcd at explained what to do:

I have had the same problem twice, both times after updating (currently running 64bit Karmic).

Tried various solutions on the net, but this is the only one that worked for me:

Open a terminal and run:

sudo chown -R user:user /home/user/.*

Where user is your user_name. This should change ownership of all the hidden files and directories in your home directory to: user:user, as they should be.

This comes courtesy of tommcd over at this post on

So there you have it. My machine currently works, and now I can get back to streaming media. At least until the next time I get too adventurous when installing things.

Accessing Windows 7 Shares from Ubuntu is a Pain

June 28th, 2010 16 comments

This blog post is about my experiences. If you hit this page from a search engine looking to fix this issue click here to skip to the solution.

Recently, I’ve been reorganizing my computers based on their usage. My old HTPC, has resumed its duties as my primary desktop/server, my Mac Mini has been attached to the my desktop through Synergy, my server was given to my brother for personal use, and his old computer – a nettop – is now being used as our new HTPC.

After a painful decision making process – a topic for another time, and another post – I decided that this nettop, named Apollo after the Greek god of many things including “music, poetry, and the arts” [as close as I could get to entertainment],  should run Ubuntu 10.4 with XBMC as the media center app. After testing it’s media playback capabilities from a local file, I was rather impressed. I set out to add a SMB share from within XBMC, and was prompted to add a username and password.

I wasn’t really expecting this, because Leviathan – my desktop/sever running Windows 7 – has public sharing turned on, as well as a guest account. I entered in my credentials, and was asked yet again for a username and password. After trying multiple times, I decided to quit XBMC and see if I could get Ubuntu to connect to the share. Here too, I was prompted for a username and password, again and again.

Next I headed to the terminal to run smbclient. This didn’t work either, as I was shown a message saying smbclient failed with “SUCCESS – 0”. I guess success shouldn’t be zero, so my next move was to attempt mounting the network share using CIFS. Again, I was met with repeated defeat.

Begrudgingly I took to the internet with my problem, only to find that there were many people unable to connect to their Windows 7 from Ubuntu. The suggestions ranged from registry hacks to group policy administration, none of which worked. One repeated suggestion however, was to un-install the Windows Live Sign-in Assistant. However, as a user of the Windows Live Essentials (Wave 4) Beta that was recently released – I had no such program. I did however have a similar application called the Windows Live Messenger Companion, which I chose to uninstall – again, to no avail.

However, I soon reasoned that perhaps whatever was blocking people using the Windows Live Sign-in Assistant was now being used within the actual Windows Live Messenger client or the other Windows Live Essentials apps that I’d recently installed. I started by uninstalling everything but Windows Live Messenger – because I really, really like the beta version. Alas, this did not help. Next I uninstalled the actual Windows Live Messenger client and voila – I was able to connect with no prompting for passwords at all. Because that makes -any- sense.

As a matter of interest, I installed the regular WLM non-beta client and made sure that the Windows Live Sign-in Assistant was installed, and tried to connect again. Not surprisingly, I was no longer able to connect to my Windows 7 shares. After un-installing the Windows Live Sign-in Assistant my shares were back up and I was mostly happy. Except that I couldn’t use the new Windows Live Messenger beta.

I can’t be sure if the other tinkering I did also helped clear up my problems, but as a recap here are the steps I recommend to access your Windows 7 shares from Ubuntu:

1) If you have the Windows Live Essentials (Wave 4) beta installed, you’ll have to uninstall all of the applications that come with this. For now, you can install the current version of Windows Live Messenger and the other Windows Live Essentials.

2) If you have Windows Live Messenger installed, or ANY of the Windows Live Essentials programs installed check to see if you have the Windows Live Sign-in Assistant installed. If so, uninstall it.

3) Hopefully, now you can enjoy your Windows 7 shares in Ubuntu

Important Note:

Beta software has this nasty habit of leaving beta status sooner or later. If this issue is not resolved when the newest version of Windows Live Messenger is officially released, you may not be able to use the Window Live Messenger client if you need your Windows 7 shares from Ubuntu. I would suggest using an application like Pidgin as your instant messenger, as it can also connect to the Windows Live Messenger service. Other options include Digsby, Miranda, and Trillian.

Originally posted on my personal website here.

Adobe + Linux == Balls

May 27th, 2010 10 comments

This week, I replaced my increasingly infuriating Kubuntu installation with a fresh install of the beautiful Linux Mint 9 Isadora. Just like the project motto says, if Ubuntu is freedom, then Mint truly is elegance. The only hiccup that I hit during the entire installation process (aside from dicking up my fstab file because I suck) occurred when I tried to install Tweetdeck. As per usual, Adobe Air refused to correctly install on my system. It’s a damned good thing that Tweetdeck is an awesome app, because I’ve run into these problems before, and am just about ready to give up on it entirely.

This time, the alleged reason for my woes is that I dared to install Mint’s 64-bit build. Because, you know, we haven’t had 64-bit processors since 2003.

To make a long story short, it took me nearly an hour to get everything up and running. Below are two good resources that may help others in a similar situation:

In closing, Adobe sucks.

On my Laptop, I am running Linux Mint 12.
On my home media server, I am running Ubuntu 12.04
Check out my profile for more information.

Fix ATI vsync & video tearing issue once and for all!

May 6th, 2010 23 comments

NOTE: ATI’s most recent drivers now include a no tearing option in the driver control panel. Enabling it there is now the preferred method.

Two of the linux machines that I use both have ATI graphics cards from the 4xxx series in them. They work well enough for what I do, very casual gaming, lots of video watching, but one thing has always bothered me to no end: video tearing. I assumed that this was due to vsync being off by default (probably for performance sake) but even after installing the proprietary drivers in the new Ubuntu 10.04 and trying to force it on I still could not get the issue to resolve itself. After some long googling I found what seems to be a solution, at least in my case. I’ll walk you through what I did.

Before you continue read this: In order to fix this issue on my computers I had to trash xorg.conf and start over. If you are afraid you are going to ruin yourself, or if you have a custom setup already, please be very careful and read before doing what I suggest or don’t continue at all. Be sure to make a backup!

1 ) Install the ATI proprietary drivers and restart so that they can take effect.

2 ) Make a backup of your xorg.conf file. Do this by opening a terminal and copying it to a backup location. For example I ran the following code:

sudo cp /etc/X11/xorg.conf /etc/X11/backup.xorg.conf

3 ) Remove your existing (original) xorg.conf file:

sudo rm /etc/X11/xorg.conf

4 ) Generate a new default xorg.conf file using aticonfig (that’s two dashes below):

sudo aticonfig –initial

5 ) Enable video syncing (again two dashes before each command):

sudo aticonfig –sync-video=on –vs=on

6 ) If possible also enable full anti-aliasing:

sudo aticonfig –fsaa=on –fsaa-samples=4

7 ) Restart now so that your computer will load the new xorg.conf file.

8 ) Open up Catalyst Control Center and under 3D -> More Settings make sure the slider under Wait for vertical refresh is set to Always On.

That should be it. Please note that this trick may not work with all media players either (I noticed Totem seemed to still have some issues). One other thing I tried in VLC was to change the video output to be OpenGL which seemed to help a lot.

Good luck!

I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).

Flash problems in Firefox

October 25th, 2009 5 comments

I mentioned in the podcast that I was having problems viewing Flash stuff in Firefox and I blamed it on KDE. I may have jumped the gun here, because the same issue started cropping up in GNOME. I went on the Linux Mint forums and other users were having similar issues. I’ve run the code that they suggested in the terminal, but I’m not sure if it worked because the problem doesn’t manifest instantly – sometimes it takes over half an hour before websites that run flash white themselves out.

Taking Wine for a spin

October 20th, 2009 3 comments

Wine, or W.I.N.E. Is Not an Emulator, is a set of compatibility libraries that allow some Windows applications to run pseudo naively on Linux by mapping Windows API calls to native Linux calls. In the past I have been sort of successful with using Wine but I have never really given it a good go. So I decided that I should put Wine through it’s paces!


Rather than approach this from an expert’s standpoint I am going to use Wine starting from a novice’s ability and then move up if needed.

  1. Try and run program from graphical shell
  2. Try and run program from terminal
  3. Try and adjust WINE settings to see if I can make it work
  4. Search the web for ideas and consult Wine’s App DB

The Programs

I have selected a number of different applications to test with Wine – some productive software and some games. I have done no research as to the compatibility of these programs under Wine, they just happen to be easy to use for testing, so it’s going to be a surprise for me no matter what happens. As I’m sure you can tell it’s been a while since I’ve played games on my PC…

First thing we need to do is make sure Wine is installed!

How to install Wine on Fedora 11

Technically all you need to do is:

sudo yum install wine

but you might want to install some of the additional packages as well, just in case!

Command & Conquer: Red Alert

Now that EA has released this game as free getting a copy of it was a simple download. Once downloaded and unzipped I mounted it and tried running the autorun script.

Red Alert autorun

Red Alert autorun



Sadly this resulted in the above error. Next I tried opening it using a simple double-click on the SETUP.EXE. This launched the program but gave me the following error message:

5.1 = Windows XP?

5.1 = Windows XP?

1. Try and run program from graphical shell: FAILURE

With that failure I decided to try and run it from the terminal so that I would at least be able to see errors in the print outs.


This however only resulted in the same error message.

2. Try and run program from terminal: FAILURE

If this problem is truly related to the fact that it thinks I’m running Windows XP maybe I can change that. So off to the Wine configuration menu I went and lo and behold I found an option to do just that!

You can even set different programs to think they are running on different versions of Windows!

You can even set different programs to think they are running on different versions of Windows!

This time I got a different error message about not being able to find all of the files. I decided to burn the ISO to a disc to eliminate any problems with the way I mounted it. Putting the newly burned disc into the drive and using the terminal to launch autorun.exe made everything work and the installation finished. A simple click of the menu icon and I was playing Red Alert!

3. Try and adjust Wine settings to see if I can make it work: SUCCESS

Command & Conquer: Red Alert Final Result: SUCCESS

Well that wasn’t so bad. Let’s try the others!

SimCity 3000 Unlimited

The first thing I did was pop the CD in the computer.

In goes SimCity 3000 Unlimited

In goes SimCity 3000 Unlimited



Which promptly gave me this:

Nothing could be that easy...

Nothing could be that easy...

I even tried browsing to the setup exe’s location and running it directly. Still no luck.

Stop teasing me!

Stop teasing me!

1. Try and run program from graphical shell: FAILED

Next I tried to run the game from the terminal. I navigated to the setup folder and ran the exe with wine.



To my amazement this resulted in the installer starting correctly! A couple of quick Next button clicks and some typing of my serial key and the game began to install. Exactly 3 minutes later the game was finished installing. I then navigated to the application through the GNOME menubar:

Applications > Wine > Programs > Maxis > SimCity 3000 Unlimited > SimCity 3000 Unlimited

Holding my breath I clicked the button and… nothing. Hmm. Turning back to the terminal I browsed to the location where Wine installed SimCity on my hard drive and ran the program from there.

cd /home/tyler/.wine/drive_c/Program\ Files/Maxis/SimCity\ 3000\ Unlimited/Apps/

wine sc3U.exe

This presented me with the following error screen… about 30 times until I killed it from the terminal.

I just kept on getting this error message... over and over and over and over...

I just kept on getting this error message... over and over and over and over...

2. Try and run program from terminal: FAILED

I looked around in the Wine settings and couldn’t find anything that would be causing the game to fail so miserably so I gave up on this step.

3. Try and adjust Wine settings to see if I can make it work: FAILED

Turning to the web I quickly looked up “SimCity 3000” on Wine’s App DB. From the look of things SimCity 3000 works with Wine but SimCity 3000 Unlimited does not.

4. Search the web for ideas and consult Wine’s App DB: FAILED

SimCity 3000 Unlimited Final Result: FAILED

Try as I might SimCity 3000 Unlimited just does not work under Wine.


Once again I started by inserting the CD-ROM and tried to run the autorun that popped up.


Will this work better than SimCity?

Will this autorun work?

Will this autorun work?



Next I tried once again browsing to the CD-ROM in Nautilus.

Do I run autoplay.exe?

Do I run autoplay.exe?

Or maybe Setup.exe? Or even Stronghold.exe?

Or maybe Setup.exe? Or even Stronghold.exe?

Unfortunately once again no success using the graphical shell.

1. Try and run program from graphical shell: FAILURE

After that, and recognizing the limited success I had with SimCity, I repeated the steps but this time using the terminal. To my surprise the installer appeared!

cd /media/030819_1208/

wine autoplay.exe

A little over 4 minutes later the game finished installing and I was presented with the launch screen. Again I held my breath and clicked on Play. It launched! Holy crap it’s actually working… well… sort of. Something wasn’t quite right so I closed the application and opened up Wine configuration. In that window I checked the box next to “emulate a virtual desktop” and set the resolution to 800×600. Once again I restarted Stronghold… GREAT SUCCESS! It worked flawlessly!

2. Try and run program from terminal: SUCCESS

Stronghold Final Result: SUCCESS

Stronghold proves that Wine is capable of providing a seemingly fully compatible Windows experience.


After a quick download from the SourceForge website I began, again, by trying to run the installer from the graphical shell.

Can you guess what happened next?

Can you guess what happened next?

1. Try and run program from graphical shell: FAILURE

Back to the command line I went and after entering the typical commands I was once again presented with the installer.

cd ~/Desktop/

wine npp.5.5.1.Installer.exe

By this point I honestly don’t know why Wine has a graphical launch option or why it fails so badly. Less than a minute later, using the terminal, Notepad++ was up and running perfectly, albeit with some odd graphical issues.

Notice how the text doesn't look quite right?

Notice how the text doesn't look quite right?

2. Try and run program from terminal: SUCCESS

Notepad++ Final Result: SUCCESS

While not without its odd graphical problems, Notepad++ seems completely stable and quite usable on the Linux desktop.


After three successes I was on a roll and jumped over to the µTorrent website in anticipation of another success.

I’ll save you the details,

1. Try and run program from graphical shell: FAILURE

Turning to the trusty terminal (wow that was a lot of t-words) I started up utorrent.exe with Wine.

wine utorrent.exe

The install went fine and even placed a desktop launcher on my desktop when I clicked the ‘Create Desktop Icon’ box. Running the application proved to be a bit more challenging and when I tried to run it from Wine’s Program Files using the following command,

wine ~/.wine/drive_c/Program\ Files/uTorrent/uTorrent.exe

I was presented with some rather odd behaviour in the form of another installation. In fact no matter what I did I couldn’t get it to work.

2. Try and run program from terminal: FAILURE

Again I poked around in the Wine settings but there just didn’t seem to be anything in there that would help.

3. Try and adjust Wine settings to see if I can make it work: FAILURE

Getting frustrated I turned to the internet, specifically Wine’s App DB, for help. I tried following a number of suggestions but nothing seemed to work. I even ended up on µTorrent’s Wikipedia page but still nothing. On a funny note, Wikipedia lists µTorrent’s platforms as “Wine officially supported”.

4. Search the web for ideas and consult WINE’s App DB: FAILURE

µTorrent Final Result: FAILURE

Try as I might I just can’t get this BitTorrent client to work properly.

Internet Explorer 8

Once again I started by using the graphical shell – although I honestly didn’t believe it would work. And guess what?

1. Try and run program from graphical shell: FAILURE

Following the pattern I tried the terminal next. This started up the application but ended abruptly when IE prompted me saying that “This installation does not support your system architecture (32/64 bits)”. That doesn’t make sense though because the Internet Explorer I downloaded was for x86…

2. Try and run program from terminal: FAILURE

Poking around again in Wine’s configuration proved to be fruitless. There just didn’t seem to be any way to tell it to run the application as x86.

3. Try and adjust Wine settings to see if I can make it work: FAILURE

Finally I turned to the web and searched the App DB for Internet Explorer 8. This made it pretty clear that I wasn’t going to get IE 8 to work under Wine as every version listed, aside from 1.0 and 1.5, had a rating of Garbage – Wine’s worst compatibility rating.

4. Search the web for ideas and consult Wine’s App DB: FAILURE

Internet Explorer 8 Final Result: FAILURE

I guess Microsoft’s iconic browser was just not meant to play nicely with Tux.

Well there you have it

I have put Wine through its paces and while there were quite a bit of failures I am very impressed. Wine might just spark a trip down memory lane with my favorite Windows game classics!

I am currently running a variety of distributions, primarily Linux Mint 17.
Previously I was running KDE 4.3.3 on top of Fedora 11 (for the first experiment) and KDE 4.6.5 on top of Gentoo (for the second experiment).


October 4th, 2009 No comments

I swear that I’ve encountered this before…

That is all.

Categories: Flash, God Damnit Linux, Hardware, Jon F, Linux Tags:

How to not install XBMC on Debian Lenny

September 13th, 2009 4 comments

So tonight I got a terrible idea. I figured that I’d try to install XBMC, the awesome media centre app for modded Xbox consoles. Turns out that they do, in fact, have a Linux version… but that none of it’s dependencies can be resolved automatically, and that every developer remotely related to the project was on crack while packing the tarball.

Because the devs only package a release for Ubuntu (that doesn’t work worth a shit on Debian), I was forced to download a tarball from this site, which I extracted to my home/username/bin directory. Unfortunately, when attempting to./configure in this directory, I discovered that the package had roughly 337 thousand dependencies, namely:

subversion make g++ gcc gawk pmount libtool nasm automake cmake gperf unzip bison libsdl-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-mixer1.2-dev libsdl-sound1.2-dev libsdl-stretch-dev libfribidi-dev liblzo-dev libfreetype6-dev libsqlite3-dev libogg-dev libasound-dev python-sqlite libglew-dev libcurl4-dev x11proto-xinerama-dev libxinerama-dev libxrandr-dev libxrender-dev libmad0-dev libogg-dev libvorbis-dev libmysqlclient-dev libpcre3-dev libdbus-1-dev libhal-dev libhal-storage-dev libjasper-dev libfontconfig-dev libbz2-dev libboost-dev libfaac-dev libenca-dev libxt-dev libxmu-dev libpng-dev libjpeg-dev libpulse-dev mesa-utils libcdio-dev

Yeah. That many. Further, the library liblzo-dev is no longer a part of Debian Lenny, although it is available from the Etch repositories. You can grab that tarball and manually install it from this page. Oh, and you’ll also need to add the debian-multimedia non-free repositories to your sources.list file in order to obtain libdvdcss… You can find instructions to do that here.

Assuming you’re still with me, and have managed to install all of the above dependencies (all 300+ MB of them), you’ll probably still fail, because the tarballs for the vast majority of them fail to set execute permissions on their configure files on extraction. As such, you’ll have to manually walk through each of the folders under xbmc and add those permissions…

After adding these permissions as deep as I could in the directory structure with the command chmod -R +x */configure (where you can add up to 6 instances of */), and running the XBMC config file a solid 50+ times, I’m stuck on the libdvdnav library, which doesn’t seem to contain a valid config file… Seeing as I have to work tomorrow, I offically give up for now. Christ this must be a small taste of what Gentoo is like all the time.

The Next Morning:

With a clear head and a fresh cup of coffee, I took another shot at installing XBMC.After spending 20 minutes manually installing the libdvdnav, libdvdread, and libdvdcss libraries, I finally managed to run the XBMC configure script with no errors.

After just over a half hour compiling, I finally got XBMC installed and gave it a test run.

Initially, I had troubles connecting to any network shares where my media is stored. After going into the network settings, changing my workgroup name, and telling the app to automatically mount SMB shares, everything seemed peachy.

More to come as I figure this out

Upgrading to Flash 10 in Debian

September 5th, 2009 No comments

Even though the Debian community is very strict about only allowing free software in their repositories, my Iceweasel install came preloaded with Macromedia Flash 9. Regardless of whether this is how things are supposed to be, Flash has since moved on to version 10. Some sites like youtube are already warning users who have lower versions installed that they should upgrade for performance reasons, and Firefox is going to begin to prompt users to upgrade for security reasons.

Regardless of your motivations, having the latest Flash plugin is essential to today’s internet experience, regardless of well placed free software ideals. Luckily, I’ve found a handy tutorial (incredibly, it’s on the Debian Wiki and isn’t horribly out of date) that gives instructions on how to get the latest Flash installed on a Debian system.

It should be noted that the tutorial requires the user to add a non-free repository to their sources list, located in /etc/apt/sources.list file, and that making this change will techinically make your system non stable, in the sense that it will no longer be officially supported by the Debian community. While regrettable, my sources list already contained non-free sources list, as some of my hardware lacks free drivers/firmware, so I’m not terribly concerned.