EeeBSD setup: installing FreeBSD 7 on Eee PC

16 05 2009

[LAST UPDATED 18/06/2009 — revision 9]


I’m actually writing from my last purchase the ASUS EeePC 701, a real jewel with a good support for Linux and BSD systems. What you can find on the net is some installation howtos for Windows XP and Linux, but it won’t be easy to find out how to install a BSD system ( apart from a collection of failures at http://encryptio.com/ots/eeebsd 😛 ), so I decided to write this step by step tutorial which will guide you through the installation of FreeBSD on an ASUS Eee PC 701 (4G) from USB drive, hope this helps all of you who already tried or want to try this “challenge”….at the end you will realize that this is not so difficult as it seems, you have just to know where to put your hands. 😉

Besides, I want to make the point that this tutorial is still easily fitting to other netbook models that, just like the Eee PC 701, are not supplied with a CD/DVD drive. The steps are almost identical, the only difference is how FreeBSD will name devices during the installation process or the keys to enter the BIOS configuration utility at startup.

Installation options

Here follows a list of possible configurations to install FreeBSD, you can choose from one of them what more fits with your needs. Throughout the guide I will explain both of them:

  1. [1.] installing on SSD (or Hard Disk) supplied with our Eee PC (I recommend to use the whole disk, 4GB is too small for a dual boot :/)
  2. [2.] installing on a USB stick (I don’t recommend using an SD Card as I experienced very bad performance, anyway USB is faster)

LEGENDA

  • when a step refers to a particular configuration between the two listed above, you will see [1.] or [2.]
  • this tutorial covers installations for Windows XP and Linux systems: exclusive steps for Windows begin with –Windows, and the Linux ones with –Linux, they both end with a -// finale

NOTES for Linux installations

because of the excessive number of Linux distros out there and the great diversity among them, all the Linux steps written here are to be executed from a terminal. Procedures listed in this guide should require root privileges

WARNING

my advice is to make a backup of ALL OF YOUR DEVICES you are going to use before to perform any operation, even if you are going to install FreeBSD on a USB stick make a backup of your Hard-Disk!




Minimal requirements

  • Operating system: Windows XP or Linux
  • 1 USB stick – 64MB min
  • 1 SD-Card – 512MB min
  • an active internet connection

optionals:

  • 1 external USB drive 1GB min if you want to perform an installation of FreeBSD on a USB drive [2.]




Step 1 – Preparations

Download the first CD of the latest release of FreeBSD i386 from the following link:

http://www.freebsd.org/it/where.html

(that at the time of writing is 7.2-RELEASE-i386-disc1.iso, as follows we will suppose that this is the release that you want to use)

Download and install UNetbootin from: http://unetbootin.sourceforge.net/

Detach all peripherals connected to your notebook (have a look to your SD-Card slot too)

–Windows

go to My Computer

connect a pendrive on the USB port on the left from you Eee PC, let’s suppose that Windows identifies it as D: (be very careful of this step cause you are going to wipe all of the data standing on D:)

right click on D: then “Format…”

select File System: FAT32, Allocation Unit Size Default and Fast formatting, then click on “Format” and just wait the process to be completed

–Linux

insert a pendrive on the USB port on the left from your Eee PC and type from a terminal:

# dmesg

from here you can observe how Linux identifies it, let’s suppose sda1 (be sure of this step cause you are going to wipe all data on this device)

let’s format that:

# mkfs -t vfat /dev/sda1

–//

it’s now time for UNetbootin

select Distribution, then on the first scrolldown menu “FreeBSD” and on the second “7.0”.

at the bottom of the window select as Type “USB”, and on Drive select the device seen before (we have supposed D: for Windows and /dev/sda1 for Linux) then click OK

wait for the copy, at the end you will be asked for a reboot, choose NOT TO REBOOT

–Windows

return to My Computer, insert your SD Card to the Eee PC slot, let’s suppose Windows identifies it as E: (again be very sure of this step cause you are going to wipe all the data stored on this drive)

right-click on E: then “Format…”

select File system FAT32, Allocation Unit Size: Deafult allocation size and be sure that Quick Format is checked, now click on Start and wait until end.

open FreeBSD ISO downloaded before (you can use software like 7zip or WinRAR to open ISO images) and extract all the folder 7.2-RELEASE into E:, note that the 7.2-RELEASE folder must be extracted too

once again from MyComputer, let’s enter in E: and rename the “7.2-RELEASE” folder into freebsd


–Linux

here we’ll make use of two directories on /mnt to mount volumes

/mnt/usb for our SD Card

/mnt/iso to mount the FreeBSD ISO image

type:

# mkdir -p /mnt/usb
# mkdir /mnt/iso

insert now your SD Card into your EeePC and let’s suppose Linux identifies it as /dev/sda2 from dmesg

let’s wipe it out:

# mkfs -t vfat /dev/sda2

then mount it on /mnt/usb:

# mount -t vfat /dev/sda2 /mnt/usb

and make inside it a folder named freebsd

# mkdir /mnt/usb/freebsd

now let’s move where we downloaded FreeBSD

# cd <path-to-iso>

mount the ISO image

# mount -t iso9660 -o loop 7.2-RELEASE-i386-disc1.iso /mnt/iso

and finally copy all of what’s inside 7.2-RELEASE into the freebsd previously made on our SD Card

# cp -vfr /mnt/iso/7.2-RELEASE/* /mnt/usb/freebsd

–//


now leave both USB pendrive and SD Card still connected and reboot

NOTE

we don’t need to set from BIOS OS Installation on Start, my advice indeed is to check if it is set on Finished to boost installation time




Step 2 – Installation

at BIOS screen press ESC, and you should see something like this

boot from your USB pendrive on the left

wait for FreeBSD installer to boot (for impatient people: you can press ENTER as you see the timers to speed up the boot time)

from the first screen you will be asked for your language, choose it as you please

choose your keyboard layout

and now roll up your sleeves, you are going to setup sysinstall for your machine


select “Custom”, and you should see a screen with the installation options

here comes the settings to apply:

2 Options


go down with the directional keys to Release Name and press SPACE, here change the string from “7.2-RELEASE” in “any”

[2.] now insert your pendrive in a USB slot to the right of your Eee PC, go to Re-scan devices and press SPACE to confirm

quit with Q

3 Partition

on your Eee PC you should see the following options:

  • ad2 (this is your SSD)
  • da0 (USB pendrive installer)
  • da1 (SD Card with the installation files)
  • da2 (only for option [2.] this is your external device where you want to install FreeBSD)

select da2 if you want to install on USB [2.], ad2 if you want to install FreeBSD on your SSD [1.] and hit OK

WARNING

verify that the disk size where you want to perform the instalation meets the size reported in the top-right of this screen (in this example is 8063MB)

press A to partition all the disk with FreeBSD, then hit Q to exit this screen

now you will be asked what to write on your MBR (the boot sector)

select Standard to not install a boot manager (we don’t need a boot manager since we want to install FreeBSD only) and hit OK

4 Label

press C to create a new label, then insert 128M as size and select “swap”


press C again to create another label and use the remaining space size simply pressing ENTER (it is reported by default), select FS and assign it the root /


hit Q to leave from disklabel

5 Distributions

if you have enough space for a complete installation just select “All” and go to the next step, final installation will occupy over 2GB of your disk

but since for a strange cosmic law, space is never enough in all netbooks, I selected as follows only few essential components for the installation: go to the last option “Custom” and from the next screen select the following:

  • base
  • kernels -> GENERIC
  • man
  • local
  • ports (recommended to compile from sources, this will take 400MB+ from your disk)
  • src -> base/sys (recommended to install specific Eee PC drivers, sources will occupy 200MB+ in your final installation)

hit OK to leave this screen, then X to Exit and OK again

6 Media

select 5 DOS, on the next screen you’ll be asked from what partition sysinstall would take the installation files, select the SD Card, it should be da1s1


7 Commit

WARNING

FROM NOW ON all of the operation to disks will be performed

select YES if you want to proceed with the installation

…….now wait for the installation to be completed (~~coffee moment~~)…….

once your installation is completed (and you have drunk way too much coffee :P) now select No, then Exit, Exit Install, here you should see a screen with a confirm dialog “Yes/No”

[1.] (installation on SSD) unplug ALL external devices (SD too)

[2.] (installation on USB) unplug all external devices (SD too) BUT the USB pendrive to the right. It now should contain the freshly installed FreeBSD.

now hit Yes




Step 3 – First Boot

[2.] from the very first boot screen press ESC and select the right device to boot from the pendrive (it should be inserted in one of the USB slots to the right)

if can you see this screen at boot, it

[1.] if you installed FreeBSD on you SSD you won’t need to do anything more, just login as “root” (you won’t be asked for a password)

[2.] if you installed FreeBSD on an USB pendrive, at boot time you should see the following prompt

it is a weird prompt but no panic!!

mountroot>
in a few words, FreeBSD knows to be installed on the second external device (da1s0a) but we are booting from the first device since now you have only 1 external device connected, we just need to inform FreeBSD about this change:
mountroot> ufs:da0s1a
just wait for init to complete the final boot stage and you’lle be presented the login screen, type “root” (you won’t need to enter a password) and give the following command:
# vi /etc/fstab

here you have to modify the boot devices with:

/dev/da0s1b

and

/dev/da0s1a

from vi you can do this in just one shot with regexp, simply type the following command

:%s/da2s/da0s/g

then hit Shift+ZZ to save and exit from vi

finally

# reboot

and from the next boot you shouldn’t see any weird prompt and directly boot to the login screen.

ENDING NOTES [2.]

  • with these settings FreeBSD should be always booted from the first USB device (da0), so I recommend to boot FreeBSD from the USB lost to the left of your Eee PC or else you will need to unplug all of the other external devices and then re-plug them at the login screen
  • you may want to make Eee PC boot directly from the USB device, just hit F2 when powering on and select the right device under Boot->Hard Disk Drives and then F10 to save your settings




So What?

Installation is now completed, your system should occupy 684MB with ports or 280MB without ports, you may want to install the drivers for your Eee PC, just follow this guide from the official FreeBSD website:

AsusEee – FreeBSD Wiki

for the newbies I recommend a lecture of the official handbook
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html

Have fun! 😉


–Stay Free, stay BSD


UPDATES

— 12/03/2009

this guide was tested successfully on the following notebooks:

  • ASUS Eee PC 701
  • Toshiba NB100-11R

I will post here new tests on other machines, have a look a the header tag for updates or contact me if you make new tests.

— 13/03/2009

Published a demo video for ASUS Eee PC 701:







Ready lets go

13 03 2009

Hey everybody,

welcome to the english version of my blog, to visit the original italian version just click on the link below:
http://captainsonic.wordpress.com

This blog is mainly for ham radio, experimental music, BSD and computer science, so if you are interested in such matters stay tuned!


PS: for the curious minds and electronic music fans, the title of this first post was inspired from the opening track of Geogaddi by Boards of Canada, enjoy!