How to get Suspend and Hibernate Working for Linux (Ubuntu 11.04, Mint 11)

Suspend and hibernate have always been screwed up with Linux, however luckily there is hope. I got mine working after scouring google. In this tutorial I will share with you how I got it working in hopes that it will help others out there in the Linux universe.

First, heres what I’m running.
Linux Mint 11 (a derivative of Ubuntu 11.04)
Kernel Version 2.6.39.3
Asus G53SW (Very similar to andy ASUS G73/G Series)

If you are running something different than I am above, don’t panic this still have a good chance of working for you.

I have several fixes that I performed below and you may not need to complete them all. Please thoroughly check to see if hibernate and suspend are working after each section you try. I know, you’ll have to hold the power button down a lot for a cold reset, but its worth it.

My Symptoms Before I got it Working

When I sent my computer in Hibernate the computer would look like it was doing what I told it to up until the part where the screen and the CPU fan turn off. I just got a screen of black that would not respond. The hibernate was very similar except there was a white cursor frozen at the top left of the screen. The only option I had was to hold the power button until it turned off.

Suspend — An Easy Fix for Most People

I scoured the web looking for something that might help me. I ran into this article which gives instructions on installing a script that would fix the problem. There are dozens of people who have left comment in the post as to whether it worked for them or not. Most of them left comments said that the script fix worked perfectly well for them.

The website and the script are located here. Try the fix. If it doesn’t work for you then come back here ready for more.
http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug/comment-page-5#comment-53524

Unfortunately for me and some others it didn’t work perfectly. In my case it was bitter sweet, my suspend worked, but my hibernate still didn’t work. However, it did change the way that suspend didn’t work. Now instead of a black screen, the computer just acted as if it was a normal restart. On power up instead of continuing the session it just restarted.

Hibernation Doesn’t Work

Not Enough Swap

SWAP is a special partition on your hard drive that steps in if you run out of ram and it also serves as the place where your session is stored on the computer. If you don’t have any swap or don’t have enough swap you will not be able to hibernate for lack of space. When a computer hibernates it flushes all of the data in its ram onto the swap partition. This means that it is a good idea to a swap partition that is just as big as your amount of RAM. To check out how much swap you have type the commands outlined in red.

chris@Starace ~ $ free -m
total used free shared buffers cached
Mem: 8005 6364 3640 0 135 3079
-/+ buffers/cache: 3149 6855
Swap: 8100 0 8100

This lists the memory usage for your ram and swap in megabytes. If your total swap is greater than your total memory then you’re in good shape. If it’s not then if you are using more ram than your swap your hibernate will fail. Sometimes if it’s nice it will give the error “not enough swap.”

Solution -> Create a swap partition or make one bigger. In order to do this you will have to boot from a live disc as you cannot change the size of your hard drive while you are using it. Boot from a live disc and start gparted. Delete your old swap parition and shrink your main hard drive partition by enough room to fit the swap. Then

The Hibernation acts Like a Restart

Okay so why would hibernation act like a restart? Well the reason might be that the hibernation files saves but grub (the boot loader) doesn’t know that it’s there. We can check this quickly. First got to terminal and type

ls /var/log

Posted in ASUS G53SW Setup, Everything Penguin Related, Uncategorized | Leave a comment

Apache Crashing Because of Lack of Memory – How to Fix

I host this website on a Virtual Private Server (VPS).

In a normal web hosting plan someone buys space on a server. Where they can put their files. With a VPS I bought the whole server, not just the space on it.

The good news about a VPS that I have control over the physical machine. I can install programs, restart the computer , edit web server configurations. However the bad new is that I have a lot more configuration to work with.

Recently I got bit by my memory consumption. Apache web server was crashing for no apparent reason. I finally figured out that my default apache settings were too much for my RAM.

There is a linux command

Posted in Everything Penguin Related, Uncategorized | Leave a comment

What kind of website do I want?

Okay you want to make a website. What kind of website do you want? Below I have a basic breakdown of types of websites. Click on the one that best describes what you want.

Blog: I just want to blog (write articles and throw up pictures)
Standard Web Hosting: Create a website with its own domain name and email address
Self Hosting: Host a website on a computer at my house
VPN, Dedicated Server: Host a website on a computer I control in a warehouse

Type Cash Cost Skill Level Customizibility Performance
Blog free low very low low
Standard Web Hosting low medium high low to moderate
Self Hosting low very high extremely high low to moderate
VPN/Dedicated moderate – high high very high very high

I just want to blog (write articles and throw up pictures)

Maybe you just want a blog (write articles and throw up a few pictures), you can use services such as blogger.com, Live Journal or wordpress.com. You can sign up for a free blogging account and get started in minutes. Even better, it’s usually free.

Now if you wan


What I Wanted

Posted in Build Your Website, Uncategorized | Leave a comment

Custom Screensaver in Linux — GL Matrix Cyan Color Mod

I have always liked the Matrix screen saver that is packaged with most linux distributions. However I have a blue backlight keyboard and when the green martix screensaver came on it really clashed with the keyboard. If only there was a way to change the color… wait this is Linux and Linux is all about being able to change anything!

Green Matrix

The Origional Green Matrix

Blue Matrix

I must thank

Posted in Uncategorized | Leave a comment

BASH – Beginners Guide for Quick Learning

I have been learning BASH (Bourne Again Shell) over the few days and I want to share with you my experience so you don’t have to expose your poor computer to any profanity.

Before beginning this tutorial you should have some experience with

  • The basics of using a linux command line terminal (cd and ls)
  • Using a command line editor such as emacs, vim, and pico
  • Basic knowledge of some other programming language

Whitespace Matters

So the first thing I noticed is that BASH is very white space dependent. For example when you initialize a variable do not add spaces on the sides of the equal sign.

VARIABLE=VALUE

not

VARIABLE = VALUE

Another example of this is the if statement. There must be a space after the if.

if [[ a > b ]]; then
#some action
fi

not


if[[ a > b ]]; then
#some action
fi

I don’t think it matters if you have multiple spaces as long as you have one space where it is required.

The Basics of Accessing and Setting Variables

Setting a variable and accessing a variable is a little strange especially if you are coming from a php programming background. To set a variable you just write the variable name and the equal sign. To access a variable you have to use the $ sign.

#variableA is set to 1
varableA=1

#variableB is set to 1 notce the $
variableB=$variableA

Posted in Uncategorized | Leave a comment

How To Install Emerald Windows Decorator for Linux

Emerald is extremely customizable and easy to use and produced a lot of marvelous themes including one I made myself. I’ve been though a couple different Linux distributions, and I’ve still never found any windows decorator that could give a desktop linux machine such a nice vibe.

Starace

My Starace Tron Inspired Emerald Theme

So recently after I got a new computer, I decided that I was going to get emerald back. My first task was to pick a Linux distribution that could use Emerald. I decided to used Linux Mint Mate Edition. Emerald isn’t for every Linux desktop. It requires a program called Compiz to run. Compiz comes by default on Ubuntu systems and can be installed on many Mint, Debian, Arch, and other Linux distros, but not all, specifically Linux Mint Cinamon Edition can’t use Emerald. I also have a tutorial on setting up Compiz.

I looked online for a apt-get repository for emerald. Unfortunately the ones I tried were broken.So I decided that I was going to compile it from source. I first downloaded the most recent source source for emerald.

http://cgit.compiz.org/fusion/decorators/emerald

I also installed the dependancies


sudo apt-get install intltool build-essential libxrender-dev libgtk2.0-dev libwnck-dev libdecoration0-dev libwnck1.0-cil-dev autoconf libtool gawk

I then extracted emerald and I tried to configure and make it. Unfortunately I came across this error.


/usr/bin/ld: main.o: undefined reference to symbol 'exp@@GLIBC_2.2.5'
/usr/bin/ld: note: 'exp@@GLIBC_2.2.5' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line

Thanks to this post that I found, there was an extra step. I needed to export something called a load flag. So I was able to install emerald by doing the following.


wget http://cgit.compiz.org/fusion/decorators/emerald/snapshot/emerald-0.9.5.tar.gz
tar -xvf emerald-0.9.5.tar.gz
cd emerald-0.9.5
export LDFLAGS='-lm -ldl'
./configure
make
make install

If everthing worked right you should have installed emerald. You can start the emerald theme manager by typing “emerald-theme-manager” into the terminal. You can then turn emerald on by typing “emerald –replace.” That will turn Emerald on. To have Emerald start as your default windows manager go to the compiz config manger “ccsm.” From there click

Posted in Everything Penguin Related, Uncategorized | Leave a comment

How To Setup Bumblebee NVIDIA Optimus Linux – Ubuntu and Mint

I recently got a new laptop

Posted in Everything Penguin Related, Uncategorized | Leave a comment

Brainstorming and Initial Design

To come up with a design to defeat the evil spin myself and my team came up with several initial concepts

Posted in Uncategorized | Leave a comment

How to set up an SSD on Linux

I recently bought an awesome new ASUS G53SW and to go along with it I purchased a 128 Gb Plextor SATA III SSD. I wanted to use the SSD for the Mint Linux OS.

It seems that there are a ton of older articles that talk about getting an SSD correctly configured in Linux. I perused through them and I found several conflicting and incorrect instructions. In the following tutorial I am going to try to present what I have learned, both how to configure and why it is configured that way.

These instructions should work for all Debian based Linux Distros (Ubuntu Mint). Some of the commands may need to be tweaked for Fedora or others.

Before I begin let me just gloss over the paradigms behind SSD drives. SSD drives are fast compared to the traditional hard drives. Traditional hard (7200 rpm) drive get less than 100 Mb/s read rate which degrade over time. SSD’s with SATA III I have seen with speeds at 500 MB/s. So with SSD’s your application load times are reduced by 80%. However SSD’s are more expensive smaller and as they are written to they lose disc space, leading to a short life time if they are written to too much.

Sources
Hard Drive Speeds: http://answers.yahoo.com/question/index?qid=20110309132315AACvk6n
More on SSD Technology: http://www.storagesearch.com/bitmicro-art3.html

Before you Buy — Is the SSD compatible with your Hardware?

If your computer is new chances are it supports SATA III for its hard drives. If your computer is older check to see what SATA your computer supports. No sense in buying a SATA III device if your computer only supports SATA II. SATA III is completely backwards compatible with SATA I, II but will only get speeds at the SATA I, II levels.

Before you Install — Linux Partition Type

Before you install Linux you will want to consider the partition type. The partition types for a Linux install are ext2, ext3, ext4. There is a fair amount of dispute as to which is best. There are a lot of fans of ext2 and ext4. The default install of most (or all?) linux distros is ext4. Ext4 is a journaled file system. The journal is there for redundancy in the event of hard drive error/failure. It is a lot easier to recover your data with and ext4 system, however the journal adds writes to your SSD. The ext2 partition type does not have a journal so the life of the SSD is lengthened, but it loses the recovery features. Ext3 is a journaled file system with less features than ext4 so it is typically rejected in favor of ext4.

More info on ext2, ext3, ext4: https://ext4.wiki.kernel.org/index.php/Frequently_Asked_Questions#Can_I_use_ext4_on_Solid-state_drives_.28SSD.29.3F

In the article listed below a pro ext4 person explains his viewpoint that the lifespan of the SSD is so long that having a journaled file system won’t be a big deal unless you plan on using the drive for more than 10 years. I would suggest that for any desktop user ext4 is a good choice. If you are installing the ssd for a server then you might think about ext2 as long as you keep good backups.

Ext4 suppoter: http://marc.info/?l=linux-ext4&m=125803982214652&w=2

After Linux Installation — Know Your Hard Drives

If you have multiple hard drives connected to your Linux machine you will want to know which hard drive the name of the hard drive. If you go to your terminal and type in “df -h” you should see something like this.
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sdb6 89G 9.2G 76G 11% /
none 4.9G 588K 4.9G 1% /dev
none 4.9G 536K 4.9G 1% /dev/shm
tmpfs 4.9G 1.6M 4.9G 1% /tmp
none 4.9G 396K 4.9G 1% /var/run
none 4.9G 0 4.9G 0% /var/lock
tmpfs 4.9G 0 4.9G 0% /var/tmp
/home/chris/.Private 89G 9.2G 76G 11% /home/chris
/dev/sda2 466G 54G 413G 12% /media/Windows Starace
/dev/sdb1 26G 9.5G 16G 38% /media/Windows SSD
/dev/sda1 100M 25M 76M 25% /media/System Reserved

Looking at this screen you can tell that I have two hard discs and a couple partitions on each disc. The entries with /dev/sda and then some number are partitions that are on my 7200 rpm Seagate traditional hard drive while entries with /dev/sd2 are partitions on my 128 Gb Plextor SSD. Knowing that the the ssd’s name is “sdb” is important for the upcoming steps. Most people will probably have their ssd name be sda so I will use that in the rest of the tutorial.

After Installation — Changing the Linux Disc Scheduler

The hard drive scheduler attempts to organize hard drive requests in a way that is efficient. However organization is so old school. With SSD’s the memory access is instantaneous and many of the schedulers that were designed for spinning hard drives will only get in the way of SSD performance.

There are four types of schedulers in the Linux World. Anticipatory, Completely Fair Queuing, Noop, and Deadline. Anticipatory scheduling tries to arrange hard drive reads in a way that will maximize efficiency on a spinning disc. Completely Fair Queuing (cfq) is an anticipatory scheduler that adds in a ranking system for important disc reads. Neither of these are suited for an SSD.

The noop is a simple first in first out queue. The deadline is a biased noop queue that allows an application to get some access to the disc even if another application has already requested it.

The deadline is the best scheduler because it has more features than the noop and doesn’t worry about a rotating disc like cfq. To see what scheduler you are currently using go to your command line and look at this file

cat /sys/block/sda/queue/scheduler

You should get something that looks like this

noop deadline [cfq]

The option in brackets is the scheduler that is currently being used by your system, notice that this is currently the cfq. We want to change this to deadline. To do this we are going to edit the file /etc/default/grub. Type “sudo gedit /etc/default/grub” to edit the file. There should be a line of code that looks like this

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash elevator=deadline"

To make the scheduler add in the elevator=deadline option that is highlighted in red. Be sure to put a space after the previous option. You may have more options than I do and that is perfectly fine. After you make this change reboot your computer. Run the “cat /sys/block/sda/queue/schedule” command and deadline should be bracketed.

Sources
Wikipedia on Schedulers: http://en.wikipedia.org/wiki/Noop_scheduler
Tombuntu on Grub: http://tombuntu.com/index.php/2008/09/04/four-tweaks-for-using-linux-with-solid-state-drives/

Prolonging SSD Life Eliminating relatime and adding Trim.

Posted in ASUS G53SW Setup, Everything Penguin Related, Uncategorized | Leave a comment

Linux Is My 2nd Best Friend

I switched to Linux on my Main Laptop 3 months ago on May 20th 2010. I had several concerns about it when I started.

  • Will my wireless card work?
  • What will happen if I don’t have Microsoft Office to rely on!
  • How will Linux affect my gaming?

Of course my girlfriend is my best friend.

Posted in Everything Penguin Related, Uncategorized | Leave a comment