FreeBSD 4.x on a Satellite 3005-S304

This page describes my experiences installing FreeBSD on a Toshiba Satellite S3005-S304 series laptop. This should be the exact same procedure as the Satellite S3000-S304 series laptop. Page layout and things are heavily borrowed from Dan Pelleg's FreeBSD on a Thinkpad X23 page.

This page assumes you know how to install ports, compile kernels, and create custom boot floppies and/or CD's.

Preparation

The machine ships with one partition, with Windows XP installed on it. Use a utility like Partition Magic to resize the partition to something agreeable (I used 13GB). This takes a while, and Windows will shut down. DO NOT TURN OFF THE LAPTOP. Resizing is occurring even though the screen is blank. Wait till the hard drive activity LED goes dormant. I plugged the computer in, left it alone for about 20 minutes, and came back and it was done.

You have space for FreeBSD now.

Install

To get past an ugly hang on boot, you need to create a kernel from the same source tree as your installation media. I used RELENG_4_5_0_RELEASE. On another FreeBSD box, duplicate the GENERIC kernel config and add

device pcm

to it somewhere. Additionally, you may want to follow the steps outlined under Mouse below to get the mouse working on the first boot. Compile this kernel, and create a customized boot floppy or CD with it. Install FreeBSD on the free space you created above. I net-installed after booting from floppies with my Cisco Aironet PCM-352 card. UPDATE: Others have reported that set

eisa 0

will work around the PCM problems.

Display

The GeForce2Go included with this line of laptops works (eventually) with XFree86-4.2.0 and higher. This is available in the ports tree. I did not add agp_load="YES" to /boot/loader.conf and it still works for me.

Follow the directions available at this website for instructions on getting the card working. Important things that will go in your XF86Config:

VideoRam 16384 # 16MB Video RAM ("Device" Section)
DefaultDepth 24 # 24-Bit Video ("Screen" Section)
Modes "1024x768" # 1024x768 ("Display" SubSection)

Otherwise, using a HorizSync 31.5 - 57.0 and a VertRefresh 50-90 seems to work for me. YMMV.

Mouse

You'll need to patch your system to get the touchpad mouse working. Stuart Barkley wrote a patch and posted it to freebsd-mobile@freebsd.org that works on the 300x-514 series laptops. Apply this patch to your kernel sources and rebuild your kernel. (Don't forget device pcm! And don't forget to re-apply this everytime you cvsup the kernel tree.) I don't use moused, so I set the mouse up as a Option "Protocol" "PS/2" in XF86Config. OB: I've heard reports that the mouse patch doesn't compile against RELENG_4 anymore. I've not had a chance to verify this, but for now if the patch fails, you'll have to hand-merge it. UPDATE: Nope, it doesn't compile cleanly anymore, but all the bits are there so it can be hand-merged.

Booting

I installed the FreeBSD boot manager and dual-boot WinXP/FreeBSD works fine.

Ethernet

Works out of the box, using the rl driver.

PCMCIA

Works out of the box, like a champ.

Wireless

As mentioned above, I have a Cisco Aironet PCM-352 card — you'll need to enable pccardd (see an article by Michael Lucas).

Modem

Doesn't work out of the box, or with the ports/comms/ltmdm port. I believe it is some form of Lucent or Rockwell chipset soft modem.

USB

According to dmesg, it works. I have not yet had the opportunity to test this though.

Infrared

According to dmesg, it works. I have not yet had the opportunity to test this though.

Audio

Seems to work fine. Occasionally I'll boot up and the sound won't be available. mixer will show no sources, yet dmesg shows the sound card. I've not yet been able to track this down. Rebooting usually solves the problem.

Problems

APM doesn't work at all. You won't get any battery level indication, no use of SpeedStep, or anything else. Because of this, Hibernation won't work either.

Here are some power-saving tricks from Dan Pelleg's Website:

  • Mount your filesystems noatime
  • Change the atrun line in /etc/crontab to start with */30 so at(1) wakes up only once in 30 minutes. Better yet: comment it out if you don't need at(1) running.
Last Comments

Other than the APM issues, this is a great candidate laptop for FreeBSD installation. I've not tried my luck at hot-swapping the floppy for the DVD/CD-RW drive and vice-versa, so YMMV with that. I've also not used the CD-RW as a writing device under FreeBSD, nor have I watched DVD movies or similar. The SmartMedia card slot on the left side of the laptop is found under SCSI devices in Windows XP, and I do not have SCSI enabled in my kernel nor do I have a SmartMedia card, so I cannot test this out with FreeBSD.