eeePC 900 && video cam

Matthias Apitz matthias.apitz at
Mon Jun 23 12:36:52 UTC 2008


I followed the hints in
to install FreeBSD 7.0R in my new Asus eeePC 900; attached is a complete
installation guide;

the (deleted) Linux saw the on board video cam with these messages:

[   11.540000] Linux video capture interface: v2.00
[   11.560000] uvcvideo: Found UVC 1.00 device CNF7129 (04f2:b071)
[   11.690000] usbcore: registered new interface driver uvcvideo
[   11.690000] USB Video Class driver (SVN r2008.02.27)

and it worked nicely; are there any plans or works for supporting this

thx in advance

Matthias Apitz
Manager Technical Support - OCLC GmbH
Gruenwalder Weg 28g - 82041 Oberhaching - Germany
t +49-89-61308 351 - f +49-89-61308 399 - m +49-170-4527211
e <matthias.apitz at> - w
«...una sola vez, que es cuanto basta si se trata de verdades definitivas.»
«...only once, which is enough if it has todo with definite truth.»
José Saramago, Historia del Cerca de Lisboa
-------------- next part --------------

$Id: installEeePC.txt,v 1.1 2008/06/23 07:49:29 guru Exp $

   How I have installed FreeBSD 7.0-RELEASE in the Asus eeePC 900
                     <guru at>

First prepare an USB key with:

- a booting FreeBSD 7.0R
- the tree of the disk1 below /disk1, as minimum:

How to do this is documented on Internet already, see for example:

The eeePC 900 comes with two separate SSD's which will show up
in FreeBSD as

/dev/ad2 (4 GByte)
/dev/ad3 (16 GByte)

even if you can boot /dev/ad3 from the boot-monitor (press ESC after power-on),
it seems that the BIOS by its own can only boot from the first SSD, the
so called OB (on board) SSD; so we will install the system in /dev/ad2;

create a new partition table on /dev/ad2 with a default slice 1 and make it 

# fdisk -BI /dev/ad2

(ignore any errors)

label it for booting freebsd:

# bsdlabel -wB /dev/ad2s1

edit the disk label and change partition a from "unused" to "4.2BSD"
as partition type:

# setenv EDITOR /usr/bin/vi
# bsdlabel -e /dev/ad2s1

create the future root-filesystem on it and mount it to /mnt for the

# newfs -m 0 -o space /dev/ad2s1a
# mount /dev/ad3s1a /mnt 

install freebsd into /mnt; this assumes that you have copied the FreeBSD
distribution into your USB key below /disk1/7.0-RELEASE:

# setenv DESTDIR /mnt
# cd /disk1/7.0-RELEASE
# cd base
# ./
You are about to extract the base distribution into /mnt - are you SURE
you want to do this over your installed system (y/n): y

# cd ../manpages
# ./
# cd ../catpages
# ./

go to the kernels directory and install a kernel of your choice: 
[default is GENERIC kernel; change to "smp" for smp-machines] 

# rmdir /mnt/boot/kernel 
# cd ../kernels; 
# cat generic.?? | tar --unlink -xpzf - -C /mnt/boot 
# cd /mnt/boot 
# mv GENERIC kernel 

now, tell FreeBSD to mount later the correct root-filesystem: 

# echo "/dev/ad3s1a  /  ufs  rw,noatime  1  1" >/mnt/etc/fstab 
create your rc.conf.local in /mnt/etc to redefine some settings: 

# cat <<EOFRCCONF >/mnt/etc/rc.conf.local 
# chmod 0755 /mnt/etc/rc.conf.local 
set a new root password manually, if you want (default="") 

# chroot /mnt /usr/bin/passwd root 

unmount the new root /mnt and reboot the eeePC:

# cd
# umount /mnt
# reboot

when the system comes up again, use 'sysinstall' for installation of Xorg

mount the USB key as:

# mount -o ro /dev/da0s1a /mnt

# sysinstall-->Configure-->Distributions-->

from installation media 'File System' and pointed to /mnt/disk1; again
this assumes that you have copied the FreeBSD distribution into your USB
key below /disk1/packages:

remove the package 'xf86-video-i810-1.6.5_3' and install correct video drivers
for the Intel chip-set; the package must be pulled from FreeBSD web sites, i.e.
it is not part of the default 7.0-R distribution CD:
# pkg_delete -f xf86-video-i810-1.6.5_3
# cd /mnt/eeePC
# pkg_add xf86-video-intel-2.1.1.tbz

login again to refresh the PATH only

use 'sysinstall' to activate the mouse daemon and configure the X server:

# Xorg -configure

before deleting the Linux on the eeePC I saved the original xorg.conf
and merged the Monitor section into the generated xorg.conf as:

    Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "ASUS"
        ModelName    "Eee PC P900"
        Modeline     "1024x600"  48.96  1024 1064 1168 1312  600 601 604 622  -HSync +Vsync

# cp /etc/X11/xorg.conf

adjust /etc/rc.conf file with:


adjust /boot/loader.conf file with:


on the second disk /dev/ad3 I created one big UFS and mounted this as /usr/home;

on my 'normal' laptop with the same FreeBSD version I created packages of all
ports I have installed on this, around 640 ports which are in packages
1.2 GByte; I moved them with the USB key to /usr/home/PKGDIR and installed
the KDE environment (and all other stuff) just with:

# cd /usr/home/PKGDIR
# pkg_add kde-3.5.8.tbz

to be continued ... (with the kernel module ath_hal.ko)

as said in fetch the 'ath' update from

I have updated with this patch the kernel in my 'normal' laptop as:

# cd /usr/src/sys/contrib/dev
# mv ath ath.orig
# mkdir ath
# cd /tmp
# tar xzf madwifi-ng-r2756+ar5007.tar.gz
# cd madwifi-ng-r2756+ar5007/hal
# cp -R * /usr/src/sys/contrib/dev/ath/

# cd /usr/src/sys/i386/compile/REBELION
# make depend
# make
# make install
# cd /boot
# mv kernel kernel.ath
# mv kernel.old kernel

move over the kernel to the eeePC and unpack it there into /boot:

# mount /dev/da0s1a /mnt
# tar cfz /mnt/eeePC/kernel.tar.gz kernel.ath
# cp /etc/wpa_supplicant.conf /mnt/eeePC

# mkdir /mnt/eeePC/usr-local-etc-devd
# cp /usr/local/etc/devd/* /mnt/eeePC/usr-local-etc-devd
# umount /mnt

the ath0 comes up and works normaly with 'wpa_supplicant' and the hooks
in devd(8) on IF_UP / IF_DOWN

More information about the freebsd-mobile mailing list