Howto use gPXE with the Asus Eeepc 900/1000H and a USB key

Note: this howto is made in mind that you don't have access to a TFTP server on your LAN, that you are too lazy to setup one, or that your sysadmins forbids it

  1. Compile undi.usb:
     cd gpxe.git/src; make bin/undi.usb 

    Or if you are lazy download a binary version here.

  2. Copy it to a USB key (your key is seen as sdc by linux, change it in function of yours):
     dd if=bin/undi.usb of=/dev/sdc 
  3. Put the USB key in one slot of the Eeepc
  4. Go to the BIOS settings at boot (press F2 at the BIOS)
    1. Go to the “Boot” tab
    2. Check if the “Onboard LAN Boot ROM” is [Enabled]
    3. Go to the “Hard Disk Drives” menu and put the [USB:1G USB2.0Flash] device as the “1st Drive” with the + button and press Esc to go back to the previous menu
    4. Go to the “Boot Device Priority” menu and put the [USB:1G USB2.0Flash] as the “1st Boot Device”
    5. Go to the “Exit” tab and press “Exit & Save Changes” by answering “OK” to this question.
    6. Then the Eeepc should be able to boot on the USB key.
    7. While it starts, type Ctrl-B to get a shell and try
      gpxe> dhcp net0

      , it should give you an IP address if you have a DHCP server on your network.

  5. Then try to load a linux kernel (it can takes up to 2 minutes, be patient)
    gpxe> kernel

    and then type

    gpxe> boot
  6. If you find booting from the internet slow, you could setup an HTTP server somewhere on your LAN with python (this simple webserver serves files in its current directory over port 8000):
    python -m SimpleHTTPServer
    Serving HTTP on port 8000 ...
  7. To be continued with other improvements:
    1. Load a complete installer/distribution/thinclient over HTTP
    2. Dump the BIOS and add a *.rom image on top of it and reflash the whole on the BIOS chip of the Eeepc
    3. Add some screenshots and pictures to this page