FreeBSD on LaptopsFreeBSD works fine on most laptops, with a few caveats.
Some issues specific to running FreeBSD on laptops, relating
to different hardware requirements from desktops, are
discussed below.
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
$FreeBSD$$FreeBSD$FreeBSD is often thought of as a server operating system, but
it works just fine on the desktop, and if you want to use it on
your laptop you can enjoy all the usual benefits: systematic
layout, easy administration and upgrading, the ports/packages
system for adding software, and so on. (Its other benefits, such
as stability, network performance, and performance under a heavy
load, may not be obvious on a laptop, of course.) However,
installing it on laptops often involves problems which are not
encountered on desktop machines and are not commonly discussed
(laptops, even more than desktops, are fine-tuned for
µsoft.windows;). This article aims to discuss some of these
issues. Several people have also documented their experiences
with &os; on specific laptop models on webpages which are not part
of the &os; documentation. You might very well find some
information if you type the name of your laptop model and the word
&os; into a search engine of your choice.
Additionally there is a &os;-specific online database which aims
to give information on hardware issues with laptops, The &os; Laptop
Compatibility List.If you want to communicate with other &os; laptop users, check
out the &a.mobile.name; list. You can also get additional
information about using Laptops on &os; at http://tuxmobil.org/mobile_bsd.html.&xorg;Recent versions of &xorg; work
with most display adapters available on laptops these days.
Acceleration may not be supported, but a generic SVGA
configuration should work.Check your laptop documentation for which card you have, and
check in the &xorg; documentation to
see whether it is specifically supported. If it is not, use a
generic device (do not go for a name which just looks similar).
You can try your luck with the command Xorg
-configure which auto-detects a lot of
configurations.The problem often is configuring the monitor. Common
resources for &xorg; focus on CRT
monitors; getting a suitable modeline for an LCD display may be
tricky. You may be lucky and not need to specify a modeline, or
just need to specify suitable HorizSync and
VertRefresh ranges. If that does not work,
the best option is to check web resources devoted to configuring
X on laptops (these are often Linux oriented sites but it does
not matter because both systems use
&xorg;) and copy a modeline posted by
someone for similar hardware.Most laptops come with two buttons on their pointing
devices, which is rather problematic in X (since the middle
button is commonly used to paste text); you can map a
simultaneous left-right click in your X configuration to a
middle button click with the line Option
"Emulate3Buttons" in xorg.conf
in the InputDevice section.ModemsLaptops usually come with internal (on-board) modems.
Unfortunately, this almost always means they are
winmodems whose functionality is implemented in
software, for which only &windows; drivers are normally
available (though a few drivers are beginning to show up for
other operating systems; for example, if your modem has a Lucent
LT chipset it might be supported by the
comms/ltmdm port). If that is the case, you
need to buy an external modem: the most compact option is
probably a PC Card (PCMCIA) modem, discussed below, but serial
or USB modems may be cheaper. Generally, regular modems
(non-winmodems) should work fine.PCMCIA (PC Card) DevicesMost laptops come with PCMCIA (also called PC Card) slots;
these are supported fine under FreeBSD. Look through your
boot-up messages (using &man.dmesg.8;) and see whether these
were detected correctly (they should appear as
pccard0, pccard1 etc
on devices like pcic0).&os; 4.X supports 16-bit PCMCIA cards, and
&os; 5.X supports both 16-bit and 32-bit
(CardBus) cards. A database of supported cards
is in the file /etc/defaults/pccard.conf.
Look through it, and preferably buy cards listed there. Cards
not listed may also work as generic devices: in
particular most modems (16-bit) should work fine, provided they
are not winmodems (these do exist even as PC Cards, so watch
out). If your card is recognised as a generic modem, note that
the default pccard.conf specifies a delay
time of 10 seconds (to avoid freezes on certain modems); this
may well be over-cautious for your modem, so you may want to
play with it, reducing it or removing it totally.Some parts of pccard.conf may need
editing. Check the irq line, and be sure to remove any number
already being used: in particular, if you have an on board sound
card, remove irq 5 (otherwise you may experience hangs when you
insert a card). Check also the available memory slots; if your
card is not being detected, try changing it to one of the other
allowed values (listed in the manual page
&man.pccardc.8;).If it is not running already, start the &man.pccardd.8;
daemon. (To enable it at boot time, add
pccard_enable="YES" to
/etc/rc.conf.) Now your cards should be
detected when you insert and remove them, and you should get
log messages about new devices being enabled.There have been major changes to the pccard code (including
ISA routing of interrupts, for machines where &os; is not able
to use the PCI BIOS) before the &os; 4.4 release. If you
have problems, try upgrading your system.Power ManagementUnfortunately, this is not very reliably supported under
FreeBSD. If you are lucky, some functions may work reliably;
or they may not work at all.To make things a little more complex, there are two existing
standards for power management: APM and ACPI, the latter
superseding the former and including more features, but also
introducing more problems.Some laptops support both APM and ACPI (to a certain
degree), others just support one of them, so chances are that
you have to experiment with both of them to have reliable power
management on your laptop.You cannot have APM and ACPI enabled at the same time,
even if your laptop has support for both of them.APMThe APM (Advanced Power Management) BIOS provides support
for various power management features like standby, suspend,
hibernation, CPU clock slow down etc. and is available
under &os; 4.X and &os; 5.X.To enable APM support, you can compile a kernel with power
management support (device apm0 on
&os; 4.X and device apm on
&os; 5.X). A kernel module for APM is available under
&os; 5.X, to simply load the APM kernel module at boot
add the line apm_load="YES" to
/boot/loader.conf.On &os; 5.X, you also have to set
hint.apm.0.disabled="0" in
/boot/device.hints.You can start APM at boot time by having
apm_enable="YES" in
/etc/rc.conf. You may also want start
the &man.apmd.8; daemon by adding
apmd_enable="YES" to
/etc/rc.conf, which takes care of various
APM events that are posted to the BIOS, so you can have your
laptop suspend/resume by pressing some function key on the
keyboard or by closing/opening the lid.The APM commands are listed in the &man.apm.8; manual
page. For instance, apm -b gives you
battery status (or 255 if not supported), apm
-Z puts the laptop on standby, apm
-z (or zzz) suspends it. To
shutdown and power off the machine, use shutdown
-p. Again, some or all of these functions may not
work very well or at all.You may find that laptop suspension/standby works in
console mode but not under X (that is, the screen does not
come on again); if you are running &os; 5.X, one solution
for this might be to put options
SC_NO_SUSPEND_VTYSWITCH in your kernel
configuration file and recompile your kernel. Another
workaround is to switch to a virtual console (using CtrlAltF1
or another function key) and then execute &man.apm.8;. You
can automate this with &man.vidcontrol.1;, if you are running
&man.apmd.8;. Simply edit /etc/apmd.conf
and change it to this:apm_event SUSPENDREQ {
exec "vidcontrol -s 1 < /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 < /dev/console";
exec "sync && sync && sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 < /dev/console";
}ACPIACPI (Advanced Configuration and Power Management
Interface) provides not only power management but also
platform hardware discovery (superseding PnP and PCI BIOS).
ACPI is only available under &os; 5.X and is enabled by
default, so you do not have to do anything special to get it
running. You can control ACPI behaviour with
&man.acpiconf.8;.Unfortunately, vendors often ship their laptops with
broken ACPI implementations, thus having ACPI enabled
sometimes causes more problems than being useful, up to the
point that you cannot even boot &os; on some machines with
ACPI enabled.If ACPI is causing problems, you might check if your
laptop vendor has released a new BIOS version that fixes some
bugs. Since the &os; ACPI implementation is still very
evolving code, you might also want to upgrade your system;
chances are that your problems are fixed.If you want to disable ACPI simply add
hint.acpi.0.disabled="1" to
/boot/device.hints. You can disable ACPI
temporarily at the boot loader prompt by issuing
unset acpi_load if you are having problems
booting an ACPI enabled machine. &os; 5.1-RELEASE and
later come with a boot-time menu that controls how &os; is
booted. One of the proposed options is to turn off ACPI. So
to disable ACPI just select 2. Boot &os; with
ACPI disabled in the menu.Display Power ManagementThe X window system (&xorg;)
also includes display power management (look at the
&man.xset.1; manual page, and search for dpms
there). You may want to investigate this. However, this,
too, works inconsistently on laptops: it often turns off the
display but does not turn off the backlight.