Friday 30 January 2009

Asus Eee 1000 Setup With Eeebuntu Linux and 3 INQ1 phone as a Bluetooth modem

I bought an Asus Eee 1000 40GB SSD Linux netbook in December 2008 to use for software development on the move. This article describes how I set it up with Eeebuntu Linux as a development environment and configured it to use an INQ1 mobile phone from three.co.uk as a Bluetooth broadband modem.

Why Three?

Three have the best 3G coverage in the UK and offer a cheap 18 month contract deal for phone and broadband access at £12 + £5 (for up to 5GB of data traffic) per month with a free INQ1 phone which you can use for bluetooth wireless broadband from an Eee. The INQ1 handles both 3G and HSDPA access and is an evolution of the 3 Skypephone, which you should also be able to use as a 3G modem following the instructions below.

Why Eee 1000?

The screen is big enough to watch movies, the battery lasts 8 hours (unlike an Acer Aspire, which was the other netbook I considered), its Atom processor is reasonably fast, the solid state disk means you can drop the netbook without breaking it and the keys are large enough for my big fingers. Plus it can run either Linux or Windows XP.

Xandros Linux

The Eee 1000 comes pre-installed with Asus' Xandros Linux, a proprietary Linux originally based on Debian. This is aimed at Linux novices and has an easy to use always-on full screen menu. It has extensions built in to handle hardware features of the Eee 1000 such as power-saving and keys for volume and to turn WiFi and Bluetooth on or off. Its /etc/apt/sources.list is set up to pull down updates and fixes from Asus's Xandros update repository.

Eee SSD

The 40GB solid state disk is shockproof and fast. You have the option to buy an Eee with a 120GB spinning disk, but this uses more power and is not as robust. The SSD is actually split into 32GB of user space and 8 GB of system restore space. The idea is if the user breaks their installed Linux, they can press F9 at boot time and re-image the 32GB partition with a fresh install of Xandros. This is a good idea for first time Linux users who might well break it once they start tinkering under the hood. You can also press F2 at boot time to enter the BIOS setup and configure hardware and boot options. It's possible you could format and mount the 8GB space as an extra partition using device /dev/sda1 though I haven't tried that yet.

Xandros Drawbacks

There are some major drawbacks to Asus' Xandros.

  • The software versions installed, such as StarOffice, are rather old.

  • The simplified netbook screen menu is restrictive for an experienced Linux user.

  • Fatally, for a developer, installing the supplied Firefox update from Asus' repo installs a b0rked version of the libc6 library that breaks the dependencies required to later install the build-essential package using apt-get or the synaptic package manager. This means you don't have a C compiler.

Xandros Hacks

Experienced Linux users can get much information from the Eee wiki. For example, you can add a normal KDE menu popup by following the advanced desktop instructions. You can also add repos to access later debian software, provided you set up a pinning list to prevent the installation of packages incompatible with Xandros.

However, on my Eee 1000 (bought December 2008) I was unable to get the build-essentials package installed even following the instructions on the wiki about applying it before the Firefox 3 update. Perhaps the broken libc6 now comes pre-installed?

Installing Eeebuntu

Developers can solve this by installing Eeebuntu. At present this is Ubuntu 8.10 Intrepid with Eee hardware-specific extensions to support the on-board WiFi, bluetooth and the hot keys on the keyboard, for example to toggle the screen on and off. An alternative is Ubuntu-eee, now known as EasyPeasy. I couldn't see much to choose between them so went for Eeebuntu.

You don't need to worry about this going wrong and breaking your Eee. Simply backup any user files you want to keep onto a USB stick and then install Eeebuntu as follows. If it goes wrong, re-image the disk by pressing F9 at boot time, select recover and you will be back to Xandros.

1. Prepare USB stick with bootable Eeebuntu

You will need a USB stick with 1GB or more capacity. Following the instructions on this linked guide you can create a bootableEeebuntu USB stick from another Windows or Ubuntu PC. I've summarised the points below but check out the linked page for screenshots if you get stuck. There are three versions of Eeebuntu. I'd recommend NetBook Remix as the interface is optimised for the smaller screen of a netbook.

Download URL for eeebuntu NBR

Download URL for bootable imager

Insert the USB stick into your other PC, run the imager, select the .iso file you downloaded and leave it running for 10-15 minutes until complete. Remove the now-bootable USB stick.

2. Boot Eeebuntu from USB stick and try it out

Shut down your Eee 1000. Insert the USB stick. Press the Eee power on button. The Eee will now boot Eeebuntu off the USB stick and run it in memory (i.e. not off your solid state disk). If it boots off the SSD instead, try pressing F2 at boot time for the BIOS setup and go to Boot / Boot Device Priority and move [Removable Dev.] to the first position.

You can try out Eeebuntu and see whether you like the interface. Because it's running in memory, you can make any changes you like without it affecting your installed Xandros.

3. Install Eeebuntu

If you decide you like it, go to the Administration menu and choose install. Tell it to overwrite the whole of the 32GB SSD and not keep the existing Xandros partition.

4. Configure Eeebuntu To Boot Before Recovery Disk

After it finishes installing, select reboot and remove the USB stick. When the boot screen comes up, press F2 to enter the BIOS setup and go to Boot / Hard Disk Drives. You will see two SSD drives listed, the master 8GB partition [HDD:SM-ASUS-PHISON] and the slave 32GB partition [HDD:SS-ASUS-PHISON]. The “SM” one is the 8GB recovery disk. The “SS” is the 32GB disk where you just installed Eeebuntu. Select the SS one and move it up above the SM one in the order then press F10 to save and exit.

The Eee should now boot up into Eeebuntu and you will have to enter the first run configuration information of your name, location and desired user login/password.

Configuring Ubuntu

Download this free pocket guide to setting up and using Ubuntu: Ubuntu pocket guide (PDF)

That explains in detail how to use and administer Ubuntu. I've put some points below that will get you started and set up some useful utilities.

Root Access

To log on as root, run Accessories / Terminal and type

$ sudo bash

Alternatively, you can add a root terminal to the menu with: System / Control Centre – Section Look and Feel / Main Menu, go to System Tools and tick Root Terminal

Repository Settings

For reference, here is a record of the settings I have in /etc/apt/sources.list:

deb http://gb.archive.ubuntu.com/ubuntu/ intrepid main restricted   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid main restricted   deb http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates main restricted    deb http://gb.archive.ubuntu.com/ubuntu/ intrepid universe   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid universe   deb http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates universe   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates universe    deb http://gb.archive.ubuntu.com/ubuntu/ intrepid multiverse   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid multiverse   deb http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates multiverse   deb-src http://gb.archive.ubuntu.com/ubuntu/ intrepid-updates multiverse    deb http://security.ubuntu.com/ubuntu intrepid-security main restricted   deb-src http://security.ubuntu.com/ubuntu intrepid-security main restricted   deb http://security.ubuntu.com/ubuntu intrepid-security universe   deb-src http://security.ubuntu.com/ubuntu intrepid-security universe   deb http://security.ubuntu.com/ubuntu intrepid-security multiverse   deb-src http://security.ubuntu.com/ubuntu intrepid-security multiverse   deb http://linux.getdropbox.com/ubuntu intrepid main   deb-src http://linux.getdropbox.com/ubuntu intrepid main    deb http://ppa.launchpad.net/blueman/ubuntu intrepid main   deb-src http://ppa.launchpad.net/blueman/ubuntu intrepid main 

Install BootUp Manager

Run System / Administration / synaptic and install the “bum” package.

Using Eee control

Run System / Administration / BootUp Manager and set eee-control to run at run levels 3, 4 and 5. Start it now if not already running with Start / System Tools / Eee Control and an icon labelled “Eee” will appear in the top right menu bar.

To turn on/off WiFi and Bluetooth, move the mouse over the Eee icon, click once, then tick/untick options in the popup menu. To map keys, right click the Eee icon, select Preferences and map the special Eee 1000 keys to functions such as Bluetooth toggle. I found it useful to map Fn-F8 to "gnome-terminal" so I can press Fn and F8 together to start a command shell.

Install drop box

Dropbox is a file synchronisation utility that lets you store files in a secure, encrypted folder on the web that is reflected in a local copy on all the PCs you use. It's an easy way to share files between, say, a mobile netbook and a work PC without having to remember to copy files manually. It works on Windows, Linux and Mac.

Go to this link and follow the download for Linux: https://www.getdropbox.com/install

You want the Ubuntu 8.10 (x86) version. Once downloaded, either use the file explorer to navigate to your home directory and then the Desktop sub-directory and click on the nautilus-dropbox_0.5.0-1_i386_ubuntu_8.10.deb file to install it, or from a root shell go to your Desktop directory and type

# dpkg -i  nautilus-dropbox_0.5.0-1_i386_ubuntu_8.10.deb

Follow the instructions and you will end up with a Dropbox folder in your home directory. Anything you put in there will now be synced to the web storage and to any other PCs on which you have installed dropbox.

Install development tools

Run System / Administration / synaptic.

Install your preferred tools, e.g. apache, java, php, mysql / postgres, phpmyadmin, perl, python.

Set up INQ1 as a Bluetooth Modem

The stock bluez package does not give enough control over the bluetooth connection to set up dial up networking using a INQ1 or Skypephone as a broadband modem. However, blueman does so we will use that instead.

Install blueman

import repo key

# wget http://download.tuxfamily.org/blueman/blueman.gpg # apt-key add blueman.gpg

add repos using either Administration / Software Sources or by adding to /etc/apt/sources.list

  deb http://ppa.launchpad.net/blueman/ubuntu intrepid main   deb-src http://ppa.launchpad.net/blueman/ubuntu intrepid main

then install blueman with the command

# apt-get install blueman

if it says it wants to uninstall bluez or bluez-compat say 'yes'.

Configuration steps

1. Recognise bluetooth phone

Run Accessories / Blueman Bluetooth Manager. Click the "Scan for bluetooth devices" button. Your phone should appear in the list of names.

If not, check that you have turned on bluetooth networking on the INQ1 phone:

menu Settings / Bluetooth = Switch - on ; Visibility - show your phone

menu Settings / Advanced / Connectivity / Modem Connect - via Bluetooth

Click on the phone in the list of names. Click the padlock symbol to bond to it. Your phone should report a connection attempt from your Eee. Accept and enter a PIN there. On your Eee Blueman should ask you to repeat that PIN there. Then it should show as bonded. On the INQ1 set the Eee as an authorised device that it will remember.

Set up bluetooth phone as a dial-up networking service

Run Accessories / Blueman Bluetooth Manager. Click menu Edit / Services. After "serial" click the red button to turn it green if not already so. Click the configure button to the right of that. On the Serial Service screen click the Add New Serial Port checkbox. From the Host dropdown select your bluetooth phone's name. Click the Refresh icon next to the Service dropdown. Then click the dropdown and select Dial-up Networking. Tick the box next to "This is a GSM/GPRS/EDGE/3G dialup connection". Click Add Port. Back on the Service screen tick Autostart after the Serial service's green button.

Configure dialup networking service using bluetooth

Run Preferences / Network Configuration. Click the Mobile Broadband tab. Click Add to start the add wizard. Click Forward. Choose provider "3" and click Forward. Click Apply.

Some people have reported better performance by editing the settings for the connection and going to the IPv4 Settings tab and entering hard-coded DNS servers as: 208.67.222.222, 208.67.220.220.

Testing

Unplug any wired Ethernet. From the Eee control icon in the top right toolbar (the icon says "Eee") click and disable WiFi and enable Bluetooth in the hardware. Run Accessories / Blueman to start bluetooth services. Click the network icon in the top right toolbar (looks like two overlapping PCs) and click the name of the bluetooth service "3" to start connecting. After about 10 seconds it should report as connected. Try browsing to a page in Firefox to verify it works.

Finally, you might want to set blueman to run at boot time using the BootUp Manager as blueman needs to be running for you to be able to see bluetooth dialup options on the network icon.

Finish

That's it! You should have an Eee 1000 you can use for development on the move using an INQ1 for Internet connectivity. If you have any corrects or comments please add them below the blog and I'll update this guide.