Eee PC Linux

From ivc wiki
Revision as of 16:52, 22 February 2008 by Ivc (talk | contribs)
Jump to navigationJump to search

Install Ubuntu from Flash Drive

I decided to ditch the standard Eee Xandros Linux distribution and go for the more user centric Ubuntu distro. At the time of writing the current release is 7.10, codename Gusty Gibbons.

For the installation I used a regular Pretec i-Disk Tiny 1 GB USB 2.0 flash drive. Almost all flash drives are either formatted as FAT16 or FAT32. For a computer to be able to boot from a flash drive it has to have support in the bios for USB drives and the flash drive has to have a master boot record (MBR), i.e a entry-point to load code.

I'm using a Windows machine to perform the preparation, but it's fully possible to do it on a Linux machine.

Make Flash Drive Bootable

To install a Linux bootloader on a flash drive, there is a wonderful tool called syslinux. I'm installing t

  1. Download the latest syslinux (3.61 or later) zip-archive from syslinux.zytor.com under the kernel.org link
  2. Extract the sysliunx.exe in the win32 directory from the zip-archive
  3. Open a command-promt and execut 'syslinux -s g:'. Where g: is the flash drive
  4. The tool will install a bootloader and a hidden ldlinux.sys file in the root directory
  5. Try to boot from the drive, a 'boot:' prompt should appear

Copy Install Files

The normal way to install a distro is either via a CD/ISO or netinstall by downloading the files. This method will use the CD/ISO method and copy the files from the CD/ISO over the the flash drive.

  1. Download the ISO-file for the latest Ubuntu release. As of writing it's Gusty Gibbon, e.g ubuntu-7.10-desktop-i386.iso. Fortunately, I ordered the free retail Ubuntu install disc and got it in the mail
  2. Either mount the ISO or insert the CD, and select all the files and copy them over to the root of the flash drive, or use 'xcopy /e /h /k f:\*.* g:' in a command-prompt
  3. To allow the syslinux bootloader to load the installation, rename the 'isolinux' directory to 'syslinux'
  4. And inside the 'syslinux' directory, rename 'isolinux.bin' and 'isolinux.cfg' to 'syslinux.bin' and 'syslinux.cfg' respectively
  5. Now, the flash drive is ready

Installation

The installation should work as if it was running form a CD. Nothing special is done to make it run from a flash drive other than renaming the directory and files mentioned above.

  1. Insert the flash drive, start the machine, press ESC to show the boot device list, and select the flash drive
  2. When the 'boot:' prompt is shown, press enter, ignore the unknown keywords errors
  3. After a few minutes the Ubuntu splash screen should appear and the desktop, double click the 'Install' application
  4. Since the Eee screen resolution is only 800x480, the installation screen will be cut off, but there's a trick
  5. It's holding ALT+dragging the window, but to make the trick work properly the Compiz effects has to be disable
  6. From the System menu, select Preferences and Appearance, then Visual Effects and None. Close the window.
  7. Now, in the installation window hold ALT+drag the window upwards to reveal the buttons, follow the normal installation
  8. Once at the paritioning screen, select 'Manual' and pick the correct drive and click 'New paritions'. My drive was the VoyagerGT 4 GB on /dev/sdd.
  9. I created one primary parition, selecting 'ext2' as the filesystem. It's not journaled will supposedly use less write cycles and spare the flash drive for excessive use. 'Mount point' should be '/'.
  10. When prompted to select a swap-memory parition, ignore and continue. Swap will use excessive flash write cycles and my machine already has 2 GB of physical memory.
  11. After rebooting I got a 'No operating system found' error message by the boot loader. I installed again and at the end of the installation, in 'Advanced Options' changed boot loader disk to '(hd1)'. It let me in to the Grub bootloader where I could select which option to boot but I had to change back to '(hd0)' by typing 'e' and 'e' again, then 'b' to finally boot. After that I fixed the /boot/grup/menu.lst configuration file to make it permanent.

Tweaks

Networking

To get wireless and ethernet set up, I had to use the network-admin utility in System, Administration, and Network. My Intel 802.11n adapter was discovered automatically and I could just select 'Properties' and enter the correct ESSID and password, deactivate and activate, to get it to work.

Bluetooth

I think Bluetooth is so standardized that every adapter you through at it will work, at least my adapter did.

To get my Logitech V470 Bluetooth mouse, I just had to enable/insert the Bluetooth adapter, make the mouse discoverable by pressing the Connect-button, and enter the simple commands below

Scan for devices.

ivc@eee:~$ hcitool scan
Scanning ...
        00:07:61:A6:84:15       Bluetooth Laser Travel Mouse
        00:07:61:45:9E:C3       AGANDHJIN

Connect to MAC address of the mouse.

ivc@eee:~$ sudo hidd --connect 00:07:61:a6:84:15

And it just works! To make the changes active over reboots, enter these lines into /etc/default/bluetooth.

HIDD_ENABLED=1
HIDD_OPTIONS="--search --server"
HIDD_OPTIONS="--connect 00:07:61:A6:84:15 --server"

On the next reboot, the Bluetooth manager might ask you to authorize that the mouse is permanently granted to automatically connect.

Wireless

I exchanged the mini PCI-express card for a new Intel 4965AGN adapter, and I had problems with the default Linux driver in kernel 2.6.22. It keept deauthorizing and authorizing when I tried to connect to a WPA access point. It worked once but never after that.

While trying to compile the latest Linux driver released by Intel, I couldn't get passed the last step to compile the new mac80211 module.

sudo make modules modules_install
~
make[1]: *** No rule to make target `arch/i386/kernel/asm-offsets.c', needed by `arch/i386/kernel/asm-offsets.s'. Stop.

I tried to use the existing 2.6.22 mac80211 module and continue to compile the iwl4965 module, but it didn't turn out good. The driver complained about missing functions and 'timed out' when trying to bring it up.

A last thing could try was to test the ndiswrapper driver hackery trick and use a Windows driver. Fortunately, it turned out very well and I finally got a stable wireless connection. [1]

Install the necessary packages. The ndisgtk is a graphical utility to set up ndiswrapper.

sudo apt-get install ndiswrapper-common ndiswrapper-utils-1.9 ndisgtk

Disable the Linux drive by blacklisting it in modprobe.

sudo echo 'blacklist iwl4965' | sudo tee -a /etc/modprobe.d/blacklist

Download the driver for Intel 4965AGN v11.1.1.0 for XP. Extract the files to a directory and if necessary upload them to the Eee PC.

Either use the ndisgtk utility or ndiswrapper to install the driver via the correct '.inf'-file. For this adapter there were two '.inf'-files, NETw4k32.INF for Windows 2000 (k) and NETw4x32.INF for Windows XP (x). I used the last one, the first gave me a 'invalid driver'-message.

sudo ndiswrapper -i ~/driver/NETw4x32.INF

After a short while the driver should've been installed successfully.

ndiskwrapper -l

netw4x32 : driver installed
        device (8086:4229) present (alternate driver: iwl4965)

Install the ndiswrapper wlan0 alias for modprobe.

sudo ndiswrapper -m

And add the ndiswrapper module to automatically load on startup.

sudo echo ndiswrapper >> /etc/modules

Reboot the system and the adapter should come up and be available from the network-admin systray icon.

Eee Network Admin.png

My system hang and crashed when I tried to 'modprobe ndiswrapper' but I think that had something to do with the old Linux driver still being loaded. After a few reboots and tries it worked.

Freeing Space

The flash drive is only 4 GB and I need all the space I can get, removing i.g. OpenOffice.org will free some space.

sudo apt-get -y remove openoffice.org openoffice.org-base openoffice.org-calc openoffice.org-common openoffice.org-core openoffice.org-draw openoffice.org-evolution openoffice.org-filter-mobiledev openoffice.org-gnome openoffice.org-gtk openoffice.org-help-en-us openoffice.org-impress openoffice.org-java-common openoffice.org-l10n-common openoffice.org-l10n-en-gb openoffice.org-l10n-en-za openoffice.org-math openoffice.org-style-human openoffice.org-writer openoffice.org-hyphenation

References