| CPU: Intel Core Duo T2400 1.83 GHz | Yes |
| Hard Disk: 80GB (5,400 rpm) SATA Hard Drive | Yes |
| Graphic Card: Intel Graphics Media Accelerator 950 (Intel GMA 950) | Yes |
| Screen: 17`` Wide Screen WXGA+(1440x900) | Yes with 915resolution hack |
| Wireless Card: Intel PRO/Wireless 3945ABG Network Connection (ipw3945) | Not tried yet |
| Sound Card: Intel HDA. Mixer: SigmaTel STAC9200 | Yes |
| Modem: Conexant HDA D110 MDC V.92 | Not tried yet |
| Dell Wireless 350 Bluetooth 2.0 Module | Not tried yet |
| Hotkeys | No |
Intro
I've always been curious about FreeBSD, I've already installed various GNU/Linux distros on this laptop (Ubuntu, Debian, Fedora, OpenSuse), but a few things had prevented me from installing it: the need to install on a primary partition, the somewhat scary pages on installation in the FreeBSD manual, and the fact I didn't know how well my hardware would be supported. Eventually I decided to free one of my primary partitions and give it a try. Up to now I've been quite satisfied: most hardware is supported on this laptop, the installation was fun and not too difficult.
Partitioning (Slicing)
From the history of previous installations my hard disk has resulted into 3 primary partitions, and one extended partition, which contains other 5 partitions. I moved all the stuff I had from the third primary partition, which was a fat32 partition shared between Linux and Windows, to one of the logical partitions. After that I cancelled the partition from within Ubuntu, using gparted. The partition I freed for FreeBSD is a 9.32 Gigabytes partition which starts at sector 31615920, which is around 15 Gigabytes from the beginning of the disk. In spite of this I don't have problems booting it with GRUB (which was already installed with Ubuntu).
After having setup the partition I booted from the FreeBSD installation cd (you need only the first one to install the basic stuff), and I arrived to the point where it detected the geometry of my disk. Here I got a dodgy message saying that the layout of my disk, as detected by the bios was unlikely, and than the installer guessed the right layout. I was a bit worried and did some search about this on Google. I also wrote down the layout of the disk as it appears in gparted from Linux. After having figured out that the layout the FreeBSD installer was "trying to guess" was the same as the one given by gparted, and that the dodgy message was probably due to the bios reporting a wrong layout because of natural limitations the bios has, I decided to go on, and indeed FreeBSD was installed in the right partition without any problems.
The next task involved choosing how to further subdivide the new FreeBSD partition. I choose to make a 1 Gigabytes swap partition, and let everything else reside under the root "/" partition without separate "/home" or "/var" partitions. Although there might be advantages having separate "/home", "/var" and "/tmp" partitions, it is not really necessary, and having everything under the root partition is a far simpler approach for a beginner, least you end up with a too small "/var" partition and can't install certain packages because of that (which happened to me following the advice given in the FreeBSD Handbook of giving "/var" around 50 Megabytes).
The rest of the installation went on without problems. The installer detected my ethernet adaptor and configuring the Internet connection was easy with DHCP. I choose not to install the ports collection from the cd, because it's better and easy to install it directly from the Internet afterwards, as you get the latest version in this way.
Configuring Grub
As mentioned above I already have a Linux installation on this laptop, so I already had Grub installed on the MBR, and when the FreeBSD sysinstall asked me, I choose to leave the MBR untouched. I then added the following lines to menu.lst from Ubuntu in order to be able to boot FreeBSDtitle FreeBSD
root (hd0,a)
kernel /boot/loader
Note that I didn't set the FreeBSD partition with the boot flag, because I already have a Windows partition set with this flag, and I've read that setting two partitions with this flag might create problems.
Configuring X11 and the Monitor
You can install X11 during the general installation or afterwards, it doesn't make much difference. In case you want to install something that you've left out from the initial installation you can always install it running "/usr/sbin/sysinstall". After having installed X11 in this way, I run the configure script
Xorg -configure
which created a "xorg.conf.new" file under "/root" I then edited this file manually to match my video card and monitor specs. You can find a copy here xorg.conf.new. In order to get the native screen resolution you need the 915resolution package, which you can install through the sysinstall interface. You then need to add the following line to "/etc/rc.conf"
/usr/local/bin/915resolution 3c 1440 900
now reboot and try to get in X by using startx, xdm, or gdm, depending on what you've installed, or what you prefer. You should get the native 1440x900 resolution.
X11 seems to work with the i810 driver, which is great (compared to vesa), but it seems I still haven't got 3d acceleration as the output of glxinfo says no direct rendering available. I think I could get it through further configuration, but I still haven't done it for lack of time, and because unless you're playing games you probably won't even notice the difference.
Soundcard
There's a driver for the Intel HDA soundcard, I followed the instructions given on this website, notice that there's a typo in his code listing, which I've corrected in the code listing below # mkdir snd # cd snd # fetch http://people.freebsd.org/~ariff/lowlatency/sndkld_releng6_i386_lowlatency.tar.gz # fetch http://people.freebsd.org/~ariff/lowlatency/soundcard.h # tar xf sndkld_releng6_i386_lowlatency.tar.gz # cp *.ko /boot/kernel/ # kldxref /boot/kernel/ # cp soundcard.h /usr/include/sys/ # cd .. # rm -r snd this should get the sound working. Now, to get the driver loaded at each start up (FreeBSD doesn't enable sound by default anyway), add the following to
/boot/loader.conf snd_hda_load="YES"
Power Management and CPU Frequency Scaling
I'm not really sure here. Seems like the basic is working, but frequency scaling is probably not. The fan tends to start maybe a little more than usual, but it's nothing to be worried about. The output of
sysctl -a | grep temperature
during a rather lengthy compilation gives me hw.acpi.thermal.tz0.temperature: 63.5C, which I think is pretty much within the norm.
Automatically Mounting a Shared FAT partition
I have a fat partition which I use to share files between different operative systems. This is a 10 Gigabytes logical partition, notice that though FreeBSD can't be installed on logical partitions, it can mount and use them. In order to have it mounted automatically at start-up, I added the following line to "/etc/fstab"/dev/ad0s9 /home/sam/media/ad0s9 msdos rw 0 0Wireless
I haven't tried yet.Other Unresolved Issues
I'm having problems getting the Italian keyboard mapping within gnome. At the terminal it works OK, except I can't get it to print non ASCII characters. I probably need to configure a few things before I get it working, there are some tutorials on the Internet that I haven't had the time to read carefully.
I've configured gnome to use hal, in order to automatically mount attached usb devices, but for some reason it's not working, and I need to mount them manually
Other Post-Install Configurations
Using bash as the default shell
The default shell in FreeBSD is tcsh. To use bash as default, install it either from the packages or from the port collections and then run
chsh -s /usr/local/bin/bash
Getting the Ports Collection
Getting the ports collection was easy with portsnap, which seems to have been installed in the initial installation. In order to get the collection just use
portsnap fetch
portsnap extract
as explained in the FreeBsd Handbook which is an invaluable support through the entire installation and configuration process.
Updating Packages
If you want to stick with the frozen release and apply only security updates do
freebsd-update fetch install
If you want the latest packages:
Set the PACKAGESITE environment variable either temporarily or writing the following in /etc/profile (substitute the ftp address to a mirror near you)
export PACKAGESITE="ftp://ftp.uk.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/"
Now retrieve the ports collection
portsnap fetch update
optionally you can see a list of all outdated packages with
pkg_version
then we can use portupgrade to install the updated packages
portupgrade -Pa
the -P option tells portupgrade to download pre-built binary packages whenever possible rather than compiling each package using the ports. The -a option means update all packages.
Flags for Optimising Programs Compilation
I've added the following lines to "/etc/make.conf" to optimise program compilation on this CPU. Notice that I'm not an expert, I've followed advice gathered from the Internet, and so these options might be either wrong, or could be improved. Anyway, here's what I've got
CPUTYPE=prescott
CFLAGS= -O2 -pipe
Getting gdm to start automatically at each boot
In "/etc/ttys" change the line starting with "ttyv8" to match the following
ttyv8 "/usr/local/sbin/gdm -nodaemon" xterm on secure
Notice that, as in Linux, you can get a terminal by pressing Ctrl-Alt F1 or F2 etc., however to get back to X11 you need to press Ctrl-Alt F9
Other useful stuff
Mounting a cd-rom
mount /cdrom
Using bash as the default shell
The default shell in FreeBSD is tcsh. To use bash as default, install it either from the packages or from the port collections and then run chsh -s /usr/local/bin/bash Getting the Ports Collection
Getting the ports collection was easy with portsnap, which seems to have been installed in the initial installation. In order to get the collection just use portsnap fetch portsnap extract as explained in the FreeBsd Handbook which is an invaluable support through the entire installation and configuration process.
Updating Packages
If you want to stick with the frozen release and apply only security updates do freebsd-update fetch install If you want the latest packages:
Set the PACKAGESITE environment variable either temporarily or writing the following in
/etc/profile (substitute the ftp address to a mirror near you) export PACKAGESITE="ftp://ftp.uk.freebsd.org/pub/FreeBSD/ports/i386/packages-6-stable/Latest/" Now retrieve the ports collection
portsnap fetch update optionally you can see a list of all outdated packages with
pkg_version then we can use portupgrade to install the updated packages
portupgrade -Pa the -P option tells portupgrade to download pre-built binary packages whenever possible rather than compiling each package using the ports. The -a option means update all packages.
Flags for Optimising Programs Compilation
I've added the following lines to "/etc/make.conf" to optimise program compilation on this CPU. Notice that I'm not an expert, I've followed advice gathered from the Internet, and so these options might be either wrong, or could be improved. Anyway, here's what I've gotCPUTYPE=prescott
CFLAGS= -O2 -pipe
Getting gdm to start automatically at each boot
In "/etc/ttys" change the line starting with "ttyv8" to match the followingttyv8 "/usr/local/sbin/gdm -nodaemon" xterm on secureNotice that, as in Linux, you can get a terminal by pressing Ctrl-Alt F1 or F2 etc., however to get back to X11 you need to press Ctrl-Alt F9
Other useful stuff
Mounting a cd-rommount /cdrom