EeeBSD
This guide is to describe solutions to problems installing FreeBSD onto
the Asus EeePC series of subnotebook computers. This guide was written
for FreeBSD 7.0-BETA3/i386 on an Asus EeePC model 701 (4GB SDD with
webcam), but should work with other models of the Eee and different
versions of FreeBSD.
Installation
Installation of FreeBSD onto the Eee is reasonably straightforward.
"Out of the box" most things work, but you should take the following
into account when installing.
- It's difficult to partition the 4GB SSD into useful sizes.
During my first install attempt, I ran out of space in my / partition
(NOT GOOD). I ended up deciding to make the entire "disk" one
partition. This is not necessary, but is probably a good idea.
- You probably won't want to make a swap partition. As highly
non-recommended as this is, it's really not a good idea to use flash
storage for swap. It'll kill the SSD very quickly, and that you
probably want to avoid. I can run Firefox, Thunderbird, several xterms,
and compile ports simultaneously without running out of memory, and my
Eee still has the stock 512MB of memory. If you feel that you need more
memory, get more physical memory.
- After installation, you will not have any networking, as appropriate drivers are not in the default install. MAKE SURE YOU INSTALL AT LEAST THE KERNEL SOURCES, AS YOU WILL NEED THEM TO GET NETWORKING WORKING.
- Obviously, the Eee does not have an optical drive. The easiest
way to install is either to make a bootable USB key with the
installation media on it, or get a USB CDROM drive. Usually it's
possible to take apart a USB hard drive and attach a standard IDE CDROM
to its controller board. The Eee does technically support netboot, so
it might be possible to do a network install, but you'll need to build
a custom kernel with appropriate network drivers (see the networking
section below).
- Remember not to try to install the amd64 port of FreeBSD. Unlike many new laptops, the Eee does NOT have a 64-bit CPU.
Other than taking these notes into account, installation
should be reasonably standard. After installation is complete, you may
want to edit your /etc/fstab file to make /
(and any other partitions you decided to make) mount with noatime. This
will reduce the number of writes made to your SSD, and will
theoretically prolong its life.
Post-Installation
After installation, several things will not work quite right.
Wireless Networking
The wireless card in the EeePC is an Atheros card which would normally be supported by FreeBSD's ath driver, except that the HAL in the stock driver does not support PCIe as used in the Eee.
On another computer that does have internet access, download this
patched copy of MadWifi, which does have support for the wireless card
in the Eee: http://snapshots.madwifi.org/special/madwifi-ng-r2756+ar5007.tar.gz
Copy the tarball onto the Eee using a USB memory key or some other
media. Decompress the tarball and then run the following as root:
cd madwifi-ng-r2756+ar5007/hal
cp -R * /usr/src/sys/contrib/dev/ath/
Recompile your kernel, and reboot. When the system comes up,
you should have wireless networking. The NIC will show up as ath0. Note
that compiling the kernel will probably take about two hours. Go get
some coffee or something.
- Important warning: DO NOT USE Fn+F2 ONCE THE WIRELESS CARD DRIVER IS LOADED!
Fn+F2 will do what it says (toggle power to the wireless card), but the
driver does not know how to handle this state and will get rather angry
at you if the wireless card disappears.
Wired networking
Out of the box, there is no driver for the wired NIC in the Eee. I
understand that a beta driver exists, but I never got around to
installing it on my Eee. This section will be updated eventually.
Sound
The Eee uses the standard Intel High Definition Audio chipset for
sound. Add the following to /boot/loader.conf to load the appropriate
driver:
snd_hda_load="YES"
Hotkeys
The hotkeys for switching between the internal display and external
display, the sound controls, and whatever Fn+F6 is supposed to do don't
work. I haven't gotten around to figuring out how to fix them. Also,
see my note in the Wireless section regarding Fn+F2.
X11
Make sure you install the xorg-drivers/xf86-video-intel driver and not xorg-drivers/xf86-video-i810.
Once you do that, you can use this xorg.conf:
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/local/share/X11/rgb"
ModulePath "/usr/local/lib/xorg/modules"
FontPath "/usr/local/lib/X11/fonts/misc/"
FontPath "/usr/local/lib/X11/fonts/TTF/"
FontPath "/usr/local/lib/X11/fonts/OTF"
FontPath "/usr/local/lib/X11/fonts/Type1/"
FontPath "/usr/local/lib/X11/fonts/100dpi/"
FontPath "/usr/local/lib/X11/fonts/75dpi/"
FontPath "/usr/local/lib/X11/fonts/URW/"
FontPath "/usr/local/lib/X11/fonts/bitstream-vera/"
EndSection
Section "Module"
Load "extmod"
Load "record"
Load "dbe"
Load "glx"
Load "GLcore"
Load "xtrap"
Load "dri"
Load "freetype"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
ModeLine "800x480" 29.58 800 816 896 992 480 481 484 497 -HSync +Vsync
Option "DPMS"
EndSection
Section "Device"
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "Mobile 915GM/GMS/910GML Express Graphics Controller"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 24
Modes "800x480"
EndSubSection
EndSection
Webcam
To my knowledge, no drivers exist for the webcam.
If you have any questions or comments, please feel free to contact me at james@nighthack.org.