[ home ]

gNewSense 3.1 on Thinkpad X60, X61s and X200

Dec 2015: Version 4 is out in alpha. I'm using it with the xfce4 desktop environment and Libreoffice, GIMP, Audacity, Audacious, Hugin, Inkscape, Xsane, Scribus, R, RStudio, Eclipse, Openjdk-7, PSPP, Midori, Evince and Iceweasel.

October 2015: X60 with wifi card removed (improves thermal performance) and used with Netgear WG111v3 USB wifi adaptor that does not require binary firmware - driver is in the fully free kernel as a module.

customised gNewSense desktop on X61s Fact75 circa 1980 you had to be there This system is just so productive, the Windows 2000 of the 
libre world

Aknowledgement: Harry Prevor's feedback has improved this page.

gNewSense is a GNU/Linux distribution that is sponsored by the Free Software Foundation. gNewSense is free in the sense that the kernel has no binary blobs or proprietary firmware present. Version 3 is based on Debian Squeeze, a change from version 2 that was based on Ubuntu. This page describes installing gNewSense from the version 3.1 live ISO.

I find the distribution fast and responsive on the X61s and X200s Thinkpad laptops. The distribution provides a copy of the Squeeze 'main' repository so there is a huge range of software to install. Some of the packages are a little old. The default Iceweasel Web browser is at version 3.5, and some Web sites won't display properly. It is possible to compile Icecat 17.0.1 from source on gNewSense 3.

You can read a review of gNewSense 3 from Distrowatch, and a discussion on the Trisquel GNU/Linux list will help you to decide if gNewSense is for you. The experience of using gNewSense 3 has been described as going back to 2010 in a recent review - that vintage actually suits my older hardware.

Gluglug is selling Thinkpad X60 laptops with an alternative BIOS called CoreBoot that has had the binary blobs and proprietary firmware removed. The FSF has recognised these modified Thinkpads as being free. A user has posted some impressions of a modified laptop on the Trisquel forum. I came across the Gluglug page the day after I purchased a recycled Lenovo Thinkpad X61s from Ebay!

How does gNewSense 3.1 work on an X60 X61s and an X200s?

X60. I removed the wifi card because of heat problems on the right of the palm rest - this is a known issue with the early 32-bit only X60. I use the Netgear WG111v3 USB wifi adaptor which has a Realtek radio using the RTL8187 driver which is fully free and requires no blobs. Using an external adaptor when I want to use the Internet makes my use of the Internet more of an active decision so I find my focus on writing increases!. All my usual functions (brightness, volume keys and pause, suspend) work out of the box. Fan is constantly rotating but fairly quiet especially without the internal wifi radio so I have not installed thinkfan. htop tells me that the X60 is 'quiet' (load averages less than 0.06 and processor percentages around 2 to 3%) when inactive - much quieter than Debian Jessie/MATE or Gnome on this hardware.

X61s. The built in WiFi using the ath5k free WiFi driver, suspend, hibernate to disk, the volume, pause, play buttons all work. I haven't tried an external monitor or projector yet but that is on the list. Audacity can record from the internal microphone fine. The fan is always on and a little noisy. This happens with any GNU/Linux or *BSD operating system on this machine, so I just install the thinkfan script.

X200s: All common functions work, but you need to use a USB wifi adaptor as the built in WiFi needs a proprietary Intel driver. I also can't record audio from the built in microphone, but an external USB microphone works fine with Audacity. The fan is quiet and battery life is good at around 4 to 5 hours.

Installing gNewSense 3.1

You should read the gNewSense Installation Manual. It walks you through the installation step by step using the visual installer.

Making a bootable USB stick or CD-ROM

Burning the 3.1 ISO image to a CD-ROM and then installing from the CD-ROM will be easier than booting from a USB drive if you are using Windows. If you are already using a GNU/Linux distribution, then the best way to create a bootable USB stick is to use the dd or cat command.

I was installing over a previous Debian GNU/Linux installation. I just used the following commands from a root terminal to check the device name of my USB stick, and to copy the ISO to the USB stick. The command

#fdisk -l

checks for the device name of your USB stick, assumed to be /dev/sdX, usually the last entry. On my X61s I get the following entry for the USB stick

Disk /dev/sdb: 4039 MB, 4039114752 bytes
16 heads, 36 sectors/track, 13696 cylinders
Units = cylinders of 576 * 512 = 294912 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

So then I used the dd command to overwrite the USB stick with the gNewSense ISO image

# dd if=gnewsense-live-3.0-i386-gnome.iso of=/dev/sdb bs=4M; sync

I used dd with the bs=4M option to copy the ISO in large chunks for speed. I added the sync command to ensure that the disk copy buffers are flushed after the copy has finished.

Trying a live session

The gNewSense 3.1 ISO includes a desktop with application programs including the network-manager and wpa-supplicant packages. If your WiFi card uses a free driver you will be able to connect to wifi during a live session.

I tried the software, checked suspend to RAM by closing the lid. I noticed that the screen display was working at the correct resolution. The X61s and X200s laptops both date from before Debian Squeeze, and the supplied kernel has the required drivers. If you use newer hardware you might find that some functions don't work well. You might want to explore installing a more recent free kernel after installation.

Rebooting into the installer

I boot straight into the text installer when I'm ready to install. I have had problems when trying to install from the live session with Debian based installers in the past.

I chose to boot off the USB stick and selected the text installer and specified the language and keyboard layout.

The installer found my wired connection and configured networking using DHCP. I could not use the WiFi connection to install, even though the WiFi led was on.

I bought a 500Gb hard drive for the X61s laptop together with a 7800mAH battery. I decided to use whole hard drive encryption on the X61s to protect my email and other files should I leave the laptop on a bus. After specifying a root password and a username and password the disk partitioner starts. I simply chose the Guided - use entire disk and set up an encrypted LVM option, and let the partitioner run. The partitioner took 8 hours to 'erase data' on the hard drive. I gather it actually writes random numbers to the hard drive to make it harder to tell where the encrypted data is on the drive. You can 'cancel' that step to save a considerable amount of time.

Once the 'erasing data' stage had completed, the installer set up an LVM group with partitions. I confirmed the choices and the installation files copied to the hard drive. The text installer did not ask me to select a repository mirror, and I was left with the 'beta' repositories configured in the /etc/apt/sources.list file (see later). After this step, Grub files were copied to the MBR of the new hard drive. Then the installer asked me to reboot into the new system. I think you have to have an Internet connection available to complete the Grub installation stage. I have noticed that if I try to install without an Internet connection active, this stage seems to fail. This is true of Squeeze and Wheezy based installers.

Rebooting into the newly installed operating system reveals the log-in screen, and typing your password allows access to the default Gnome 2.30 desktop. There are a few post installation tweaks that you need to apply to ensure a fully functional operating system.

Post installation tweaks when installing from the gNewSense 3.1 ISO

I found that the gNewSense 3.1 installer still provides a repository file that points to beta repositories having not offered a choice of repositories. A repeat installation on an old Samsung Netbook resulted in a repository file that pointed back to the master repository ('archive'). I conclude that the original problem was some kind of glitch.

I need to comment out a line in fstab that is added when installing from a live ISO that has been copied to a USB stick in Debian Squeeze or Wheezy. The X61s has a fan that howls like a banshee under any GNU/Linux or BSD system, so I need to enable acpi/ibm and then install the thinkfan fan control script. Finally, I sometimes set my user account as autologin.

Change sources.list and update

I found that the gNewSense 3.1 text installer did not ask me to choose a repository location and supplies a sources.list file that points to a beta repository. If you see this behaviour as well then you will need to modify the /etc/apt/sources.list file as root. Set your local secondary repository using the two letter country code for your country. First you need to edit /etc/apt/sources.list

#nano /etc/apt/sources.list

And then you add the appropriate secondary repository. I'm in the UK so I use the uk country id as shown below.

deb http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes main
deb-src http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes main

deb http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes-updates main
deb-src http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes-updates main

deb http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes-security main
deb-src http://uk.archive.gnewsense.org/gnewsense-three/gnewsense parkes-security main

Update software

I just issue the usual commands from a terminal running as root

#apt-get update
#apt-get upgrade

As you would expect from a recently released installer, there were no updates

Comment out /dev/sdb in fstab

When you install from a USB stick using a Debian Squeeze or Wheezy live hybrid iso, an entry for the USB stick is added to the last line of /etc/fstab. This prevents you from mounting NTFS formatted external hard drives, and it also means that USB sticks are always mounted with the name USB0. The gNewSense installer does the same thing.

Just edit /etc/fstab from root in a terminal and comment out the last line as shown below...

# /etc/fstab: static file system information.
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=big-long-hex-numbers /               ext3    errors=remount-ro 0       1
# swap was on /dev/sda5 during installation
UUID=big-long-hex-numbers none            swap    sw              0       0
# When installing from a live iso using a usb stick, the stick
# gets a line added in fstab. This prevents ntfs external hard
# drives mounting, and gives funny names to usb thumb drives
# just comment out!
# /dev/sdb1       /media/usb0     auto    rw,user,noauto  0       0

Install thinkfan X61s only

Put fans under acpi control by creating the file /etc/modprobe.d/thinkpad_acpi.conf

#nano /etc/modprobe.d/thinkpad_acpi.conf

and adding the one line

options thinkpad_acpi fan_control=1

and then saving the file. Edit the file /etc/default/thinkfan to ensure that the thinkfan service starts up

#nano /etc/default/thinkfan

Change START=no to START=yes, so the first few lines of that file look like this...

# Should thinkfan be started automatically on boot?
# Only say "yes" when you know what you are doing, have configured
# thinkfan correctly for *YOUR* machine and loaded thinkpad_acpi
# with fan_control=1 (if you have a ThinkPad).

# Additional startup parameters

Then tweak the temperatures at which the fan starts and stops in /etc/thinkfan.conf

#nano /etc/thinkfan.conf

For the X61s, I comment out the existing temperatures and add these...

sensor /proc/acpi/ibm/thermal (0, 0, 0, 0, 0, 0, 10, 0)
(0, 0, 65)
(1, 62, 68)
(2, 64, 70)
(5, 68, 74)
(7, 70, 32767)

I've been using this conf file on this X61s for a couple of months it hasn't melted yet! This laptop does get warm. The X200s runs cool under all loads.

The result of all these tweaks is a robust and responsive operating system on which I can install a lot of software.


I usually enable Autologin to my default user account (System | Administration | Login Screen) then set a blank password in SeaHorse to prevent the 'keyring' error when you enable a WiFi connection. I have decided not to do this on the X61s with its encrypted hard drive. I have used strong passwords for root and user.

Installing software

Iceweasel 3.5.16 is very old now, and newer British English spell check add-ons won't work. The old add-on is still available and can be installed, as can the NoScript add-on. I find Epiphany Web browser works better with some Javascript based Web pages, including the 'landing pages' you see in cafes and libraries that provide WiFi. So I run Iceweasel with NoScript for most browsing and if I come across content that I can't render, I switch to Epiphany.


Parkes comes with the GNU flashplayer (Gnash) installed along with the Fluendo mp3 decoder so you can watch YouTube and listen to your mp3s out of the box. You can't rip to mp3 (my Blackberry phone can play .ogg files, and I rip those to quality 0.6 for superb audio). I installed Rhythmbox for easier searching of music.

Other software

I install Audacity, Rhythmbox as mentioned, the Hugin photo stitching and panorama generator, and Shotwell to manage my snaps, the Splix printer driver pack for Samsung printers, and finally the lftp and curl command line programs, in all a 350Mb download from the UK gNewSense repository mirror.

R statistics environment including TeXLive

If you need to process statistical data then you can install the R statistics environment for interactive data analysis and statistics programming. I used the Synaptic package manager to install r-base, texlive, and gnuplot. The r-base package includes the r-base-dev package as a dependency, and this package in turn will bring in the GCC compiler and most of the utilities needed for building software. R has the capacity to source and build packages from the CRAN repository, so you can add a considerable number of R packages for many special purposes in statistics. The R version in the repositories is 2.11.1 which is slightly old but still very useful. Most R textbooks and tutorials were written for this generation of R, and the language is fairly stable.

RStudio desktop, a really good graphical front end for R, will install in gNewSense, and supports R version 2.11.1. The RStudio .deb must be downloaded from the Web site and installed using dpkg, but RStudio is released under the AGPLv3 license and the source code is available. RStudio rstudio-0.97.320-i386.deb [32bit] installs fine, later versions require a C++ library newer than the one in gNewSense 3.1 and will install without error but not run.

Compiling Icecat 17 from source

GNU Icecat is a free version of Firefox. It does not offer to install non-free extensions, and has had the copyright restricted branding and logos stripped out. gNewSense is based on Debian Squeeze. Squeeze backports contain Iceweasel 17, based on Firefox 17. I assumed that it would be possible to install Icecat 17, but the compiled binary available from the FSF has been compiled against a later version of the gclib. I decided to compile from source using instructions on the gNewSense wiki as a guide. Those instructions work fine for Icecat 17, just leave out the source code patches that are not required as gNewSense 3 has gcc 4.4 installed.

The gNewSense wiki pages are marked as obsolete, so I'm summarising the main instructions here...

First, you need to download the source code for Icecat 17 from the GNUzilla repository. Allow time for a 100+ Mb file to download...

wget -c http://ftp.gnu.org/gnu/gnuzilla/17.0/icecat-17.0.1.tar.gz

Then extract the source code (I'm assuming you are using the top of your home drive here, but it does not matter).

tar -zxf icecat-17.0.1 tar.gz

Next, you need to install some source code libraries (-dev suffix)

## apt-get install libgtk2.0-dev libnotify-dev libasound2-dev libiw-dev libxt-dev mesa-common-dev

Icecat also needs the YASM assembler, but the version in gNewSense 3.1 is 0.8x and Icecat needs 1.2x. So just compile the command from source code...

$wget -c http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
$tar -xzf yasm-1.2.0.tar.gz
$cd yasm*       # enter the yasm source code directory
$./configure -prefix=/usr
#make install
$cd ../        # leave the yasm source code directory

Once you have the dependencies required, you can just compile and install;

$cd icecat-17* # enter the Icecat source code directory
$./configure -prefix=/usr
$chmod +x ./build/unix/run-icecat.sh
#make install
$ cd ../      # leave the Icecat source code directory

The ./configure and make commands may take some considerable time (45 minutes on the Core Duo 2 based X61s) and generate lots of impressive warnings - run Gnome terminal full screen with green against black for the full bladerunner style.

You can start Icecat from the command line as follows

$icecat &

Check for any error messages or failure to start. Icecat will make its own configuration folder within the ~/.mozilla folder in your home directory, so configuration and add ons will be independent of your Iceweasel install. Icecat picks up the Gnash plugin however.

If all goes well, you can create a custom menu entry in Gnome by right clicking on the Main Menu and selecting Edit Menus. I clicked New Item and added icecat as the name and as the command. I also added a custom application launcher for the bottom panel. I found an icon on the wikipedia page for icecat and popped that in my home drive. The result is a Web browser that is slightly more recent than the default version of Iceweasel.


Updates are not frequent, lets face it these are stable applications with plenty of patches applied through the life of Debian Squeeze. I'll be monitoring security alerts and updates. I'm really noticing the range of software available in the gNewSense Main repository compared to CentOS, where you have to add a range of repositories to put together a modern desktop.

Keith Burnett, Last update: Thurs Jul 23rd 2015