doc/en_US.ISO8859-1/articles/laptop/article.xml
2013-11-13 07:52:45 +00:00

299 lines
13 KiB
XML

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en">
<info><title>FreeBSD on Laptops</title>
<abstract>
<para>FreeBSD 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.</para>
</abstract>
<legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.linux;
&tm-attrib.microsoft;
&tm-attrib.general;
</legalnotice>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
</info>
<para>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
&microsoft.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 <quote>&os;</quote> 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,
<link xlink:href="http://laptop.bsdgroup.de/freebsd/">The &os;
Laptop Compatibility List</link>.</para>
<para>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
<uri xlink:href="http://tuxmobil.org/mobile_bsd.html">http://tuxmobil.org/mobile_bsd.html</uri>.</para>
<sect1 xml:id="xorg">
<title>&xorg;</title>
<para>Recent versions of <application>&xorg;</application> work with most display adapters
available on laptops these days. Acceleration may not be
supported, but a generic SVGA configuration should work.</para>
<para>Check your laptop documentation for which card you have,
and check in the <application>&xorg;</application> 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 <userinput>Xorg -configure</userinput>
which auto-detects a lot of configurations.</para>
<para>The problem often is configuring the monitor. Common
resources for <application>&xorg;</application> 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 <literal>HorizSync</literal> and <literal>VertRefresh</literal> 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 <application>&xorg;</application>) and copy a modeline posted by someone for similar
hardware.</para>
<para>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</para>
<programlisting>
Option "Emulate3Buttons"
</programlisting>
<para>in the <filename>xorg.conf</filename> file in the <literal>InputDevice</literal>
section.</para>
</sect1>
<sect1 xml:id="modems">
<title>Modems</title>
<para>
Laptops usually come with internal (on-board) modems.
Unfortunately, this almost always means they are
<quote>winmodems</quote> 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 <package>comms/ltmdm</package> 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.
</para>
</sect1>
<sect1 xml:id="pcmcia">
<title>PCMCIA (PC Card) devices</title>
<para> Most 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
<filename>pccard0</filename>,
<filename>pccard1</filename> etc on devices like
<filename>pcic0</filename>).</para>
<para>&os;&nbsp;4.X supports 16-bit PCMCIA cards, and
&os;&nbsp;5.X supports both 16-bit and
32-bit (<quote>CardBus</quote>) cards. A database of supported
cards is in the file <filename>/etc/defaults/pccard.conf</filename>.
Look through it, and preferably buy cards listed there. Cards not
listed may also work as <quote>generic</quote> 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 <filename>pccard.conf</filename> file 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.</para>
<para>Some parts of <filename>pccard.conf</filename> 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;).
</para>
<para>If it is not running already, start the &man.pccardd.8; daemon.
(To enable it at boot time, add
<programlisting>pccard_enable="YES"</programlisting> to
<filename>/etc/rc.conf</filename>.) Now your cards should be
detected when you insert and remove them, and you should get
log messages about new devices being enabled.</para>
<para>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;&nbsp;4.4
release. If you have problems, try upgrading your system.</para>
</sect1>
<sect1 xml:id="power-management">
<title>Power management</title>
<para>Unfortunately, this is not very reliably supported under
FreeBSD. If you are lucky, some functions may work reliably;
or they may not work at all.</para>
<para>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.</para>
<para>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.</para>
<note>
<para>You cannot have APM and ACPI enabled at the same time,
even if your laptop has support for both of them.</para>
</note>
<sect2>
<title>APM</title>
<para>The 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;&nbsp;4.X and &os;&nbsp;5.X.</para>
<para>To enable APM support, you can compile a kernel with power
management support (<literal>device apm0</literal> on
&os;&nbsp;4.X and <literal>device apm</literal> on
&os;&nbsp;5.X). A kernel module for APM is available under
&os;&nbsp;5.X, to simply load the APM kernel module at boot
add the line <literal>apm_load="YES"</literal> to
<filename>/boot/loader.conf</filename>.</para>
<para>On &os;&nbsp;5.X, you also have to set
<literal>hint.apm.0.disabled="0"</literal> in
<filename>/boot/device.hints</filename>.</para>
<para>You can start APM at boot time by having
<literal>apm_enable="YES"</literal> in
<filename>/etc/rc.conf</filename>. You may also want start
the &man.apmd.8; daemon by adding
<literal>apmd_enable="YES"</literal> to
<filename>/etc/rc.conf</filename>, 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.</para>
<para>The APM commands are listed in the &man.apm.8; manual page.
For instance, <command>apm -b</command> gives you battery
status (or 255 if not supported), <command>apm -Z</command>
puts the laptop on standby, <command>apm -z</command> (or
<command>zzz</command>) suspends it. To shutdown and power
off the machine, use <command>shutdown -p</command>. Again,
some or all of these functions may not work very well or at
all.</para>
<para>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;&nbsp;5.X, one solution
for this might be to put <literal>options
SC_NO_SUSPEND_VTYSWITCH</literal>
in your kernel configuration file and recompile your kernel.
Another workaround is to switch to a virtual console (using
<keycombo action="simul"><keycap>Ctrl</keycap><keycap>Alt</keycap><keycap>F1</keycap></keycombo>
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
<filename>/etc/apmd.conf</filename> and change it to
this:</para>
<programlisting>apm_event SUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "/etc/rc.suspend";
}
apm_event USERSUSPENDREQ {
exec "vidcontrol -s 1 &lt; /dev/console";
exec "sync &amp;&amp; sync &amp;&amp; sync";
exec "sleep 1";
exec "apm -z";
}
apm_event NORMRESUME, STANDBYRESUME {
exec "/etc/rc.resume";
exec "vidcontrol -s 9 &lt; /dev/console";
}</programlisting>
</sect2>
<sect2>
<title>ACPI</title>
<para>ACPI (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;&nbsp;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;.</para>
<para>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.</para>
<para>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.</para>
<para>If you want to disable ACPI simply add
<literal>hint.acpi.0.disabled="1"</literal> to
<filename>/boot/device.hints</filename>. You can disable
ACPI temporarily at the boot loader prompt by issuing
<literal>unset acpi_load</literal> if you are having problems
booting an ACPI enabled machine. &os;&nbsp;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 <guimenuitem>2. Boot &os; with ACPI
disabled</guimenuitem> in the menu.</para>
</sect2>
<sect2>
<title>Display Power Management</title>
<para>The X window system (<application>&xorg;</application>) also includes display power
management (look at the &man.xset.1; manual page, and search for
<quote>dpms</quote> 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.</para>
</sect2>
</sect1>
</article>