Wednesday, August 24, 2011

Fixing the Full Screen Flash Stutter (720p and 1080p)

Assuming your computer can handle the fact that Adobe Flash can be processor intense (especially watching the 720p and 1080p videos on Youtube or Hulu), you really don't want the videos stuttering when you watch them in full screen when you know your computer can handle it. This has been bothering me for a while so I decided to track down a working fix to share with everyone. This fix isn't hard to implement but I'll provide some screenshots for clarity:

Open terminal and type:

$ sudo gedit /etc/init.d/ondemand

When gedit opens, paste the following block of information at the very bottom:

for CPU_THRESHOLD in /sys/devices/system/cpu/cpu*/cpufreq/ondemand/up_threshold
[ -f $CPU_THRESHOLD ] || continue
echo -n 30 > $CPU_THRESHOLD

See the image below for the exact placement of the code, notice that it is placed below the "esac" that is already present.

adobe flash fix, hq movies, 720p, 1080p

If you're having problems exiting flash, you can try changing the niceness value to something lower. The original value is echo -n 40, I was able to keep HQ video playback and better system stability at echo -n 30 so changed that to the default value above.

After you're done editing that file, save it and we'll finish up the rest of the steps in terminal:

$ sudo mkdir /etc/adobe
$ echo “OverrideGPUValidation=true” > ~/mms.cfg
$ sudo mv ~/mms.cfg /etc/adobe/

Now reboot and you *should* be able to watch full screen videos now lag and stutter free. Enjoy!

Friday, August 19, 2011

Updating to Kernel 3.0.0-x in Linux Mint 11

With Kernel 3.0 comes quite a few bug fixes over 2.6 and it's going to take a while before Linux Mint allows you to upgrade to it.  So naturally you might be interested in upgrading to it.  Luckily it's not too terribly difficult to do.

To upgrade to kernel 3.0 you're going to either want to disable 3D acceleration -OR- download and install the latest version of your video card drivers from the appropriate website (NVIDIA and AMD/ATI for example) BEFORE you start.

Once you're ready to get started open up terminal and type the following commands:

$ sudo add-apt-repository ppa:xorg-edgers/ppa
$ sudo apt-get update
$ sudo apt-get install linux-headers-3.0 linux-headers-3.0-generic linux-image-3.0-generic --fix-missing

Now you'll see an error that gets spit out depending on which version of the kernel is available and you'll have to go back and fix the final part of the command.  The error will look something like this:

Note, selecting 'linux-headers-3.0.0-8-generic' instead of 'linux-headers-3.0'
Note, selecting 'linux-image-3.0.0-8-generic' instead of 'linux-image-3.0'
Note, selecting 'linux-image-3.0.0-8-generic' instead of 'linux-image-3.0'
Package linux-headers is a virtual package provided by:
  linux-headers-3.0.0-8 3.0.0-8.10
  linux-headers-3.0.0-8-generic 3.0.0-8.10
  linux-headers-2.6.38-10-virtual 2.6.38-10.46
  linux-headers-2.6.38-10-server 2.6.38-10.46
  linux-headers-2.6.38-10-generic 2.6.38-10.46
  linux-headers-2.6.38-10 2.6.38-10.46
  linux-headers-2.6.38-8-virtual 2.6.38-8.42
  linux-headers-2.6.38-8-server 2.6.38-8.42
  linux-headers-2.6.38-8-generic 2.6.38-8.42
  linux-headers-2.6.38-8 2.6.38-8.42
You should explicitly select one to install.

E: Package 'linux-headers' has no installation candidate
E: Package 'linux-headers' has no installation candidate
E: Unable to locate package 3.0-generic
E: Couldn't find any package by regex '3.0-generic'

In all of those it states that the latest version of the kernel is 3.0.0-8.  So now we want to go back to the final command and edit that part for each instance where the 3.0 occurred like so:

$ sudo apt-get install linux-headers-3.0.0-8 linux-headers-3.0.0-8-generic linux-image-3.0.0-8-generic --fix-missing

Now reboot and you'll see that kernel available in your GRUB or LILO menu.  If your system fails to boot with this kernel, select "Previous Kernel" and then open terminal up again and type the following command:

$ sudo nautilus

Navigate to the folder /boot and delete all the files that have the new kernel's numbers in it.  It should be:


Once they're deleted, type in terminal:

$ sudo update-grub

Your grub should now have the 3.0.0-x instance removed from the list.

Wednesday, June 15, 2011

ADB, Eclipse, and Android SDK the Easier Way

Update:  For an even easier installation process, use my 32-bit or 64-bit .deb installers.  Just double click on them and follow the prompt.

Outdated Information: (still works, but not as easy)

Easy Access Links: *** Please read the installation instructions at the bottom of the page. Also the long version is designed to talk you through every step of the process. The short version is for people that just want the abridged version that are comfortable with Eclipse or Terminal. ***

GitHub (if you know how to use it)

If my script has been helpful to you, feel free to donate to the cause.


  • 1.0.3 (6/18/2011) - Setup 99-android.rules automatically, created a symlink for ddms so it can be executed from anywhere -- has to be typed twice sometimes the first time it is run for some reason (multiple displays error).
  • 1.0.2 (6/17/2011) - ./android update adb wasn't launching properly.  *Should* now.  The script should end with Eclipse wanting you to install Android SDK Platform-tools.
  • 1.0.1 (6/15/2011) - ./android update adb added to script.  Eclipse interaction minimal.
  • 1.0.0 (6/14/2011) - Android SDK, Android NDK, Eclipse, ia32-libs automatically installed.  Eclipse and ADT require prompting.


Now that I've finished my first release of the script, it has gone through some testing on 64-bit and 32-bit Linux Mint 11 systems and the installer seems to work. Now I wasn't able to completely install ADB with this script because I haven't been able to figure out a way to configure Eclipse from within the script, nor do I know if it is possible. So there is SOME work that you will have to do. I started learning how to program about 5-7 days ago and that was when I set out to make this script. That said, there are bound to be some errors that arise that I probably cannot fix.


One thing I'd like to discuss is the logic of the script (skip ahead if you just want the download link and instructions). I wanted to make it so the script could be run multiple times on accident and error check itself. I also wanted to make sure that as long as you had the Android SDK or NDK that you would not encounter problems with them installing again on my script. This will also carry over to any other of my scripts that I plan to make that will call on either of these libraries.  The following files will be installed by the end of the script:  Android SDK, Android NDK, Eclipse, and for 64-bit systems ia32-libs will be installed.  An ADB environment will also be set up so that once the script has been run and terminal has been restarted you will be able to run ADB anywhere by simply typing "adb" after setting up Eclipse.

Things Changed on Your System and Instructions

  • To access Android Debug Bridge at anytime after the script has been run and your terminal reset (bash typed or terminal closed and opened) you can type the command "adb" from any location.
  • To access the Dalvik Debug Monitor, you can access it by typing the command "ddms" and if you get an error about multiple displays then type "ddms" again and it should start.
  • To reference the Android SDK to compiling something, it will be located in the following directory: /usr/local/android-sdk
  • To reference the Android NDK for compiling something, it will be located in the following directory: /usr/local/android-ndk
  • Eclipse is now installed and most likely located in Applications -> Programming.
  • 64-Bit Operating Systems had the package ia32-libs installed for compatibility reasons.

These instructions are for people that are able to more confident with Terminal and Eclipse.  The instructions are not overly complicated, but I have provided a more in-depth tutorial for those that need it.

  • Download the file
  • chmod +x
  • sudo ./
  • Install "Android SDK Platform-tools" and accept the licensing agreement.
  • *** Close all instances of Terminal once this is done or type bash ***
  • Test ADB in terminal by typing "adb" from any directory. (without quotes)


If you have a GitHub account then you can download the latest version of my code from this link.  That link should provide the latest version of my code when and if I need to make any changes.  The other link that will probably not be updated as frequently is this dropbox link.  If you're getting the code from GitHub, for the sake of this tutorial I will assume you know how to obtain the file.

Step #1:  Download the file and find it in terminal.

When you open terminal, you will need to find where the file is located.  If you're using Linux Mint 11 and Google Chrome, it is most likely going to be in the "Downloads" folder (case sensitive, no parenthesis).  We can change to this directory in terminal by typing "cd Downloads" (notice that the Downloads has a capital D).  You can list the file and directories by typing the "ls" command.

Step #2:  Grant executable properties to the installer.

Once the file has been found and you're in the same directory type the following commmand:

chmod +x

Step #3:  Install the file and go afk.

This part takes a long, long time depending on how fast your internet connection is.  Even longer if you have a 64-bit operating system (Don't worry!  The installer figures that out for you!) and has to do a lot of things right now.  You can either read ahead or go do something fun, I'd suggest the latter.  So to initiate this part type the following command and then enter your password:

sudo ./

Notice how there is a period and then a forward slash before  Very important to put those in there.

Step #4:  Install Android SDK Platform-Tools

The Android SDK Platform-tools contains the ADB.  Also, if you plan to do any developing in Android this screen will probably be of some use to you.  Start by selecting "Available packages" from the left side and then under Android Repository install the "Android SDK Platform-tools."

Android SDK AVD Manager Eclipse Linux Platform Tools

Accept the next screen and if you have a pop up that asks if ADB can restart say "Yes."  Close out of Eclipse if you are done with it.

Step #5:  Test ADB and Done!

IF YOU HAVE ANY OPEN TERMINAL WINDOWS RIGHT NOW CLOSE THEM TO REFRESH THE ADB ENVIRONMENT.  Open terminal and type "adb" without the quotes (it doesn't matter which directory you do it from).  You should see a bunch of commands go across your screen to indicate that it worked like below:

adb google sdk android eclipse ndk linux

If "adb" doesn't prompt anything, try typing "bash" first and then type adb again.

Sunday, June 12, 2011

Just a little talk about a side project

Since I have been working more on Linux and Android together, I just wanted to keep people up to date on what I've been doing with my projects and the website. I managed to get the VLC source code compiled into an APK and working. It runs smoothly for various formats, I'd like to do a write up on how I got that working soon and also make an automated script to download the lasted script from their git repository. My hope is to allow the user to learn about it and also give them a quick alternative to updating their APK for the phone that they can swap out for the latest build of VLC while it's still in the alpha state.

The other thing I've been working on is automating as much of the Android SDK / Eclipse process as possible for people that want to start programming and are afraid to come to Linux. I want to do this because I love the idea of an open source community, be it in Linux or Android and really want them to thrive. Linux can be intimidating when you first start using it and can require you to format your computer every time you screw up your system. At least until you figure out the file system and then you can fix almost every problem pretty easily. Google however, seems to make it fairly difficult for a first time person coming to Linux to start programming and I'd like to try to bridge that gap by automating as much of the Eclipse set up as necessary to get more developers working on Android in a Linux environment. I don't know if I'll be able to automate everything required to get a system installed with ADB, but possibly one or two steps away and just requiring GUI interaction in Eclipse (I'm still researching this part, to see if I can do any of this).

In the mean time, if you'd like to make any suggestions for write-ups I'll gladly take suggestions in the comments section or on twitter at @ArchDukeDoug (still waiting for the title to be granted in any country, probably not going to happen). Suggestions allow me to help you and also help myself, so don't be shy with them. If I'm able to do them I will definitely try.

Saturday, June 11, 2011

Auto-Mount Hard Drives in Linux

Since it has been a few days since I have made a post and I am working on trying my luck at bash script writing, I've been a little preoccupied. So I decided to do a short write up on auto-mounting (the easy way) hard drives. We're going to take a look at a program called "pysdm" located in the Software Manager:

pysdm Graphical Storage and Hard Drive Manager

When the program is installed, you can run it under Administration -> Storage Device Manager. This program will provide a graphical solution for editing your hard drives boot options, the owners, and various options. My problem is that I have two hard drives that are auto-mounted and one that is not. So I'm going to configure the one that is not. When you start the program up, you'll be greeted by the screen below:

pysdm Graphical Storage and Hard Drive Manager

Expand the trees for the hard drives and click on the partition listed on the drive. In my case, I'm going to be auto-mounting sdc1. When I click on it for the first time, it asks me if I want to prepare the hard drive, say yes. Click on "Dynamic Configuration Rules" for some information about your hard drive (model, vendor) and the ability to assign some custom rules. Back under General is where the assistant is though and that's the feature I'm going to be going over. Click on Assistant now for this screen:

pysdm Partition Assistant

When you're satisfied with the settings, hit apply and you've got a hard drive that auto-mounts. Simple!

Sunday, June 5, 2011

Sync Music to your Android OS Device in Linux with Banshee Media Player

I always had a hard time finding a way to sync my music and playlists easily to my Android phone in Windows. I tried using Doubletwist, Winamp, and even some strange AdobeAIR playlist editor. There was just never a clear cut way to go back and forth with my playlist. Once you figure out how to get Banshee and your Android phone on the same page, the two coexist wonderfully with only a few exceptions. "What are those exceptions?" You might ask. Or you may just skim past this and completely ignore this part and figure out that it's difficult to sync certain file types later. Those exceptions are that you have to edit a file with the MIME Type of the extensions that you want to add. I'll give you a sample of the file I used which includes as many of the MIMES as I could think of at the time and try to include an example in case I missed one so that you can add more to the list.

First thing we want to do is switch Banshee to daily build to get the most up-to-date version. To do this open up terminal and type:

sudo add-apt-repository ppa:banshee-team/banshee-daily
sudo apt-get update
apt-get upgrade

If for some reason Banshee is not installed right now (it is by default with Linux Mint 11), you can install it with: sudo apt-get install banshee

Now connect your phone by USB to your computer and set your phone to USB Mass Storage. Open the root SD card directory with nautilus and create a new empty file (right click -> create document -> empty file) called .is_audio_player and edit it with gedit.

is_audio_player for android phone

In the empty gedit file put the following information (like above) into the text file:

audio_folders=Music/, Video/



Adding the file to the folder allows Banshee to see that your Android phone is actually a music player. Editing the contents of it will tell Banshee what file formats that the phone supports. The one format that I've had trouble getting to work are *.avi because they use different codecs and I get an error. Now start Banshee up and you should see your phone listed under "Devices" now.

Banshee Media Player Sync

You can import the music from your phone by right clicking on right clicking on the x GB Filesystem and selecting "Import to Library" and that will copy all of your files into the folders. Otherwise you could manually copy the folders from your SD card to the ~/Music and ~/Video folders as well as the playlists and import them into Banshee. If you're importing a playlist, you need to open the playlist with gedit and convert all of the backslashes (\) to forward slashes (/) with the search -> replace -> replace all feature. Once you've replaced all the slashes, try importing the playlist under File -> Import Playlist (try doing them one at a time if you have problems with them leaving songs out).

That's it.  Your device should now be capable of syncing to your Banshee Media Player.  It may take a little playing with to get the playlists set up for your device and your music set up in Linux and organized.  Your videos may also error out depending on if it is supported by the .is_audio_player.

** Extra Notes**

If your video is unsupported by Banshee, you can try adding the MIME-Type to the .is_audio_player by following the format: video/name or audio/name and you can find the name from looking up the extension on wikipedia.  For example:  audio/mpeg,audio/x-wav,video/mpeg,video/quicktime

I believe Apple devices (iPhone, iPad, and iPod) should all work out of the box with this program because of a plugin that comes installed by default.  I'm not 100% positive though, but under Extensions there is one listed for Apple Devices Support listing the three I previously mentioned.  I just am not sure what is required to set that up.

Friday, June 3, 2011

Setting up Thunderbird and Adding Google Calendar Sync

I am trying to slowly move away from Windows one program at a time.  So recently I realized that it was an inconvenience checking my school email and my Google email separately on their respective websites, as opposed to using Microsoft Outlook 2010 to keep my folders and calendar organized.  Luckily, Thunderbird (alternatively, Sunbird for just a calendar) is up to the task of handling my email and calendar needs.  Well, most of them anyway.

Things you will need before we get started:
Thunderbird from Software Manager.
xul-ext-lightning from Software Manager.
Google Account
Provider for Google Calendar - Thunderbird Extension

Once we have those things load up Thunderbird from your main menu.  You'll be prompted to enter some basic information about the email address you want to set up.  We'll enter a display name, our google account, and the password we provided.

Thunderbird Email Client Setup

With Gmail, Thunderbird will find the settings automatically and start downloading your email as soon as you hit create an account.  This will leave you with something that looks like this:

Mozilla Thunderbird in Linux

Now, I also need to add my school email address which is a little more difficult because it is an Outlook Exchange 2007 Server and Thunderbird can't quite figure out the settings by default.  So first we need to add another account by going to Edit -> Account Settings.  Go down to Account Actions toward the bottom left corner of this screen and click on "Add Mail Account."

You will now go through the same process of setting up the Gmail account, if it fails you will be asked to enter the correct ports and incoming POP3/IMAP and outgoing SMTP URLs and should see the screen below:

Failed Thunderbird Setup

Now that both of my accounts have been set up, I need to get everything a little more organized.  To sync the folders for my IMAP address, if they're not doing it already, right click on the name in the left window and select "Subscribe" and you should see your folders from your exchange server like so:

IMAP Thunderbird Subscribe

This will now filter your emails into the appropriate categories and restore your folders.  You'll also have two separate listings for your email accounts so that your emails do not get mixed up.

Now, we need to set up Google Calendar.  First we need to install the extension Provider for Google Calendar.  To do this, download it and then go to Tools -> -> Add-Ons -> Install and then navigate to the file (or search for it in Get Add-Ons).  Restart Thunderbird and go to Events and Tasks -> Calendar (or use the Thunderbird hotkey Shift+CTRL+C).

Google Calendar in Linux using Mozilla Thunderbird

So this is the basic calendar, but now we need to add our Google Calendars from their website.  Log in using your favorite browser and on the left side of the page you should see ~4 calendars listed by default.  We'll use US Holidays as the sample, but you can set up as many calendars as you want.  You just repeat this process for each calendar you want to add to Thunderbird.

Select the arrow to the right of US Holidays and then select Calendar Settings.

Google Calendar Settings

From here we want to click on the button "XML" and copy the address that pops up for the next part where we set up this Calendar.

Google Calendar XML Location

Return to Thunderbird and right clicking on the bottom left window anywhere below "Calendar" and select New Calendar -> On the Network.  Select Google Calendar and paste the link we copied from above into the location.  Enter your Google account information and then pick a name and color for this calendar.

Google Calendar Setup in Thunderbird

If you want to do this for your private calendar (, just use the private XML file and Thunderbird will be able to post changes to it.  They will appear on your Google calendar account and any device capable of receiving it such as a mobile phone.

Now all you have to do is test it.  I tested it from my Droid X -> Thunderbird and Thunderbird -> Droid X just to make sure I could get calendar notices going both ways.  It took probably 5-10 minutes for them to appear for me.

Thursday, June 2, 2011

Native Applications for Windows and Linux

While discussing Linux with my wife for a while, she brought up something that a lot of Linux users are guilty of saying (myself included) and I wanted to bring attention to that with a post.  She said that we always make a comparison that we have programs "like" a Windows application and sometimes you need or want the real thing.  For example, you may have a lot of money invested in your iTunes account and are not too thrilled with the idea of switching to Banshee (though I ditched iTunes many, many years ago and like Banshee personally) and this is understandable.  For those of you that would like cross-platform applications I've decided to try and build a list of some that you have probably heard of and may be likely to use.

Web Browsers

Mozilla Firefox

Firefox takes the second highest percentage of the market share behind Internet Explorer, so there is a good possibility that you have heard or even tried this browser.  If this browser is a favorite of yours and you want it in Linux then you're in luck.  There is a good chance that it will come installed by default in almost any distribution that you choose to use.

Google Chrome is another browser that you've likely heard of fairly recently due to increasing popularity.  This browser features include the ability to sync your apps, passwords, preferences, themes, bookmarks, extensions, and autofill options across all computers that use your Gmail account.  

Opera is another browser available on Android/iOS/Linux/Mac/Window that is intended on allowing users to go between devices easily.  Other than that, I am not too familiar with this browser.

Productivity & Multimedia

Audacity - Sound Editor

Audacity allows the user to record live audio, edit sound files, splice audio, change speed and pitch, and many other features including the use of plug-ins.

Dropbox - Backup & Sharing

Dropbox is a program that runs in the background of your computer and allows you to synchronize folders between computers of the same account, share folders between friends, or have a public folder to share files with anyone (like the images I use for the blog).  They offer a free service of 2 GB up to 8 GB of storage before you can opt to pay a monthly fee for more.

FileZilla Client - FTP Client

The FileZilla client is a FTP client that is available across all platforms.  The server on the other hand is available on Windows only.

LibreOffice - Office Suite

LibreOffice is capable of doing many things that other office suites can do.  There are 6 programs in LibreOffice, some of which include: Writer, a word processer, Impress, for presentations, and Math, an equation editor.  I also recommend you check out OpenOffice, since both projects were originally designed by the same team prior to a falling out.

Gimp - Photo Editing

Gimp is a free photo editing program that a lot of you have probably used, particularly if you are not a serious graphic designer and just need to edit the occasional photo.  I'm not going to bash it though, some very impressive things can be done with Gimp if you take the time to learn it, but it does have a slightly higher learning curve than Photoshop in my opinion.

Inkscape - Vector Graphics Editor

According to their website: Inkscape is an "open source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format." - Office Suite

It is possible you have heard of this program or even used it before in Windows.  This Office Suite consists of a word processor, spreadsheet,  and presentation software.  If you've used this, I suggest you try out LibreOffice as well and see which of the two you like better since it is from developers.

Picasa - Picture Management

Picasa is a place where you can upload, edit, share, and manage your photos online.

Thunderbird - Email Client

Thunderbird is a cross-platform email client that works for many types of services.  It works for all your standard server types and can even be set up with an Outlook Exchange server, but has some trouble properly syncing some aspects of it.


Pidgin - Instant Messaging

Unlike many chat programs in Windows that support multiple clients, this one is both free and does not have any advertisements. Also, if your particular client isn't supported by default, then chances are that a plugin for Pidgin exists to support it. The supported chat networks are as follows: AIM, Bonjour, Gadu-Gadu, Google Talk, Groupwise, ICQ, IRC, MSN, MXit, MySpaceIM, QQ, SILC, SIMPLE, Sametime, XMPP, Yahoo!, and Zephyr. Through the addition of plugins, you can gain access to Facebook IM, Skype, Twitter, Xfire and more.

Skype - Internet Phone

Skype has numerous features and the fact that it has a native client for Linux is definitely a good one.  It covers the spectrum of Internet phone calls, to video calling, and messaging.  

TweetDeck - Social Media

TweetDeck is available two ways currently in Linux.  You can install it as a standalone application with this tutorial or in the Google Chrome web app store for free.  This application helps organize all of your social media (Twitter, Facebook, Buzz, LinkedIn, Foursquare, and MySpace) accounts into easy to read columns and helps you keep track of when you have new messages.


KeePass - Password Manager

KeePass is a password manager that remembers passwords and stores them in a central database protected by a master key or key file.  To unlock your database, all you have to do is type the password or select the password file and your database is unlocked.  

TrueCrypt - Encryption Software

For the security-conscious out there, TrueCrypt allows you to encrypt folders, partitions, or storage devices and access them by entering a password of your choosing.

Media Players

Boxee is a media program that is capable of turning your computer into an on-demand home theater PC and providing you access to many services that you may subscribe to.  It also allows you to stream media from your hard drives to your TV/monitor should you choose to do that.

A benefit of VLC is the ability of it to play almost anything.  This is true of the Linux version as well and it is also a light weight video player.

If you want something a little more interactive and organized for your media, XBMC is a great application for when you want your computer to be act like a home theater.  If you would like help setting up XBMC to download cover art, (almost) automatic subtitle downloading then you can follow my tutorial here.

Tuesday, May 31, 2011

Recompiling your Kernel to 3.0.0-RC1 (or any later version) in Linux Mint 11


As part of Linux's 20th birthday, Linus Torvalds has put out the release candidate version 3.0.0 of his kernel.  His changelog can be found here and I congratulate anyone that finishes it, because I did not.  Now, from what I did manage to read it includes many fixes including improved video support and support for the Microsoft Kinect.  If you're interested in installing it in Linux Mint 11, like I was it will probably take a few hours or more (mostly automated) depending on if you have many errors and the level of customization that you choose to do to your system.  When you're done with installing the kernel, it will still leave the old kernel in your boot list in the event that you do not like the kernel or it is unable to boot.  Still with me?  Good!  Open up terminal and follow along:

Part 1 - Get the Kernel
You can check for a new version of the kernel at  If there is a newer version than 3.0-rc1 that has the [Full Source] available, this method *should* still work.  If there is a new version, all directions below will have to be adjusted for the new file name and directories created because of it.  Here is how you can get it for the one we're installing now:

cd /tmp


Part 2 - Extract the Kernel

sudo tar -xjvf linux-3.0-rc1.tar.bz2 -C /usr/src

cd /usr/src/linux-3.0-rc1

Part 3 - Install Files Necessary to Compile Kernel
I *think* these are the correct files, I'll have to come back and do a revision if I got them wrong because my Dropbox text that I was typing up messed up and reverted to the wrong version that left out this part and I had to check my terminal history for what was installed during this step.

sudo apt-get install gtk+2.0-dev  libglade2-dev libglib2.0-dev

Part 4 - Configure the Kernel
This is going to be the part where I can't really help you, you'll have to know about your system if you plan to change anything about your system.  You'll have a long list of options that you can turn off [N], have loaded automatically into the kernel [Y], or loaded as modules [M] (which you have to load for your system to be able to use every time).  The options are not that scary, but you may not understand a lot of them.  If you are not sure then just leave them alone and move past that option or google them and see if they are related to your system.  There is plenty of documentation of each option that I can't cover completely.

sudo make gconfig

Part 5a - Compile the Kernel
This part is going to take a long time to do, probably a couple of hours if you have a relatively quick system.  It's going to be completely automated so once you've started you can go do something else.  I chose to turn my screensaver off so I could periodically glance over and see if it was done from far away.  If you're lucky, you won't get any errors.  If you don't get any errors, go to part 6.  If you do get errors, go to Part 5b.

sudo make

My error message was "error: WARNING: modpost: Found 4 section mismatch(es)."  Yours may have a different amount of sections listed though.  If you get this message just go to Part 5b.

Part 5b - Compiling the Kernel with Errors
Again, this is going to take a couple of hours, but once it finished I didn't have any errors.  I am also not sure how it changes the settings or if you could just start by running it from here.  Regardless I had to run it this way to be able to compile my Kernel.


You shouldn't have any errors now and it should allow us to install the kernel modules.

Part 6 - Installing the Kernel Modules
This part shouldn't take anywhere near as long as compiling the kernel did, but will still probably take a few minutes, possibly upwards of 10.

sudo make modules_install

Part 7 - Installing the Kernel
Again, this part will be quicker.  Expect it to take no longer than a couple of minutes.

sudo make install

Part 8 - Making an initrd Image of the New Kernel
For our system to be able to boot into the new kernel, we need to make an image of the kernel that we just made for our system to use.

cd /boot

sudo mkinitramfs -o initrd.img-3.0.0-rc1 3.0.0-rc1

Part 9 - Update GRUB with the New Kernel Image
We need to tell GRUB that we just finished making the new kernel and that it is in the directory and to add it to the boot screen.

sudo update-grub

Part 10 - Reboot and Bugs
To get into the new kernel all you have to do is reboot and select it from the screen.  If it takes a while to load and you see the Linux Mint GRUB screen or a black screen for a while, just be patient it means that a service is failing to load properly.  For me it was nouveau and after a short time (30 seconds or so), the operating system booted up.

Installing TweetDeck in Linux Mint 11

With my plans to try and use Twitter, I decided that I also wanted to install Tweetdeck and not just the Chrome extension of it.  I like the actual application better than the extension because my tabs are cluttered enough already.  Everyone likes companies that provide cross-platform support and a native version better, right?

So I'll give you two sets of instructions, one for 32-bit and the other for 64-bit Linux Mint.

64-Bit Linux Mint

Download and install getlibs-all.deb.  Open terminal with CTRL-ALT-T and then type these two commands:

sudo apt-get install lib32asound2 lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6 libc6-i386 lib32nss-mdns

sudo getlibs -l \

Once you've done these steps, follow the 32-Bit Linux Mint instructions to finish installing TweetDeck.

32-Bit Linux Mint

Start by downloading the Adobe Air .bin file from this link and Tweetdeck from here.

Now open terminal with CTRL-ALT-T and navigate to your download folder.  In terminal type:

chmod +x AdobeAIRInstaller.bin
sudo ./AdobeAIRInstaller.bin

Once that is done installing return to your Downloads folder in Nautilus.  Double-click on the TweetDeck_0_37.5.air file located in your download folder and follow the prompts and the 32-bit version will be installed in Menu -> Accessories.

EDIT: Fixed some misspelled package names and instructions.

Sunday, May 29, 2011

Upgrading GNOME3 from 2.x in Linux Mint [OUTDATED]


***Warning***I would just like to say that before you start that installing GNOME3 can cause problems for your system and that you may have to format.  GNOME3 is not quite ready for release on Debian based systems, but it has been said that Linux Mint is planning on supporting it in the future.  That being said, if you're not breaking stuff then you're not having fun.

I had to try a couple of things and format my laptop many times.  I managed to get GNOME Session updated to 3.0.x, but so far I have been unable to get GNOME Shell to compile past version 2.32.1.  I'm still working on that, but I'll do a write up on getting GNOME Session upgraded.

Start by opening terminal and adding the GNOME repository:

sudo add-apt-repository ppa:gnome3-team/gnome3

Now go to Control Center -> Software Sources -> Other Software.  Change both sources that say katya (main and source code) to say natty like so:

Close both windows and return to terminal.  Hit reload when prompted by software sources.  From terminal type the following commands to begin upgrading to the GNOME 3 Session:

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install gnome-session
sudo apt-get dist-upgrade
sudo apt-get upgrade
sudo apt-get install gnome-shell

This will update everything to 3.0 except gnome-shell (at the time of writing this) which will only install version 2.3x.   It seems that will have to be installed from the source repository to get the 3.x version.  I'll do a writeup on this once I have figured that out.

After that is installed though, log out and try to log in again.  You will need to select the display type when you log in.  You will have 3 types of Gnome listed most likely: Gnome, GNOME, and GNOME Classic (No effects). "GNOME" is the one that will load the GNOME3 Session.  If the screen is black and all you can see is an Activities bar up top, you need to click on it and search for the program "Background" and just change the background because there was a problem with it loading from your old one (you can go back to it after you change it).

If all goes well, which it may or may not have then you should end up with something that looks like these screenshots:

Saturday, May 28, 2011

SBFing the Droid X using Linux Mint

I thought I would help contribute to this by writing a post about SBFing the Droid X using Linux Mint. This is particularly relevant considering A) I had to do it today and B) the 4.5.596 Gingerbread update did NOT change the bootloader for those of us with a Droid X, so we can still SBF back to Froyo when we screw up our phones (like I did this afternoon). The best part about SBFing with Linux is that now that you've (hopefully) learned some of the ins and outs of the operating system from the earlier posts, I think you'll find that the SBF process is much more hassle-free with Linux than it is with Windows.

As far as software, you will need:
  1. sbf_flash utility. This can be found here.
  2. The actual SBF file. Make sure you get the right version. I recommend the Android 2.2.1 System Version 2.2.340 Full (VRZ_MB810_2.3.34_1FF_01) (Current OTA) for best results. This can be found here. It can take quite awhile to download, so just be prepared.
On the phone end, you will need to have:
  1. Your Droid X, preferably fully charged. If your battery is low, you will not be able to SBF. I've never done this with less than 90%.
  2. A USB cable. Plug this into your computer, but hold off on plugging it into your phone just yet.
Start off by powering down your phone. Hold the camera button and the volume down buttons at the same time. Then hold the power button. The screen will likely flash for a second - now let go. The bootloader screen will pop up. It will say Bootloader: 30.04, several spots of black screen, and then Battery OK, OK to Program, (assuming your battery is in good shape) and Connect USB Data Cable. So far so good!

Now open a terminal window. You'll want to navigate to the directory where you've placed your sbf_flash utility and your SBF file. I made a folder called ~/sbf. Once you're in the correct directory, you can type the following command:
This will list the files in the directory. You should see sbf_flash and VRZ_MB810_2.3.34_IFF_01.sbf. Now type the following:
chmod +x sbf_flash
If you've been following the blog, you've seen this before. This simply makes the sbf_flash utility executable to run as a program.

Now, connect your Droid X via USB cable to the computer. It should show on the screen that it is connected! Once it is connected, type the following command into the terminal window you still have open:
sudo ./sbf_flash VRZ_MB810_2.3.34_1FF-01.sbf
Your terminal window should look something like this:

The phone will now begin the SBF process (after you enter your password). I would like to note here that after the SBF process is complete, the phone will reboot. Once the phone reaches the boot animation (i.e. the scary Droid eye) I always unplug my USB cable. I have never been able to SBF without immediately bootlooping after, so for others who have similar problems, this is the solution:

  • During the boot animation, pull the battery.
  • Return the battery to the Droid X.
  • Hold down the home key, then hold down the power key. Wait until the Android logo with a triangle and an exclamation mark pops up.
  • Now press the search key. This is what is known as stock recovery, just in case you haven't seen it before.
  • Scroll down to "wipe data/factory reset" using the volume buttons, and select it using the camera button.
  • When it is finished, press the camera button on the "reboot now" option. The phone should reboot successfully.

Congratulations, you have just managed to SBF using Linux Mint!

Tweaking Linux Mint 11 (Part 1)

As you start to add and change programs to your system, there may be some behavioral tweaks (simple or complex) that you want to do to your system to make your life a little easier.  I would like to cover some of the more important tweaks that I think people will want to change.

Preferred Applications

This feature is located in Menu -> Control Center -> Preferred Applications.  It grants you access to the applications that are run by default whenever your system makes specific calls.  For example, in the screenshot below I have changed my preferred web browser to Google Chrome so that anytime I click on a hyperlink it will no longer be opened with Firefox.  I chose Google Chrome because of the effortless bookmark/extension sync feature across Windows/Linux platforms if I ever need to switch back and forth.

Configuring the Boot Loader

Some of you may not be happy with Linux Mint 11 being the default operating system that is booted into or may want to change the time it takes for GRUB2 to boot into one of the operating systems.  To do this go to Menu -> Control Center -> StartUp-Manager.

First you can change your default operating system that is highlighted by GRUB2, so that you automatically boot into it from the boot loader.  You may also change how long it takes to boot into your default operating system using this program.

The "Timeout" option indicates how long the boot loader screen will stay active giving you the option of selecting an operating system.  If you would like to automatically boot into the operating system that you have selected enter "0" for the time.  Otherwise you can pick a default timeout that you would like.  However, if you would like to set it to not time out at all then there are some *slightly* more complicated steps to follow below:

Start by opening a terminal and typing the command:

gksudo gedit /etc/default/grub

Here we can change the time to infinite and do some more advanced configuration options as well.  By default this is the top few lines of my grub:

If you want to change your GRUB timeout from x to infinite change the following line:


If you would like GRUB to remember operating system you booted into last and highlight it automatically on restart, change the first line and add this one after it (both case sensitive):


Now, if you've made any changes in gedit hit the save button and then type this for following for your changes to take effect:

sudo update-grub

Restart and your changes should now be in place.  You can test the GRUB_DEFAULT and GRUB_SAVEDEFAULT by setting a low GRUB_TIMEOUT and booting into different operating systems and rebooting.

Starting a GUI-Based Application on Boot

It's possibly you may want to start an application that has a GUI when starting your system to help automate your system a little.  You may also have one that is being run automatically that you want like removed.  Go to Menu -> Preferences -> Startup Applications.

From here we can either add or remove an application.  For the sake of the tutorial, I'm going to add a Minecraft server so that I don't have to start it up every time I turn my computer back on.  Start by clicking Add and entering the name of your application.  Now we want to type the command to execute the application from terminal.  For some samples, check out the Native Games for Linux Mint 11 section on menu commands.  My Add Startup Program looks like the following:

Name: Minecraft Server
Command: java -jar /home/user/minecraft_server.jar nogui

Or if you'd like another example of how to start Pidgin when your system starts up:
Name: Pidgin
Command: pidgin

Friday, May 27, 2011

Linux Mint 11 is out!

Linux Mint 11 "Katya" was just released yesterday and some of you would probably like to know how to upgrade your system to the release version of Katya.  Depending on how well you stay on top of updating your system, it is entirely possible that you've already updated your system out of the release candidate stage.  For those of you wanting to know how to do it though without having to lose all of your information formatting and reinstalling Linux Mint 11, I'd like to just tell you what is involved in updating your distribution.

If you started a while ago and have Linux Mint 11 RC and want to update to the final release then all you have to do is go to Administration -> Update Manager.  Now install updates for all level 1 or level 2 application.

You'll probably have to do it twice to install the two sets of updates below:

After that, you're done.  You now have the appropriate packages for the release of Linux Mint 11.

Thursday, May 26, 2011

Native Games for Linux Mint 11

**Correction about .deb Files**  If your .deb files do not open with GDebi Package Installer when you double click on them but rather Archive Manager, then right click on them, select Open With Other Application... type "gdebi-gtk" for custom command.  Select 'Remember this application for "Debian package" files' and it should now open all .deb files when you double click on it.

If you're not interested in the games, the installation procedures for the various file types could be useful located down below for all of the games in the Humble Indie Bundles #1 and #2.

There are quite a few games available natively on Linux that are actually quite fun.  For starters, Indie developers love us and we love them.  That's why it is a good idea to support projects such as The Humble Indie Bundle when it comes up.  The Humble group has set up a donation with Indie developers that lets you decide on a tip being split however you like between the game developers, Electronic Frontier FoundationChild's Play Charity, and Humble Bundle, inc.  The goal of this project is to let people donate any amount they want or can to the project to get all the available DRM-free, cross-platform games(Windows/Linux/Mac).  They also work with programs such as Steam, Desura, and OnLive to give you keys to access your games there to.

When a humble bundle is available that you've purchased, or you may already own one (or the games themselves).  You'll possibly have access to the a screen that looks like the one below:

One of the first things you most games have multiple installers.  At very least, they almost all have DIFFERENT types of installers.  So, first thing we need to do is figure out how we deal with the the various installation files.

Installing Braid (

In order to install this file, open terminal and navigate to the directory that the game was downloaded and type the following commands:

chmod +x

This will install bring up a menu to install Braid and eventually have you choose between the 32- and 64-bit installation.  The game will be located in Menu -> Games.

If you get an OpenGL error while trying to run this game then it may be an issue with GL_EXT_texture_compression_s3tc being disabled due to licensing in your country.  It can apparently be remedied by typing apt-get install driconf in terminal and turning that feature on in driconf configuration under Image Quality tab.

Installing Cortex Command (cortex_command-amd64-installer-b24-12162010.bin)

Cortex Command will install exactly the same way as Braid did.  So open up terminal and type the following commands (it will change depending on if you have the 32 or 62 bit file):

chmod +x cortex_command-amd64-installer-b24-12162010.bin

The game will be located in Menu -> Games.

Installing Machinarium (Machinarium_full_en.tar.gz)

This one is going to be a little different and more difficult to install, but let's start by going to terminal and navigating to location that Machinarium was downloaded to.  In particular, this one doesn't actually have an installer and is a flash game.
tar xvf Machinarium_full_en.tar.gz
mv Machinarium ~/Machinarium
To give this a menu launcher, go to Menu -> Preferences -> Main Menu.  From Main Menu, go to Games -> New Item and use the following launcher properties for Machinarium:

Type: Application
Name: Machinarium
Command: bash -c "cd ~/Machinarium/ && ./Machinarium"

If you would like an icon for it, I am using this one.  This game is not currently capable of being launched from the MintMenu, but can be launched from a Gnome Main Menu (Right click on Task Bar, Add to Panel -> Main Menu).  Otherwise, you can just right click on the application and open it from the ~/Machinarium directory.

Installing Osmos (Osmos_1.6.1.deb)

This is going to be one of the easiest things you will install.  Debian packages are basically installation files for Debian distributions such as Ubuntu and Linux Mint.  To install this file, double click on it and you will be taken to the Package Installer:

Click Install Package and the game will be installed to the Menu -> Games folder.  Once it is done you will see a message saying that your installation is complete and that is all that you have to do to install the Osmos Debian package.

Installing Revenge of the Titans (RevengeOfTheTitans-HIB-18012-amd64.deb)

This Debian package comes in two incarnations, a 32-bit and 64-bit package.  I wasn't paying attention when I was downloading it and tried to install the 32-bit one on my system and was greeted by this helpful message:

This at least let me know to go back and download the 64-bit package.  To install this one, the instructions are exactly the same as Osmos.  Double click on the appropriate Debian package and then hit Install Package.  The game will be found in the Menu -> Games folder.

Installing World of Goo (WorldOfGooSetups.1.41.deb)

Again, installing this package is very easy.  Just double click on WorldOfGooSetup.1.41.deb and go to Install Package.  World of Goo will be located in Menu -> Games.

Installing Aquaria (

Open a terminal and type the following commands to start installing Aquaria:

chmod +x

It will be located in your Menu -> Games folder.

Installing Gish (gish153-1.tar.gz)

Open a terminal and navigate to gish153-1.tar.gz and then type the following commands:

tar xvf gish153-1.tar.gz
mv gish153 ~/gish

Now we need to create a menu icon in Main Menu.  Go to Games -> New Item and use the following settings and an icon:

Type: Application
Name: Gish
Command: bash -c "cd ~/gish && ./gish"

Installing Lugaru HD (lugaru-full-linux-x86-1.0c.bin)

This follows the same rules as the bin installations above, so we'll do that for this one as well in terminal:

chmod +x lugaru-full-linux-x86-1.0c.bin

That's it.  Follow the installation screen and it'll be in your normal Menu -> Games screen.

Installing Penumbra Overture (

This will install the same way as the bin files.  Start by opening a terminal and typing the following commands:

chmod +x

Follow the dialogue and then the game will be installed to your games folder.

Installing Samorost 2 (

Samorost 2 is a flash game that involves playing from an html file.  So we're going to extract the contents of this game to a folder (keeping the same installation theme of the previous games ~/gamename, but not important).  Open terminal and navigate to the zip file and type the command:

unzip -d ~/samorost2

Now go to Main Menu and set the icon and launcher properties to the following:

Type: Application
Name: Samorost 2
Command: bash -c "cd ~/samorost2 && gnome-open Samorost2.html"

Again, with things that we've made an icon for, they won't run in MintMenu but they will run in the Gnome's Main Menu.

Minecraft Beta

You have probably heard about Minecraft - you may even own it.  The game runs very well in Linux and is a Java game so it is cross-platform.  This means there is very little you have to do (besides buying the game) to play the game.  You can play it from the browser or download it from their website.  Once it is downloaded, right click on the file and select Properties -> Permissions -> Check the box titled "Allow executing file as program" (this is the same chmod +x).   Run the program once by double clicking it and let it patch everything by logging in.  Now close the program and go back to your home user directory.  Press CTRL+H to show hidden files and copy the minecraft.jar file into .minecraft.  Now we need to make a Main Menu entry with an icon and appropriate settings:

Type:  Application
Name:  Minecraft
Command:  bash -c "cd ~/.minecraft && java -jar minecraft.jar"

And again, as a reminder, the Main Menu entries won't work with MintMenu.  Also mods, skins, and texture packs to beautify Minecraft can be found at Minecraft Forums.  I suggest you head on over there and look for a pack that suits your interests.

Wednesday, May 25, 2011

Installing Wine in Linux Mint 11 [Reference Page]

Introduction to Wine

Wine is a compatibility layer that allows your system to run Windows binaries that allows the binaries to call Windows APIs that are implemented in DLLs.

Wine is not entirely an emulator like VirtualBox in a couple of ways.  First, you do not need to install any of the Windows operating systems to run a program that requires a particular Windows API.  You can achieve this effect without owning a copy of Windows.  Second, an emulator slows the system down by emulating an entirely new operating system for the processes to go through.  By taking just the libraries of Windows and the speed of a Linux system, you can sometimes gain speed over running a program in Windows.

It should be said that Wine has to convert Direct3D games to OpenGL for them to run properly in Linux.  This can cause a performance hit of varying degrees for games that are not available in OpenGL.  Now, games that have an OpenGL setting are more likely to be able to outperform Windows due to the fact that Wine does not have to use processes converting the Direct3D to OpenGL before you see it.

Installing the Latest Version of Wine

To install the latest version of Wine in Linux Mint 11 enter the three commands below in terminal:

sudo apt-add-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.3

Configuring Wine and Winetricks

Under All Applications -> Wine you will have two applications installed that will help you configure Wine to run Windows executables.  The first is called "Configure Wine" that allows you to specify the operating system to emulate, which DLLs to have installed (ex. Direct3D 9), shader and audio options.

The next application will let you automatically install some applications, games, and benchmark tools.  It also is capable of downloading and installing required programs (wine prefix -> Install a...)  such as DirectX and Visual C++

What Programs Run in Wine?  (And How Well)

While Wine is constantly being improved, there are many factors that will determine how well your application runs in Wine.  A 32- or 64-bit operating system or version of a software can both cause problems or work better than the other.  Also the distribution of Linux that you're running can have an effect on the your application due to the libraries available.  For example, Gentoo may run application A and not B, but Linux Mint may work in the opposite manner.  This is why there is a searchable database located at WineHQ where people contribute their bug reports, installation instructions, and provide a grade to the applications.  The grading system is as follows (from worst to best): garbage, bronze, silver, gold, and platinum.

Installing an Application Using Wine

[Simple Version] It has become very easy to install an application using Wine using the graphical interface of Linux Mint 11.  Once you have downloaded your .exe file, all you have to do is right click on it and select "Open With Wine Windows Program Loader."  This will start the process of installing the application like you would normally in Windows into the default wine prefix.  All programs in the default wine prefix share wine settings, such as installed DLLs and their settings.

[Advanced Version]  To install a program into a "bottle" and give your application a different configuration file you need can install and run an installer, set up wine, and run the actual program by following these 3 commands:

env WINEPREFIX="/home/name/.wine-program" wine install.exe
env WINEPREFIX="/home/name/.wine-program" winecfg
env WINEPREFIX="/home/name/.wine-program" wine /home/user/.wine/dosdevices/c:/location/to/.exe

For the name, you should use the username on your account and for the program, you can set it to anything and use it for multiple installations. Below is a sample image showing two different ways you could set your programs up. The left two are games, right two are applications. This is just an example though, you could combine them in any manner that you want or not at all.

*** BUG INFORMATION *** When you install a program with Wine, you will get an application installed in the MintMenu that will error out.  There is a work around where you can put a small gnome menu icon on your tray (or use a launch shortcut from your desktop) to launch all of your programs that have been installed through Wine.  To add a Gnome Menu, right click on a blank spot on your task bar and click "Add to Panel" and then add "Main Menu" to your task bar.  Click on it, and you will find your applications installed in Wine -> Programs.