Search Tillamook Rage
Google Custom Search


Make Xubuntu (Ubuntu) Play Encrypted DVDs

You might be interested in this post if you have tried to play an encrypted (protected) DVD and it failed. Most commercial DVDs are encrypted now, so if you are having problems, try this post before you give up. There are several warning signs that your DVD player is failing because of a DVD's encryption. For instance, if you are using MythTV, the DVD may get all the way up to the menu before it just quits out to the MythTV menu. Some other players may give you an error about not having the proper permission or plugins to play the DVD, while others just plain crash when they try to play the DVD.

This procedure was developed using Xubuntu 7.04 (Feisty), but should work equally well with any Ubuntu derivative. Also, always be careful when editing your system configuration files, installing additional packages, or following any procedures from any site, as you can do harm to your system if a mistake is made.

A word of advice before we start - I would suggest using a DVD player other than gXine, especially if you're running Xubuntu. Boot and I have had a lot of problems getting gXine working with several types of media, including DVDs. Speaking for myself, I prefer either VLC or Ogle for a standalone player, and MythTV if you're building a media center (I'll have a post on MythTV later).

First, we want to add the Medibuntu repository. We're adding this because Medibuntu includes a lot of "restricted" drivers, codecs, and applications that are not in other Ubuntu derivatives due to possible legal problems. Launch the Add/Remove Applications dialog (Applications > System > Add/Remove...), and once the dialog comes up, click the Preferences button. Click on the Third-Party Software tab, and then click the Add... button. The dialog box in Figure 1 should come up.

Figure 1

In the APT line: box, type (or copy) deb feisty free , replacing feisty with the name of your distribution (edgy, gutsy, etc). Click the Add Source button, and then repeat the process starting from clicking the Add... button, but this time typing deb feisty non-free and then clicking the Add Source button again. Now click the Close button and you will probably see a dialog box saying that your software information is out of date. Just click the Reload button to continue. At this point, you will most likely get the error dialog box in Figure 2. I believe that this error is due to the fact that this is a repository outside of the normal Ubuntu realm, but it doesn't hurt anything so go ahead and click Close.
Figure 2

Now you are ready to install the library that will allow you to play encrypted DVDs. Go back to the Add/Remove Applications dialog and click the Ok button to close it. Next, we're going to open a terminal window. For those of you who are unfamiliar with x-terms, don't worry, I'll walk you through it.

Open your terminal (Applications > Accessories > Terminal) and type

sudo apt-get install libdvdcss2

after which you will be asked for you administrator password. Enter the password and hit Enter. A line will come up saying Install these packages without verification [y/N]? - just type y and hit Enter. If you're connected to the Internet, you should see some lines saying that libdvdcss2 is being downloaded and installed. After that finishes, you can also install several handy codecs to play Windows media by typing

sudo apt-get install w32codecs

and hitting Enter, its up to you though since the libdvdcss2 library is all that you need to play an encrypted DVD. If at this point if the DVD still won't play, try restarting the computer.

Please be aware that I have had problems with getting the following media players to work with encrypted DVDs: gXine, Movie Player, and MPlayer (which surprises me). If you figure out how to get these to work, let us know.

Hopefully this post was helpful to you. If it was, please let us know. Also, if you didn't find it helpful for some reason, let us know that too. We're always looking to improve our HOW-TOs.



Open Source with a (Bad) Attitude

Normally, I just like to spend my time writing posts on how to do and fix things in Linux, but I'm going to shift gears for just a little bit today. I want to rant about something that I saw in a Linux support mailing list today that really disappointed me. A Linux user wrote to the mailing list and voiced their support for open source, but also their disappointment with the fact that open source software is not reaching its full promise or potential. Let me first say that I am an avid Linux user and developer, and by all means an open source junkie, and even I can sympathize with this everyday user. What disappointed me was that instead of having their message replied to in a way that would open discussion and attempt to determine the problems they were having, the person was, in my opinion, scolded for even suggesting that open source software could be anything other than what it is. There are other things about what the people were saying that disappointed me, but I want to focus on that attitude here in this post.

First off, I want to ask a couple of questions. One - are we as developers so attached to our projects and ideologies, that we will deride anyone who dares to suggest that we may be missing the mark? And two - do we even try to put ourselves in the shoes of the majority of people who will be using our software, instead of assuming that everyone is just like us?

On the subject of the first question, it seems to me that we open source-ers have become very entrenched in our ideas about the way things should be. I'm not saying that we shouldn't back open source - we should. What I'm saying here is that we can't get so trapped by our ways of doing things that we're unable to adapt to changes that need to be made to survive. A great example of this is with the Linux desktop market. For years, Linux developers have concentrated on server deployment and high end workstations for their inroads into the PC market. It hasn't been until relatively recently that Linux distributions like Ubuntu (thank you again Mr. Shuttleworth) have begun to look at what everyday users need to survive. As a consequence, the Linux community is suffering from lingering tunnel vision. Many of us as developers are not shifting gears to address the fact that most users are not comfortable using certain essentials in the server world like the Linux terminal. There's a reason why PC sales accelerated once graphical operating systems began to be introduced. Most user's can't and won't edit config files on their own to get something to work right that should have worked out of the box. Its just not going to happen. I personally prefer the Linux terminal over any graphical interface, but then again I'm not everyone. I've got to understand that many of my users don't have the level of "geekiness" that I do. Its not fair for me to expect them to attain that level of experience either.

In reference to the second question, I think that the world of open source could use a lesson in customer support. How many times have I come across the same situation that I saw today where a user is scolded for having trouble - too many. How many times have I seen someone who posts a question to multiple sites and never gets an answer, not even a link that might help them - too many. How many times have I seen questions from brand new Linux users be answered with the most cryptic command line strings with no explanation - way too many. If we started seeing potential users and new users as "customers" instead of someone to impress and/or show up with our level of Linux knowledge, the barriers to entry into the Linux and open source world would be greatly lessened. Why not take a few extra minutes to add all the intermediate steps to get from point A to point B, instead of just assuming that this new Linux user has somehow learned the entire bash shell in a week. Just like with a commercial company, if someone has too much trouble with the product and/or technical support, they will take their business elsewhere (if possible). Many open source folks will argue vehemently that "there's help all over the place, you're just not looking hard enough". While its true that you can find answers to many questions about Linux, most are not complete, many are inaccurate, and some are just plain indecipherable for the average Linux user. How many of you would be happy if you got a very complicated widget that you were excited to try, only to find out that you couldn't trust the user manual to be accurate, complete, or even readable? I would venture a guess that if you couldn't operate this beautiful new whirlygig because of it, you would get upset and want your money/time back. You can argue with me on that point all day, but before you do, grab several of your family members with normal computer skills and have them try to set up and use Linux on their own (with no help from any techno-gurus).

I'm going to end this rant now because I need to get back to posting things that will hopefully help people use Linux more effectively, but I want to end with this thought. If we even want to dream of having Linux compete to become the standard operating system for the world (which I would love to see), we have to be flexible enough to meet our users needs (that includes figuring out what the majority of our user's needs are), and we have to treat people new to Linux like valued customers in order to give them the best experience possible. Without a high standard of usability promoted by us open source developers and users, most people will forever stay closely tied to Microsoft and Apple.

That's my two cents for what its worth.



Getting WPA-PSK Wireless Working in Xubuntu

You might be interested in this post if you are trying to get your laptop or desktop on a WPA-PSK security enabled wireless network. This should be a lot easier in Linux than it is, but we've come up with the what we hope is the easiest possible solution for you here. If you've been searching for the answer in the forums and found nothing but a headache, you've come to the right place. We're shooting to have the wireless setup in EONS be pain free, so stay tuned for our first release.

This procedure was developed using Xubuntu 7.04 (Feisty Fawn), but should work equally well with any Ubuntu derivative (6.10 Edgy or later). Also, always be careful when editing your system configuration files, or following any procedures from any site, as you can do harm to your system if a mistake is made. Always make backups of the configuration files that you change, or you might just find yourself with a broken system that's a pain to fix. Also, please be aware that in this post, you will be entering the pre-shared key for your wireless network in an unencrypted file. This could potentially reveal your password to someone who gains access to your computer.

Finding the Active Wireless Network Interface
First off, we're going to find the name of the wireless network interface. If you already know this, just skip to the next paragraph. Launch an x terminal (Applications > Accessories > Terminal). If the terminal crashes, please see our post "XFCE Terminal Crash Fix". Once you are in the terminal type sudo cat /etc/network/interfaces and hit Enter. Type your password (of course) and hit Enter again. In the output that comes up in the terminal, you will see several entries that say something like auto eth0, where eth0 is the name of the interface. The trick is that you have to check each one of these in turn until you find your wireless card (I haven't found a good way to scan the active interfaces yet without writing a program or a script). Typically, wired Ethernet connections usually have interface names starting with eth, with the first wired connection being eth0, but this doesn't have to be the case. The computer that I'm writing this post on has its wireless card showing up as eth1. WiFi connections can be listed as wifi, and I've noticed Atheros wireless chipsets show up starting at ath0. Write down all of the interface names so that you can step thorough them with the next command. Once you have the interface names, type iwconfig eth0 and hit Enter (be sure to replace eth0 with the name of the interface that you're currently checking). Do this for each of the interfaces until you get one that responds. For the interfaces that aren't active wireless connections, you will get a line of text that is something like eth0 no wireless extensions. That's a good thing though because it tells you to move on to the next interface name. Once you have found the active wireless interface, move on to the next section.

Check for wpa supplicant
We want to check to make sure that wpa supplicant is installed. This is the program that does the WPA negotiation with your wireless network. If you haven't already, open an X terminal and type sudo apt-get install wpasupplicant and hit Enter. If you get output saying that wpasupplicant is already the newest version, you're good to go. Otherwise, follow the prompts to get it installed.

Create the Configuration File
In the terminal window type sudo mousepad /etc/wpa_supplicant.conf and hit Enter. Please note here that you could replace mousepad with any editor (like vim) that you would rather use. There's a really good chance that the editor window will come up empty since this file doesn't seem to exist by default on Xubuntu 6.10 and higher. When the file opens type the following in the window:






You will insert your own network ssid and psk instead of the text I have put in.
One gotcha here is that if you have specified the key to be ascii in your wireless router/access point, you have to enclose the key in quotation marks, and if you specified the key in hexadecimal, you will leave the quotation marks off. There are other settings that you can add to this file too, but I like to keep things simple, and this configuration seems to work great. Now, save the file and exit.

Make the Change Persistent
Next, type sudo mousepad /etc/network/interfaces and hit Enter. Once that window opens, find the heading for your wireless interface, and type wpa-conf /etc/wpa_supplicant.conf below it. If there is anything about WEP security below there and you're not using WEP on your wireless network, just replace it with the line above. See Figure 1 to see what my file looks like once I've made the change. Note that eth1 is the interface that my wireless card is on.

Figure 1

Once you have typed the line, save and close the file.

Restart the Network
The last thing to do is to put your changes into effect by restarting the network on your computer. In the terminal window type sudo ifdown eth1 and hit Enter, and then type sudo ifup eth1 and hit Enter, making sure to replace eth1 with the name of your interface. Your wireless network card should now be on the secured network and if you're network equipment is set up right, you should be able to surf the Web. This change will also make it so that the wireless network will automatically connect when you restart the computer too.


If you have any questions or comments about this procedure, please attach them to this post. Even if its only to say that you used it and it worked fine for you, we appreciate your feedback.


A long overdue update

Well, for the past several weeks I've been busy working on perfecting an iso image of EONS 0.1 to put out to the general public (and working the job that pays the bills and lets me use the Internet). It's not ready yet, but we still have installations we're trying on computers with beta testers. We're also compiling a list of the strengths and weaknesses of different distros as well as Windows. Some may call me a heretic for this, but Microsoft got a lot of things right with their OS as far as general usability and we need to learn from this. JeremyW and I are constantly frustrated by this, so here's what Microsoft got right and where Linux falls short for an all-purpose desktop:
  1. Installer: Most distros use a text-based installer. That's enough to scare away most users today, including my dad, a computer user since '86. A good graphical installer from a bootable CD is essential to success. I've been watching Debian's development of a win32 loader, and I think it's long overdue.
  2. Out of Box Usability: Nobody can argue that Linux is more powerful and customizable than Windows. But that's also somewhat of a downfall. It requires much more customization to make it polished after an install. Joe Average can't, and plain won't, edit scripts and config files to make his OS nice, he'll go buy an OS that's already nice so he can sit down and watch YouTube videos all day after an install. This requires a lot more preseeding and config in the installer, but makes a nicer product.
  3. Clean Menu System: Menus are much easier to navigate for the average person in Windows than Linux. I've yet to find a "Recently Used Apps" feature in a Linux distro, a feature most people use constantly.
  4. Hotplug Networking: In most Linux distros you have to restart or use an ifup/ifdown to get online after plugging in the ethernet cord or turning on wireless. This is necessary.
  5. Program Installation: This is one area that has gotten a lot better, in my opinion, thanks to Click-N-Run and Canonical. But people want to download a program, click on it, and have it install. My grandma can't build an install file and use the terminal to install programs, and God forbid she try to compile a program from source.
  6. Easy to Use, Centralized Help and Information: This is also getting better, but so many forums are full of mistyped or just plain wrong information to fix problems that it can be frustrating for anyone, no matter how experienced they are with Linux. There needs to be a good single point of information, or at least better documentation by distro teams.
These are the things that need to be worked on, Linux is a more secure and better option for an OS, but unless it's keyed towards the users who can't use a terminal and just need it to work without messing with it, Linux is doomed to always be a sidebar.

Let us know what you want in an OS, and where the strengths and weaknesses of different distros are. Email: eonsproject (at)