eeePC 900 && video cam

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


Hello,

I followed the hints in
http://nighthack.org/wiki/EeeBSD
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
card?

thx in advance

	matthias
-- 
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 oclc.org> - w http://www.oclc.org/ http://www.UnixArea.de/
b http://gurucubano.blogspot.com/
«...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 UnixArea.de>

First prepare an USB key with:

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

How to do this is documented on Internet already, see for example:
http://groups.google.com/group/lucky.freebsd.questions/msg/5c759b1c87376b22

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 
boot-able:

# 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
installation:

# 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
# ./install.sh
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
# ./install.sh
# cd ../catpages
# ./install.sh

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 
#!/bin/sh 
tmpmfs="YES" 
tmpsize="128m" 
hostname="tiny" 
keyrate="fast" 
EOFRCCONF 
 
# 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-->X.org

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
    EndSection


# cp xorg.conf.new /etc/X11/xorg.conf

adjust /etc/rc.conf file with:

    syslogd_enable="NO"
    sendmail_enable="NONE"

adjust /boot/loader.conf file with:

    snd_hda_load="YES"

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 http://nighthack.org/wiki/EeeBSD fetch the 'ath' update from
http://snapshots.madwifi.org/special/madwifi-ng-r2756+ar5007.tar.gz

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