LDP/LDP/guide/docbook/Mobile-Guide/Mobile-Guide.xml

20617 lines
567 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
<!-- chapters -->
<!ENTITY lmg-revision-history SYSTEM "Mobile-Guide-chap-revision-history.xml">
<!-- INCLUDE and IGNORE are mutually exclusive for book and howto -->
<!ENTITY % bookonly "IGNORE">
<!ENTITY % howtoonly "INCLUDE">
<!ENTITY % draftonly "IGNORE">
]>
<book id="Mobile-Guide">
<bookinfo>
<title>Linux on the Road</title>
<subtitle>Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices</subtitle>
<!-- The Linux Mobile Guide, LDP Title -->
<author>
<firstname> Werner</firstname> <!-- space for better rendering with Lynx -->
<surname>Heuser</surname>
<affiliation>
<address>
<email>wehe[AT]tuxmobil.org</email>
</address>
</affiliation>
</author>
<edition>
Linux Mobile Edition
</edition>
<publisher>
<publishername>TuxMobil</publishername>
<address><city>Berlin</city></address>
</publisher>
<printhistory>
<para>
June 2000: First Printed Edition.
</para>
</printhistory>
<isbn>3-934529-42-9</isbn>
<releaseinfo>Version 3.22</releaseinfo>
<pubdate>2011-12-12</pubdate>
<legalnotice>
<para>
Copyright (c) 2000-2011 Werner Heuser. For all chapters except
"Lectures, Presentations, Animations and Slideshows" permission is
granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version
published by the Free Software Foundation; with the Invariant Sections
being "Preface" and "Credits", with the Front-Cover Texts being "Linux
on the Road - the First Book on Mobile Linux", and with the Back-Cover
Texts being the section "About the Author". A copy of the license is
included in the section entitled "GNU Free Documentation License".
</para>
</legalnotice>
<copyright>
<year>2000-2011</year>
<holder>Werner Heuser</holder>
</copyright>
<abstract>
<para>
Mobile computer devices (laptops, notebooks, PDAs, mobile cell phones,
portable audio and video players, digital cameras,
calculators, wearables, ...) are different from desktop/tower computers.
They use certain hardware such as PCMCIA cards,
infrared and BlueTooth ports, wireless LAN, LCD displays, batteries,
docking stations. Hardware parts cannot be changed as easily as in a
desktops, e.g. the graphics card. Often their hardware is more limited
(e.g. disk space, CPU speed). Though the performance gap to
desktops is becoming smaller, e.g. in many instances, laptops or
notebooks can become a desktop replacement.
</para>
<para>
Hardware support for Linux (and other operating systems) and mobile
computer devices is sometimes more limited (e.g. graphics chips, internal modems).
They often use specialized hardware, hence finding a driver can be more
difficult. Many times they are used in changing environments, so there
is a need for multiple configurations and additional security
strategies.
</para>
<para>
Though there are laptop, notebook, PDA and mobile phone
related HOWTOs available already, this guide contains
a concise survey of documents related to mobile computer
devices. Also Linux features, such as installation methods
for laptops, notebooks and PDAs as well as configurations for
different (network) environments are described.
</para>
<para>
Although there are some caveats, Linux is a better choice for mobile
computer devices than most other operating systems, because it supports
numerous installation methods, works in many heterogeneous environments
and needs smaller resources.
</para>
<!--
<para>
The printed version includes an additional part "Lectures,
Presentations, Animations and Slideshows".
</para>
-->
</abstract>
&lmg-revision-history;
<keywordset>
<keyword>laptop</keyword>
<keyword>notebook</keyword>
<keyword>pda</keyword>
<keyword>handheld</keyword>
<keyword>computer</keyword>
<keyword>mobile</keyword>
<keyword>mobile phone</keyword>
<keyword>cell phone</keyword>
<keyword>portable player</keyword>
<keyword>linux</keyword>
<keyword>unix</keyword>
</keywordset>
<itermset>
<indexterm><primary>ACPI</primary></indexterm>
<indexterm><primary>APM</primary></indexterm>
<indexterm><primary>PCMCIA</primary></indexterm>
</itermset>
</bookinfo>
<preface id="mobile-guide-p0-preface">
<title>Preface</title>
<epigraph>
<attribution>
<ulink url="http://www.margepiercy.com/">Marge Piercy</ulink>
</attribution>
<para>
Life is the first gift, love is the second, and understanding is the third.
</para>
</epigraph>
<sect1 id="mobile-guide-p0c1s1-about-the-author">
<title>About the Author</title>
<para>
People like either laptops or desktops. I like to work with laptops
rather than with desktops. I like Linux too. My first HOWTO was the
<ulink url="http://tuxmobil.org/howtos.html">Linux-Infrared-HOWTO</ulink>
about infrared support for Linux. My second is this one and my third
the
<ulink url="http://computerecology.org/">Linux-Ecology-HOWTO</ulink>
, about some ways to use Linux in an ecology aware
manner.
</para>
<para>
Also I have written some pages about Linux with all the laptops
I had a chance to put Linux on. You may find them at
<ulink url="http://tuxmobil.org/mylaptops.html">TuxMobil Linux Laptop and Notebook Survey</ulink>.
</para>
<para>
During the work with the Linux-Mobile-Guide I have also collected
some surveys about laptop related hardware:
<ulink url="http://tuxmobil.org/graphic_linux.html">graphics chips</ulink>
, <emphasis>unofficially</emphasis>
<ulink url="http://tuxmobil.org/pcmcia_linux.html">supported <acronym>PCMCIA</acronym> cards</ulink>
,
<ulink url="http://tuxmobil.org/modem_linux.html">internal modems</ulink>
,
<ulink url="http://tuxmobil.org/ir_misc.html">infrared chips</ulink>
and other hardware.
</para>
<para>
In May 2000 I have founded the German vendor
<ulink url="http://xtops.de/">Xtops.DE: Linux, Laptops, Notebooks, PDAs pre-installed</ulink>,
to sponsor the TuxMobil project.
</para>
</sect1>
<sect1 id="mobile-guide-p0c1s2-sponsoring">
<title>Sponsoring</title>
<sect2>
<title>How to and Why Sponsor?</title>
<para>
This guide is free of charge (except the printed version, which contains
an additional part) and free in the sense of the General Public Licence -
GPL. Though it requires much work and could gain more quality if I would
have some more hardware. So if you have a spare laptop, even an old one
or one which requires repair, please let me know.
For the curious, the first issues of this guide have been written on a
<ulink url="http://tuxmobil.org/hp800e.html">HP OmniBook 800CT 5/100</ulink>.
</para>
<para>
Or sponsor a banner ad at
<ulink url="http://tuxmobil.org/">TuxMobil: Linux with Laptops, Notebooks, PDAs, Mobile Phones and Portable Computers</ulink>.
</para>
<para>
You can hire me for readings or workshops on <emphasis>Linux with Laptops</emphasis>,
<emphasis>Linux with PDAs</emphasis>, <emphasis>Repairing of Laptops</emphasis> and other
Linux topics, too.
</para>
</sect2>
<sect2>
<title>Table of Sponsors</title>
<para>
This guide is currently sponsored by:
</para>
<para>
<itemizedlist>
<listitem>
<para>
AgendaComputing (Berlin, Germany out-of-business)
<!--
<ulink url="http://www.agendacomputing.de/">AgendaComputing - Germany</ulink>
link redirected to banner advertiser
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://xtops.de/index.html">Xtops.DE - Pre-Installed Linux on Laptops, PDAs and Mobile Phones</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p0c1s3-about-the-document">
<title>About the Document</title>
<subtitle>Mirrors, Translations, Versions, Formats, URLs</subtitle>
<sect2>
<title>URLs in this Document</title>
<para>
Many times I have mentioned <emphasis>MetaLab</emphasis> formerly known as
<emphasis>SunSite</emphasis>. This site carries a heavy load, so do yourself
a favor, use one of the
<ulink url="http://metalab.unc.edu/pub/Linux/MIRRORS.html">MetaLab mirrors</ulink>
.
</para>
<para>
For <emphasis>Debian/GNU Linux</emphasis> the mirror
URLs are organized in the scheme
<command>http://www.&lt;country code, e.g. uk&gt;.debian.org</command> .
</para>
<para>
Nearly all of the programs I mention are available as
<ulink url="http://www.debian.org/">Debian/GNU Linux</ulink>
package, or as RPM package. Look up your favorite RPM server, for instance
<ulink url="http://rpmfind.net/">rpmfind</ulink>
.
</para>
</sect2>
<sect2>
<title>Latest Version, Mirrors</title>
<para>
Former issues of this text are available at the
<ulink url="http://tldp.org/">THE LINUX DOCUMENTATION PROJECT - TLDP</ulink>.
</para>
<!--
<para>
Richard Worwood
<ulink url="http://www.felch01.demon.co.uk/laptop-howto.html">mirrors this HOWTO</ulink>.
</para>
-->
<para>
The latest version of this document is available at
<ulink url="http://tuxmobil.org/howtos.html">TuxMobil - HOWTOs</ulink>.
</para>
</sect2>
<sect2>
<title>Proposed Translations</title>
<para>
The following translations are under construction:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Chinese, John Lian &lt;johnlian_AT_riverrich.com.tw&gt;
</para>
</listitem>
<listitem>
<para>
Greek, Vassilis Rizopoulos &lt;mscyvr_AT_scs.leeds.ac.uk&gt;
</para>
</listitem>
<listitem>
<para>
Italian, Alessandro Grillo &lt;Alessandro_Grillo_AT_tivoli.com&gt;,
</para>
</listitem>
<listitem>
<para>
Japanese, Ryoichi Sato &lt;rsato_AT_ipf.de&gt;,
</para>
</listitem>
<listitem>
<para>
Portuguese, Gledson Evers &lt;pulga_linux_AT_bol.com.br&gt;
<!--
the translation will be announced at
<ulink url="http://www.linuxall.org">LinuxALL</ulink>
-->
</para>
</listitem>
<listitem>
<para>
Slovenia, Ales Kosir &lt;ales.kosir_AT_hermes.si&gt;
</para>
</listitem>
<listitem>
<para>
Spanish, Jaime Robles &lt;ea4abw_AT_amsat.org&gt;
<!--
<ulink url="http://jaime.robles.nu/">Jaime Robles</ulink>
-->
</para>
</listitem>
</itemizedlist>
</para>
<para>
Please contact me before starting a translation to avoid double work.
Since a translation is a great amount of work, I recommend to do this
work as a group, for instance together with your
<ulink url="http://lugww.counter.li.org/">local Linux Users Group - LUG</ulink>.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p0c1s4-contact">
<title>Contact</title>
<para>
This document isn't ready yet. If you like to write a chapter or even a
smaller part by yourself, please feel free to contact me. Also your
suggestions and recommendations and criticism are welcome. But please
don't expect me to solve your laptop related problems if the solution is
already documented. Please read all appropriate manual pages, HOWTOs and
WWW sites first, than you may consider to contact me or search in the
chapter <xref linkend="mobile-guide-a2-other-resources"/> Other Resources
mentioned below.
</para>
<para>
Werner Heuser &lt;wehe_at_tuxmobil.org&gt;
</para>
</sect1>
<sect1 id="mobile-guide-p0c1s5-disclaimer-and-trademarks">
<title>Disclaimer and Trademarks</title>
<para>
This is free documentation. It is distributed in the hope that it will
be useful, but without any warranty. The information in this document is
correct to the best of my knowledge, but there's a always a chance I've
made some mistakes, so don't follow everything too blindly, especially
if it seems wrong. Nothing here should have a detrimental effect on your
computer, but just in case, I take no responsibility for any damages
incurred from the use of the information contained herein.
</para>
<para>
Some laptop manufacturers don't like to see a broken laptop with an
operating system other than the one shipped with it, and may reload
MS-Windows if you complain of a hardware problem. They may even declare
the warranty void. Though in my humble opinion this isn't legal or at
least not fair. Always have a backup of both the original configuration
and your Linux installation if you have to get your laptop repaired.
</para>
<para>
Though I hope trademarks will be superfluous sometimes (you may see what I mean at
<ulink url="http://www.opensource.org/osd.html">Open Source Definition</ulink>
), I declare: If certain words are trademarks, the context should make it
clear to whom they belong. For example "MS Windows NT" implies that
"Windows NT" belongs to Microsoft (MS). "Mac" is a trademark by Apple
Computer. Many of the designations used by manufacturers and sellers to
distinguish their products are claimed as trademarks. Where those
designations appear in this book, and I was aware of a trademark claim,
the designations have been printed in caps or initial caps. All
trademarks belong to their respective owners.
</para>
</sect1>
</preface>
<!-- PART ONE ============================================================== -->
<part id="mobile-guide-p1-getting-started">
<title>Laptops and Notebooks</title>
<chapter id="mobile-guide-p1c1-which-laptop-to-buy">
<title>Which Laptop to Buy?</title>
<sect1 id="mobile-guide-p1c1s1-introduction">
<title>Introduction</title>
<para>
Portable computers may be divided into different categories. This is a
subjective decision, but I try to do so. My groupings roughly follow the
generally accepted marketing categories. The criteria could be:
</para>
<para>
<orderedlist>
<listitem>
<para>
<indexterm><primary>weight</primary></indexterm>
Weight: Often expressed in terms like Portables, Laptops/Notebooks,
Sub/Mini-Notebooks, Palmtops/PDAs. There is no standard method to define
the weight of a laptop, therefore the data provided by the manufacturers
(and which are given below) have to be considered as approximations. The
question is how the power supply (whether external or internal) or
swappable parts like CD and floppy drive, are included in the weight.
<!--
notebook/laptop
- laptop was the original name, back to the times when
portable PCs where derived more or less from
ordinary desktop PCs and very heavy, app. 7kg
- notebooks were the next generation app. less than 3kg and A4 size
- times are changing again, since notebooks become desktop replacements
-->
</para>
<para>
Most peripheral <indexterm><primary>cables</primary></indexterm> cables
are appallingly heavy. If you get a subnotebook and carry it around with
a bunch of external drives, cables, and <emphasis>port
expander</emphasis> dongles and power converter, you may be lugging a
heavier bag than if it were all in one box. Subnotebooks are useful
mainly if you can afford to leave all the other junk behind.
</para>
</listitem>
<listitem>
<para>
Supported Operating Systems:
proprietary versus open
</para>
</listitem>
<listitem>
<para>
Price:
NoName versus Brand
</para>
</listitem>
<listitem>
<para>
Hardware Features:
display size, harddisk size, CPU speed, battery type, etc.
</para>
</listitem>
<listitem>
<para>
Linux Support:
graphics chip, sound card, infrared controller (<trademark class="registered">IrDA</trademark>), internal modem, etc.
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s2-portables-laptops-notebooks-pdas">
<title>Portables, Laptops/Notebooks, Sub/Mini-Notebooks, Palmtops, PDAs/HPCs</title>
<sect2>
<title>Portables</title>
<para>
Weight greater than 4.0 kg (9 lbs). Features like a PC,
but in a smaller box and with <acronym>LCD</acronym> display.
Examples: lunchbox or ruggedized laptops (e.g.
<ulink url="http://www.bsicomputer.com/">BSI Computer</ulink>
).
</para>
</sect2>
<sect2>
<title>Laptops/Notebooks</title>
<para>
Weight between 1.7 and 4.0 kg (4 to 9 lbs). Features custom hardware and
usually a special CPU. Examples: HP OmniBook 3100, COMPAQ Armada 1592DT.
The terms <emphasis>laptop</emphasis> and <emphasis>notebook</emphasis>
seem equivalent to me.
</para>
</sect2>
<sect2>
<title>Sub-Notebooks/Mini-Notebooks</title>
<para>
Weight between 1.3 and 1.7 kg (3 to 4 lbs). Features: external floppy
drive, external CD drive. Examples: HP OmniBook 800CT, Toshiba Libretto
100, COMPAQ Aero, SONY VAIO 505.
</para>
</sect2>
<sect2>
<title>Palmtops</title>
<para>
Weight between 0.7 and 1.3 kg (1.5 to 3 lbs). Features: proprietary
commercial operating systems. Examples: HP200LX.
</para>
</sect2>
<sect2>
<title>Personal Digital Assistants (PDAs)/Handheld PCs (HPCs)</title>
<para>
Weight below 0.7 kg (1.5 lbs). Features: proprietary commercial
operating systems and often non-Intel CPU with commercial operating
systems like PalmOS, EPOC32, GEOS, Windows CE. Examples: Newton Message
Pad, Palm III (former Pilot), Psion Series 3 and 5, CASIO Z-7000.
</para>
</sect2>
<sect2>
<title>Wearables</title>
<para>
Watches, digital pens, calculators, digital cameras, cellular phones and
other wearables.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c1s3-linux-features">
<title>Linux Features</title>
<para>
Due to a lack of support by some manufacturers, not every feature of a
laptop is always supported or fully operational. The main devices which
may cause trouble are: graphics chip, <trademark
class="registered">IrDA</trademark> port, sound card,
<acronym>PCMCIA</acronym> controller , PnP devices and internal modem.
Please try to get as much information about these topics before buying a
laptop. But often it isn't quite easy to get the necessary information.
Sometimes even the specifications or the hotline of the manufacturer
aren't able to provide the information. Therefore I have included a
Linux Compatibility Check chapter in every section of
<xref linkend="mobile-guide-p2-mobile-hardware"/> Hardware In Detail
below.
</para>
<para>
Depending on your needs, you might investigate one of the vendors that
provide laptops pre-loaded with Linux. By purchasing a pre-loaded Linux
laptop, much of the guesswork and time spent downloading additional
packages could be avoided. See TuxMobil for a
<ulink url="http://tuxmobil.org/reseller.html">survey of Linux laptop,
notebook, PDA and mobile phone vendors</ulink>.
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s4-main-hardware-features">
<title>Main Hardware Features</title>
<para>
Besides its Linux features, there often are some <emphasis>main
features</emphasis> which have to be considered when buying a laptop.
For <emphasis>Linux features</emphasis> please see
<xref linkend="mobile-guide-p2-mobile-hardware"/> Hardware In Detail
below.
</para>
<sect2>
<title>Weight</title>
<para>
Don't underestimate the weight of a laptop. This weight is mainly
influenced by:
</para>
<para>
<orderedlist>
<listitem>
<para>
screen size
</para>
</listitem>
<listitem>
<para>
battery type
</para>
</listitem>
<listitem>
<para>
internal components, such as CD drive, floppy drive
</para>
</listitem>
<listitem>
<para>
power supply
</para>
</listitem>
<listitem>
<para>
material used for the case, usually they are either from plastics or from magnesium.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Display</title>
<para>
Recent laptops come with
<emphasis>active</emphasis> matrix (TFT) displays.
Laptops with <emphasis>passive</emphasis> matrix (DSTN) are no longer manufactured.
Active matrix
displays have better color and contrast, but usually cost
more and use more power. Also consider the screen size.
Laptops may be purchased with screens up to 17". A bigger
screen weighs more, costs more, and is harder to carry,
but is good for a portable desktop replacement.
</para>
</sect2>
<sect2>
<title>Batteries</title>
<para>
The available battery types are <emphasis>Lithium Ion
(LiIon)</emphasis>, <emphasis>Nickel Metal Hydride (
NiMH)</emphasis> and <emphasis>Nickel Cadmium
(NiCd)</emphasis>. Though almost all current laptops come
with LiIon batteries.
</para>
<para>
LiIon batteries are the most expensive ones but a lot lighter
than NiCd for the same energy content, and have minimal - but
present - memory effects. NiMH is better than NiCd, but still
rather heavy and does suffer some (although less than NiCd)
memory effects.
</para>
<para>
Unfortunately most laptops come with a proprietary battery
size. So they are not interchangeable between different
models.
<!--
DuraCell standard DR36s, DR15, DR17, ... universal external battery
there are rumors that the battery is always the last part, when
designing a new laptop, therefore it has to fit into the
remaining space
<command>acpi -bt</command>
-->
</para>
</sect2>
<sect2>
<title>CPU</title>
<sect3>
<title>Supported CPU Families</title>
<para>
For details about systems which are supported by the Linux Kernel, see the
<ulink url="http://www.tux.org/lkml/">The linux-kernel mailing list FAQ</ulink>.
</para>
<para>
<orderedlist>
<listitem>
<para>
i286:
Linux doesn't support this CPU family yet. But there are some efforts at
<ulink url="http://elks.sourceforge.net/">ELKS</ulink>.
If you like, you may use
<ulink url="http://www.cs.vu.nl/~ast/minix.html">Minix</ulink>, which
is also a free Unix operating system. Minix supports 8088 to 286 CPUs
with as little as 640K memory. Actually there are some
<ulink url="http://tuxmobil.org/286_mobile.html">laptops with ELKS and MINIX</ulink> around.
</para>
</listitem>
<listitem>
<para>
i386: This covers PCs based on Intel-compatible processors, including
Intel's 386, 486, Pentium, Pentium Pro and Pentium II, and compatible
processors by AMD, Cyrix and others. Most of the currently available
laptops use Intel compatible CPUs and have quite good Linux support.
</para>
</listitem>
<listitem>
<para>
m68k: This covers Amigas and Ataris having a Motorola 680x0 processor
for x&gt;=2; with MMU. And the early Apple/Macintosh computers.
</para>
<para>
There was a long series of Apple PowerBooks and other laptops based on
the m68k chip. Macintosh Portable (an ugly 16-pound first attempt);
PowerBook 100, 140, 170, 145, 160, 180c, 165c, 520c, 540c, 550c, 190;
Duo 210, 230, 250, 270c, 280. The PowerBook Duos were available at the
same time as the PowerBooks, they were a sort of subnotebook, but were
designed so that you could plug them into a base station (a DuoDock)
with more RAM, peripherals, etcetera, so that they could also act as a
desktop computer. The first PowerPC PowerBooks were the ill-starred
PowerBook 5300 (after the 190) and the Duo 2300c.
</para>
<para>
For a complete list of all Macintosh computers ever made, with specifications, see
<ulink url="http://www.apple-history.com/">Apple-History</ulink>
.
For Linux installation reports see
<ulink url="http://tuxmobil.org/apple.html">Linux Laptop and Notebook Survey: Apple</ulink>.
</para>
<para>
<!--
Note also that readers should *not* go to
<ulink url="http://www.linuxppc.org/">LinuxPPC</ulink> (dead link)
for hardware compatibility with 68k laptops, as the name implies,
LinuxPPC is only for PowerPC machines.
-->
The proper place to
go for information on running Linux on m68k Macintoshes is
<ulink url="http://www.mac.linux-m68k.org/">linux-m68k</ulink>.
</para>
<!--
<para>
In particular, their
old link
<ulink url="http://www.mac.linux-m68k.org/status/sysreq.html">linux-m68k-status</ulink>
<ulink url="http://maclinuxstatus.sf.net/status/">linux-m68k-status</ulink>
hardware compatibility list Linux states in regards to laptops.
</para>
link doesn't work
-->
<para>
"Much like laptops of the Intel/Linux world, Mac laptops have generally
different setups that can be very hard to figure out. Also, because of
a general lack of machines to test, we are only aware of boots on the
Powerbook 145, Powerbook 150, Powerbook 170, Powerbook 180, and
Powerbook 190. Even if it boots, we currently have no support for
Powerbook-style ADB, the <acronym>APM</acronym> support, or just about
anything else on them. This means the only way to log in is with a
terminal hooked up to the serial interface, this has been tested on the
170."
</para>
<para>
"Several Powerbooks have internal IDE which is supported.
<acronym>PCMCIA</acronym> drivers will be forthcoming if someone can
supply the necessary hardware information to write a driver. As always,
an FPU is needed also. Many of the later models have the 68LC040
processor without FPU, and many of these processors are broken with
respect to the FPU trap mechanism so they can't run regular Linux
binaries even with FPU emulation. Current status on Powerbooks 140, 160,
165, 165c, 180c, 190, 520 and Duos 210, 230, 250, 270c, 280, and 280c is
unknown."
</para>
<para>
Also there are two Atari laptops, for which I don't have enough information.
The following quotations are from the
<ulink url="http://capybara.sk-pttsc.lj.edus.si/yescrew/eng/atari.htm">Atari Gallery</ulink>.
</para>
<para>
"The <emphasis>STacy</emphasis> was released shortly after the
<emphasis>Mega ST</emphasis> to provide a portable means of Atari
computing. STacy computers were shipped with TOS v1.04.
</para>
<para>
Designed to replace the <emphasis>STacy</emphasis> as the defacto
portable ST computer, the <emphasis>ST Book</emphasis> brought the basic
computing power of an ST to a lightweight notebook computer. This
machine was only released in Europe and Atari only shipped a very small
quantity. The ST Book was shipped with TOS v2.06."
</para>
<para>
From Stok, Leon &lt;stok_AT_YIS.NL&gt;: The STacey and the ST Book, both
can't run Linux since they are only shipped with an 68000 CPU, which
doesnt have a MMU unit.
</para>
<para>
As far as I know Amiga has never produced laptops. One company
manufactured kits to convert desktop Amigas to portables. These used
regular Amiga motherboards so any Linux setup that supports the regular
Amiga setups will support these.
</para>
</listitem>
<!--
<listitem>
<para>
PowerPC (PPC):
Although some driver support present in Intel based Linux is still
missing for Linux PPC, it is a fully usable system for
Macintosh PowerBooks. See
<ulink url="http://www.linuxppc.org/hardware/">LinuxPPC</ulink>
for a current list of supported machines.
DEAD LINK
</para>
<para>
By the way: The team at
<ulink url="http://www.imaclinux.net">iMac Linux</ulink>
has managed to get the iMac DV to boot Linux to a usable point.
You may get information about the iBook there as well.
DEAD LINK
</para>
</listitem>
-->
<listitem>
<para>
Alpha, Sparc, Sparc64 architectures:
These are currently under construction. As far as I know there are only the
<ulink url="http://www.tadpole.com/">Tadpole</ulink>
SPARC and ALPHA laptops, and some other ALPHA laptops available.
<ulink url="http://www.naturetech.com.tw/">NatureTech</ulink>
offers also SPARC CPUs in laptops. The TuxMobil survey of
<ulink url="http://tuxmobil.org/mobile_solaris.html">Solaris on laptops and notebooks</ulink>
may also be helpful.
</para>
</listitem>
<listitem>
<para>
StrongARM:
a very low-power CPU found in
<ulink url="http://www.rebel.com/">Rebel.com's</ulink>
popular NetWinder (some kind of mobile computer, too),
and actively supported in the Debian project, it is also in several
WinCE machines, such as HP's Jornadas. Only the lack of tech specs
prevents Linux from being ported to these tiny, long-battery-life
machines. A full-scale StrongARM-based laptop would make a superb
Linux platform.
</para>
<para>
For PDAs with ARM/StrongARM CPU see the
<xref linkend="mobile-guide-p3-handheld-devices-pdas"/>Handheld Devices part
below.
</para>
</listitem>
<listitem>
<para>
MIPS: Used in SGI mainframes and Cobalt Micro intranet appliances, chips
based on this architecture are used in many Windows-CE machines. Linux has
been ported to a few of these.
</para>
</listitem>
<listitem>
<para>
AMD Processor:
More about Linux on AMD processors may be found at
<ulink url="http://www.x86-64.org/">x86-64 org</ulink>
. At TuxMobil there is also a survey of
<ulink url="http://tuxmobil.org/cpu_amd.html">laptops with AMD CPUs</ulink>
.
</para>
</listitem>
<listitem>
<para>
64bit CPUs:
At TuxMobil there is a survey of
<ulink url="http://tuxmobil.org/cpu_64bit.html">laptops with 64bit CPUs</ulink>
.
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Miscellaneous</title>
<para>
At higher speed, a CPU consumes more power and generates more heat.
Therefore, in many laptops a special low-power CPU is used.
Usually, this special CPU doesn't use as much power as a similar
processor used in a desktop. These special CPUs are also more expensive.
As a side effect you may find that laptops with a desktop CPU often have
a quite noisy fan.
</para>
</sect3>
</sect2>
<sect2>
<title>Number of Spindles</title>
<para>
Laptops and notebooks are often described by the number of spindles.
</para>
<orderedlist>
<listitem>
<para>
one spindle: harddisk. Usually sub-notebooks, often provided with
an external optical drive (CD/DVD).
</para>
</listitem>
<listitem>
<para>
two spindles: harddisk, optical drive (CD/DVD).
</para>
</listitem>
<listitem>
<para>
three spindles: harddisk, optical drive (CD/DVD), floppy drive. These laptops
are often used as desktop PC replacement.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2>
<title>Cooling</title>
<para>
An enormously important issue. Anything based on PPC or Pentium will
generate enormous amounts of heat which must be dissipated. Generally,
this means either a fan, or a heat sink the size of the case. If it's a
fan, the air path shouldn't get blocked, or it will overheat
and burn out. This means machines with a fan mounted in the bottom are a
big, big mistake: you can't use them on a soft surface.
</para>
</sect2>
<sect2>
<title>Keyboard Quality</title>
<para>
Though you might use your desktop computer to do longer writings, a good
keyboard can save you some head- and fingeraches. Look especially
for the location of special keys like: <command>&lt;ESC&gt;</command>,
<command>&lt;TAB&gt;</command>, <command>&lt;Pos1&gt;</command>,
<command>&lt;End&gt;</command>, <command>&lt;PageDown&gt;</command>,
<command>&lt;PageUp&gt;</command> and the cursor keys.
</para>
</sect2>
<sect2>
<title>Price</title>
<para>
Laptops are quite expensive if you compare them with desktops (though
maybe not if compared with <acronym>LCD</acronym>,
<trademark class="registered">IrDA</trademark>, <acronym>PCMCIA</acronym>
capabilities). So you may decide between a brand or no-name product.
Though I would like to encourage you to take a
<emphasis>no-name</emphasis> product, there are some caveats. I have
experienced that laptops break often, so you are better off, when you
have an after-sales warranty, which is usually only offered with brand
products. Or you may decide to take a <emphasis>second hand</emphasis>
machine. When I tried this, I discovered that the laptop market is
changing quite often. A new generation is released approximately every
three months (compared by CPU speed, harddisk capacity, screen size
etc.). So laptops become old very quick. But this scheme often isn't
followed by the prices for second hand laptops. They seem too expensive
to me. Anyway if you plan on purchasing a second hand machine, review my
recommendations on checking the machine.
</para>
</sect2>
<sect2>
<title>Power Supply</title>
<para>
If you travel abroad pay attention to the voltage levels which are
supported by the power supply. Also the power supply is usually one of the
heavier parts of a laptop. Another caveat is the power plug, which often
is different from country to country.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c1s5-sources-of-more-information">
<title>Sources of More Information</title>
<para>
Specifications, manuals and manufacturer support often are not helpful.
Therefore you should retrieve information from other sources too:
</para>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/mylaptops.html">TuxMobil Linux Laptop and Notebook Survey</ulink>
, this survey covers other UniXes (for example BSD, Solaris), too.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.linux-on-laptops.com/">Linux on Laptops</ulink>.
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Hardware-HOWTO/">Hardware-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
Last, but not least the WWW itself. Please try the search engine of your
choice, for me
<ulink url="http://google.com/">Google</ulink>
almost always was helpful.
</para>
</listitem>
-->
</orderedlist>
</para>
<para>
General information about manufacturer support you
may find in my
<ulink url="http://tuxmobil.org/laptop_manufacturer.html">Linux Status Survey of Laptop and Notebook Manufacturers</ulink>
, though don't expect to much Linux support from them yet. Sometimes the
<ulink url="http://tuxmobil.org/laptop_oem.html">Matrix of OEM/ODM Relations</ulink>
may help to find information for your laptop under
another brand name.
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s6-linux-compatibility-check">
<title>Linux Compatibility Check</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Hardware-HOWTO/">Hardware-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Kernel-HOWTO/">Kernel-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/PCI-HOWTO.html">PCI-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Plug-and-Play-HOWTO.html">Plug-and-Play-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Check Methods in General</title>
<para>
If you can't find the necessary information through the above mentioned
sources, you are on your own. Luckily, Linux provides many means to
help. For details see the section
<xref linkend="mobile-guide-p2-mobile-hardware"/> Hardware In Detail
below. In general you may use:
</para>
<para>
<orderedlist>
<listitem>
<para>
First of all the kernel itself. Look up what kind of hardware is
detected by the kernel. You get this information during boot time or
by <command>dmesg</command> or by looking into
<filename>/var/log/messages</filename>. For the very first boot messages
check <filename>/var/log/boot</filename>.
</para>
</listitem>
<listitem>
<para>
If your kernel supports the <filename>/proc</filename> file system you
may get detailed information about PCI devices by
<command>cat /proc/pci</command> Please read the kernel documentation
<filename>pci.txt</filename>. You may get further information about
unknown PCI devices at the
<ulink url="http://pciids.sf.net/">Linux PCI ID Repository</ulink>,
the home of the pci.ids file. From 2.1.82 kernels on you may use the
<command>lspci</command> command from the <command>pci-utils</command> package.
</para>
</listitem>
<listitem>
<para>
To retrieve information about Plug-and-Play (PNP) devices use
<command>isapnp-tools</command> .
</para>
</listitem>
<listitem>
<para>
Use <command>scsi_info</command> by David Hinds for SCSI devices or
<command>scsiinfo</command>.
</para>
</listitem>
</orderedlist>
</para>
<para>
If you don't want to install a complete Linux you may retrieve this
information by using a micro Linux ( see
<xref linkend="mobile-guide-a1-other-operating-systems"/> Appendix A).
The package <command>muLinux</command> provides even a small
<command>systest</command> program and <command>TomsRtBt</command> comes
with <command>memtest</command>. To use <command>memtest</command> you
have to copy it on a floppy
<command>dd if=/usr/lib/memtest of=/dev/fd0</command>
and to reboot from this floppy.
</para>
<para>
If your laptop came with Windows, you may determine a lot of hardware
settings from the installation. Boot into DOS or Windows to get the
information you need.
</para>
<para>
Using Windows9x/NT to get hardware settings, basically boot Windows,
then <command>Start -&gt; Settings -&gt; Control Panel -&gt; System
-&gt; Device Manager</command> and write down everything, or make a
hardcopy from the display using the <command>&lt;PRINT&gt;</command>
key, plus keep a log of settings, hardware, memory, etc.
</para>
<para>
Using MS-DOS and Windows3.1x you can use the command
<command>msd</command>, which is an akronym for MicroSoft Diagnostics.
Or you might try one of the numerous DOS shareware utilities:
<command>CHECK-IT</command>, <command>DR.HARD</command> and others.
</para>
<para>
Sometimes it's difficult to know what manufacturer
has built the machine or parts of it actually. The
<ulink url="http://www.fcc.gov/oet/fccid/help.html">FCC</ulink>
"Federal Communications Commission On-line Equipment Authorization
Database may be used, if you are having problems identifying the
manufacturer of a laptop or notebook computer (or other electronic
device,) this site lets you search the FCC database based on the FCC ID
number you can usually find on the equipment if it was marketed in the
United States of America."
</para>
<para>
Many laptops are no more compatible with Windows than Linux. David
Hinds, author of the <acronym>PCMCIA</acronym> drivers, points out that
Toshiba notebooks use a proprietary Toshiba <acronym>PCMCIA</acronym>
bridge chip that exhibits the same bugs under Windows as under Linux.
<trademark>IBM</trademark> Thinkpads have serious
<acronym>BIOS</acronym> problems that affect delivery of events to the
power management daemon <command>apmd</command>. These bugs also affect
MS-Windows, and are listed in <trademark>IBM</trademark>'s documentation
as <emphasis>considerations</emphasis>.
</para>
<para>
Some incompatibilities are temporary, for instance laptops that have
Intel's <acronym>USB</acronym> chip will probably get full
<acronym>USB</acronym> support, eventually.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c1s7-writing-a-device-driver">
<title>Writing a Device Driver</title>
<para>
If you encounter a device which is not yet supported by Linux, don't
forget it's also possible to write a driver by yourself. You may look at
the book from Alessandro Rubini, Andy Oram: Linux Device Drivers.
There is even a free online issue
<ulink url="http://www.oreilly.com/openbook/">here</ulink>
.
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s8-buying-a-second-hand-laptop">
<title>Buying a Second Hand Laptop</title>
<para>
Some recommendations to check a used laptop, before buying it:
</para>
<para>
<orderedlist>
<listitem>
<para>
Review the surface of the case for visible damages.
</para>
</listitem>
<listitem>
<para>
Check the display for pixel faults. Maybe it's useful to take a
magnifying glass therefore. By the way: There is a standard for pixel
faults etc. ISO 13406-2.
</para>
</listitem>
<listitem>
<para>
Do an IO stress-test, .e.g. with the tool <command>bonnie</command>.
</para>
</listitem>
<listitem>
<para>
You may use <command>memtest</command> and <command>crashme</command> to
achieve a memory test.
</para>
</listitem>
<listitem>
<para>
Do a CPU stress test, e.g. with the command <command>md5sum /dev/urandom</command> or by
compiling a kernel.
</para>
</listitem>
<listitem>
<para>
Check the floppy drive by formatting a floppy.
</para>
</listitem>
<listitem>
<para>
Check the CD/DVD drive by reading and writing a CD/DVD.
</para>
</listitem>
<listitem>
<para>
To check the battery seems difficult, because it needs some time: one
charge and one work cycle. You may use <command>battery-stats</command>
to do so, but note this tool only offer APM support, it
is not available with ACPI support yet.
</para>
</listitem>
<listitem>
<para>
To check the surface of the harddisk you may take
<command>e2fsck</command>. There is also a Linux tool
<command>dosfsck</command> or the other <command>fsck</command> tools.
</para>
</listitem>
<listitem>
<para>
To test the entire disk (non-destructively), time it for performance,
and determine its size, as root do:
<command>time dd if=/dev/hda of=/dev/null bs=1024k</command> .
</para>
</listitem>
<listitem>
<para>
Check whether the machine seems to be stolen. I have provided a
<ulink url="http://tuxmobil.org/stolen_laptops.html">survey of databases for stolen laptops</ulink>.
</para>
</listitem>
</orderedlist>
</para>
<para>
AFAIK there is no Linux tool like the DOS tools CHECK-IT,
DR. HARD, SYSDIAG and others. These tools include many of the
tests in one integrated suite. One of the best in my humble
opinion is the tool
<ulink url="http://members.datafast.net.au/~dft0802/">PC Diagnostics 95</ulink>
made by Craig Hart. Despite the 95 in its name it's plain DOS, tiny (
76KB program and 199KB data) reliable and free. Unfortunately it
contains no check for the <trademark class="registered">IrDA</trademark> port.
</para>
<para>
Please note this quotation from the disclaimer: "This program is written
with the target audience being a trained, experienced technician. It is
NOT designed to be used by those ignorant of computer servicing.
Displays are not <emphasis>pretty</emphasis> but functional. Information
is not explained since we are not trying to educate. This software
should be considered to be just like any other tool in a tech's toolbox.
It is to be applied with care, in the right situation, in order to find
answers to specific problems. If you are an end user who is less than
confident of dealing with computer hardware, this is probably not a
program for you."
</para>
<para>
Laptop computers, unlike desktop machines, really do get used up.
<emphasis>Lithium batteries</emphasis> are good for no more than 400
recharge cycles, sometimes much fewer. <emphasis>Keyboards</emphasis>
wear out. <emphasis><acronym>LCD</acronym> screen
backlighting</emphasis> grows dim. <emphasis>Mouse buttons</emphasis>
fail. Worst of all, <emphasis>connectors</emphasis> get loose as a
result of vibration, causing intermittent failures (e.g. only when you
hit the &lt;Enter&gt; key). We have heard of a machine used on the table
in a train being shaken to unusability in one trip.
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s9-no-hardware-recommendations">
<title>No Hardware Recommendations</title>
<para>
It's difficult to give any recommendations for a certain laptop
model in general. Your personal needs have to be taken into account.
Also the market is changing very quickly. I guess every three months a
new generation of laptops (with bigger harddisk space, higher CPU
speed, more display size, etc.) comes into the market. So I don't give
any model or brand specific recommendations.
But you may check my
<ulink url="http://tuxmobil.org/laptop_manufacturer.html">Linux support of laptop and notebook manufacturers survey</ulink>.
</para>
<para>
A good way to check Linux hardware compatibility the next time
you go shopping a laptop is using a
<ulink url="http://www.knoppix.org/">Knoppix CD/DVD</ulink>.
The Knoppix hardware detection works quite well and is often
capable to check all laptop hardware.
</para>
</sect1>
<sect1 id="mobile-guide-p1c1s9-reseller">
<title>Linux Laptop and PDA Vendor Survey</title>
<para>
You may check the
<ulink url="http://tuxmobil.org/reseller.html">Linux Laptop, PDA and Mobile Phone Vendor Survey</ulink>
at TuxMobil for a reseller in your country. Some of them even sell laptops
without Microsoft operating systems.
</para>
<para>
Often it is difficult to get laptops
without a pre-installed Microsoft operating system. In case you do not want
to use it you may read
<ulink url="http://tuxmobil.org/ms_tax.html">some tips and tricks to get rid of the Microsoft tax</ulink>.
If you want to buy a recent machine check the
<ulink url="http://tuxmobil.org/recent_linux_laptops.html">Linux installation reports for recently available laptops and notebooks</ulink>.
</para>
</sect1>
</chapter>
<chapter id="mobile-guide-p1c2-laptop-distribution">
<title>Laptop Distributions</title>
<sect1 id="mobile-guide-p1c2s1-requirements">
<title>Requirements</title>
<para>
From the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/">Battery-Powered-HOWTO</ulink>
I got this recommendation (modified by WH):
</para>
<para>
A Message to Linux Distributors:
If you happen to be a Linux distributor, thank you for reading all this.
Laptops are becoming more and more popular, but still most Linux
distributions are not very well prepared for portable computing. Please
make this section of this document obsolete, and make a few changes in
your distribution.
</para>
<para>
The installation routine should include a configuration, optimized for
laptops. The <emphasis>minimal install</emphasis> is often not lean
enough. There are a lot of things that a laptop user does not need on
the road. Just a few examples. There is no need for three different
versions of <command>vi</command>. Some portable systems do not
need printing support.
</para>
<para>
Don't forget to describe <emphasis>laptop-specific installation
problems</emphasis>, e. g. how to install your distribution without a
CD/DVD-ROM drive.
</para>
<para>
Add better <emphasis>power management</emphasis> and seamless
<emphasis><acronym>PCMCIA</acronym> support</emphasis> to your
distribution. Add a recompiled kernel and an alternative set of
<acronym>PCMCIA</acronym> drivers with <emphasis>apm support</emphasis>
that the user can install on demand. Include a precompiled
<emphasis>apmd package</emphasis> with your distribution. Also include
<trademark class="registered">IrDA</trademark> infrared support and
<acronym>USB</acronym> support.
</para>
<para>
Add support for dynamically <emphasis>switching network
configurations</emphasis>. Most Linux laptops travel between locations
with different network settings (e. g. the network at home, the network
at the office and the network at the university) and have to change the
network ID very often.
</para>
<para>
Add a <emphasis>convenient PPP dialer</emphasis> with an address book,
that does not try to start multiple copies of the PPP daemon if you click
on the button twice (e.g., the RedHat <command>usernet</command> tool).
It would be nice to have the PPP dialer also display the connection speed
and some statistics. One nice command line dialer that autodetects modems
and PPP services is <command>wvdial</command> from
<ulink url="http://open.nit.ca/">OpenSourceInNitix</ulink>.
</para>
<para>
At TuxMobil you may find a huge number of links to
<ulink url="http://tuxmobil.org/mylaptops.html">laptop and notebook Linux installation reports</ulink>.
They are ordered by manufacturer and Linux distribution. Special categories
are available for:
<itemizedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/debian_linux.html">Debian</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/gentoo_mobile.html">Gentoo</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/distribution_linux_laptop_redhat.html">RedHat</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/distribution_linux_laptop_suse.html">SuSE</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/distribution_linux_laptop_ubuntu.html">Ubuntu</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/distribution_linux_laptop_slackware.html">SlackWare</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/distribution_linux_laptop_mandrake.html">Mandrake (Mandriva)</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/mobile_minix.html">Minix</ulink>
and
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/mobile_bsd.html">different kinds of BSD flavors</ulink>.
</para>
</listitem>
</itemizedlist>
Some resources are available in
<ulink url="http://tuxmobil.org/lang.html">different languages</ulink>, e.g.
<itemizedlist>
<listitem>
<para>
in German <ulink url="http://tuxmobil.de/">TuxMobil(DE): Linux on Mobile Computers</ulink>
</para>
</listitem>
<listitem>
<para>
in Russian <ulink url="http://tuxmobil.ru/">TuxMobil(RU): Linux on Mobile Computers</ulink>
</para>
</listitem>
<listitem>
<para>
and in Chinese <ulink url="http://tuxmobil.cn/">TuxMobil(CN): Linux on Mobile Computers</ulink>.
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p1c2s2-recommendation">
<title>Recommendation</title>
<para>
The
<ulink url="http://www.debian.org">Debian/GNU Linux</ulink>
has most of the desired features for a laptop installation. The
distribution has a quite flexible installation tool. The installation
process is well documented, especially concerning the methods which
are useful for laptops. All the binaries are tiny, because they are
stripped. A mailing list <emphasis>debian-laptop</emphasis> including
a searchable archive is provided. And Debian/GNU Linux is free.
</para>
<para>
At the end of August 1999 the
<ulink url="http://tuxmobil.org/debian_linux.html">Debian Laptop Distribution - Proposal</ulink>
was issued. And some more laptop related packages and a Debian
<emphasis>meta-package</emphasis> dedicated to laptops are on the way.
</para>
<para>
Note: I know other Linux distributions work well with laptops, too. I
even tried some of them, see my pages about certain laptops mentioned
above.
</para>
</sect1>
</chapter>
<chapter id="mobile-guide-p1c3-installation">
<title>Installation</title>
<sect1 id="mobile-guide-p1c3s1-related-howtos">
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/CDROM-HOWTO/">CDROM-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/CD-Writing-HOWTO.html">CD-Writing-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Config-HOWTO/">Config-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Diskless-HOWTO.html">Diskless-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Installation-HOWTO/">Installation-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Pre-Installation-Checklist/index.html">Pre-Installation-Checklist-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Update.html">Update-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Hard-Disk-Upgrade/">Hard-Disk-Upgrade-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.tldp.org/LDP/gs/gs.html">Linux Installation and Getting Started</ulink>
<!-- FIXME the guide is from 1998 -->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.debian.org/releases/stable/i386/install">Installing Debian/GNU Linux For Intel x86</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Install-From-ZIP.html">Install-From-Zip-HOWTO</ulink>
<!-- FIXME the guide is from 1998 -->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/ZIP-Drive.html">ZIP-Drive-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p1c3s2-prerequisites-partitioning">
<title>Prerequisites - BIOS, Boot Options, Partitioning</title>
<sect2>
<title>BIOS</title>
<para>
When starting a fresh installation you should try with standard
BIOS options. If something doesn't work you should try
to modify BIOS options. For example a well known trouble maker
is the Plug-and-Play - PnP option (which comes with different names).
See also the BIOS section in the hardware section below.
</para>
</sect2>
<sect2>
<title>Boot Options</title>
<para>
There are many boot options, which have effects on the behavior
of laptops, e.g. <command>apm=on|off</command> and <command>acpi=on|off</command>:
For details see
<ulink url="http://tldp.org/HOWTO/BootPrompt-HOWTO.html">BootPrompt-HOWTO</ulink>
and the Kernel documentation in
<filename>/usr/src/linux/Documentation/kernel-parameters.txt</filename>
.
<!--
Mandrake 'linux nonpnpbios' 'linux noathlon'
SuSE boot options: nopci, noacpi, pcirq ?? mem
-->
</para>
</sect2>
<sect2>
<title>Partitioning</title>
<para>
Partitioning can be done in a very sophisticated way. Currently I have
only some first thoughts. I assume that with laptops there are still
some reasons (e.g. updating the firmware of <acronym>PCMCIA</acronym>
cards and BIOS) to share Linux and Windows9x/NT. Depending on your needs
and the features of your laptop you could create the following
partitions:
</para>
<para>
<itemizedlist>
<listitem>
<para>
BIOS, some current BIOSes use a separate partition, for instance COMPAQ
notebooks
</para>
</listitem>
<listitem>
<para>
suspend to disk, some laptops support this feature
</para>
</listitem>
<listitem>
<para>
swap space Linux
</para>
</listitem>
<listitem>
<para>
swap space Windows9x/NT
</para>
</listitem>
<listitem>
<para>
Linux base
</para>
</listitem>
<listitem>
<para>
Linux <filename>/home</filename> for personal data (please consider an
encrypted partition for security reasons, for details about encryption
see the according chapter below)
</para>
</listitem>
<listitem>
<para>
common data between Linux and Windows9x/NT
</para>
</listitem>
<listitem>
<para>
small (~32MB) boot partition for yaBoot (Linux/PPC boot loader), in HFS
<emphasis>MacOS Standard</emphasis> format.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Note this chapter isn't exhausting yet. Please read the appropriate HOWTOs
first, e.g. the
<ulink url="http://tldp.org/HOWTO/Partition/">Partition-HOWTO</ulink>
.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c3s3-linux-tools-to-repartition">
<title>Linux Tools to Repartition a Hard Disk</title>
<sect2>
<title>GNU parted</title>
<para>
<ulink url="http://www.gnu.org/software/parted">GNU parted</ulink>
allows you to create, destroy, resize and copy partitions. It
currently supports ext2 and fat (fat16 and fat32) filesystems,
Linux swap partitions, and MS-DOS disklabels, as well as Macintosh and PC98.
For NTFS file systems see
<ulink url="http://mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html">ntfsresize</ulink>
.
</para>
</sect2>
<sect2>
<title>ext2resize</title>
<para>
<ulink url="http://ext2resize.sourceforge.net/">ext2resize</ulink>
is a program capable of resizing (shrinking and growing) ext2 and ext3 filesystems.
Checks whether the new size the user gave is feasible
(i.e. whether the filesystem isn't too occupied to shrink it),
connected to the <command>parted</command> project.
</para>
</sect2>
<sect2>
<title>fixdisktable</title>
<para>
Something was recently published on the
&lt;linux-kernel_at_vger.rutgers.edu&gt; mailing list about a partition
recovery program. I have neither used , nor examined, nor read much
about it (except for the HTML page.) It may be useful to some of you if
you have problems with <ulink url="http://www.igd.fhg.de/~aschaefe/fips/">FIPS</ulink>
, Ranish Partition Manager/Utility or Partition Magic destroying your
partition information. You can find information on this
partition-fixer named "fixdisktable" at
<ulink url="http://bmrc.berkeley.edu/people/chaffee/fat32.html">his pages</ulink>.
It is quite a ways down in that page. Or look for it
<ulink url="ftp://bmrc.berkeley.edu/pub/linux/rescue/">via ftp</ulink>
and locate the latest "fixdisktable" in that
FTP directory. (Source and binary dist should be available.)
</para>
</sect2>
<sect2>
<title>Caveats</title>
<para>
Before repartitioning your hard disk take care about the disk layout.
Especially look for hidden disk space or certain partitions used for
<emphasis>suspend to disk</emphasis> or <emphasis>hibernation</emphasis>
mode. Some laptops come with a partition which contains some
<acronym>BIOS</acronym> programs (e.g. COMPAQ Armada 1592DT). Search the
manual carefully for tools like <command>PHDISK.EXE</command>, Suspend
to Disk, Diagnostic TOOLS.
</para>
<para>
<ulink url="http://www.procyon.com/~pda/lphdisk/">Patrick D. Ashmore</ulink>
has recently released a Linux utility to prepare hibernation
partitions for use with laptops and notebooks using Phoenix
NoteBIOS. "This utility isn't needed to utilize the
<acronym>APM</acronym> "Suspend-To-Disk" feature ... if you
already have a valid hibernation partition, you should be able to
use it from any operating system that can handle
<acronym>APM</acronym> suspends.
</para>
<para>
However, if one ever upgrades hard drive, memory, or repartitions their
hard drive, they discover that they either have to do without the
suspend-to-disk feature or boot to DOS and use the
<command>PHDISK.EXE</command> program provided with their laptop or
directly from Phoenix Technologies.
</para>
<para>
Now, Linux users are free from this restriction.
<command>lphdisk</command> is a Linux utility that properly prepares
these partitions for use. Not only does this eliminate having to boot to
DOS, but my utility does not exhibit some of the nastier bugs that its
DOS counterpart has."
</para>
<para>
Please see chapter DOS Tools to Repartition a Hard Disk, too.
</para>
<!--
<para>
By Nathan Myers:
from <ulink url="http://www.linuxlaptops.com">LL - LinuxLaptops</ulink>
URL redirected
"I partitioned a 10G Thinkpad drive last week and then none of
fdisk, cfdisk, or sfdisk would read the partition table any
more. It turns out I had created a partition that started on
cylinder 1024, and there's a bug common to all three programs
that makes them fail in that case. (I didn't try Disk Druid.)
So, maybe you should add some advice about not starting
partitions on that cylinder."
</para>
obsolet?
-->
</sect2>
<sect2>
<title>Multi Boot</title>
<para>
Please see the chapter
chapter <xref linkend="mobile-guide-p5c1-different-environments"/> Different Environments, for
information about booting different operating systems from
the same harddisk.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c3s4-installation-methods">
<title>Laptop Installation Methods</title>
<epigraph>
<attribution>
Larry Wall, Tom Christiansen &amp; Randal L. Schwartz: Programming Perl, Sec. Ed. 1996 p. 10
</attribution>
<para>
There's More Than One Way To Do It - TMTOWTDI
</para>
</epigraph>
<!--
There is always another way, usually a better one.
Theodore T. Tool
-->
<para>
From the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/">Battery-Powered-HOWTO</ulink>
: "Installing and using Linux on a laptop is
usually no problem at all, so go ahead and give it a try. Unlike some
other operating systems, Linux still supports and runs well on even very
old hardware, so you might give your outdated portable a new purpose in
life by installing Linux on it."
</para>
<para>
One of the great benefits of Linux are its numerous and flexible
installation features, which I don't want to describe in detail. Instead
I try to focus on <emphasis>laptop specific methods</emphasis>, which
are necessary only in certain circumstances.
</para>
<para>
Most current distributions support installation methods which are useful
for laptops, including installation from CD-ROM/DVD, via
<acronym>PCMCIA</acronym> and NFS (or maybe SMB). Please see the
documents which are provided with these distributions for further
details or take a look at the above mentioned manuals and HOWTOs.
</para>
<!--
<sect1 id="mobile-guide-p1c3s5-from-a-boot-floppy-plus-cd">
-->
<sect2>
<title>From a Boot Floppy plus CD/DVD-ROM - The Traditional Way</title>
<para>
With modern laptops, the traditional Linux installation
method (from one boot floppy, one support
floppy and a package of CD-ROMs or one DVD) should be no problem, if there
is a floppy drive and a CD-ROM drive available. Though with certain laptops
you might get trouble, if you can not use
<emphasis>the floppy drive and the CD/DVD-ROM drive </emphasis> simultaneously,
or if the floppy drive is <emphasis>only available as a <acronym>PCMCIA</acronym>
device</emphasis>, as with the Toshiba Libretto 100. Some laptops
support also booting and therefore installation completely from a CD
drive, as reported for the SONY VAIO in the
<ulink url="http://tldp.org/HOWTO/VAIO+Linux.html">VAIO+Linux-HOWTO</ulink>
. Note: Check the
<acronym>BIOS</acronym> for the CD boot option and make sure your Linux
distribution comes on a bootable CD.
</para>
<para>
Certain laptops will only boot <emphasis>zImage</emphasis> kernels.
<emphasis>bzImage</emphasis> kernels won't work. This is a known problem
with the <trademark>IBM</trademark> Thinkpad 600 and Toshiba Tecra
series, for instance. Some distributions provide certain boot floppies
for these machines or for machines with limited memory resources,
<ulink url="http://www.debian.org">Debian/GNU Linux</ulink>
for instance.
</para>
</sect2>
<sect2>
<title>From a CD/DVD-ROM - The Usual Way</title>
<para>
Newer laptops are able to boot a Linux distribution from a
bootable CD/DVD-ROM. This allows installation
without a floppy disk drive.
<!--
broken link
For RedHat see
<ulink url="http://www.linux-on-laptops.com/install_advice.html">How to Install from CD-ROM without Boot and Supplemental Disks</ulink>
.
-->
If the CD/DVD drive is <emphasis>only available as a
<acronym>PCMCIA</acronym> device</emphasis>, as with the SONY VAIO
PCG-Z600TEK, see the chapter about installing from PCMCIA devices
below.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s6-from-a-dos-or-windows-partition">
-->
<sect2>
<title>From a DOS or Windows Partition on the same Machine</title>
<para>
This is a short description of how to install from a CD-ROM under DOS
without using boot or supplemental floppy diskettes. This is especially
useful for notebooks with <emphasis>swappable floppy and CD-ROM
components</emphasis> (if both are mutually exclusive) or if they are
<emphasis>only available as PCMCIA devices</emphasis>.
I have taken this method from
<ulink url="http://www.us.debian.org/releases/stable/installmanual">Installing Debian GNU/Linux 2.1 For Intel x86 - Chapter 5 Methods for Installing Debian</ulink>
:
</para>
<para>
<orderedlist>
<listitem>
<para>
Get the following files from your nearest Debian FTP mirror and put them
into a directory on your DOS partition: <command>resc1440.bin
drv1440.bin base2_1.tgz root.bin linux install.bat</command> and
<command>loadlin.exe</command>.
</para>
</listitem>
<listitem>
<para>
Boot into DOS (not Windows) without any drivers being loaded. To do
this, you have to press &lt;<command>F8</command>&gt; at exactly the
right moment during boot.
</para>
</listitem>
<listitem>
<para>
Execute <command>install.bat</command> from the directory where you have
put the downloaded files.
</para>
</listitem>
<listitem>
<para>
Reboot the system and install the rest of the distribution, you may now
use all the advanced features such as <acronym>PCMCIA</acronym>, PPP and
others.
</para>
</listitem>
</orderedlist>
</para>
<para>
This should work for other distributions as well. Maybe you have to do
some appropriate changes.
<!--
broken link
For RedHat see
<ulink url="http://www.linux-on-laptops.com/install_advice.html">How to Install from CD-ROM without Boot and Supplemental Disks</ulink>
-->
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s7-from-a-second-machine-micro-linux">
-->
<sect2>
<title>From a Second Machine With a Micro Linux On a Floppy</title>
<sect3>
<title>Introduction</title>
<para>
Because of their small or nonexistent footprint, micro-Linuxes are
especially suited to run on laptops, particularly if you use a
company-provided laptop running Windows9x/NT. Or for installation
purposes using another non Linux machine. There are several
<emphasis>micro</emphasis> Linux distributions out there that boot from
one or two floppies and run off a ramdisk. See
<xref linkend="mobile-guide-a1-other-operating-systems"/> Appendix A
for a listing of distributions.
</para>
<para>
I tried the following with <command>muLinux</command> ( available at
<ulink url="http://sunsite.auc.dk/mulinux">muLinux</ulink>
) to clone my HP OmniBook 800 to a COMPAQ Armada 1592DT.
Thanks to Michele Andreoli, maintainer of muLinux for his support.
Since <command>muLinux</command> doesn't support
<acronym>PCMCIA</acronym> yet, you may use <command>TomsRtBt</command>
instead. In turn <command>TomsRtBt</command> doesn't support
<command>PPP</command> but provides <command>slip</command>.
Note: Since version 7.0 <command>muLinux</command>
provides an Add-On with <acronym>PCMCIA</acronym> support.
</para>
<para>
I have described how to copy an already existing partition, but it might
also be possible to achieve a customized installation. Note: Usually you
would try to achieve an installation via NFS, which is supported by many
distributions. Or if your sources are not at a Linux machine you might
try the SMB protocol with SAMBA, which is also supported by
<command>muLinux</command> .
</para>
</sect3>
<sect3>
<title>Prerequisites</title>
<para>
You need two machines equipped with Linux. With the laptop
(client/destination) on which you want to install Linux use the muLinux
floppy. The other machine (server/source) may be a usual Linux box or
also using muLinux. Though its low transfer rate I use a serial null
modem cable because its cheap. You may apply the appropriate method
using a <acronym>PCMCIA</acronym> network card and a crossover network
cable or a HUB, or a parallel "null modem" cable and PLIP. As the basic
protocol I used PPP, but you may also use SLIP. For the data-transfer I
used <command>nc</command>. Note: this is an abbrevation for
<command>netcat</command>, some distributions use this as the program
name. You may use <command>ftp</command>, <command>tftp</command>,
<command>rsh</command>, <command>ssh</command>, <command>dd</command>,
<command>rcp</command>, <command>kermit</command>,
<command>NFS</command>, <command>SMB</command> and other programs
instead.
If you prefer encrypted connections there is
<ulink url="http://sourceforge.net/projects/cryptcat/">Cryptcat</ulink>
a lightweight version of netcat with integrated transport encryption capabilities.
</para>
<para>
Basic requirements are:
</para>
<para>
<orderedlist>
<listitem>
<para>
A good knowledge about using Linux. You have to know exactly what you
are doing, if not you might end destroying former installations.
</para>
</listitem>
<listitem>
<para>
A null modem serial cable.
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Source Machine</title>
<para>
At your <emphasis>source</emphasis> machine issue the following commands
(attention: IP address, port number, partition and tty are just
examples!):
</para>
<para>
<orderedlist>
<listitem>
<para>
Edit <filename>/etc/ppp/options</filename>, it should contain only:
<programlisting role="small">
/dev/ttyS0
115200
passive
</programlisting>
</para>
</listitem>
<listitem>
<para>
With muLinux versions 3.x you may even use the convenient command
<command>setup -f ppp</command> .
</para>
</listitem>
<listitem>
<para>
Start PPP: <command>pppd</command> .
</para>
</listitem>
<listitem>
<para>
Configure the PPP network device: <command>ifconfig ppp0 192.168.0.1</command> .
</para>
</listitem>
<listitem>
<para>
Add the default route: <command>route add default gw 192.168.0.1</command> .
</para>
</listitem>
<listitem>
<para>
Check the network connection: <command>ping 192.168.0.2</command>,
though the destination machine isn't up yet.
</para>
</listitem>
<listitem>
<para>
Start the transfer from another console, remember
<command>&lt;LEFT-ALT&gt;&lt;Fx&gt;</command>:
<command>cat /dev/hda2 | gzip -c | nc -l -p 5555</command> .
</para>
</listitem>
<listitem>
<para>
After the transfer (there are no more harddisk writings) stop the ping:
<command>killall ping</command> .
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Destination Machine</title>
<para>
At the <emphasis>destination</emphasis> machine issue:
</para>
<para>
<orderedlist>
<listitem>
<para>
Edit <filename>/etc/ppp/options</filename>, it should contain only:
<programlisting role="small">
/dev/ttyS0
115200
passive
</programlisting>
</para>
</listitem>
<listitem>
<para>
With muLinux versions &gt;= 3.x you may even use the convenient command
<command>setup -f ppp</command> .
</para>
</listitem>
<listitem>
<para>
Start PPP: <command>pppd</command> .
</para>
</listitem>
<listitem>
<para>
Configure the PPP network device:
<command>ifconfig ppp0 192.168.0.2</command> .
</para>
</listitem>
<listitem>
<para>
Add the default route:
<command>route add default gw 192.168.0.2</command> .
</para>
</listitem>
<listitem>
<para>
Check the network connection, by pinging to the source machine:
<command>ping 192.168.0.1</command> .
</para>
</listitem>
<listitem>
<para>
Change to another console and get the data from the server: <command>nc
192.168.0.1 5555 | gzip -dc &gt;/dev/hda4</command> .
</para>
</listitem>
<listitem>
<para>
400 MB may take app. 6 hours, but your mileage may vary.
</para>
</listitem>
<listitem>
<para>
Stop the transfer, when it is finished with:
<command>&lt;CTL&gt;&lt;C&gt;</command> . This can probably be avoided
(but I didn't test it) by adding a timeout of 3 seconds using the
<command>-w 3</command> parameter for <command>nc</command> at the
destination machine <command>nc -w 3 192.168.0.1 5555 | gzip -dc
&gt;/dev/hda4</command>
</para>
</listitem>
<listitem>
<para>
After the transfer is completed, stop the ping: <command>killall ping</command> .
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Configuration of the Destination Machine after the Transfer</title>
<para>
<orderedlist>
<listitem>
<para>
Edit <filename>/etc/fstab</filename> .
</para>
</listitem>
<listitem>
<para>
Edit <filename>/etc/lilo.conf</filename> and
<filename>/etc/lilo.msg</filename> and start <command>lilo</command> .
</para>
</listitem>
<listitem>
<para>
Set the new root device to the kernel: <command>rdev image root_device</command> .
<!-- is this still necessary, because it could be set with lilo -->
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Miscellaneous</title>
<para>
<orderedlist>
<listitem>
<para>
You may use <command>bzip2</command> the same way as <command>gzip</command> (untested).
</para>
</listitem>
<listitem>
<para>
Since <command>rshd</command>, <command>sshd</command>,
<command>ftpd</command> daemons are not available with muLinux, you have
to build your own file transfer mechanism with <command>nc</command> also known as
<command>netcat</command>, as described above.
</para>
</listitem>
<listitem>
<para>
I had to set up both PPP sides very quickly or the connection broke, I
don't know why.
</para>
</listitem>
<listitem>
<para>
Speed optimization has to be done. Maybe these PPP options will help:
<command>asyncmap 0</command> or <command>local</command>.
</para>
</listitem>
<listitem>
<para>
I checked this only with a destination partition greater than the source
partition. Please check <command>dd</command> instead of
<command>cat</command> therefore.
</para>
<para>
Or do the following (untested): At the destination machine
<command>cd</command> into the root directory <filename>/</filename> and
do <command>nc -l -p 5555 | bzip2 -dc | tar xvf -</command>. At the
source machine <command>cd</command> into the root directory
<filename>/</filename> and do
<command>tar cvf - . | bzip2 | nc -w 3 192.168.0.2 5555</command>.
This should shorten the time needed for
the operation, too. Because only the allocated blocks need to be
transfered.
<!--
muLinux
- ftp
- tar doesn't offer -no-numeric-owner
- cpio not available
- NFS /etc/exports (no_root_squash) cp -v -f -R -p -a -d
tomsrtbt
- nc -l -p 5555 | cpio -iumd
- find / -depth -xdev | cpio -o | nc 192.168.0.2 5555
- note source and destinaton machine are changed with netcat!!!
- see also Harddisk-Upgrade HOWTO !!!
-->
</para>
</listitem>
<listitem>
<para>
Don't <command>mount</command> the destination partition.
</para>
</listitem>
</orderedlist>
</para>
</sect3>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s8-from-a-second-machine-hard-disk-adapter">
-->
<sect2>
<title>From a Second (Desktop) Machine With a Hard Disk Adapter</title>
<para>
From Adam Sulmicki &lt;adam_AT_cfar.unc.edu&gt; I got this hint: Most but not
all harddisks in laptops are removable, but this might be not an easy
task. You could just buy one of those cheap 2.5" IDE converters/adapters
which allow you to connect this harddisk temporarily to a desktop PC with IDE
subsystem, and install Linux as usual using that PC. You may do so using
the harddisk as the first IDE drive or besides as the second IDE drive.
But then you need to be sure that the bootloader (e.g.
<command>lilo</command>)
writes to the right partition.
Also you have to make sure that you use the same translation style as
your laptop is going to use (i.e. LBA vs. LARGE vs. CHS ).
You will find additional information in the
<ulink url="http://tldp.org/HOWTO/Hard-Disk-Upgrade/index.html">Hard-Disk-Upgrade-HOWTO</ulink>.
You might copy an existing partition, but it is also possible to achieve a
customized installation. Instead of a desktop PC you may use a
second laptop, which may offer better features like a CD/DVD, to put the harddisk in.
</para>
<para>
The most common adapter formats are 2.5" IDE adapters (Parallel ATA - PATA). As
far as I know Serial ATA (SATA) harddisks are not available for laptops
yet. But they could be attached to Serial ATA interfaces in a desktop PC
even without an adapter (at least I guess, but I will verify this as soon
as I have SATA equipment available). Some small subnotebooks feature
1.8" harddisks with ZIF connectors. These connectors are ATA compatible,
and IDE adaptors for them are available also.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s9-from-a-pcmcia-device">
-->
<sect2>
<title>From a <acronym>PCMCIA</acronym> Device</title>
<!--
CD drive, hard disk adapter, memory card, not via network!
-->
<para>
Since I don't have a laptop which comes with a <acronym>PCMCIA</acronym>
<emphasis>floppy drive</emphasis> (for instance Toshiba Libretto 100), I
couldn't check this method. Please see the chapter Booting from a
<acronym>PCMCIA</acronym> Device in the
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>.
Also I couldn't check whether booting from a <acronym>PCMCIA</acronym>
<emphasis>harddisk</emphasis> is possible.
</para>
<para>
Anyway, when you are able to boot from a floppy and the laptop provides
a <acronym>PCMCIA</acronym> slot, it should be possible to use different
<acronym>PCMCIA</acronym> cards to connect to another machine, to an
external SCSI device, different external CD and ZIP drives and others.
Usually these methods are described in the documentation which is
provided with the distribution.
</para>
<para>
The Sony Vaio (PCG-Z600) comes with an external USB-Floppy and an
external CD-ROM (PCMCIA). You can boot from the CD-ROM, but afterwards
Linux doesn't recognize the same drive anymore so that you can't install
from it. You'll have to add the bootparameter
<command>linux ide2=0x180,0x360</command> (or 0x180,0x386?) at the LILO boot prompt if
you want Linux to recognize a PCMCIA CDROM after the kernel has booted.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s10-from-a-parallel-port-zip-drive">
-->
<sect2 id="mobile-guide-p1c3s10-from-a-parallel-port-zip-drive"><?dbhtml filename="mobile-guide-p1c3s10-from-a-parallel-port-zip-drive.html"?>
<title>From a Parallel Port ZIP Drive</title>
<para>
I couldn't check this method by myself, because I don't have such a
device. Please check the appropriate
<ulink url="http://tldp.org/HOWTO/Install-From-ZIP.html">Install-From-Zip-HOWTO</ulink>
<!-- FIXME the guide is from 1998 -->
. Also I don't know how much these installation methods are supported by the
Linux distributions or the micro Linuxes. I suppose you have to fiddle
around a bit to get this working.
</para>
<para>
From Jeremy Impson &lt;jdimpson_AT_acm.org&gt;: I installed Red Hat 6.1
on a Libretto 50CT. It only has a PCMCIA floppy drive. (Which BTW isn't
well supported by the default PCMCIA floppy driver. I needed to download
a patch from some Linux on Libretto web site.)
</para>
<para>
Linux will boot off the PCMCIA floppy drive, however. It just can't go
back to the floppy after loading the kernel. My Libretto (the 50CT) only
has one PCMCIA slot (later models had two slots, or I could have gotten
the enhanced port replicator, which gave it another slot). So I couldn't
boot off a floppy and then mount a remote filesystem.
</para>
<para>
So I downloaded ZipSlack (Slackware designed for running from a ZIP
disk) and used another PC to load it onto a ZIP disk. I attached the ZIP
drive to the Libretto (via the parallel port on the regular port
replicator that comes with it) and booted from the Slackware boot disk
in the PCMCIA floppy drive. When booted, I removed the floppy drive and
inserted and configured a network PCMCIA card. At this point the kernel
is in memory and it is using the filesystem on the ZIP disk.
</para>
<para>
I partitioned and formatted the Libretto's harddrive and then ftp'd Red
Hat 6.1 installation source onto one of the new partitions (the
partition that would become <filename>/home</filename> when everything
gets done). This is the key: if you don't have enough disk space to have
the installation files plus enough to actually install the OS on to,
this method won't work.
</para>
<para>
I shut down the ZipSlack kernel and rebooted it using a RedHat install
disk in the floppy drive. I pointed it at the RH6.1 installation media
already on the harddrive and started the install.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s11-from-a-parallel-port-cd-drive">
-->
<sect2>
<title>From a Parallel Port CD Drive (MicroSolutions BackPack)</title>
<para>
I had tried myself to install Linux using the MicroSolutions BackPack
parallel CD-ROM drive. It is fully supported by Linux and I haven't had
any major problem running it. Until version 2.0.36 it is supported by
its own module (<command>bpck</command>) while in later versions it
has been merged in the more general parallel port ide adaptors (the
<command>paride</command> module that relays then of course on more
specific low level drivers, which in the BackPack case is still called
<command>bpck</command>).
</para>
<para>
In RedHat 5.x based installations the <command>bpck</command> module is
available already at installation stage so you'll just have to select
the BackPack cdrom from the <emphasis>Other CD-ROMs</emphasis> at the
installation stage and then give it some more options (but
<command>autoprobe</command> should work just fine).
</para>
<para>
In RedHat 6.x (which uses 2.2.x kernels and should then use
<command>paride</command>), the BackPack support was dropped. So to
install the distribution from such a device, you will have to customize the
bootdisk (adding the necessary modules) and the installation will be
done without any problem.
</para>
<para>
Federico Pellegrin has customized a RedHat bootdisk that includes all the
parallel CDROM devices that are supported by the distribution Linux
kernel version (2.2.12) that should then work on all the supported
parallel CDROM devices (even if he only tested it on his MicroSolutions
BackPack since he doesn't have other similar hardware). You can find
<ulink url="http://web.archive.org/web/*/http://sole.infis.univ.trieste.it/~drzeus/rh_pcd.html">some information on it and the bootdisk image</ulink>.
</para>
<para>
As from RedHat 6.2 a supplementary driver disk was included in the
distribution to support the paride devices. You'll just have to create
the driver disk (the image file is <command>paride.img</command> and can
be found in the <filename>images/drivers</filename> directory) in the
usual way and insert it when the installer will ask for it.
</para>
<para>
Of course I suppose there isn't any problem in installing any other
Linux distribution using such a device as long as you can add and
configure the appropriate modules at the very beginning of the
installation stage, but I haven't tested any.
</para>
<para>
You should take care of the mode the parallel port uses (ECP, EPP,
Output only, PS/2) since some of them may cause your laptop to suddenly
freeze or cause serious data corruption. On the other side some modes
make the communication dramatically slow (I found the best choice on my
laptop the PS/2, but you should make some tests).
</para>
<para>
This chapter is a courtesy of Federico Pellegrin. Please check also the
<ulink url="http://tldp.org/HOWTO/CDROM-HOWTO/">CDROM-HOWTO</ulink>.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s12-from-a-parallel-port-second-machine">
-->
<sect2>
<title>From a Parallel Port Using a Second Machine</title>
<subtitle>PLIP Network Install</subtitle>
<para>
I got this courtesy by Nathan Myers &lt;ncm_AT_cantrip.org&gt;: "Many
distributions support installing via a network, using FTP, HTTP, or
NFS. It is increasingly common for laptops to have only a single
<acronym>PCMCIA</acronym> slot, already occupied by the boot floppy
drive. Usually the boot floppy image has drivers for neither the
floppy drive itself, nor the <acronym>PCMCIA</acronym> subsystem.
Thus, the only network interface available may be the parallel port.
</para>
<para>
Installation via the parallel port using the PLIP protocol has been
demonstrated on, at least, Red Hat. All you need is a
<emphasis>Laplink</emphasis> parallel cable, cheap at any computer
store. See the
<ulink url="http://tldp.org/HOWTO/PLIP.html">PLIP-HOWTO</ulink>
for details on setting up the
connection. Note that (uniquely) the RedHat installation requires that
the other end of the PLIP connection be configured to use ARP
(apparently because RedHat uses the DOS driver in their installer). On
the host, either <command>export</command> your CD file system on NFS,
or <command>mount</command> it where the ftp or web daemon can find it,
as needed for the installation."
</para>
<para>
The
<ulink url="http://www.tldp.org/HOWTO/PLIP-Install-HOWTO.html">PLIP Install HOWTO</ulink>
by Gilles Lamiral describes how to install a Linux distribution on a
computer without ethernet card, nor CD drive, but just a local floppy
drive and a remote NFS server attached by a nullmodem parallel cable.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s12-from-a-usb-flash-memory-drive">
-->
<sect2>
<title>From a USB Storage Device (Stick, CD, DVD, Floppy)</title>
<para>
If booting from an USB device is supported from the BIOS, it is possible
to install Linux from this drive. Besides some old laptops,
almost all laptops equipped with USB ports support this feature.
</para>
<para>
First you have to configure the BIOS to boot from an USB device. Sometimes
it is possible to use a certain key combination (e.g. &lt;ESC&gt;) during the boot
process to select the boot device.
</para>
<para>
Second you have to install Linux on the boot medium (let's say
an USB-Stick) and make it bootable. There are some special
Linux distributions available, which are dedicated for
such purposes, e.g.:
</para>
<para>
<ulink url="http://featherlinux.berlios.de/about.htm">Feather Linux</ulink>
is a Linux distribution which runs completely off a CD or a
USB pendrive and takes up under 64Mb of space. It is a Knoppix remastered
(based on Debian/GNU Linux), and tries to include software which most people would use
every day on their desktop. See these
<ulink url="http://featherlinux.berlios.de/usb-instructions.htm">instructions about installing Feather Linux on an USB drive</ulink>.
</para>
<para>
<ulink url="http://www003.upp.so-net.ne.jp/tshiono/partboot-usb/">Partboot</ulink>
is dedictated to USB floppy drives and tailored for Linux laptop and
notebook installations (you may find tools to resize your partitions as
well as PCMCIA support and more).
</para>
<para>
<ulink url="http://www.damnsmalllinux.org/">Damn Small Linux (DSL)</ulink>
is a business-card size (50MB) Live CD Linux
distribution. Despite its minuscule size it strives to have a functional
and easy to use desktop.
</para>
<para>
<ulink url="http://www.puppyos.com/">Puppy Linux</ulink>
installs anywhere flash drive, live-CD, zip disk, hard drive, network
emulator. All of the applications are in an approx 50-70MB distribution.
So, it all runs in a ramdisk, and it all installs in a
128M usb flash card with over half left over for your data.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s13-installing-via-network-card">
-->
<sect2>
<title>Installing via Network Interface</title>
<para>
On most modern laptops and notebooks with integrated network card, a network
installation via the PXE protocol is easy to achieve. This comes in
handy especially if there is no CD or DVD drive available.
<!--
PXE tested (not sure whether EtherBoot is offered by KNOPPIX)
tip from Christian Perle
-->
</para>
<sect3>
<title>How to Prepare the Source Machine</title>
<para>
For my installation I have used a Knoppix CD in the
source machine. Just enable the Terminal Server
(KNOPPIX-&gt;Server-Dienste-&gt;Terminal-Server KNOPPIX-Services-Start-&gt; KNOPPIX Terminal Server)
For almost any laptop model the default network drivers should work.
Disable secure options, otherwise you will not be able to become the root user
on the target machine.
Besides using Knoppix, there are numerous ways to prepare
the source machine for PXE. I haven't checked the EtherBoot
protocol yet, but this might work too.
</para>
</sect3>
<sect3>
<title>How to Prepare the Target Machine</title>
<para>
Look up the BIOS for something like a NetBoot Option and set it on.
Boot the machine and choose booting from the network device.
This is usually achieved by pressing a certain key during boot up
or by pre-selecting the network interface as the boot device in the BIOS.
Now Knoppix should come up. Open a shell and do an
<command>su</command> to become root. To achieve a hard disk installation
do either <command>knx-hdinstall</command> for Knoppix &lt;=3.3
or <command>knoppix-installer</command> for Knoppix &gt;=3.3.
</para>
</sect3>
<!--
http://netboot.sourceforge.net/english/index.shtml
Netboot is a packet to boot a computer with an Intel processor over an IP
network without access to a hard disk or a diskette.
http://www.etherboot.org/
Etherboot is a software package for creating ROM images that can download code
over an Ethernet network to be executed on an x86 computer. Many network
adapters have a socket where a ROM chip can be installed. Etherboot is code
that can be put in such a ROM. Etherboot is normally used for booting PCs
diskless.
http://rom-o-matic.net/
ROM-o-matic.net dynamically generates Etherboot and PXE ROM images.
see also bogmog, splitbrain
-->
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s13-installing-via-vnc">
-->
<sect2>
<title>Installing via VNC</title>
<para>
You might ask why do a laptop installation via the VNC protocol?
Indeed I know only of one reason to do so. Imagine you want
to use a laptop with a broken keyboard you may use the
keyboard of the remote machine to achieve the installation.
Though you have to do a few key stroke to initiate the VNC
installation!
You have to prepare the source machine accordingly (instructions how
to do so will follow later). For recent SuSE versions the
distribution is already prepared, see the handbook for details.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s13-installing-linux-on-small-machines">
-->
<sect2>
<title>Installing Linux on Small Machines</title>
<para>
If you have less than 8MB memory and want to install via NFS you
may get the message "fork: out of memory". To handle this problem,
use <command>fdisk</command> to make a swap partition
(<command>fdisk</command> should be on the install floppy or take
one of the mini Linuxes described above). Then try to boot from the
install floppy again. Before configuring the NFS connection change
to another console (for instance by pressing &lt;ALT&gt;&lt;F2&gt;)
and issue <command>swapon /dev/xxx</command> (xxx = swap
partition ). Thanks to Thomas Schmaltz.
</para>
<para>
Bruce Richardson has written the
<!--
<ulink url="http://website.lineone.net/~brichardson/linux/4mb_laptops/4mb_Laptops.html">HOWTO</ulink>
-->
<ulink url="http://tldp.org/HOWTO/4mb-Laptops.html">4MB-Laptop-HOWTO</ulink>
on installing a modern Linux distribution (specifically
Slackware 7.0) onto laptops with 4MB RAM and &lt;= 200MB hard
disks. Another HOWTO is
<ulink url="http://www.xs4all.nl/~lennartb/rescuedisk/index.html">Getting Linux into Small Machines - HOWTO</ulink>
by L.C. Benschop.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s14-installing-linux-on-macintosh-powerbooks">
-->
<sect2>
<title>Installing Linux on Apple Macintosh PowerBooks and iBooks</title>
<para>
Macintosh PowerBooks these days come with a CD/DVD drive but not a
floppy drive, but the Linux distributions for PPC support booting and
installation off of a CD without any need for a floppy.
</para>
<para>
Sometimes, when you boot the installer on the PowerBooks, the screen is
black; this is easily fixed by tapping the brightness key on the
keyboard (somehow, the screen brightness gets reset to zero).
</para>
<para>
If you have a very recent PowerBook, it may not be supported by the
kernel on the installation CD. You can get around this by booting off of
a recent kernel downloaded onto your hard drive and using a ramdisk on
the CD or hard drive, while still loading the installation packages from
the CD (the default). (See the instructions available online for yaBoot
or BootX, the Linux/PPC boot loaders; yaBoot is currently
better-supported on the newest machines.)
</para>
<para>
They can also boot/install from the Macintosh (HFS) partition on the
internal hard disk.
</para>
<para>
This part is a courtesy of Steven G. Johnson.
</para>
<!--
<para>
See also
<ulink url="http://www.heise.de/ix/">iX</ulink>
issue 1/2000 of the German computer magazine p.
74: Aepfel auf Reisen by Anna Kobylinska and
Filipe Martins (LinuxPPC 1999 Q3 and Yellow Dog Linux 1.1).
article is not online at least not free
</para>
is there a Partition Magic for MACs?
-->
<para>
For Linux installation reports see
<ulink url="http://tuxmobil.org/apple.html">Linux Laptop and Notebook Survey: Apple</ulink>.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p1c3s15-mass-installation">
-->
<sect2>
<title>Mass Installation</title>
<sect3>
<title>2.5" to 3.5" IDE Adapter</title>
<para>
If you have a 2,5" to 3,5" IDE drive adapter you can install one of the
laptops, and with a desktop computer clone this harddisk to the disks of
the other 99 laptops. You can use the DOS utility GHOST (works pretty
with ext2) or with tar if the desktop works in linux. You only need an
additional boot disk for the reinstall of the <command>lilo</command> in
each laptop and change the hostname and IP address. These adapter are
usually quite cheap (app . ten dollar, but difficult to get) .
</para>
</sect3>
<sect3>
<title>SystemImager</title>
<para>
<ulink url="http://systemimager.sourceforge.net">VA SystemImager</ulink>
is software that makes the installation of Linux to masses of similar
machines relatively easy. It also makes software distribution,
configuration, and operating system updates easy. You can even update
from one Linux release version to another! VA SystemImager can also be
used for content management on web servers. It is most useful in
environments where you have large numbers of identical machines. Some
typical environments include: Internet server farms, high performance
clusters, computer labs, or corporate desktop environments where all
workstations have the same basic hardware configuration.
</para>
</sect3>
<sect3>
<title>Debian/GNU Linux</title>
<para>
You might want to take a look at
<ulink url="http://www.informatik.uni-koeln.de/fai">FAI - Fully Automatic Installation</ulink>.
</para>
</sect3>
<sect3>
<title>SuSE</title>
<para>
The package
<!--
<ulink url="http://sdb.suse.de/sdb/de/html/cg_autoinstall.html">ALICE</ulink>
is ALICE still the tool to choose?
-->
ALICE - Automatic Linux Installation and Configuration Environment,
offers CVS-based configuration files and configuration templates.
</para>
</sect3>
<sect3>
<title>Replicator</title>
<para>
<!--
<ulink url="http://www.ens-lyon.fr/~schaumat/replicator/">Replicator</ulink>
not really in webarchive
-->
Replicator is a set of scripts to automate the duplication of a
Debian GNU/Linux installation from one computer to another.
Replicator makes an effort to take into account differences in
hardware (like HD size, video card) and in software configuration
(such as partitioning). After the initial configuration, the
scripts will create a bootdisk that allows you to completely
(re)install a Debian box by booting from the floppy and answering a
yes/no question.
</para>
</sect3>
<!--
<sect3>
<title>bpbatch</title>
<para>
Also <ulink url="http://www.bpbatch.org">bpbatch</ulink>
seems to be a good alternative.
website in bad shape, no downloads
</para>
</sect3>
-->
<sect3>
<title>partimage</title>
<para>
<ulink url="http://partimage.sourceforge.net/">Partition Image</ulink>
is a Linux/UNIX utility which saves partitions in the ext2fs
(the linux standard), ReiserFS (a new journalized and
powerful file system) or FAT16/32 (MS-DOS and MS-Windows file
systems) file system format to an image file. The image file
can be compressed in the GZIP/BZIP2 formats to save disk
space, and splitted into multiple files to be copied on
floppies (ZIP for example).
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p1c3s15-common-problems-installation">
<title>Common Problems During Installation</title>
<sect2>
<title>Display Problems (Missing Lines, Thick Borders)</title>
<para>
A common problem during Linux installation (or afterwards) on laptops are missing
lines at the bottom of the text console display, so the last command lines or the login prompt
are not shown on the screen. Depending on the problem it might help:
<itemizedlist>
<listitem>
<para>
Either using FrameBuffer, e.g. using a Kernel with framebuffer
support and a boot option like <command>vga=791</command>, for details see the
<ulink url="http://tldp.org/HOWTO/Framebuffer-HOWTO.html">FrameBuffer-HOWTO</ulink>.
</para>
</listitem>
<listitem>
<para>
Or disabling FrameBuffer, e.g. using a boot option like
<command>vga=normal</command> or another resolution
Also, you could try passing <command>video=vga16:off</command>
on the installer boot prompt.
</para>
</listitem>
<listitem>
<para>
As a workaround often it is possible to switch to a second console
e.g. &lt;ALT&gt;+&lt;F2&gt; , because this effect is often only related
to the first console.
</para>
</listitem>
<listitem>
<para>
Check if there are VGA and video boot options configured in
the bootloader (e.g. grub, lilo). Try
to disable them at least partly, look for options like
<command>ywrap</command>, etc.
</para>
</listitem>
<listitem>
<para>
Check the BIOS for display settings, often (older) Toshiba laptops
behave like this.
</para>
</listitem>
<listitem>
<para>
Issue the command <command>resize</command> to get the correct screen size
into the system.
</para>
</listitem>
<listitem>
<para>
If none of the above helps, you may try to run a start-up-script, which
has to run at the end of the boot process.
The script has to contain the <command>clear</command> command and/or
the <command>reset</command>.
</para>
</listitem>
<!--
<listitem>
<para>
mouse cursor: hw_cursor sw_cursor
sw_cursor might also work as a remedy for other problems, e.g. with
3D support
</para>
</listitem>
-->
</itemizedlist>
</para>
</sect2>
</sect1>
</chapter>
</part>
<!-- PART TWO FORMER THREE ================================================== -->
<part id="mobile-guide-p3-handheld-devices-pdas">
<title>Handheld Devices - Personal Digital Assistants (PDAs)</title>
<chapter id="mobile-guide-p3c1-palmtops-pdas-handhelds">
<title>Palmtops, Personal Digital Assistants - PDAs, Handheld PCs - HPCs</title>
<epigraph>
<attribution>
Motto of
<ulink url="http://zaurus.loveslinux.com">ZaurusLovesLinux</ulink>
</attribution>
<para>
Linux PDAs, because using your palm isn't as good as the real thing.
</para>
</epigraph>
<!--
Why Linux for PDAs? (see notes by VHL Tools)
-->
<sect1 id="mobile-guide-p3c1s1-resources">
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
Highly recommended is the page by Russell King
<ulink url="http://www.arm.uk.linux.org/~rmk/">ARM Linux</ulink>
about PDAs with ARM CPU and with links to other Linux related PDA sites.
</para>
</listitem>
<listitem>
<para>
For more information on Virtual Network Computing, see
<ulink url="http://www.realvnc.com/">VNC</ulink>
.
</para>
</listitem>
<listitem>
<para>
PDAs and infrared remote control, see
<ulink url="http://hp.vector.co.jp/authors/VA005810/remocon/remocone.htm">Hiromu Okada</ulink>
.
</para>
</listitem>
<!--
<listitem>
<para>
AFAIK you can run Linux on the <trademark>IBM</trademark> PC110 (a
tiny PC handheld that's no longer manufactured). There's a HOWTO on
it running around somewhere but I don't have an URL, instead I found
a description in
<ulink url="http://www.isp-planet.com/mag/97/jul/bwm70.html">LINUX REDUX July 1997</ulink>
by Alan Cox.
</para>
</listitem>
webarchive: Sorry, no matches.
-->
<listitem>
<para>
There is also the
<ulink url="http://www.cdpubs.com/hhsys/archives.html">Handheld Systems(TM) On-line Archives</ulink>
and a search engine about palmtop related topics
<ulink url="http://www.palmtop.net/">Palmtop.Net/</ulink>
.
</para>
</listitem>
<listitem>
<para>
I have setup a page about
<ulink url="http://tuxmobil.org/pda_linux.html">Linux with PDAs and Handheld PCs</ulink>
, too.
</para>
</listitem>
<listitem>
<para>
These newsgroups for PDA application developers are available:
</para>
<para>
codewarrior.embedded;
codewarrior.games;
codewarrior.linux;
codewarrior.mac;
codewarrior.palm;
codewarrior.unix;
codewarrior.windows;
</para>
</listitem>
</orderedlist>
</para>
<!--
deprecated content not up-to-date anymore
<sect2>
<title>Linux PDA Distributions</title>
<sect3>
<title>Midori</title>
<para>
<ulink url="http://midori.transmeta.com">Midori Linux</ulink>
is an Open Source project for delivering system software on
small devices. It includes a build system, a Linux kernel with memory- and
storage-conserving features, and system-level support for normal Linux software
on platforms which might otherwise require custom "embedded" applications.
is this maintained any longer?
</para>
</sect3>
<sect3>
<title>PocketLinux</title>
<para>
<quote>
PocketLinux
is a complete GPLed operating system solution targeted at small, Internet-enabled devices.
The PocketLinux "application framework" gives developers options on how they deliver content
and application services to their target consumer market. It makes it possible to develop
applications using the best tool for the job.
Developers can use XML to easily develop applications that integrate cleanly and completely
into the PocketLinux environment.
For more advanced needs, the full power of the Kaffe Java Virtual Machine is available and
exposed, making available all the modularity, portability and elegance that is the hallmark of Java.
But the URL http://www.pocketlinux.com/ seems no longer available.
</quote>
</para>
</sect3>
<sect3>
<title>VHL-Tools</title>
<para>
<ulink url="http://vhl-tools.sourceforge.net/">vhl-tools</ulink>, a SourceForge
project, works on utilities, patches, documentation and integration of
Open Source software for Linux on the VTech Helio PDA.
</para>
</sect3>
</sect2>
-->
<!--
<sect2>
<title>General Hardware Information</title>
<para>
From <filename>devices.txt</filename>
<programlisting role="small">
block Generic PDA filesystem device
0 = /dev/pda0 First PDA device
1 = /dev/pda1 Second PDA device
The pda devices are used to mount filesystems on
remote pda's (basically slow handheld machines with
proprietary OS's and limited memory and storage
running small fs translation drivers) through serial /
IRDA / parallel links.
NAMING CONFLICT PROPOSED REVISED NAME /dev/rpda0 etc
0 = /dev/pda first parallel port IDE disk
</programlisting>
</para>
</sect2>
-->
</sect1>
</chapter>
<chapter id="mobile-guide-p3c2-linux-pdas-history">
<title>History of Linux on PDAs</title>
<para>
This chapter is not complete yet, there should be
more information on 286 based PDAs which were
Linux capable.
<!--
some details might be in the ports and tools section below
-->
</para>
<sect1 id="mobile-guide-p3c2s4-itsy">
<title>Itsy</title>
<para>
The Itsy prototype offered considerably more computing power and memory
than other PDAs of its time, enabling demanding applications such as speech
recognition. It was designed as an open platform to facilitate innovative
research projects. The base Itsy hardware provided a flexible interface
for adding a custom daughtercard, and Itsy software has been based on the
Linux OS and standard GNU tools.
</para>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
COMPAQ/Digital is the manufacturer of the
<ulink url="http://research.compaq.com/wrl/projects/itsy/">Itsy</ulink>.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
</chapter>
<chapter id="mobile-guide-p3c2-linux-pdas">
<title>Linux PDAs</title>
<para>
The most known Linux PDAs in these days are the
<ulink url="http://tuxmobil.org/pda_survey_agenda.html">Agenda VR3</ulink>
by AgendaComputing (out-of-production), the
<ulink url="http://tuxmobil.org/pda_survey_compaq.html">iPAQ</ulink>
by HP/COMPAQ, the
<ulink url="http://tuxmobil.org/pda_survey_sharp.html">Zaurus series</ulink>
by SHARP,
and the <ulink url="http://tuxmobil.org/pda_survey_samsung.html">Yopy</ulink>
by Samsung (out-of-production). Except the iPAQ all of them are true Linux PDAs,
they are pre-equipped with Linux by their manufacturers.
</para>
<para>
There are different free distributions for Linux PDAs
available, e.g.:
<ulink url="http://www.trolltech.com/">QT Embedded</ulink> (pre-installed on the SHARP Zaurus),
<ulink url="http://opie.handhelds.org/">Opie</ulink>,
<ulink url="http://familiar.handhelds.org/">Familiar</ulink>.
The
<ulink url="http://gpe.handhelds.org/">Gnome Palmtop Environment - GPE</ulink>
aims to provide a Free Software GUI environment
for palmtop/handheld computers running the GNU/Linux
operating system. GPE uses the X Window System, and the GTK+
widget toolkit.
</para>
<para>
Most of the software for the newer PDAs can be obtained as pre-compiled
IPK packages. You may search the
<ulink url="http://www.killefiz.de/zaurus/">Zaurus Software Index - ZSI</ulink>
or
<ulink url="http://ipkgfind.handhelds.org/">ipkgfind</ulink> for the
package you need.
To install these packages you may choose different methods. One
method is to install directly via a HTTP connection called
<emphasis>feed</emphasis>. For an
example see the
<ulink url="http://tuxmobil.org/feed.html">TuxMobil IPK feed</ulink>.
</para>
<para>
Besides these well-known Linux PDAs I will also try to point
to ports for other PDAs and to tools to achieve connectivity to
non-Linux PDAs, cell phones and desktop computers.
</para>
<sect1 id="mobile-guide-p3c2s1-agenda-vr3">
<title>AgendaComputing: Agenda VR3</title>
<!--
<listitem>
<para>66 MHz MIPS-CPU (VR4181 by NEC)</listitem>
<para>
<listitem>
<para>16 MB FlashROM</listitem>
<para>
<listitem>
<para>8 MB RAM</listitem>
<para>
<listitem>
<para>160x240-Pixel 16-Grey-Mode-Display</listitem>
<para>
<listitem>
<para>IrDA</listitem>
<para>
<listitem>
<para>serial Port</listitem>
<para>
-->
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
The manufacturer of the first dedicated Linux PDA the Agenda VR3 is
AgendaComputing (out-of-business).
<!--
<ulink url="http://www.agendacomputing.com">AgendaComputing</ulink>.
-->
</para>
</listitem>
<!--
<listitem>
<para><href url="http://devel.agendacomputing.com/" name="Official Developer Site">
<listitem>
<para><href url="http://www.lardcave.net/agenda/agenda-faq.html" name="Inofficial FAQ">
<listitem>
<para><href url="http://www.cs.umbc.edu/~acedil1/agenda/" name="Agenda VR3 Help Page">
<listitem>
<para><href url="http://lists.agendacomputing.com/mailman/listinfo" name="Agenda Mailing Lists">
<listitem>
<para><href url="http://turbolnx.cenon.net/vr3/" name="some pictures of the VR3d">
-->
</orderedlist>
</para>
</sect2>
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s8-yopy">
<title>Samsung: YOPY</title>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.samsung.com/">Samsung</ulink> is the manufacturer of
the Yopy.
<!--
<ulink url="http://www.sem.samsung.com/eng/product/digital/pda/index.htm">YOPY</ulink>.
-->
</para>
</listitem>
<listitem>
<para>
The German
<ulink url="http://www.linux-magazin.de/News/index_html?newsid=519">Linux-Magazin</ulink> about the YOPY.
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://www.theyopy.de">An alternative YOPY site</ulink>.
CONTENT CHANGED
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.yopy.cc">The official YOPY site</ulink>.
CONTENT CHANGED
</para>
</listitem>
-->
</orderedlist>
</para>
<para>
<figure>
<title>Screenshot of the YOPY PDA</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/yopy" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/yopy.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of the YOPY PDA</phrase>
</textobject>
<!--
<caption>
<para>Screenshot of the YOPY PDA</para>
</caption>
causes double title for the picture
-->
</mediaobject>
</figure>
</para>
</sect2>
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s8-zaurus">
<title>SHARP SL-5000/5500/C700-860/C3x00/6000 aka Zaurus</title>
<para>
The SHARP Zaurus SL-5000/5500 wasn't the first Linux PDA, but the one
with the greatest success in the Linux community and beyond.
</para>
<para>
<figure>
<title>Screenshot of the SHARP Zaurus SL-5500 PDA.</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/zaurus1" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/zaurus1.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of the SHARP Zaurus SL-5500 PDA.</phrase>
</textobject>
<!--
<caption>
<para>Screenshot of the SHARP Zaurus SL-5500 PDA.</para>
</caption>
-->
</mediaobject>
</figure>
</para>
<sect2>
<title>The SHARP System</title>
<para>
You may find the official site for information about Linux on the Zaurus at
<ulink url="http://developer.ezaurus.com/">SHARP Japan</ulink> (in Japanese).
You can get the official kernel, either complete or just the patches for the
Zaurus there. You can also get the official root-filesystem, that is the
initrd, but without the
<ulink url="http://qpe.sourceforge.net/">QTopia</ulink>
environment.
Check the documentation at SHARP how to create your zImage, bootflag and
initrd for flashing the ROM of the Zaurus with your custom setup. Or go to
your country-specific division of SHARP to get a complete ROM in one file
called "ospack", which is
<ulink url="http://www.zaurus.de/">Zaurus.DE</ulink>
for Germany or
<ulink url="http://www.myzaurus.com/">MyZaurus</ulink>
for the US versions.
The kernel is rather old: 2.4.6 with 2.4.6-rmk2-patches and some more from
<ulink url="http://www.lineo.com/">Lineo</ulink>.
The rmk-patches are from
<ulink url="http://www.arm.uk.linux.org/">Linux ARM Community</ulink>.
The root filesystem from SHARP is known for its weird structure with
symbolic links all over the place.
The custom compile worked. Remember to hit the "/"-key when the Zaurus
displays "Wait... ", so you can choose to start a login instead of QTopia,
which is not available then. Unless you downloaded QTopia, (cross-)compiled
it and installed it into the root filesystem.
BTW, you can create a new user with "adduser", a command provided by BusyBox.
<ulink url="http://www.busybox.org/">BusyBox</ulink>
, provides nearly all UNIX-commands available on the official system.
</para>
</sect2>
<sect2>
<title>The Community Systems</title>
<para>
Currently I know of two running systems: OpenZaurus and Debian (unofficial).
</para>
<sect3>
<title>OpenZaurus</title>
<para>
<ulink url="http://openzaurus.org/">OpenZaurus</ulink>
tries to create the same environment as the one from SHARP, but
based upon free software only.
At the moment, it still uses the old kernel from Sharp, but slightly
modified in regards of usage of the FLASH-ROM as RAM and division of RAM
between RAMDISK and RAM. Unfortunately, the driver for the SD-controller is
binary-only and thus non-free. But also SHARP itself tries to convince the
vendor, SDCA, to provide the sources for the public.
Moreover,
<ulink url="http://openzaurus.org/">OpenZaurus</ulink>
created a sane root-filesystem we all know from our
regular Linux systems. It also replaces QTopia by
<ulink url="http://opie.handhelds.org">Open Palmtop Integrated Environment - OPIE</ulink>
, which
is a fork from QTopia with no relations to Trolltech anymore. All
applications from QTopia should run on OPIE, but not quite: The Doom-like
game called Zraycast does not run on OPIE, but does on QTopia (more or less).
You can download a ready zimage, bootflag and initrd directly or checkout the
sources from CVS. The downloaded images worked fine.
</para>
</sect3>
<sect3>
<title>Debian</title>
<para>
The current, unofficial version of
<ulink url="http://people.debian.org/~mdz/zaurus/">Debian Zaurus</ulink>
really tries to be a regular
Debian system with apt and X. A simple version of dpkg is already shipped with
<ulink url="http://www.busybox.org/">BusyBox</ulink>
, which makes it a little bit easier. The maintainer has therefore
stripped down some more tools to fit them into the Flash-ROM.
It uses the kernel provided by
<ulink url="http://openzaurus.org/">OpenZaurus</ulink>
and thus the one from Sharp.
There are some issues with the RAMdisk, calibration of the stylus and
sleep / power-off/-on.
As soon as it is in a more stable state, it will join forces with
<ulink url="http://emdebian.sourceforge.net/">EmDebian</ulink>
and the sources will become available (probably already furnished upon
request). The downloaded images still have to be tweaked. :)
All systems, including the sources from SHARP, are set to use the US
keyboard layout (or the German keyboard). It seems that the keymap
available is fixed in the kernel and there are no user-space tools
installed per default to change this. Perhaps I will give the package
"console-tools" on Debian a try.
</para>
</sect3>
<sect3>
<title>PocketWorkStation</title>
<para>
Here are some of the features of
<ulink url="http://www.pocketworkstation.net/">PocketWorkStation</ulink>
a Debian/GNU Linux distribution for PDAs:
<itemizedlist>
<listitem>
<para>
Full Debian GNU/Linux operating environment, with easy access to the many GB of available software.
Want the Konqueror web browser and have 50MB free space on your SD card? Run <command>apt-get install konqueror</command>,
go eat lunch and come back to find it ready to run. No porting needed.
</para>
</listitem>
<listitem>
<para>
Includes X11 able to run most Linux applications - it supports virtual screens
larger than the physical screen, realtime anti-aliased scaling and rotation,
3-mouse-button emulation and a full keyboard
(useful i.e. if you need to send Ctrl-Alt-Del to an application).
</para>
</listitem>
<listitem>
<para>
VNC client fbvnc (same features as X11 above) - remote administer your NT box from your Zaurus.
</para>
</listitem>
<listitem>
<para>
Runs completely out of a single directory (a 256MB SD card is ideal),
no re-flashing or modification of the existing operating system is required.
</para>
</listitem>
<listitem>
<para>
Switch between QTopia and X11 whenever you like without rebooting or needing to stop any of your X11 applications.
</para>
</listitem>
</itemizedlist>
</para>
</sect3>
</sect2>
<sect2>
<title>Synchronization with your Linux PC</title>
<para>
The QTopia-Desktop is available as a download from
<ulink url="http://www.trolltech.com/developer/download/qtopia.html">Trolltech</ulink>
for free (as in beer): There is a
<ulink url="http://docs.zaurus.com">FAQ</ulink>,
which explains the necessary steps for setup (Ethernet-over-USB). It is not
quite up-to-date, because SHARP has tightened the security with their current
ROM-release, so you have to give the IP-address 192.168.129.1 to your usb0
network device. You have to download and compile a patch for your kernel
to use the driver usbdnet (see aforementioned website). Afterwards, a
connection between the QTopia-Desktop and the Zaurus is possible.
I had a lot of problems with the usb network layer on my system and could not
sync properly. A switch from the driver uhci to usb-uhci for my host dit it.
Just recently I had to reboot my notebook and the Zaurus due to a hiccup in
the corresponding usb-net drivers. The network via an ethernet-card in the
CF-slot is much more reliable than the connection via usb and you can still
use the keyboard. The disadvantage is, that you cannot have a storage device
in your CF-slot while you are on-line.
</para>
</sect2>
<sect2>
<title>External Serial Keyboard</title>
<para>
So far I was not able to get it going.
There is a site which offers a
<ulink url="http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html">serial keyboard driver and a patch for the iPAQ</ulink>
. Since the iPAQ and the Zaurus are based on the same CPU architecture,
StrongArm, I hope that the driver provided there will also work on the
Zaurus. You also need a user-space tool called
<command>inputattach</command>, which you can also get from there (source
or binary for ARM). I got a Happy Hacking Keyboard Lite with a PS/2
connector. An adaptor translates to serial which itself is plugged into
to the Collie serial &lt;-&gt; serial connector. I do not know if this
chain is even possible to work. The provided patch applied with only one
failing hunk which made a trivial change in the sources
(include/linux/serio.h) necessary; check the output. After having
re-configured the SHARP kernel config and having compiled the modules, I
transferred them to the Zaurus. The modules marked and created are:
newtonkbd.o, serio.o, serport.o and perhaps stowaway.o from
drivers/char/joystick/ and input.o and keybdev.o from drivers/input/.
When you start <command>inputattach</command>, you have to use the line
<command>inputattach --newtonkbd /dev/ttyS0</command>, _not_ ttySA0 as
stated on the website. For some strange reason, the Collie serial driver
does not comply to the official StrongARM documentation of the kernel,
which states that the serial ports are accessible via /dev/ttySAx. And
because the serial_collie.o is already compiled into the Sharp kernel,
you do not have to load the generic module serial.o. Well, I also tried
the serial_collie.o as a module, while it was still compiled into the
kernel. There were no complaints when loading it, but the system froze
unpredictably, so I had to do a soft-reset quite often. Why can I load a
module whose code is already in the kernel, I wonder... Anyway, it does
not work. :( I tried inputattach in the --dump mode (you have to
undefine a variable in the source and recompile) and it seems that there
is nothing happening between the serial port and the keyboard. The call
for select (man 2 select) fails due to a timeout.
</para>
</sect2>
<sect2>
<title>Cross-Compiling</title>
<sect3>
<title>Kernel</title>
<para>
In order to build the kernel, initrd and applications you need a
cross-compiling environment, GCC is preferred.
<ulink url="http://emdebian.sourceforge.net/">EmDebian</ulink>
offers
.deb packages for Debian GNU/Linux i386.
Note: you have to look up the download
links in the old site (a link is provided on the new site), because they are
missing on the new site (though the download page exists).
There are some
dependancy problems with the g++ and libstdc++-dev packages which can be
"resolved" with a --force-depends. The package libstdc++-dev has some problems
finding an info-file: just create a symlink from
<filename>/usr/share/info/iostream.ifo.gz</filename>
to <filename>/usr/share/info/iostream-295.info.gz</filename>.
You should get some pointers for other systems at the
<ulink url="http://www.arm.uk.linux.org/">Linux ARM Community</ulink>.
Once installed, you can grab a standard kernel, apply the current ARM-patches
and modify the top Makefile to target the arm-architecture. I did not try that
so far.
</para>
</sect3>
<sect3>
<title>Applications</title>
<para>
Check the
<ulink url="http://qpe.sourceforge.net/sharp.html">QTopia</ulink> pages for more info
and the
<ulink url="http://qpe.sourceforge.net/development.html">QTopia - Development</ulink> pages.
<!--
Or check the instructions from
<ulink url="http://opie.handhelds.org/wiki/index.php?SourceCode">OPIE</ulink>.
not available anymore
-->
</para>
</sect3>
<sect3>
<title>Tool Chains</title>
<para>
Werner Schulte explains how to build a OPIE development Live CD.
The CD contains an ISO image with the tools and methods described in his
<ulink url="http://www.uv-ac.de/opiedev">Opie Development HOWTO - LiveCD chapter</ulink>.
The CD allows the user to crosscompile OPIE programs without having a
cross-compiler installed on his linux-box (also i386 embedded available).
</para>
<para>
Instructions for building a
<ulink url="http://www.lucid-cake.net/osx_arm/index_en.html">cross-compiling GCC for the Zaurus under Mac OS X</ulink>.
</para>
<para>
A
<ulink url="http://www.pellicosystems.com/demolinux/zdemolinux/index.html">DemoLinux distribution</ulink>
to show the Trolltech Qtopia development environment for the SHARP Zaurus Personal Mobility
Tool or any ARM based device running the Trolltech QPE system
provided by Pellico Systems.
<!--
Probably a cross-compiling gcc for Win32 could be built in a similar
way, using MingW or cygwin. It's going to be some work,
though.
-->
</para>
<para>
<ulink url="http://kopsisengineering.com/kopsis/SharpZaurusSdkDsl">Zaurus Development with Damn Small Linux</ulink>
offers a cross-development environment to build binaries for the ARM processor
used in the SHARP Zaurus Linux PDAs. You may run it either inside the QEMU
virtual machine or from a Live CD.
</para>
<para>
<ulink url="http://free-electrons.com/community/tools/kernelkit/en">KernelKit</ulink>
is a Knoppix derivative dedicated to developers of Linux
device drivers and Free Software embedded systems. In particular, it
includes uClibc cross-compiling toolchains for several embedded
architectures (currently ARM, i386, MIPS, mipsel, PPC, and m68k) and
emulators (currently qemu and SkyEye). It can be used for demonstration or
training purposes, or by developers who cannot install GNU/Linux on their
workstations.
</para>
</sect3>
</sect2>
<sect2>
<title>Caveats</title>
<para>
SHARP introduced a proprietary serial interface at the bottom of the Zaurus
SL-5x00 series. You can buy an adaptor to a regular serial interface from them, but
unfortunately, the plug is very thick and you cannot open the slide for the
keyboard anymore. Hopefully, you can still plug an external keyboard into this port!
You can at least plug the power cord into the adaptor so you do not have to
run on battery. There are third-party adaptors available, which overcome
this caveat.
</para>
<para>
There is no speaker for the soundchip of the SL-5500. You have to use the socket for the
headphones to hear OggVorbis and the alikes. The buzzer currently supports
only 14 different sounds defined in
<filename>&lt;kernel-source&gt;/include/asm-arm/sharp_char.h</filename>
, check for <command>SHARP_BUZ_ALL_SOUNDS</command>.
</para>
</sect2>
<sect2>
<title>Resources</title>
<sect3>
<title>Manufacturer: SHARP</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://docs.zaurus.com">ZaurusZone</ulink>.
<!--
<ulink url="http://www.zauruszone.com">ZaurusZone</ulink>.
link invalid
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://more.sbc.co.jp/slj/linux.asp">Sharp Linux/Java PDA Linux Information</ulink>
</para>
</listitem>
<listitem>
<para>
<!--
<ulink url="http://developer.sharpsec.com/">Sharp Zaurus Developer's Program</ulink>
old link
-->
<ulink url="http://www.zaurus.com/dev/">Sharp Zaurus Developer's Program</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://www.zaurus.de/">Sharp Zaurus Germany</ulink>
outdated
</para>
</listitem>
-->
</orderedlist>
</para>
</sect3>
<sect3>
<title>Kernel and Community Distributions</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.arm.uk.linux.org/">ARM Linux</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://emdebian.sourceforge.net/">Emdebian</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://openzaurus.org/">OpenZaurus Project</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html">Linux serial keyboards</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>FAQs, Forums, etc.</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://zaurus.help4free.de/html/modules/news/">Sharp Zaurus Hilfe und Support Community (German)</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.zaurususergroup.com/modules.php?op=modload&amp;name=FAQ&amp;file=index">Unofficial Sharp Zaurus SL-5500 FAQ</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://docs.zaurus.com">Sharp Zaurus - Developer Site</ulink>
<!--
<ulink url="http://www.zauruszone.farplanet.net/howtos/">Sharp Zaurus - Developer Site</ulink>
link invalid
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.handhelds.org">handhelds.org - mobile Devices</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Applications, Desktop Environments</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://opie.handhelds.org">Open Palmtop Integrated Environment (OPIE)</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://gpe.handhelds.org">GPE Palmtop Environment, GTK-based alternative to OPIE</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://qpe.sourceforge.net">QTopia</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.trolltech.com/developer/download/qtopia.html">QTopia-Desktop</ulink>
</para>
</listitem>
<listitem>
<para>
The
<ulink url="http://www.uv-ac.de/ipaqhelp">iPAQ and Zaurus Development using QPE handbook</ulink>
by Werner Schulte
describes how to install the Familiar Linux and Qtopia / OPIE on the Compaq iPAQ Handheld (and SHARP
Zaurus) and how to develop applications for the iPAQ/Zaurus using the Familiar distribution and QPE desktop from
Trolltech or OPIE (the free clone).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Software Indexes</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.killefiz.de/zaurus/">Zaurus Software Index - ZSI</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://www.zaurusoft.com/">ZaurusSoft</ulink>
</para>
</listitem>
webarchive: in
-->
<listitem>
<para>
<ulink url="http://ipkgfind.handhelds.org">IPKGfind Software Index</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect3>
</sect2>
<sect2>
<title>Conversion from Palm Pilot to Zaurus</title>
<para>
See my
<ulink url="http://tuxmobil.org/go2z.html">survey of applications and conversion tools</ulink>
between a conventional PDA
operating system (only PalmOS yet,
WinCE/Pocket PC and Epoc will follow hopefully)
and a Linux PDA.
</para>
</sect2>
</sect1>
</chapter>
<chapter id="mobile-guide-p3c2-linux-for-pdas-ports-and-tools">
<title>Non-Linux PDAs - Ports and Tools</title>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s2-helio">
<title>HELIO</title>
<para>
Currently the HELIO is only available with the proprietary VT operating system. See
<ulink url="http://www.fms-computer.com">FMS</ulink>
for information about the Linux port.
</para>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
The manufacturer of the HELIO is
<ulink url="http://www.vtech.com">VTech</ulink>
.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://vhl-tools.sourceforge.net/">vhl-tools</ulink> (dead link)
, a SourceForge project, works on utilities, patches, documentation
and integration of Open Source software for Linux on the VTech Helio PDA.
</para>
</listitem>
<listitem>
<para>
PocketLinux has a port under the GPL, as well as Debian and Redhat packages.
But the URL http://www.pocketlinux.com/ seems no longer available.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.kernelconcepts.de/helio/">KernelConcepts</ulink>
</para>
</listitem>
<listitem>
<para>
<!--
<ulink url="http://www.linux-vr.org/tools.html">VR Org</ulink> cross compiler
-->
<ulink url="http://www.linux-mips.org/linux-vr/tools.html">VR Org</ulink> cross compiler
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.linux-community.de/News/">Linux-Magazin</ulink>
</para>
</listitem>
</orderedlist>
</para>
<para>
<figure>
<title>Screenshot of the HELIO PDA.</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/home_helio_03" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/home_helio_03.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="images/home_helio_03.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of the HELIO PDA.</phrase>
</textobject>
<!--
<caption>
<para>
Screenshot of the HELIO PDA.
</para>
</caption>
-->
</mediaobject>
</figure>
</para>
</sect2>
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s3-ipaq">
<title>iPAQ</title>
<para>
Currently the iPAQ PDAs by COMPAQ/HP are distributed only with a WinCE operating system.
</para>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
The manufacturer of the iPAQ PDAs is
<ulink url="http://www.compaq.com/products/handhelds/pocketpc/index.html">COMPAQ/HP</ulink>.
</para>
</listitem>
</orderedlist>
</para>
<para>
<figure>
<title>Screenshot of the iPAQ PDA.</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/h3650" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/h3650.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="images/h3650.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of the iPAQ PDA.</phrase>
</textobject>
<!--
<caption>
<para>Screenshot of the iPAQ PDA.</para>
</caption>
is this Familiar on the screen?
-->
</mediaobject>
</figure>
</para>
</sect2>
<sect2>
<title>Braille Terminal</title>
<para>
<ulink url="http://pages.infinit.net/sdoyon/">Stephane Doyon</ulink>
wrote to the iPAQ mailing list:
"We (Nicolas Pitre and myself) have successfully ported BRLTTY to the iPaq
and tested the setup by interfacing with a BrailleLite 18 through the
serial port.
BRLTTY is a program that allows access to the Linux text-mode console
using various brands of Braille displays.
The BrailleLite is a small electronic Braille notetaker device which can
act as a small refreshable Braille display. It also has keys so I can not
only read but also type.
So there's just the iPaq and the BrailleLite device (with a horrible
cable in between) and that's all I need to fully use the console on
the iPaq (in text-mode). A pretty powerful setup, yet very small.
At the Ottawa Linux Symposium in July, using a network card in my iPaq
and borrowing the internet connection they supplied, I was actually able
to logon to the net and go read my E-mail, using ssh, pine and lynx!
It should be possible to duplicate this setup with other Braille display
models or other PDAs."
</para>
</sect2>
<!--
broken link Berlin is now Fresco
<sect2>
<title>GGI</title>
<para>
Tobias Hunger from the Berlin-Consortium has
written the source of
<ulink url="http://www2.berlin-consortium.org/~tobias/iPaq/">GGI on the iPAQ</ulink>
.
</para>
</sect2>
-->
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s5-newton-message-pad">
<title>Newton Message Pad</title>
<para>
The Newton Message Pad was one of the first PDAs.
</para>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
Apple is the manufacturer of the
<ulink url="http://www.apple.com">Newton Message Pad</ulink>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://privat.swol.de/ReinholdSchoeb/Newton/">Newton and Linux Mini-HOWTO</ulink>
.
</para>
</listitem>
<!--
broken link
<listitem>
<para>
<ulink url="http://www.tcel.com/~aehall/newtl/">Newtl: Newton/Linux Communications System</ulink>
Newtl allows a Linux machine to communicate with a Newton PDA.
Automatically send e-mail, print, and fax outboxes through your Linux machine, and more.
</para>
</listitem>
-->
</orderedlist>
</para>
</sect2>
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s6-palm-pilot">
<title>PALM-Pilot</title>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
3COM is the manufacturer of the
<ulink url="http://www.3com.com/">PALM-Pilot</ulink>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/PalmOS-HOWTO/">PalmOS-HOWTO</ulink>
(former Pilot-HOWTO) by David H. Silber.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.pilot-link.org/">PilotLink and XCoPilot</ulink>
PilotLink is an utility that performs data transfers from 3com
PalmPilot handheld computers to your Linux machine.
XCoPilot is an emulator of the PalmPilot operating system that runs under Linux.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.uclinux.org/">ucLinux</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.icsi.berkeley.edu/~minenko/PalmVNC">PalmVNC</ulink>
is an implementation of the Virtual Network Client architecture
that will allow you to use a Linux or other <acronym>UNIX</acronym>
machine to put up a (tiny) X Window on a 3COM PalmPilot.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/pda_linux_palm.html">Survey of Linux and BSD Applications for the Palm</ulink>
</para>
</listitem>
</orderedlist>
</para>
<para>
<figure>
<title>Screenshot of the PALM-Pilot emulator POSE.</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/pose" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/pose.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="images/pose.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of the PALM-Pilot emulator POSE.</phrase>
</textobject>
<!--
<caption>
<para>Screenshot of the PALM-Pilot emulator POSE.</para>
</caption>
-->
</mediaobject>
</figure>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p3c2s6-handspring-visor">
<title>HandSpring VISOR</title>
<para>
The HandSpring VISOR is a clone of the PALM-Pilot PDA.
</para>
<sect2>
<title>USB</title>
<para>
From <filename>/usr/src/linux/Documentation/usb/usb-serial.txt</filename>:
</para>
<para>
HandSpring Visor USB docking station. There is a
<ulink url="http://usbvisor.sourceforge.net/">webpage</ulink>
and mailing lists.
</para>
<para>
Handspring VISOR Platinum serial port is tunneld through USB, so load
usbserial.o with modul parameters vendor=0x82d product=0x100
(usbmgr.conf) USB is made active by starting the HotSync synchronisation
per: <command>pilot-xfer /dev/ttyUSB0 -b -/visor/</command>
</para>
</sect2>
</sect1>
<!-- *********************************************************************** -->
<sect1 id="mobile-guide-p3c2s7-psion-5">
<title>Psion 5</title>
<para>
Currently I have information about a port for the Psion 5 and nothing
about the Psion 3 series.
</para>
<sect2>
<title>Resources</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Psion-HOWTO.html">Psion-HOWTO</ulink>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://plptools.sourceforge.net/">PLPtools</ulink>
is a set of libraries and utilities for enabling Unix (mainly Linux)
systems to communicate with a Psion palmtop over a serial line. On Linux, a
connection over IrDA, using the IrCOMM feature is also possible. A shared
library encapsulates the highlevel protocol (PsionLinkProtocol) and thus
makes it easy to write applications without extensive knowledge of the
protocol itself. A daemon (ncpd) handles the serial connection and provides
it's services on a local TCP socket.
</para>
</listitem>
<listitem>
<para>
The
<ulink url="http://linux-7110.sourceforge.net/">OpenPsion</ulink>
(formerly PsiLinux/Linux7k)
is a project to port the unix-like operating system Linux to a small
group of palmtops.
<!--
The "7k" in the name comes from the processor
'macrocell' (central architecture), which is the Cirrus Logic PS-7110
chip. This architecture is currently used in the Psion Series 5 and
Geofox One palmtops.
-->
</para>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
</chapter>
<chapter id="mobile-guide-p3c4-connectivity">
<title>Connectivity</title>
<sect1 id="mobile-guide-p3c4s1-introduction">
<title>From a Linux Box to a non Linux PDA</title>
<para>
<ulink url="http://www.adaptive-enterprises.com.au/~d/software/xcerdisp/">Xcerdisp</ulink>
<!--
<ulink url="http://www.itee.uq.edu.au/~leonard/personal/software/#xcerdisp">Xcerdisp</ulink>
-->
is an X Windows equivalent of Microsoft's Remote Display Control
powertoy. It listens for connections from the Windows CE cerdisp
client on your PocketPC, and lets you see and control your handheld
via X. It may be necessary to use the
<ulink url="http://synce.sourceforge.net/">SynCE</ulink>
tools to get your handheld connected to the network.
</para>
<para>
The purpose of the
<ulink url="http://synce.sourceforge.net/">SynCE</ulink>
project is to provide a means of
communication with a Windows CE or Pocket PC device from a computer
running Linux, *BSD, or another Unix system.
</para>
<para>
<ulink url="http://www.jardino.nildram.co.uk/">KDE Pocket PC Contacts Import</ulink>
lets you import your Windows CE (or
PocketPC) contacts into KDE's address book.
</para>
<para>
Some more information about connectivity and synchronisation tools,
as well as emulators and other software you may find at
<ulink url="http://tuxmobil.org/pda_linux.html">TuxMobil - PDA</ulink>
and in the
<ulink url="http://tuxmobil.org/howtos.html">Linux-Infrared-HOWTO</ulink>
.
</para>
</sect1>
<!-- *********************************************************************** -->
</chapter>
</part>
<!-- PART XXXX ============================================================= -->
<part id="mobile-guide-p4-tablet-pc">
<title>Tablet PCs / Pen PCs</title>
<chapter id="mobile-guide-p4c1-tablet-intro">
<title>Tablet PCs / Pen PCs</title>
<sect1>
<title>Introduction</title>
<para>
Tablet PCs are a special kind of notebooks. Usually without keyboard
(or equipped with an external and remote keyboard), they feature a touchscreen
(therefore they were also named Pen PCs) and access to wireless LAN.
In a certain sense they can be compared with PDAs. Microsoft has
created a special edition of their operating system for Tablet PCs
and published a so-called specification. In 2003 the first Tablet PCs
according to this specification entered the market. Though there
have been appropriate devices with Linux many years before. See the
<ulink url="http://tuxmobil.org/touch_laptops.html">survey of Linux touch screen laptops</ulink>
and the
<ulink url="http://tuxmobil.org/detach_disp.html">survey of Linux laptops with detachable displays</ulink>
and finally a
<ulink url="http://tuxmobil.org/tablet_unix.html">survey about Linux on Tablet PCs, WebPads, NotePads and PenPCs</ulink>.
They are used for data acquisition in stores, in the field or in
hospitals. Or as a book reader or webbrowser (therefore they are also named
WebPads). Their hardware features require some dedicated Linux
solutions.
</para>
</sect1>
<sect1 id="mobile-guide-p4c1-tablet-display">
<title>Display</title>
<sect2 id="mobile-guide-p4c1s1-touchscreen">
<title>Touchscreen</title>
<para>
The
<ulink url="http://www.tldp.org/HOWTO/XFree86-Touch-Screen-HOWTO.html">XFree86-Touch-Screen-HOWTO</ulink>
describes how to setup X11 for touchscreens. There is also a short
<ulink url="http://tuxmobil.org/touch_laptops.html">survey of Linux laptops, which feature a touchscreen and/or have a pen as an input device</ulink> and a
<ulink url="http://tuxmobil.org/tablet_unix.html">survey about Linux on Tablet PCs</ulink>.
</para>
</sect2>
<sect2 id="mobile-guide-p4c1s1-screen-rotation">
<title>Screen Rotation</title>
<sect3>
<title>X-Windows</title>
<para>
Some XFree86 drivers support a rotation of the display content. Use this
entry in the configuration file (DEGREE can become
CW - 90 degree clockwise ,
CCW - 90 degree counterclockwise ,
UD - 180 degree upside down,
but which options actually work depends on the drivers:
<programlisting role="small">
Option "Rotate" "DEGREE"
</programlisting>
</para>
<para>
From version 4.3 on
<ulink url="http://xfree86.org/">XFree86</ulink> contains the RandR extension (X resize and
Rotate Extension), which makes it possible to change the display resolution
on the fly without restarting X11. The tool <command>xrandr</command>
supports only resolution settings but no rotation. But the Tiny-X server
by RandR developer Keith Packard (Xkdrive) implements all of the RandR
features. But this is usually not included in the major distributions.
Currently <ulink url="http://x.org/">X.Org</ulink> doesn't seem to support
rotate and resize.
</para>
</sect3>
<sect3>
<title>Utilities</title>
<para>
There are some rotation utilities for Linux PDAs available, but I haven't tested them
for Tablet PCs yet. Search the
<ulink url="http://killefiz.de/zaurus/">Zaurus Software Index - ZSI</ulink>.
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p4c1-tablet-handwriting">
<title>Handwriting Recognition</title>
<para>
<ulink url="http://handhelds.org/cgi-bin/cvsweb.cgi/apps/xstroke/">xstroke</ulink>
is a full-screen gesture recognition program written
for the X Window System. It captures gestures that are
performed with a pointer device, (such as a mouse, a
stylus, or a pen/tablet), recognizes the gestures and
performs actions based on the gestures. xstroke has
been developed on Linux systems, (i386 and StrongARM),
but should be quite portable to any UNIX-like system
with X.
</para>
<para>
<ulink url="http://www.handhelds.org/projects/xscribble.html">Xscribble</ulink>
is an X application that allows a user of a touch screen to input
characters into X applications, using a uni-stroke (Graffiti like) alphabet.
It uses the X test extension to allow synthesis of characters as though they
had been typed on a keyboard. Though it was designed for Linux on PDAs it might work
with Tablet PCs as well.
</para>
<para>
<ulink url="http://www.yudit.org/">Yudit</ulink>
is a Unicode text editor for the X Window System. It
can do True Type font rendering, printing, transliterated
keyboard input, and handwriting recognition with no
dependencies on external engines. Its conversion
utilities can convert text between various encodings.
Keyboard input maps can also act like text converters.
</para>
</sect1>
<sect1 id="mobile-guide-p4c1-tablet-keyboard">
<title>Keyboard</title>
<sect2 id="mobile-guide-p4c1s1-softkeyboard">
<title>Soft Keyboard / On Screen Keyboard</title>
<sect3>
<title>xvkbd</title>
<para>
<ulink url="http://homepage3.nifty.com/tsato/xvkbd/">xvkbd</ulink>
is a virtual (graphical) keyboard program for X which
provides a facility to enter characters onto other clients
software by clicking a keyboard displayed on the screen. It also
has facility to send characters specified as the command line
option to other client.
</para>
</sect3>
<sect3>
<title>GNOME On-screen Keyboard (GOK)</title>
<para>
The
<ulink url="http://www.gok.ca/">GNOME On-screen Keyboard (GOK)</ulink>
is a dynamic on-screen keyboard for
UNIX and UNIX-like operating systems. It features Direct Selection,
Dwell Selection, Automatic Scanning and Inverse Scanning access
methods and includes word completion.
</para>
</sect3>
</sect2>
<sect2 id="mobile-guide-p4c1s1-remote-keyboard">
<title>Remote Keyboard</title>
<para>
Some Tablet PCs are equipped with a remote keyboard. Data
between keyboard and Tablet PC may be interchanged via
InfraRed, BlueTooth or other means. If these solutions
are hardware based only, they should work easily with
Linux. Otherwise you probably need the technical specifications
from the manufacturer.
</para>
</sect2>
<sect2 id="mobile-guide-p4c1s1-virtual-keyboard">
<title>Virtual Keyboard</title>
<para>
There are different approaches for virtual (non physical) keyboards.
Whether they work with Linux or not I could not verify yet.
</para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.vkb.co.il/">Viki made by VKB</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.canesta.com/">Keyboard Perception Chipset made by Canesta</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.senseboard.com/">SenseBoard</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.lightglove.com/">LightGlove</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.sait.samsung.co.kr/">Scurry made by SAIT</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.kittytech.com/">Kitty</ulink>
</para>
</listitem>
</itemizedlist>
<!--
CT 21/2003 page 92ff.
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p4c1-tablet-wlan">
<title>Wireless LAN</title>
<para>
Please see the chapter
<xref linkend="mobile-guide-p2c1s24-wlan"/> Wireless LAN below.
</para>
</sect1>
<sect1 id="mobile-guide-p4c1-tablet-examples">
<title>Examples</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.softwarekombinat.de/linux-point510.html">Fujitsu: Point 510</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://libxg.free.fr/point/point.htm">Fujitsu: Point 510</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.paceblade.de/?a=2&amp;p=1493">PaceBlade: PaceBook</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://simpad.sourceforge.net">Siemens: SimPAD</ulink>
</para>
</listitem>
</itemizedlist>
</para>
<para>
At TuxMobil there is a survey of
<ulink url="http://tuxmobil.org/tablet_unix.html">Linux installations on Tablet PCs, Pen PCs and WebPads</ulink>.
</para>
</sect1>
</chapter>
</part>
<!-- PART FOUR ============================================================= -->
<part id="mobile-guide-p4-cell-phones">
<title>Mobile (Cellular) Phones, Pagers, Calculators, Digital Cameras, Wearable Computing</title>
<chapter id="mobile-guide-p4c1-cell-phones">
<title>Mobile (Cellular) Phones, Pagers</title>
<para>
You may find a
<ulink url="http://tuxmobil.org/phones_linux.html">Linux compatibility survey of mobile phones</ulink>
at TuxMobil. This survey contains also links to useful applications and to
mobile phones driven by the Linux operating system.
</para>
<sect1 id="mobile-guide-p4c1s1-cellular-phones">
<title>Mobile (Cellular) Phones</title>
<sect2>
<title>Connectivity to Mobile (Cellular) Phones with non-Linux Operating System</title>
<para>
For NOKIA cellular phones see
<ulink url="http://www.gnokii.org/">GNOKII</ulink> project. And Linux
<!--
<ulink url="http://www.users.globalnet.co.uk/~syrinx/nserver/index.html">Nserver</ulink>
this link doesn't work anymore
-->
<ulink url="http://www.version6.net/misc/nserver.html">Nserver</ulink>.
This project aims to produce a GPL replacement for Nokia's Windows
Nserver, and maybe improve upon it along the way. Initially it will
emulate the Windows 3.1 version (ie. allow backup, restore and install).
</para>
<para>
<ulink url="http://www.openwap.org/">openWAP</ulink>
is an open source project for the implementation of the
Wireless Application Protocol (WAP) for use with browsers,
servers and tools. WAP is used by PDA devices, cell phones,
pagers and other wireless devices to transmit internet
content to these devices. The project is still in its
early stages and nothing can be downloaded yet.
</para>
<para>
<ulink url="http://www.pxh.de/fs/gsmlib/download/">GSMLIB</ulink>
is a library to access GSM mobile phones through GSM modems. Features
include: modification of phonebooks stored in the mobile phone or on
the SIM card, reading and writing of SMS messages stored in the mobile
phone, sending and reception of SMS messages. Additionally, some
simple command line programs are provided to use these features.
</para>
<para>
<ulink url="http://www.kannel.org/">Kannel</ulink>
is an open source WAP gateway. It attempts to provide this essential
part of the WAP infrastructure freely to everyone so that the market
potential for WAP services, both from wireless operators and
specialized service providers, will be realized as efficiently as
possible.
</para>
<para>
Kannel also works as an SMS gateway for GSM networks. Almost all GSM
phones can send and receive SMS messages, so this is a way to serve many
more clients than just those using a new WAP phone.
</para>
</sect2>
<sect2>
<title>Mobile (Cellular) Phones with a Linux Operating System</title>
<para>
There are some
<ulink url="http://tuxmobil.org/phones_linux.html">mobile phones with Linux operating system</ulink> available.
As well as
<ulink url="http://tuxmobil.org/mobile_phone_linux_distributions.html">Linux distributions for mobile (cell) phones</ulink>.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p4c1s2-pagers">
<title>Pagers - SMS Messages</title>
<para>
<ulink url="http://www.qpage.org/">QuickPage</ulink>
is a client/server software package that enables you to send messages
to an alphanumeric pager. The client accepts a message from the user
and forwards it to a server using SNPP. The server uses a modem to
transmit the message to the recipient's paging service using the TAP
protocol (also known as the IXO protocol).
</para>
<para>
<ulink url="http://daniel.haxx.se/projects/mail2sms/">mail2sms</ulink>
converts a (MIME) mail to a short message, allowing search/replace,
conditional rules, date/time dependent actions, customizing the
output format, etc. The output defaults to 160 characters, which is
perfectly suitable for sending the text to a GSM telephone as an
SMS message. This software does not include any code for actually
sending the text to anything else but another program or stdout.
</para>
<para>
<ulink url="http://www.new.ox.ac.uk/~adam/computing/email2sms/">email2sms</ulink>
is a filter written in Perl which converts an e-mail into a form
suitable for sending as an SMS message. Its main advantage over
the alternatives is that it uses the CPAN module
<emphasis>Lingua::EN::Squeeze</emphasis> to compress the text
down to as little as 40&percnt; of its original size, so you can
get much more of your e-mail into the 160 character limit imposed
by SMS. It is fully MIME compatible, and has many configurable
options, including removal of quoted text. Ideal for use with
procmail. A Perl script for sending the output to a typical
e-mail to SMS web gateway is included.
</para>
<para>
<ulink url="http://smslink.sourceforge.net/">SMSLink</ulink>
implements a client/server gateway to the SMS protocol.
It requires the use of dedicated hardware though (a
serial GSM module). Both SMS emission and reception are supported. The
server only runs under Linux at the present time and also supports
interactive mode via <command>telnet</command>. The command-line client
already exists for Linux, Solaris and HP-UX. A basic web interface is
provided. A Win32 client is in the works.
</para>
<para>
<ulink url="http://lide.pruvodce.cz/~wayne/">nmsms</ulink>
is a very simple program to announce incoming email to an SMS
address (email address) defined at compile time. The original
<emphasis>From:</emphasis> and <emphasis>Subject:</emphasis>
header are included in each mail announced.
</para>
<!--
<para>
<ulink url="http://www.hof-berlin.de/mepl/">mepl</ulink>
is a software for 3COM/USRobotics Messagemodems to control
the self-employed-mode. This program can be used for
downloading the messages and saving or mailing them in gsm or
fax-format.
in webarchive
</para>
-->
</sect1>
</chapter>
<chapter id="mobile-guide-p4c1-wearables">
<title>Calculators, Digital Cameras, Wearable Computing</title>
<epigraph>
<attribution>
probably from "Cyborg Manifesto" by Donna J. Haraway in Simians, Cyborgs, and Women. The Reinvention of Nature. New York: Routledge, 1991
</attribution>
<para>
We are all cyborgs.
</para>
</epigraph>
<!--
CYBORG=CYBER-ORGANISM
-->
<para>
Though in my opinion related to the topic, these devices are not much covered
in this text, yet. For general information about Embedded Systems, see
<ulink url="http://www.embedded.com">Embedded.com</ulink>
. For Linux information, see
<ulink url="http://elks.sourceforge.net/">ELKS</ulink>
and the
<ulink url="http://uclinux.org/">uCLinux</ulink>
project. See also the news group comp.arch.embedded
</para>
<sect1 id="mobile-guide-p4c1s3-digital-cameras">
<title>Digital Cameras</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.marblehorse.org/projects/documentation/kodak/">Kodak-Digital-Camera-HOWTO</ulink>
by David Burley &lt;khemicals_AT_marblehorse.org&gt;
.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Introduction</title>
<para>
For information about cellular phones and digital cameras
see the
<ulink url="http://tuxmobil.org/ir_misc.html">Infrared Devices and Linux Survey</ulink>
and my
<ulink url="http://tuxmobil.org/howtos.html">InfraRed-HOWTO</ulink>
.
</para>
<para>
Newsgroup: rec.photo.digital .
</para>
<para>
The Flashpath adapter is a diskette like device which is used to
transfer data from a digital camera to a computer. See
<ulink url="http://www.smartdisk.com/Downloads/FPDrivers/LinuxDownload.htm">Flashpath for Linux</ulink>
and James Radley's
<ulink url="http://www.susie.demon.co.uk/flashpath.html">flashpath homepage</ulink>
. Note: <emphasis>it is not officially certified</emphasis> and released under GPL.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p4c1s4-calculators">
<title>Pocket Calculators</title>
<para>
Information about calculators e.g. HP-48 is at
<ulink url="http://www.hpcalc.org/">HP-Calculator.Org</ulink>,
they are hosting the
<ulink url="http://www.hpcalc.org/hp48/docs/faq/48faq.html">HP-48 FAQ</ulink>.
<ulink url="http://www.columbia.edu/kermit/hp48.html">HP-48 Kermit Hints and Tips</ulink>
shows how to talk to the HP48 via its serial-line
Kermit protocol. The HP-48 may also be used as a
<ulink url="http://www.opensourcepartners.nl/~costar/hp48/">Linux terminal</ulink>.
<!--
<ulink url="http://panic.et.tudelft.nl/~costar/hp48">Linux terminal</ulink>
-->
</para>
<para>
See also at my pages about
<ulink url="http://tuxmobil.org/ir_misc.html">Linux with Infrared Devices</ulink>
and
<ulink url="http://tuxmobil.org/calculators_unix.html">Linux and Pocket Calculators</ulink>
.
</para>
<!--
<para>
<ulink url="http://www.tunbury.demon.co.uk/casio/">Backup utility for the CASIO diary</ulink>
webarchive: in, but I am unsure whether to include it or not
. It is a package ported from DOS to allow communication
to the CASIO series of hand-held organizers. It allows
backup from CASIO to your computer and restore a backup
file from your computer to the CASIO. It can also output
human readable file from CASIO. Currently supports:
phone, calendar, schedule, memo, and reminder. See also
<ulink url="http://www.aloha.net/alank/">Alank</ulink>,
webarchive: Sorry, no matches.
<ulink url="http://home.t-online.de/home/Milan.Urosevic/">Milan Urosevic</ulink>
webarchive: Robots.txt Query Exclusion.
<ulink url="http://www.casioworld.com">CASIO World</ulink>
,
and
<ulink url="http://sunsite.unc.edu/pub/Linux/apps/">SunSite Archive</ulink>
.
</para>
-->
<para>
<ulink url="http://www.multimania.com/rlievin/">GtkTiLink</ulink>
is a program which allows you to transfer data between
a Texas Instruments calculator and a computer. It
works with all cables (parallel, serial, Black and
Gray TI Graph Link). It supports the TI82, TI89, TI92
and TI92+ calculators. It can send/receive data and
backups, make a capture of the calculator screen and
do remote control.
</para>
</sect1>
<sect1 id="mobile-guide-p4c1s5-wearable-computing">
<title>Wearable Computing</title>
<para>
Also related to Linux and mobile computers
seems wearable computing.
</para>
<para>
See also
<ulink url="http://www.media.mit.edu/wearables/">MIT</ulink>
,
<ulink url="http://wearables.blu.org/">Wearables Central</ulink>
and
<ulink url="http://www.wearcomp.org/">WearComp</ulink>
.
</para>
</sect1>
<sect1 id="mobile-guide-p4c1s6-watches">
<title>Watches</title>
<para>
The
<ulink url="http://datalink.fries.net/">datalink library</ulink>
allows sending information to the Timex DataLink
watches. The original datalink library supports the
DataLink models 70 , 150 and 150 S watch and has been
extended to work with the DataLink Ironman Triathlon
watch. It has been tested with the SVGA output on the
Ironman watch only, other output devices and other
watches may or may not work, I have no reports either
way. The display must be a CRT display (not a
<acronym>LCD</acronym>).
</para>
</sect1>
<sect1 id="mobile-guide-p4c1s6-game-consoles">
<title>Play Station Portable</title>
<para>
<ulink url="http://qpspmanager.sourceforge.net/">qpspmanager</ulink>
is a program to manage the files on a memorystick as used by
a Sony Playstation Portable.
</para>
</sect1>
</chapter>
</part>
<!-- PART THREE FORMER TWO ====================================================== -->
<part id="mobile-guide-p2-mobile-hardware">
<title>Mobile Hardware in Detail</title>
<chapter id="mobile-guide-p2c1-hardware-in-detail">
<title>Hardware in Detail: CPU, Display, Keyboard, Sound and More</title>
<sect1 id="mobile-guide-p2c1s1-intro">
<title>Introduction</title>
<para>
The following text about mobile hardware, is applicable to all kinds of
mobile devices running Linux: laptops, notebook, PDAs, handheld PCs,
mobile phones, wearables and more.
Though sometimes you have to make the appropriate changes.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s1-bios">
<title>BIOS</title>
<para>
Before setting up any hardware you should have a look into the BIOS.
Often you may find a solution already there, e.g. options to set up
the display,
APM or ACPI,
DMA,
IrDA,
PCMCIA,
sound,
SpeedStep,
and more.
<!--
see also installation chapter
boot devices order: keys u, c, ...
http://laptopbios.com commercial
-->
</para>
<para>
If you run into unresolvable trouble when configuring the hardware,
try a BIOS upgrade from the manufacturer. For this task you
usually need one of the Microsoft so-called operating systems. Or
at least a DOS disk or CD.
</para>
<para>
Flashing BIOSes has become often quite complex as both DOS and floppies
are fading away. Things aren't any easier when running exclusively
GNU/Linux. Luckily, it is possible to
<ulink url="http://freshrpms.net/docs/bios-flash/">create a bootable CD-ROM</ulink>
with GNU/Linux, which enables one to actually flash a BIOS using a DOS utility
without requiring Windows, MS-DOS or a floppy drive.
</para>
<para>
Some newer laptops e.g. ASUS M5200A are equipped with a BIOS, which
is able to update itself.
</para>
<para>
The
<ulink url="http://www.nenie.org/misc/flashbootcd.html">Motherboard Flash Boot CD from Linux Mini HOWTO</ulink>
gives a short summary of how to create a boot disk to flash a BIOS on a PC,
from Linux (or another Unix) when one has no floppy drive and no access to a
DOS/Windows machine.
</para>
<para>
<ulink url="http://www.linuxbios.org">LinuxBIOS</ulink>
aims to replace the normal BIOS found on PCs, Alphas, and
other machines with a Linux kernel that can boot Linux from a cold
start. LinuxBIOS is primarily Linux - about 10 lines of patches to the
current Linux kernel. Additionally, the startup code - about 500
lines of assembly and 5000 lines of C - executes 16 instructions to
get into 32-bit mode and then performs DRAM and other hardware
initialization required before Linux can take over. There are
even two reports about LinuxBIOS on laptops.
</para>
<para>
Alternative approaches are
<ulink url="http://openbios.org/">OpenBIOS</ulink>
and
<ulink url="http://freebios.sourceforge.net/">FreeBIOS</ulink>.
</para>
<sect2>
<title>SMBios</title>
<para>
<ulink url="http://www.dmtf.org/standards/dmi/">Desktop Management Interface (DMI) Standards</ulink>
generate a standard framework for managing and tracking components in
a desktop pc, notebook or server. DMI was the first desktop management
standard. The DMI Home Page is a repository of all DMI-related information
from the specification to tools to support to the Product Registry of
DMI-certified products.
</para>
<para>
<ulink url="http://www.nongnu.org/dmidecode/">Dmidecode</ulink>
reports information about your system's hardware as described in
your system BIOS according to the SMBIOS/DMI standard (see a sample
output). This information typically includes system manufacturer, model
name, serial number, BIOS version, asset tag as well as a lot of other
details of varying level of interest and reliability depending on the
manufacturer. This will often include usage status for the CPU sockets,
expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list
of I/O ports (e.g. serial, parallel, USB).
</para>
<para>
There is also an alternative implementation of a DMI table decoder.
<ulink url="http://linux.dell.com/libsmbios/main/index.html">Libsmbios</ulink>
is a cross-platform library intended to be used to obtain
common information available in a BIOS using a unified API. Currently, it
can programmatically access any information in the SMBIOS tables. It also
has the ability to obtain Dell system-specific information such as the
Dell System ID number, service tag, and asset tag. Future plans include
APIs for $PIR and mptable mapping. There is a C API for some of the more
commonly used functions, and example binaries to show off most of the
facilities.
</para>
<!--
Sebastian H.: is DMI really the same as SMBios?
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s1-cpu">
<title>CPU</title>
<para>
You may find a survey about CPUs used in mobile devices, which are Linux-supported
in the chapter
<xref linkend="mobile-guide-p1c1-which-laptop-to-buy"/> Which Laptop to Buy? above.
</para>
<!--
- mtrr
- microcode
SpeedStep, PowerNow, CoolNQuiet cat /proc/cpufreq
-->
<sect2>
<title>SpeedStep</title>
<para>
Speedstep is a feature of recent CPUs made by Intel, which
lets you set CPU frequency. There are different Linux
tools to get this to work. Similar features are also
available for other CPUs from AMD or the StrongARM CPU,
I will describe this in a later issue (assistance welcome).
</para>
<para>
Before configuring SpeedStep have a look into the BIOS options.
</para>
<sect3>
<title>SpeedStep Tool</title>
<para>
The
<ulink url="http://www.goof.com/pcg/marc/speedstep.html">SpeedStep</ulink>
tool works with Mobile Pentium-III CPUs only. See output from
<command>cat /proc/cpuinfo</command>:
<programlisting role="small">
model name : Intel(R) Pentium(R) III Mobile CPU 1000MHz
</programlisting>
It does not work with the mobile version of the Pentium-III:
<programlisting role="small">
model name : Pentium III (Coppermine)
</programlisting>
</para>
</sect3>
<sect3>
<title>CPUFREQ</title>
<para>
You might want to check into the
<ulink url="http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufreq.html">cpufreq</ulink>
patch for the linux-2.4/2.5 kernels:
CPU clock frequency scaling for Linux, on x86 and ARM based
processors. This module provides a user-space and standard kernel-space
interface to this feature, along ARM system-on-a-chip devices to cope
with processor clock changes.
Since the power consumed by a processor is directly related to the
speed at which it is running, keeping the clock speed as low as
possible allows you to get more run-time out of your battery. Some
people use this to adjust their clock speed many times a second to
optimise performance vs battery life. See also the
<ulink url="http://www.arm.linux.org.uk/cvs/">CVS repository</ulink>
.
<!--
Certain processors have the facility to scale their
voltage/clockspeed. 2.5 introduces an interface to this feature,
see Documentation/cpufreq for more information. This functionality
also covers features like Intel's speedstep, and will be extended
in time to cover the Powernow feature present in mobile Athlons.
-->
</para>
<sect4>
<title>cpufreqd</title>
<para>
<ulink url="http://www.sf.net/projects/cpufreqd">cpufreqd</ulink>
is meant to be a replacement of the speedstep applet you
can find on some other operating systems, it monitors battery level, AC state and
running programs and adjusts the frequency governor according to
a set of rules specified in the config file. It works both with APM and ACPI.
</para>
</sect4>
<sect4>
<title>cpudyn</title>
<para>
<ulink url="http://mnm.uib.es/~gallir/cpudyn/">cpudyn</ulink>
controls the speed in Intel SpeedStep and PowerPC machines
with the cpufreq compiled in the kernel. It saves battery and lowers
temperature, without affecting the performance of interactive
applications.
</para>
<!--
cpufreqd downs CPU frequency during on battery time
cpudynd downs cpufrequency during standby
-->
</sect4>
<sect4>
<title>cpuspeedy</title>
<para>
<ulink url="http://cpuspeedy.sourceforge.net">cpuspeedy</ulink>
allows you to change the clock speed and voltage of CPUs
using Linux's CPUFreq driver. It is a user space program, so it will work
on every processor supported by the kernel's CPUFreq driver.
</para>
</sect4>
<sect4>
<title>powernowd</title>
<para>
<ulink url="http://www.deater.net/john/powernowd.html">PowerNowd</ulink>
is a simple client daemon for the Linux cpufreq driver
using the sysfs interface. It sits in the background and changes CPU
speed in configurable "steps" according to usage. Written in C, its
emphasis is on speed and simplicity. It is very configurable, and
supports non-x86 and SMP systems.
</para>
</sect4>
</sect3>
<sect3>
<title>Laptop Mode</title>
<para>
<ulink url="http://samwel.tk/laptop_mode/">Laptop mode</ulink>
is a kernel "mode" that allows you to extend the battery life of
your laptop. It does this by intelligently grouping write activity on your
disks, so that only reads of uncached data result in a disk spinup. It has
been reported to cause a significant improvement in battery life (for usage
patterns that allow it).
</para>
<para>
The
<ulink url="http://samwel.tk/laptop_mode/">Laptop Mode Tools</ulink>
package spins down your hard drive like noflushd,
but it works also on journalling filesystems. It integrates with
apmd/acpid/pbbuttonsd to enable this behaviour only when you are running
on battery power. It also adjusts some hdparm settings and remounts your
filesystems noatime, and it can adjust your maximum CPU frequency.
<!--
check laptop_mode by pulling the power plug
and <command>mount</command> has to show commit=600
-->
</para>
</sect3>
<sect3>
<title>SONY VAIO SPIC Daemon</title>
<para>
The
<ulink url="http://spicd.raszi.hu/">SONY VAIO SPIC daemon</ulink>
is a fast and small hack to create a
working apmd to Sony VAIO laptops. It uses the
<command>sonypi</command> kernel module to
detect the AC adapter status and the LCD backlight, and cpufreq for
CPU frequency scaling.
</para>
</sect3>
<sect3>
<title>CPUIDLE</title>
<para>
A
<ulink url="http://www.heatsink-guide.com/cpuidle.htm">software utility</ulink>
that will make your CPU run cooler? Sounds
pretty strange, huh? Let me explain: Have you ever thought of the
fact that your CPU is idle most of the time when you're using
your computer? For example, when you're using your word
processor, writing emails, browsing the web, the CPU does nothing
else than just wait for user input. In fact, it will use up to
30W and produce substantial amounts of heat doing
nothing.
Good operating systems, like Linux, NT and OS/2 have a
so-called "idle loop" - a loop that's always executed when
the CPU has nothing to do. This loop consists of halt
(HLT) instructions.
CPUs like the AMD K6, the Cyrix 6x86 and 6x86MX have a
special feature called "suspend-on-halt". This means
that everytime the CPU executes a hlt instruction, it
will go into "suspend mode" for a short time. So, while
the idle loop is being executed, the CPU will be in
suspend mode, use much less power, and stay much cooler.
Of course, this does not affect performance at all!
The user won't even notice that his CPU is in suspend
mode most of the time (unless he touches the
heatsink).
</para>
</sect3>
<!--
<sect3>
<title>autospeedstep</title>
<para>
<ulink url="http://gpsdrive.kraftvoll.at/">autospeedstep</ulink>
is a daemon that controls power consumption and
processor speed depending of the CPU load. It works with Intel Speedstep
CPUs and Linux kernels running the 2.5 ACPI backport.
</para>
</sect3>
link is gone
-->
<sect3>
<title>ACPI</title>
<para>
If you have enabled ACPI support in the Kernel you
may also set the SpeedStep parameters via the
<filename>/proc/apci/</filename> interface, e.g.
<command>echo 1 &gt; /proc/acpi/processor/CPU0/performance</command>
will make the CPU speed down.
Note: the spaces in the command are important!
Note also: this feature is deprecated for Kernel &gt; 2.6.11.
Or use this script provided by Sebastian Henschel.
<programlisting role="small">
#! /bin/sh
# /etc/init.d/slowcpu: slow down cpu or accelerate it via speedstep
test -e /proc/acpi/processor/CPU0/performance || exit 0
case "$1" in
start)
echo "Setting CPU0-Speed to: 733 MHz."
echo 1 &gt; /proc/acpi/processor/CPU0/performance
;;
stop)
echo "Setting CPU0-Speed to: 1133 MHz."
echo 0 &gt; /proc/acpi/processor/CPU0/performance
;;
force-reload|restart)
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
</programlisting>
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s1-centrino">
<title>Centrino(tm), Centrino-Duo(tm)</title>
<para>
Intels Centrino(TM) technology consists of three parts: a Pentium M processor,
a chipset, and a wireless module. Let's see
how these parts are supported under Linux so far.
</para>
<para>
Here you may find current information about
<ulink url="http://tuxmobil.org/centrino.html">Linux on Centrino laptops and notebooks</ulink>.
</para>
<sect2>
<title>CPU: Pentium-M</title>
<para>
Robert Freund has written a concise
<ulink url="http://rffr.de/acpi">HOWTO</ulink>
about controlling ACPI Centrino(TM) features via
software in Linux. He describes how to control CPU frequency and other
energy saving modes, as well as how to get information about the battery state.
</para>
</sect2>
<sect2>
<title>Chipset: 855/915</title>
<para>
The Intel 855/915 chipset families are designed to deliver better
performance at lower power. The chipsets are available as discrete memory
controller hub (e.g. Intel 855PM). Or as an integrated graphics and
memory controller hub (e.g. Intel 855GM). Intel provides the Extreme
Graphics driver for Linux, which includes AGP GART and DRM kernel modules
as a binary files. I have no experience with this drivers, because
the chipsets work with XFree86/X.org drivers, too.
The Pentium-M CPU may come accompanied with other
graphics chipsets too, e.g. from ATI, nVIDIA or Trident.
<!-- vbe-tools, 855resolution, 955resolution -->
</para>
</sect2>
<sect2>
<title>Wireless LAN: PRO/wireless 2100/2200 LAN Mini-PCI Adapter</title>
<para>
There are different solutions to get these cards running with Linux:
drivers from Intel, NDIS wrapper and Linuxant driverloader (commercial).
</para>
<para>
<ulink url="http://ipw2100.sourceforge.net/">ipw2100</ulink>,
Intel's Open Source driver with included firmware, for the first
Centrino generation (incl. WEP and WPA together with HostAP).
For the second generation of Intel's miniPCI modules: PRO/Wireless
2200BG (802.11g/802.11i), the
<ulink url="http://ipw2200.sourceforge.net/">ipw2200</ulink>
project provides a driver.
Third generation PRO/Wireless 2915ABG (IEEE 802.11b, 802.11g und
802.11a) miniPCI cards will be supported by the
<ulink url="http://ipw2200.sourceforge.net/">ipw2200</ulink>
project, too.
</para>
<para>
Intel didn't provide drivers, when the begun to sell their Centrino
technology. During this time there have been other solutions:
Some vendors refuse to release technical specifications or even a binary Linux driver
for their WLAN cards. NDIS wrapper tries to solve this by making a kernel
module that can load NDIS (Microsoft-Windows Network Driver Interface
Specification) drivers. Currently there are two implementations available.
The commercial
<ulink url="http://www.linuxant.com/driverloader/">Linuxant Driverloader</ulink>
supports a broad range of chipsets including Intel's PRO/Wireless 2100 LAN
Mini-PCI Adapter. There is also
<ulink url="http://ndiswrapper.sourceforge.net/">ndiswrapper</ulink>
an Open Source solution by Pontus Fuchs.
</para>
<para>
As another workaround was the usage of a Linux-supported
<ulink url="http://tuxmobil.org/minipci_linux.html">miniPCI WLAN card</ulink>.
These cards are difficult to get, but some desktop WLAN PCI cards contain miniPCI cards. Often it is a tedious task to
build them into a laptop. Kernel maintainer Theodore Tytso has written a
<ulink url="http://www.thunk.org/tytso/linux/t40.html">manual</ulink> about achieving this task. You may also
use a wireless PCMCIA or CF card
instead. This solution may provide more flexibility, because you may use a PCMCIA or
CF card in different devices and choose the Linux driver of your choice. You may also extend the wireless range by
adding antennas to some cards. For Linux compatibility there is the
<ulink url="http://tuxmobil.org/pcmcia_linux.html">TuxMobil PCMCIA/CF Card Survey</ulink>.
In the future, manufacturers will probably offer alternative miniPCI solutions. DELL is already doing so for their
Latitude D series.
</para>
</sect2>
<sect2>
<title>Conclusion</title>
<para>
Though Linux support is not yet complete, some features of the Centrino(TM) technology already make it worthwhile to
take into account when buying your next laptop. Though the new CPUs are named so similarly to existing ones that some
people mix them up, they are completely different inside. Compared to the Pentium-4 Mobile CPU, the Pentium-M will
allow a smaller form factor for laptops, making them more portable and lighter. Because of their higher clockspeed,
the Pentium-4 CPUs have produced too much heat to build them into slimline notebook cases. Therefore, very flat
notebooks have only been available from Apple or with a Pentium III Mobile CPU. Also, the battery power the Pentium-M
consumes for a given level of performance will decrease, but I do not have a benchmark about how much the savings
actually are yet. PENN Computing offers a nice
<ulink url="http://www.upenn.edu/computing/provider/docs/centrinoprovider.html">comparison of Pentium-M and Pentium-4 Mobile</ulink>.
Note: The character M in Pentium-M suggests "mobile". Therefore some people mix
this kind of CPU with the mobile versions of the Pentium-III/Pentium-4 CPU.
</para>
<para>
Laptops based on the Centrino(TM) features are already
very popular in the Linux community.
<ulink url="http://tuxmobil.org/centrino.html">Installation reports</ulink>
for almost all Centrino based laptops available at TuxMobil.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s2-pcmcia-controller">
<title><acronym>PCMCIA</acronym> Controller</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
With the <command>probe</command> command, which is included in the
<acronym>PCMCIA</acronym>-CS package by David Hinds you can get the type
of the <acronym>PCMCIA</acronym> controller. Also available by the
command <command>cat /proc/pci</command>.
</para>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title><acronym>PCMCIA</acronym> Configuration - Survey</title>
<para>
In the mailing lists where I'm a member, the question
"How can I set up <acronym>PCMCIA</acronym> support,
after the Linux installation?" comes up sometimes.
Therefore I try to give a short survey. But the
authoritative source for the latest information about the
<emphasis><acronym>PCMCIA</acronym> Card Services for Linux</emphasis>,
including documentation, files, and generic
<acronym>PCMCIA</acronym> information is the
<ulink url="http://pcmcia-cs.sourceforge.net/">Linux <acronym>PCMCIA</acronym> Information Page</ulink>
. For problems with <acronym>PCMCIA</acronym> and
<acronym>APM</acronym> see the chapter <acronym>APM</acronym>.
</para>
<sect3>
<title>Software</title>
<para>
<orderedlist>
<listitem>
<para>
Install the newest available <acronym>PCMCIA</acronym>-CS package, if
you take a rpm or deb package it is quite easy.
</para>
</listitem>
<listitem>
<para>
Read the <acronym>PCMCIA</acronym> HOWTO, usually included in the
<acronym>PCMCIA</acronym>-CS package.
</para>
</listitem>
<listitem>
<para>
If necessary, install a new kernel.
<!--
Note: With 2.2.x kernels
<acronym>PCMCIA</acronym> kernel support seems no longer necessary. I
had no time to look this up yet. Please read the appropriate documents.
-->
</para>
</listitem>
<listitem>
<para>
Make sure your kernel has module support and <acronym>PCMCIA</acronym>
support enabled (and often <acronym>APM</acronym> support)
</para>
</listitem>
<listitem>
<para>
Make sure your kernel also includes support for the cards you want to
use, e.g. network support for a NIC card, serial support for a modem
card, SCSI support for a SCSI card and so on.
</para>
</listitem>
<listitem>
<para>
If you have a custom made kernel, don't forget to compile the
<acronym>PCMCIA</acronym>-CS source against your kernel.
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title><acronym>PCMCIA</acronym> Controller</title>
<para>
<orderedlist>
<listitem>
<para>
Use the <command>probe</command> command to get information whether your
<acronym>PCMCIA</acronym> controller is detected or not.
</para>
</listitem>
<listitem>
<para>
Edit the file <filename>/etc/sysconfig/pcmcia</filename>. It should
include <command>PCMCIA=y</command> and the type of your
<acronym>PCMCIA</acronym> controller, e.g.
<command>PCIC=i82365</command>. Since Kernel 2.6 there
is a standard driver <command>PCIC=yenta_socket</command>.
</para>
</listitem>
<listitem>
<para>
Start the <acronym>PCMCIA</acronym> services typically via
<command>/etc/init.d/pcmcia start</command>. If you get two high beeps,
everything should be fine.
</para>
</listitem>
<listitem>
<para>
If something doesn't work, check the messages in
<filename>/var/log/messages</filename> .
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title><acronym>PCMCIA</acronym> Card</title>
<para>
<orderedlist>
<listitem>
<para>
Check your card with <command>cardctl ident</command> .
</para>
</listitem>
<listitem>
<para>
If your card is not in <filename>/etc/pcmcia/config</filename>, edit the
file <filename>/etc/pcmcia/&lt;MYCARD&gt;.conf</filename> appropriately. Take an
entry in the first file as a model. You may try every driver, just in
case it might work, for instance the <command>pcnet_cs</command>
supports many NE2000 compatible <acronym>PCMCIA</acronym> network cards.
Note: it is a bad practice to edit <filename>/etc/pcmcia/config</filename>
directly, because all changes will be lost with the next update.
</para>
</listitem>
<listitem>
<para>
A list of supported cards is included in the
<acronym>PCMCIA</acronym>-CS package. The current list you may find at
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/SUPPORTED.CARDS">SUPPORTED.CARDS</ulink>.
<!--
man mii-tool for different cable media
NOPCMCIA not nopcmcia nopcmcia=yes
-->
</para>
<para>
Since there are not all cards mentioned I have set up a
<ulink url="http://tuxmobil.org/pcmcia_linux.html"><acronym>PCMCIA</acronym> Cards Survey of Cards Supported by Linux</ulink>
.
</para>
</listitem>
<listitem>
<para>
If you use a X11 GUI, you can use <command>cardinfo</command> to insert,
suspend, or restart a <acronym>PCMCIA</acronym> card via a nice
graphical interface.
</para>
</listitem>
</orderedlist>
</para>
<para>
<figure>
<title>Screenshot of cardinfo</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/cardinfo" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/cardinfo.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="images/cardinfo.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of <command>cardinfo</command></phrase>
</textobject>
<!--
<caption>
<para>Screenshot of cardinfo
</para>
</caption>
-->
</mediaobject>
</figure>
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s4-graphic-chip">
<title>Graphics Chip</title>
<sect2>
<title>Linux Compatibility Check</title>
<sect3>
<title>Video Mode</title>
<para>
<!--
FIXME
3D check with glxgears, glxinfo, tuxracer
-->
Attention: The <command>SuperProbe</command> is deprecated.
The tool <command>SuperProbe</command> is part of XFree86 and is able to
check many graphics chips. Please read the documentation carefully,
because it might crash your hardware.
From <command>man SuperProbe</command>:
</para>
<para>
"<command>SuperProbe</command> is a program that will attempt to determine the type of
video hardware installed in an EISA/ISA/VLB-bus system by checking for
known registers in various combinations at various locations
(MicroChannel and PCI machines may not be fully supported; many work
with the use of the <command>-no_bios</command> option). This is an
error-prone process, especially on <acronym>UNIX</acronym> (which
usually has a lot more esoteric hardware installed than MS-DOS system
do), so <command>SuperProbe</command> may likely need help from the user.
</para>
<para>
At this time, <command>SuperProbe</command> can identify MDA, Hercules, CGA, MCGA, EGA,
VGA, and an entire horde of SVGA chipsets (see the -info option, below).
It can also identify several HiColor/True-color RAMDACs in use on SVGA
boards, and the amount of video memory installed (for many chipsets). It
can identify 8514/A and some derivatives, but not XGA, or PGC (although
the author intends to add those capabilities). Nor can it identify other
esoteric video hardware (like Targa, TIGA, or Microfield boards).":
<!--
SuperProbe eignet sich hervorragend zum Crash-Test.
IMHO ist aber
sysp -s server
bzw
hwinfo - -gfxcard
besser geeignet.
Marco Michna
SuperProbe is for X11 3.x it's successor is xviddetect
test der 3D Beschleunigung mit `chromium' tuxracer?
-->
</para>
<para>
For testing reasons start the X11 server with <command>X 2&gt;
&lt;error.msg&gt;</command>. And try to change the resolution by typing
<command>&lt;CTL&gt;&lt;ALT&gt;&lt;+&gt;</command> or
<command>&lt;CTL&gt;&lt;ALT&gt;&lt;-&gt;</command>. Note: the + or -
sign have to be taken from the numeric pad, which can be emulated at
the letter pad or with the <command>Fn</command> key by some laptops.
</para>
</sect3>
<sect3>
<title>Text Mode</title>
<para>
Just watch the display and determine if it works properly.
If not, try to enable different video modes at startup time.
Setting up X11 can sometimes be an exercise in trial and error.
<!--
why has the Text Mode chapter a reference to X11?
-->
</para>
</sect3>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
First of all the
<ulink url="http://www.xfree86.org/">XFree86 documentation</ulink>
itself. Often locally available at
<filename>/usr/share/doc/xfree86*</filename>.
Or the <ulink url="http://x.org/">X.Org</ulink> documentation.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/XFree86-HOWTO/">XFree86-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/XFree86-Video-Timings-HOWTO/">XFree86-Video-Timings-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/XFree86-XInside.html">XFree86-XInside-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/X-Big-Cursor.html">X-Big-Cursor-mini-HOWTO</ulink>
(useful when running X11 on a notebook with low contrast <acronym>LCD</acronym>)
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html">Keyboard-and-Console-HOWTO</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://tldp.org/">vesafb-mini-HOWTO</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Framebuffer-HOWTO.html">Framebuffer-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Survey X11-Servers</title>
<para>
You might discover that some features of your laptop are not supported by
<ulink url="http://www.xfree86.org/">XFree86</ulink>
or <ulink url="http://x.org/">X.Org</ulink>.
, e.g. high resolutions, accelerated X or an external monitor.
Therefore I give a survey of available X11 servers.
</para>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.xfree86.org/">XFree86</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://x.org/">X.Org</ulink>.
</para>
</listitem>
<listitem>
<para>
VESA Frame-Buffer-Device, available with 2.2.x kernels and XFree86 3.3.2 or greater.
See
<ulink url="http://linux-fbdev.org/">FBDev.ORG</ulink> and
<ulink url="http://www.strusel007.de/linux/fb.html">FB FAQ</ulink>
and kernel source <filename>/usr/src/linux/Documentation</filename>
.
</para>
<para>
Please check the latest release of
<ulink url="http://directfb.org/">DirectFB</ulink>
for a dedicated Framebuffer Driver for the NeoMagic
chip and other chipsets, with support for acceleration.
DirectFB is a thin library that provides developers with hardware graphics
acceleration, input device handling and abstraction, an integrated
windowing system with support for translucent windows and multiple display
layers on top of the Linux framebuffer device. It is a complete hardware
abstraction layer with software fallbacks for every graphics operation that
is not supported by the underlying hardware.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.xig.com/">Xi Graphics</ulink>
, commercial, also known under their former names
AcceleratedX or Xinside.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.scitechsoft.com/">SciTech</ulink>, commercial.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.metrolink.com/">Metro-X</ulink>, commercial.
</para>
</listitem>
</orderedlist>
</para>
<para>
If you can't get an appropriate X11 server working, but cannot
afford a commercial X11 server you may try the VGA16 or the mono server
included in XFree86.
</para>
</sect2>
<sect2>
<title>Resources</title>
<para>
You may find a survey about
<ulink url="http://tuxmobil.org/graphic_linux.html">current graphics chips
used in laptops and notebooks</ulink> at TuxMobil.
</para>
</sect2>
<sect2>
<title>External Monitors: LCD, CRT, TV, Projector</title>
<para>
There are several different methods to activate support for an external
monitor: as a <emphasis>BIOS option</emphasis> or during runtime with a
<emphasis>keystroke</emphasis> e.g.
<command>&lt;Fn&gt;+&lt;F4&gt;</command>.
</para>
<para>
Read the X11 docs about your graphics chip carefully, for instance for
the NeoMagic NM20xx chips you have to edit
<filename>/etc/XF86Config</filename> by configuring
<command>intern_disp</command> and <command>extern_disp</command>. Note:
As far as I know these options are only valid for XFree86 3.3.x, for
XFree86 4.x I couldn't find a similar option.
</para>
<para>
If you can't get the external monitor to work with XFree86, try a demo
version of the commercial X11 servers mentioned above. Also check with
the RedHat and SuSE WWW sites as they may have new, binary-only, X11
servers that may work with your laptop.
Or check X11 servers from <ulink url="http://x.org/">X.Org</ulink>.
</para>
<sect3>
<title>Tools</title>
<para>
The
<ulink url="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">atitvout</ulink>
utility may be used for executing several configuration commands
for the TV Out connector of ATI Rage Mobility P/M graphics boards under
GNU/Linux on x86. It is intended primarily to enable TV Out support after
bootup and for switching the used TV standard from NTSC to PAL.
</para>
<para>
<ulink url="http://www.probo.com/timr/savage40.html">s3switch</ulink>
will allow you to switch your
display between the various output devices supported by the Savage (CRT,
LCD, TV).
</para>
<para>
<ulink url="http://sourceforge.net/projects/nv-tv-out">nv-tv-out</ulink>
is a tool to enable TV-Out on Linux for NVidia cards. It does not
need the kernel, supports multiple TV encoder chips. You may use all the
features of the chip, down to direct register access, and all resolutions
and sizes the chip supports.
</para>
<para>
<ulink url="http://www16.plala.or.jp/mano-a-mano/i810switch.html">i810switch</ulink>
is an utility for switching the LCD and external VGA displays on and off,
with almost every graphics chip from Intel's i8xx family, including
Centrino.
</para>
<para>
<ulink url="http://sourceforge.net/projects/i855crt">i855crt</ulink>
is an userspace driver that can enable the CRT out (port for
external monitor) on Intel 855GM based laptops.
</para>
</sect3>
<sect3>
<title>Solutions</title>
<para>
Klaus Weidner has described a
<ulink url="http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2003-November/013701.html">Dual monitor setup</ulink>
without using xinerama, but <command>x2vnc</command> instead.
This approach allows to add and
remove the second monitor dynamically without reconfiguring or restarting anything.
</para>
</sect3>
</sect2>
<sect2>
<title>Power Management for Graphics Cards</title>
<para>
The uptime on batteries can be improved by enabling the power management
features of the graphics card. There are tools available to change the clock
frequency and to shut down the backlight of the display. Usually these tools
are specific for a graphics card or a graphics card manufacturer.
Here are some techniques for graphics cards made by ATI.
</para>
<para>
The proprietary <filename>fglrx</filename> driver from ATI needs to be
enabled by adding the PowerState option to the Device Section in the
<filename>/etc/X11/xorg.conf</filename> X11 configuration file:
</para>
<para>
<programlisting role="small">
Section "Device"
Identifier "aticonfig-Device[0]"
Driver "fglrx"
Option "PowerState" "1"
EndSection
</programlisting>
</para>
<para>
After rebooting or re-starting X11 you can start the power save mode with the
command <command>aticonfig --set-powerstate=1 --effective=now</command>.
Use <command>aticonfig --list-powerstates</command> to get all available
powerstates.
</para>
<para>
For ATI Radeon graphics cards the <command>rovclock</command> tool can be used
to save power e.g. <command>rovclock -c 80 -m 80</command> to use only 80MHz chip
and memory frequency. The command <command>radeontool light off</command>
switches the backlight off, if closing the lid or using an extra key is not an
option.
</para>
<para>
The
<ulink url="http://lkml.org/lkml/2006/10/9/83">ACPI backlight driver</ulink>
by Holger Macht in 2.6.x for IBM, Toshiba, ASUS laptops
adds support for the generic backlight interface below
<filename>/sys/class/backlight</filename>. The patch keeps the procfs brightness handling for
backward compatibility. For this to archive, the patch adds two generic
functions brightness_get and brightness_set to be used both by the procfs
related and the sysfs related methods.
</para>
</sect2>
<sect2>
<title>Miscellaneous</title>
<para>
Sometimes you may encounter a display not working properly in text mode.
Currently I don't have any recommendations, please see
<ulink url="http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html">Keyboard-and-Console-HOWTO</ulink>
.
</para>
<para>
Take care of the <emphasis>backlight</emphasis> as far as I know this
device can only bear a limited number of uptime circles. So avoid using
screensavers too much.
</para>
<para>
For problems with X Windows and <acronym>APM</acronym> please see the
<acronym>APM</acronym> chapter.
</para>
<para>
<ulink url="http://www.srcf.ucam.org/~mjg59/vbetool/">vbetool</ulink>
uses LRMI in order to run code from the video BIOS.
Currently, it is able to alter DPMS states, save/restore video card state,
and attempt to initialize the video card from scratch. It exists primarily
in order to increase the chances of successfully recovering video state
after an ACPI S3 suspend-to-RAM.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s24-dvi-port">
<title>DVI Port</title>
<para>
As far as I know DVI ports don't work with Linux yet.
But anyway here are links to installation reports about
<ulink url="http://tuxmobil.org/laptop_dvi_linux.html">Linux on laptops and notebooks with DVI ports</ulink>.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s24-video-port-zv-port">
<title>Video Port / ZV Port</title>
<para>
Some high end laptops come with a video or ZV port (NTSC/PAL).
Since I don't have a laptop with a ZV or video port yet, I can provide only some URLs
<ulink url="http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html">BTTV</ulink>
(driver)
<ulink url="http://www.mathematik.uni-kl.de/~wenk/xwintv.html">xwintv</ulink>
(tvviewer). For further information see
<ulink url="http://www.exploits.org/v4l/">Video4Linux</ulink>
<!--
<ulink url="http://roadrunner.swansea.uk.linux.org/v4l.shtml">Video4Linux</ulink>
webarchive: in, but not much useful
-->
. To collect information about laptops with video port I have setup a page at
<ulink url="http://tuxmobil.org/hardware.html">TuxMobil - Hardware</ulink>
. Alternatively to the ZV port you might use the <acronym>USB</acronym> port.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s4-lcd-display">
<title>LCD Display</title>
<para>
This chapter isn't ready yet, it will contain information about
the lifetime of backlights,
differences between CRT and LCD displays,
anti-aliasing with LCD displays,
the <acronym>ISO</acronym> 13406-2 standard about pixel defects,
a survey of common resolutions: VGA, SVGA, XGA
and more soon.
See also the screensaver chapter and the touchscreen section in the
chapter
<xref linkend="mobile-guide-p4-tablet-pc"/> Tablet PC and PDA.
</para>
<sect2>
<title>Laptop Displays</title>
<sect3>
<title>Applications</title>
<para>
<ulink url="http://www.brouhaha.com/~eric/software/lcdtest/">lcdtest</ulink>
is a utility to display LCD monitor test patterns. It may
be useful in finding pixels that are stuck on or off. lcdtest uses the SDL
library, and has only been tested on Linux with X, but may work on other
platforms.
</para>
<para>
<ulink url="http://ddccontrol.sourceforge.net/">DDCcontrol</ulink>
is a program used to control monitor parameters, like
brightness and contrast, by software, i.e. without using the OSD (On
Screen Display) and the buttons in front of the monitor.
</para>
</sect3>
<sect3>
<title>Fonts</title>
<para>
<ulink url="http://www.iki.fi/too/sw/fat8x16-x-font.readme">fat8x16-x-font</ulink>
is a 8x16 pixel fixed width font to be used in
physically small but high resolution displays. Such displays can be found
for example in notebook computers with 1400x1050 and 1600x1200 14" displays.
</para>
</sect3>
</sect2>
<sect2>
<title>PDA Displays</title>
<para>
<ulink url="http://userpage.fu-berlin.de/~cantsin/homepage/computing/hacks/pxl2000/README.html">pxl2000</ulink>
is a free ISO 8859-15 (i.e. ISO 8859-1 with Euro symbol) encoded
monowidth dot matrix typeface for the X Window system (X11). It is
currently available in nine sizes: 4x8, 5x10, 6x12, 7x14, 8x16, 9x18,
10x20, 11x22 and 12x24 pixels. It's design objectives are:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Readability; fitness to be used as a default screen font,
especially on reverse-color X11 terminals
</para>
</listitem>
<listitem>
<para>
Optimization for program code through visually distinct
characters L, l, 1, 7, |, I, i and 0, O and more.
</para>
</listitem>
<listitem>
<para>
Complete ISO 8859-15 character set.
</para>
</listitem>
<listitem>
<para>
Many point sizes to ensure optical consistency across
different computers with different screen resolutions
(encompassing anything from PDA displays to 20" screens).
</para>
</listitem>
<listitem>
<para>
Fitness for displaying ASCII art and codework/code poetry,
from viewing graphics in aview, watching TV in ttv and DVDs
in <command>mplayer</command> with <command>-vo aa</command> to reading mailinglists like
_arc.hive_, 7-11 and writing in <command>mutt</command>.
</para>
</listitem>
<listitem>
<para>
Clean, minimalist visual design; no serifs, a square
minuscule base matrix, rounded edges. This is a computer
terminal font; it should not look like a low-res imitation
of print type.
</para>
</listitem>
</itemizedlist>
</para>
<para>
The author Florian Cramer employs this font in his "anti-desktop"
setup consisting of the <command>ratpoison</command> window manager and GNU screen
inside an <command>rxvt</command> terminal (with reverse color and no scrollbars), similar to
what is described in this
<ulink url="http://palm.freshmeat.net/articles/view/581/">FreshMeat article</ulink>
.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s5-sound">
<title>Sound</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
The only way I know to check this, is to compile the different sound
drivers into the kernel and check whether they are detected or not. The
best way to do so, is to compile them as modules because it's easier to
load different parameters such as interrupts and IO ports this way. For the
2.2.x kernels, read
<filename>/usr/src/linux/Documentation/sound/Introduction</filename>
by Wade Hampton. This document may help you get started with
sound. Also, you might try one of the commercial sound drivers mentionend
below. To check whether sound works or not you may try e.g.
<command>xmms</command> and one of the sounds provided in
<filename>/usr/share/sounds</filename>.
</para>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.tldp.org/">Sound-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.tldp.org/">Visual-Bell-mini-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
You may find also some good sound HOWTOs at the
<ulink url="http://www.djcj.org/LAU/guide/">Linux Audio Users Guide - LAU</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Survey Sound Drivers</title>
<!--
<para>
Many new laptops come with 16-bit sound.
But MWave and some other sound
technologies won't work or are very hard to get working, e.g. booting
to DOS, loading a driver, then using the soundcard as a standard
SB-PRO. So you might need a commercial sound driver.
</para>
-->
<para>
<orderedlist>
<!--
<listitem>
<para>
The original kernel sound driver by Hannu Savolainen.
is this still up-to-date, what about OSS?
</para>
</listitem>
-->
<listitem>
<para>
<acronym>ALSA</acronym>
<ulink url="http://www.alsa-project.org/">Advanced Linux Sound Architecture</ulink>
. The Advanced Linux Sound Architecture aims to: be a
fully-modularized sound driver which supports kerneld/kmod, ensure
compatibility with most binary OSS/Lite applications, create an
<acronym>ALSA</acronym> Library (C,C++) which covers the
<acronym>ALSA</acronym> Kernel API for applications, and create
<acronym>ALSA</acronym> Manager, an interactive configuration
program for the driver. With Kernel 2.6 these modules will
be part of the Linux Kernel.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.opensound.com/"><acronym>UNIX</acronym> Sound System Lite / OSS</ulink>
provides commercial sound card drivers for most popular sound
cards under Linux. These drivers support digital audio, MIDI,
Synthesizers and mixers found on sound cards. These sound drivers
comply with the Open Sound System API specification. OSS provides
a user-friendly GUI which makes the installation of sound drivers
and configuration of sound cards very simple. OSS supports over
200 brand name sound cards. OSS drivers provide automatic sound
card detection, Plug-n-Play support, support for PCI audio
soundcards and support.
</para>
</listitem>
<listitem>
<para>
As a last resort you may try the speaker module
<command>pcsnd</command>, which tries to emulate a soundcard.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Additional Soundcards</title>
<para>
<ulink url="http://www.digigram.com/products/VXpocket.html">VXPocket</ulink>
looks like a finally medium2high-end soundcard solution for
onboardwise badly equipped laptops. Note: I didn't check
whether this is a <acronym>PCMCIA</acronym> card or not.
<acronym>PCMCIA</acronym> sound cards are probably not
supported.
</para>
<para>
Also <acronym>USB</acronym> may be an alternative.
Most USB audio devices are supported by recent kernels.
An example is Labtec Axis 712 Stereo Headset (headphones
and microphone) which works in full-duplex mode.
For more info about this and other Linux-compatible USB
audio devices see the
<ulink url="http://www.qbik.ch/usb/devices/">USB Survey</ulink>
and my
<ulink url="http://tuxmobil.org/usb_linux.html">Mobile USB Linux Hardware Survey</ulink>
.
</para>
</sect2>
<sect2>
<title>External and Internal CD Drives</title>
<para>
For playing CDs/DVDs from an external or internal CD/DVD drive,
see chapter
<xref linkend="mobile-guide-p2c1s21-cd-drive"/> CD/DVD Drive
below.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s6-keyboard">
<title>Keyboard</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
<!--
Why is this in the compatibility check?
what about keyboard misbehaviour as mentioned in the
SuSE SDB?
-->
Usually there are no problems with Linux and the keyboard.
Though there are two minor caveats: First the
<command>setleds</command> program might not work. Second the
key mapping might not fit your needs. Some
<acronym>UNIX</acronym> users and <command>vi</command> users
expect to find the &lt;CONTROL&gt; key to the left of the
&lt;A&gt; key. Many PC-type keyboards have the
&lt;CAPS-LOCK&gt; key there. You may use
<command>xmodmap</command> or <command>loadkeys</command> to
re-map the keyboard. Some laptops (e.g., Toshiba) allow you
to swap the &lt;CAPS-LOCK&gt; and &lt;CONTROL&gt; keys. Mark
Alexander offered this solution in the linux-laptop mailing
list: On RedHat, it's a one-line patch to
<filename>/usr/lib/kbd/keytables/us.map</filename> , or
whatever file is referenced in
<filename>/etc/sysconfig/keyboard</filename>:
</para>
<para>
<programlisting role="small">
*** us.map~ Tue Oct 31 14:00:07 1995
--- us.map Thu Aug 28 13:36:03 1997
*** 113,119 ****
keycode 57 = space space
control keycode 57 = nul
alt keycode 57 = Meta_space
! keycode 58 = Caps_Lock
keycode 59 = F1 F11 Console_13
control keycode 59 = F1
alt keycode 59 = Console_1
--- 113,119 ----
keycode 57 = space space
control keycode 57 = nul
alt keycode 57 = Meta_space
! keycode 58 = Control
keycode 59 = F1 F11 Console_13
control keycode 59 = F1
alt keycode 59 = Console_1
</programlisting>
</para>
</sect2>
<sect2>
<title>External (Second) Keyboard</title>
<para>
A second (or external) keyboard can be attached using the
PS/2 port (I suppose this is not possible via the serial
port, since there is no keyboard controller for the serial
port) or via USB port.
Also there is one laptop with a detachable keyboard
the Siemens Scenic Mobile 800. This machine uses an
infrared connection to the keyboard, but I don't know
whether this works with Linux.
</para>
<sect3>
<title>External USB Keyboard Configuration</title>
<para>
You may not need any operating system support at all to use a
<acronym>USB</acronym> keyboard if you have a PC architecture. There are
several <acronym>BIOS</acronym> available where the
<acronym>BIOS</acronym> can provide <acronym>USB</acronym> support from
a keyboard plugged into the root hub on the motherboard. This may or may
not work through other hubs and does not normally work with add-in
boards, so you might want to add in support anyway. You definitely want
to add keyboard support if you activate operating system support, as the
Linux <acronym>USB</acronym> support will disable the
<acronym>BIOS</acronym> support. You also need to use Linux
<acronym>USB</acronym> keyboard support if you want to use any of the
"multimedia" types keys that are provided with some
<acronym>USB</acronym> keyboards.
</para>
<para>
In the kernel configuration stage, you need to turn on
<acronym>USB</acronym> Human Interface Device (HID) support and Keyboard
support. Do not turn on <acronym>USB</acronym> HIDBP Keyboard support.
Perform the normal kernel rebuild and installation steps. If you are
installing as modules, you need to load the hid.o, input.o and keybdev.o
modules.
</para>
<para>
Check the kernel logs to ensure that your keyboard is being correctly
sensed by the kernel.
</para>
<para>
At this point, you should be able to use your <acronym>USB</acronym>
keyboard as a normal keyboard. Be aware that LILO is not
<acronym>USB</acronym> aware, and that unless your
<acronym>BIOS</acronym> supports a legacy <acronym>USB</acronym> keyboard, you
may not be able to select a non-default boot image using the
<acronym>USB</acronym> keyboard. I have personally used a
<acronym>USB</acronym> keyboard (and <acronym>USB</acronym> mouse) and
experienced no problems.
</para>
</sect3>
<sect3>
<title>External PS/2 Keyboard</title>
<warning>
<para>
Don't plug the external keyboard in while the laptop is
booted, or plug the mouse in the keyboard port and the
keyboard in the mouse port. On a Toshiba, this caused one
user to have to completely shutdown the laptop, remove
the keyboard/mouse, and do a cold reboot.
</para>
</warning>
<para>
For PS/2 ports there is a so called Y-Cable available,
which makes it possible to use external mouse and
external keyboard at the same time if your laptop
supports this feature.
</para>
<para>
<ulink url="http://linuxconsole.sourceforge.net/input/adapters.html">Parport to AUX port adapter</ulink>
In some cases one kbd port and one aux port is not enough and you may
want to add another keyboard or mouse. You can use this adapter,
together with the <command>parkbd</command> module for that.
</para>
<para>
On some laptops a splitter works to allow both mouse and keyboard
to be plugged in; on others it doesn't work at all. If you
want to use both, you better check that it works.
</para>
<!--
<para>
<ulink url="http://www.buzzard.me.uk/jonathan/sunkbd.html">SUN keyboard to PC</ulink>
serial port adapter: Many people have dreamed having their SUN Type 5 keyboard
attached to their Linux box up to now. And with this adapter,
it is finally possible. Because the standard SUN keyboards
use TTL RS232 at 1200 bps to talk to the SUNs, it's very easy
to make them talk to any non-SUN computer by converting this
to true RS232. All what you need is a MAX232 chip that'll
take care about the correct voltage levels, and also some
chip to invert the signals (CD4049 in the pic, I've used a
7400 quad-nand myself), since the MAX232 inverts them as
well, and we don't need this. This all easily fits into a
25-pin serial connector.
</para>
removed because not related specifically to mobile computers,
also current laptops often don't come with RS-232
http://www.buzzard.me.uk/toshiba/index.html
-->
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s8-ext-keys">
<title>Extra Keys / Hot Keys</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Keyboard-and-Console-HOWTO.html">Keyboard-and-Console-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Utilities</title>
<para>
Some laptops offer extra buttons, e.g. - internet, mail keys, or
zone keys. If the Linux kernel and XFree86/X.org generate key codes for
them, <command>hotkeys</command> or just plain
<command>xmodmap</command> (see the man page of this X11 programm
for details) may be helpful. If Linux doesn't know
about the keys, you'll have to patch the kernel first.
Though I'm not quite sure some tools don't seem
to require this, I don't understand how it works yet.
<!--
For a quick check you may use cat /proc/acpi/event
is the above true?
-->
You may also use
<ulink url="http://www.geocities.com/wmalms/">xhkeys</ulink>
. This tool allows you to assign an
action to any key that is otherwise unused in X (such as the
"menu" key on a 105 key keyboard, extra keys on some keyboard
models, or odd keys on laptops). The action assigned to a key
or key combination (key and modifiers) can be a builtin
operation, a call to an external application, the sending of a
key event (simulating a key press/release), or the sending of a
mouse button event (simulating a button press/release).
</para>
<tip>
<para>
To get information about unknown keyboard or mouse events you
may use <command>showkey</command> and <command>mev</command> (the last
one is from the <command>gpm</command> package) on a console screen.
But some of the extra keys are not found with these tools.
<!-- setkeycodes ? -->
</para>
</tip>
<para>
<ulink url="http://keytouch.sourceforge.net/">keyTouch</ulink>
makes it possible to easily configure the extra function
keys of a keyboard (like multimedia keys). It allows the user to define
which program will be executed when a key is pressed.
By using keyTouch-editor the user can
easily create a keyboard file for his or her laptop to get the laptop
supported.
</para>
<para>
<command>akdaemon</command> is a userland daemon to invoke
"the fun keys" by accessing a dev node offered by the
complementary
<ulink url="http://sourceforge.net/projects/akdaemon/">kernel patch</ulink>
or the
<ulink url="http://home.zonnet.nl/vanrein/linux/funkey/">funkey programm</ulink>
.
</para>
<para>
The
<ulink url="http://ypwong.org/hotkeys/">hotkeys</ulink>
package is supposed to listen for those multimedia keys.
<!--
The original source can always be found at:
ftp://ftp.debian.org/debian/dists/woody/main/source/x11/
http://linux.omnipotent.net/article.php?article_id=12340
-->
</para>
<para>
Special ("easy access") buttons are supported by
<ulink url="http://lineak.sourceforge.net">LinEAK</ulink>
.
Here is an example
<filename>lineakd.conf</filename> file:
<programlisting role="small">
# LinEAK Configuration file for Compaq Easy Access Key 2800 (6 keys)
# Global settings
KeyboardType = CIKP800
CdromDevice = /dev/cdrom
MixerDevice = /dev/mixer
# Specific keys of your keyboard
internet = xosview
search = kfind
mail = kmail
multimedia = "artsdsp xmms"
voldown = "aumix -v -2"
volup = "aumix -v +2"
# end lineakd.conf
</programlisting>
</para>
<para>
<ulink url="http://hocwp.free.fr/xbindkeys/xbindkeys.html">xbindkeys</ulink>
is a program that associates keys or mouse
buttons to shell commands under X. After a little
configuration, it can start many commands with the
keyboard (e.g. control+alt+x starts an xterm) or with
the mouse buttons.
</para>
<para>
<ulink url="http://www.hadess.net/misc-code.php3">ACME</ulink>
is a small GNOME tool to make use of the multimedia
buttons present on most laptops and Internet keyboards:
Volume, Brightness, Power, Eject, My Home, Search, E-Mail,
Sleep, Screensaver, Finance, WWW, Calculator, Record, Close
Window, Shade Window, Play, Stop, Pause, Previous, Next,
Groups, Media, Refresh, and Help buttons. It works on all the
platforms GNOME supports (laptops and PCs). It uses either
OSS or ALSA for Volume control.
</para>
<para>
For some laptop series there are
Linux utilities available to control special hotkeys and other
features.
</para>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.buzzard.me.uk/toshiba/index.html">toshutils</ulink>
by Jonathan Buzzard for some Toshiba models.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://sourceforge.net/projects/tclkeymon/">Tclkeymon</ulink>
is a daemon for Toshiba laptops that use ACPI and the
Toshiba ACPI extensions. It monitors function keys and Toshiba-specific
buttons (including the CD player buttons and the state of the laptop lid)
and responds appropriately.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tpctl.sourceforge.net">tpctl</ulink>
IBM ThinkPad configuration tools for Linux by Thomas Hood.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://savannah.nongnu.org/projects/tpb/">ThinkPad Buttons</ulink>
enables the special keys that are found on the keyboard of an IBM
ThinkPad. It is possible to bind a program to each of the buttons. It
has an on-screen display (OSD) to show volume, mute, LCD brightness,
and some other things.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://rsim.cs.uiuc.edu/~sachs/tp-scroll/">IBM ThinkPad Scroll Daemon</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://people.debian.org/~dz/i8k/">i8k</ulink>
utils for DELL laptops.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.cakey.de/acerhk/">hotkey Linux driver</ulink>
for ACER laptops.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.blinkenlights.ch/cgi-bin/fm.pl?get=osle">OSL</ulink>
is a simple pbbuttonsd (used on Apple laptops to access
the 'special keys' like volume, eject, etc.) client. It
uses the xosd-lib to display the current values which makes
it look a lot more like OSX than other pbbuttonsd-clients.
<!--
XOSD is a simple library to display shaped text on your X display,
like a TV On Screen Display. It also contains an XMMS plugin, and a simple
example program that can display system logs overlayed on your desktop.
http://www.ignavus.net/software.html
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://pbbuttons.berlios.de/">PBButtons</ulink>
enables hotkeys on Apple iBook/PowerBook/TiBook. I have heard it works well
on x86 architectures, too.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.dreamind.de/ikeyd.shtml">ikeyd</ulink>
is a simple daemon which sets the volume or ejects a CDROM
when hotkeys are pressed on an iBook/TiBook.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://perso.wanadoo.fr/pascal.brisset/vaio/">jogdiald</ulink>
for the Jog-Dial on SONY laptops offers support for extra keys, too.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://sourceforge.net/projects/omke/">omke</ulink>
is a set of small programs and patches to configure some advanced
features of your HP OmniBook (usually things that HP has not documented) such as
enabling/disabling the extra onetouch/multimedia keys. This tool
works also for some Toshiba notebooks.
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s8-func-keys">
<title>Function Key</title>
<para>
The function key (often labelled Fn on the key) is usually used to
switch on a simulated numeric keyboard, which is provided as a separate
keypad on desktop keyboards. For those who don't want to use the
simulation there are additional external numeric keypads
available for PS/2 ports and I suppose USB ports.
Also the function key may be used in combination with some F-keys to
change display brightness, adjust the speaker volume or mute them,
lock the keyboard, switch between external and internal display, use
different suspend modes and more. Sometimes these key combinations
work out of the box with Linux. Some require dedicated tools, for
these tools see the Hotkey chapter above.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s8-power-keys">
<title>Power Key</title>
<para>
The power key often has different functions, besides power on and
off it may be used to wake up the machine from suspend mode.
This is usually achieved by pressing the power button for just a
few seconds only. If you press it longer (app. more than 5 seconds)
it will power down fully.
</para>
<para>
With modern laptops supporting ACPI it's also possible to
achieve power off, with ACPI via the
<filename>/proc/apci/</filename> interface.
<!--
tip:
sometimes you need to remove all sources of power (power plug
and batteries) to restart
-->
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s8-ext-leds">
<title>Extra LEDs</title>
<para>
Some laptops offer extra LED, e.g. - mail - LEDs.
<!--
I have found two
programms, which might help to get them to work (but I couldn't test it):
<command>getmail</command>, <command>fujled</command>. Both are
available from the
<ulink url="http://tuxidum.stack.nl/led">The Led Project</ulink>.
project seems dead, not in webarchive
-->
The tool <command>setleds</command> (which is part of
<ulink url="http://lct.sourceforge.net/">Linux Console Tools</ulink>)
can be helpful to make use of them.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s8-numeric-keypad">
<title>Numeric Keypad</title>
<para>
On desktop keyboards the numeric keypad is usually separated from
the character set, but laptops don't have a separated numeric keypad.
There are different ways to emulate one,
e.g. with the <command>Fn</command> key or with <command>NUM-LOCK</command>
key. Also external numeric keyboards which connect
to the PS/2 port (or USB, RS232) are available.
</para>
<para>
As described above, the numeric keyboard has to be used
if you want to change the X11 resolution by typing
<command>&lt;CTL&gt;&lt;ALT&gt;&lt;+&gt;</command> or
<command>&lt;CTL&gt;&lt;ALT&gt;&lt;-&gt;</command>.
If this doesn't work or is too complicated, you may use
<ulink url="http://www.dakotacom.net/~donut/programs/gvidm.html">gvidm</ulink>
Running <command>gvidm</command> will pop up a list of available modes and allows the user
to select one if desired. This makes it perfect for running from an
application menu or a hotkey, so you don't have to use ram for an applet
constantly running. If you are running dual or multi-head displays, it
will give you a list of screens so you can select the appropriate one.
Also you may use <command>xvidtune [-next | -prev ]</command>. To check
the current resolution you may use <command>xwininfo -root</command>,
if <command>xvidtune</command> is not at hand.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s7-pointing-devices">
<title>Pointing Devices - Mice and Their Relatives</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
You may check your mouse with the <command>mev</command> command from the GPM package.
</para>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/3-Button-Mouse.html">3-Button-Mouse-HOWTO</ulink>
for serial mice
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://tldp.org/">Bus-Mouse-HOWTO</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Kernel-HOWTO/">Kernel-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Mice Species</title>
<para>
<orderedlist>
<listitem>
<para>
Trackpad, Touchpad, are used with the majority of current laptops
</para>
</listitem>
<listitem>
<para>
Trackball, e.g. COMPAQ LTE
</para>
</listitem>
<listitem>
<para>
Pop-up-Mouse, e.g. HP OmniBook 800
</para>
</listitem>
<listitem>
<para>
Trackpoint, Mouse-Pin, e.g. <trademark>IBM</trademark> ThinkPad and
Toshiba laptops
</para>
</listitem>
<listitem>
<para>
3 Button Mice, e.g. <trademark>IBM</trademark>
Thinkpads at least the 600s and some COMPAQ models e.g. Armada M700. I have
heard rumor about a 3 button mouse for Texas Instruments Travelmates, but
couldn't verify this yet.
<!-- TI is now ACER -->
</para>
</listitem>
<listitem>
<para>
Touchscreen, e.g. some Fujitsu-Siemens laptops, TabletPCs and PDAs
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>PS/2 Mice</title>
<para>
<!--
FIXME this chapter is not about mice put into PS/2 ports
so the title could be misleading
-->
Most of the mice used in laptops are PS/2 mice (actually I
don't know one with another mouse protocol). You may
communicate with the PS/2 mouse through
<filename>/dev/psaux</filename> or
<filename>/dev/psmouse</filename>. If you use X Windows
this device and the protocol has to be set in
<filename>/etc/X11/XF86Config</filename>. In earlier
releases, sometimes the GPM mouse manager and X Windows had
trouble sharing a mouse when enabled at the same time. But
as far as I know this is no problem anymore for the latest
versions.
</para>
<para>
Speaking of Emulate3Buttons, 100ms is usually better than
the 50ms allowed in most default setups of
<filename>/etc/X11/XF86Config</filename> for XFree86 3.x:
<programlisting role="small">
Section "Pointer"
...
Emulate3Buttons
Emulate3Timeout 100
...
EndSection
</programlisting>
</para>
<para>
Or in <filename>/etc/X11/XF86Config-4</filename> for XFree86 4.x:
<programlisting role="small">
Section "InputDevice"
...
Option "Emulate3Timeout" "100"
Option "Emulate3Buttons" "true"
...
EndSection
</programlisting>
</para>
</sect2>
<sect2>
<title>Touchpad</title>
<para>
Usually a touchpad works with the PS/2 mouse device
<filename>/dev/psaux</filename> and the PS/2 protocol (for GPM and X11,
for X11 it seems also worth to check the GlidePointPS/2 protocol).
</para>
<para>
The
<ulink url="http://w1.894.telia.com/~u89404340/touchpad/index.html">Synaptics TouchPad driver</ulink>
has the following functions
(some functions require features from the touchpad that must be
present, multifinger taps for example):
</para>
<orderedlist>
<listitem>
<para>
Movement with adjustable, non-linear acceleration and speed (Options:
MinSpeed, MaxSpeed, AccelFactor)
</para>
</listitem>
<listitem>
<para>
Button events through short touching of the touchpad (Options:
MaxTapTime, MaxTapMove)
</para>
</listitem>
<listitem>
<para>
Double-Button events through double short touching of the touchpad
</para>
</listitem>
<listitem>
<para>
Dragging through short touching and holding down the finger on the
touchpad
</para>
</listitem>
<listitem>
<para>
Middle and right button events on the upper and lower corner of the
touchpad (Option: Edges)
</para>
</listitem>
<listitem>
<para>
Scrolling (button four and five events) through moving the finger on the
right side of the touchpad (Options: Edges, VertScrollDelta)
</para>
</listitem>
<listitem>
<para>
The up/down button sends button four/five events
</para>
</listitem>
<listitem>
<para>
Adjustable finger detection (Option: Finger)
</para>
</listitem>
<listitem>
<para>
Ext Mouse repeater support - Alpha! (Option: Repeater)
</para>
</listitem>
<listitem>
<para>
Multifinger taps: two finger for middle button and three finger for
right button events
</para>
</listitem>
<listitem>
<para>
Online configuration through shared-memory (in development)
(Option: SHMConfig)
</para>
</listitem>
</orderedlist>
<para>
The <command>synclient</command> command is provived with the driver
sources (note it's not included in SuSE Linux, at least not until 9.3).
The command queries and modifies the Synaptics TouchPad driver
parameters on the fly.
</para>
<tip>
<para>
Tipping with one, two or three fingers on the touchpad
simultaneously results in pressing the left, middle and respectively the
right mouse-button.
</para>
</tip>
<para>
There is also another touchpad driver available.
<ulink url="http://www.compass.com/synaptics/">The Synaptics Touchpad Linux Driver</ulink>
- <command>tpconfig</command>
supports pointing devices used in notebooks by
Acer, Compaq, Dell, Gateway, Olivetti, Texas Instruments, Winbook, and others.
</para>
<para>
Dell and Sony have started incorporating a touchpad, touchstick from
ALPS. They are in at least the Dell Latitude CPx and the Sony VAIO
laptop lines.
Maintainer Bruce Kall writes: "<command>tpconfig</command> does NOT support them at this
time, but I am in the process of getting the API from ALPS and will be
incorporating this in the next version of <command>tpconfig</command>.
The Dell's also incorporate the ALPS GlideStick in the middle of the
keyboard (like the stick pointer in some of the IBM Thinkpads). I also
intend to support the disabling of <quote>tapping</quote> the GlideStick
as well. Tapping of the touchpad/touchsticks drives me crazy, I'm not
sure about you (causes the <quote>selection</quote> of things on the
screen when you don't want to)!"
<!-- FIXME
what is the current status?
-->
</para>
<para>
<command>tpconfig</command> is a command-line utility to set options on
Synaptics Touchpad and (now) ALPS Glidepad/ Stickpointers. Most people
primarily use it to turn off the "tap mode" on laptop touchpads.
</para>
<para>
How to use <command>tpconfig</command>: <command>tpconfig</command> is
currently supported as a command-line configuration tool. The PS/2 port
does not currently support sharing. Therefore the
<command>tpconfig</command> utility will not work while any other mouse
driver is loaded (e.g. <command>gpm</command>). This also means that you
cannot use <command>tpconfig</command> while X Windows is running. The
suggested use of <command>tpconfig</command> is to run it from a startup
script before gpm is started.
</para>
<para>
<ulink url="http://rsim.cs.uiuc.edu/~sachs/tp-scroll/">IBM ThinkPad Scroll Daemon</ulink>
</para>
<para>
Not all touchpads are being from Synaptics, e.g some Gateways incorporate an
EZ-Pad (Registered TM) and there might be other brands. The
<ulink url="http://www.synaptics.com/decaf/utilities/tprev.exe">TPREV.EXE</ulink>
utility will verify you have a Synaptics touchpad.
</para>
<para>
The recent
<ulink url="ftp://ftp.prosa.it/pub/gpm/">gpm</ulink>
package (version &gt;=1.8, maybe earlier versions contain touchpad
support, too) includes the above mentioned Synaptics touchpad device
driver. This device driver has been developed by H. Davies
&lt;hdavies_AT_ameritech.net&gt;. Instead of using the PS/2 compatibility
mode of touchpad devices, you can now use native touchpad mode with some
pretty impressive features.
</para>
<para>
In addition to translating finger motion into mouse motion and
supporting the buttons, this support currently has several features
(from the README):
</para>
<para>
<itemizedlist>
<listitem>
<para>
a "tap" on the TouchPad causes a left mouse click
</para>
</listitem>
<listitem>
<para>
a "tap" followed quickly by a finger motion causes a left button drag type action.
</para>
</listitem>
<listitem>
<para>
a "tap" in one of the corners causes an action the default configuration
is upper right causes middle mouse click and lower right causes right
mouse click
</para>
</listitem>
<listitem>
<para>
more pressure on the touch pad speeds the motion of the cursor
</para>
</listitem>
<listitem>
<para>
a "tap" with a motion component (default &gt; 2mm) initiates a toss and
catch sequence. This is terminated by a finger touch on the pad (the
toss also ends after 1 sec since that is the idle timeout period for the
touchpad).
</para>
</listitem>
<listitem>
<para>
if the finger moves close to an edge then the mouse motion will be
continued in that direction so that you don't need to pick up your
finger and start moving again. This continued motion is pressure
sensitive (more pressure is faster motion).
</para>
</listitem>
</itemizedlist>
</para>
<para>
These features can be enabled/disabled and many of them have time and
speed parameters which can be adjusted to the taste of the user.
</para>
<para>
It seems <command>gpm</command> is best known as a console biased tool.
This is true, but you may use it as an X11 input device.
<command>gpm</command> is used as a repeater device. In this way you can
use both the built-in synaptics touchpad with all the features and at
the same time a serial mouse (with three buttons). This all works
smoothly together. X11 reads the mouse events from a named pipe
<filename>/dev/gpmdata</filename> in a protocol it understands, which in
my case is <emphasis>Mouse-Systems-Compatible</emphasis> (5bytes). Most
3-button mice use the default protocol. So a simple reconfiguration in
XF86Config is all that is required, after starting
<command>gpm</command> in an appropriate way, of course.
</para>
<para>
<command>gpm</command> could be started on your laptop with the
following arguments : <command>/usr/bin/gpm -t synps2 -M -t ms -m
/dev/ttyS0</command> . Both touchpad and serial mouse work in console
and X11 mode. You do have to create the named pipe
<filename>/dev/gpmdata</filename> yourself.
<!-- FIXME
mknod parameters
-->
</para>
<para>
Tapping with two fingers simultaneously to simulate a middle mouse
button works on Logitech touchpads used in a few machines.
</para>
<para>
Thanks to Geert Van der Plas for most of the touchpad chapter.
</para>
</sect2>
<sect2>
<title>Jog-Dial</title>
<para>
The <quote>Jog-Dial</quote> is an input device used in the SONY VAIO
laptop series. You may find a
<ulink url="http://www004.upp.so-net.ne.jp/t-kinjo/vaio/index_e.html">Jog-Dial driver</ulink>
by Takaya Kinjo.
Probably you have to change two things in the
<filename>spicdriver/Makefile</filename>:
<!--
what is the current status?
-->
</para>
<para>
<command>CCFLAG</command> has to be extended with <command>-D_LOOSE_KERNEL_NAMES</command>
</para>
<para>
<command>CCFLAG</command> has to be extended with <command>-I/usr/src/linux-&lt;kernel-version&gt;/include</command>
</para>
<para>
The README seems to be in Japanese, here is an English version.
</para>
<para>
<programlisting role="small">
$ tar xvzf jogutils.tar.gz
$ cd jogutils
$ make
$ su
# mknod /dev/spic c 60 0
# modprobe spicdriver/spicdriver
# exit
$ cp jogapp/rcfile ~/.jogapprc
$ jogapp/jogapp
</programlisting>
</para>
<para>
ISHIKAWA Mutsumi <!-- ishikawa_AT_debian.org --> wrote the
<ulink url="http://perso.wanadoo.fr/pascal.brisset/vaio/">jogdiald</ulink>
driver, which runs entirely in user-space (no
kernel modules required).
</para>
<para>
<ulink url="http://linuxbrit.co.uk/rsjog/">rsjog</ulink>.
is a modification of the
<ulink url="http://sjog.sourceforge.net/">sjog</ulink>
utility.
</para>
</sect2>
<sect2>
<title>Touchscreens</title>
<para>
The only modern laptops I know which include a touchscreen are the
Fujitsu Biblo 112/142 (aka MC 30) and the Palmax PD 1000/1100 (aka IPC
1000/1100).
</para>
<para>
The latest version of the
<ulink url="http://www.cs.nmsu.edu/~pfeiffer/#pen">Linux Compaq Concerto Pen Driver</ulink>
is available from Joe Pfeiffer's home page.
</para>
<para>
A current survey of drivers you may find at my page
<ulink url="http://tuxmobil.org/touch_laptops.html">Touchscreen Laptops and Linux</ulink>
.
</para>
</sect2>
<sect2>
<title>Pen Devices, Mousepoints</title>
<para>
IBM and Toshiba laptops currently come with a pen devices instead of a
mousepad or trackball.
</para>
<tip>
<para>
It needs some time to get used to this kind of pointer device. It may
help to rest your palm at the front rest. Also it's recommended to
reduce the mouse speed.
</para>
</tip>
</sect2>
<sect2>
<title>External Mouse</title>
<!--
xsetpointer
config example for XFree86 4
connection methods: Y-cable, IR, wireless, (battery needed!)
disable touchpad, if external mouse is connected some BIOS especially with
PS/2 ports support this feature
-->
<para>
For better handling, e.g. with a 3 button mouse you may use an external
mouse. This is usually a serial mouse or a PS/2 mouse, or in our days a USB
mouse, appropriate to the port your laptop offers. Usually this is no
problem. The only thing I currently don't know a solution for is the
automagic detection of a newly plugged in mouse from X11. To get it work
you have to restart your X server.
</para>
<sect3>
<title>PS/2 Mouse</title>
<para>
For PS/2 ports there are so called Y-Cable available, which make it
possible to use external mouse and external keyboard at the same time if
your laptop supports this feature.
</para>
<warning>
<para>
Don't plug in the external mouse while powered up. If you have
separate mouse and keyboard ports, make sure you plug the mouse in the
mouse port and the keyboard in the keyboard port. If you don't, you may
have to do a hard reboot of the laptop to get it to recover.
<!--
FIXME
this warning is already shown some pages before
-->
</para>
</warning>
</sect3>
<sect3>
<title>Wheel Mouse</title>
<para>
<ulink url="http://jonatkins.org/imwheel/">Imwheel</ulink>
makes the wheel of your Intellimouse (and other wheel and stick
mice) work in Linux/X11 to scroll windows up and down, or send keys to
programs. It runs in the background as a daemon and requires little
reconfiguration of the XWindows setup. 4 or more button mice and Alps
Glidepad 'Taps' may also be used. <command>imwheel</command>
includes a modified <command>gpm</command> for
an alternate method of wheel input.
</para>
<para>
See also the
<ulink url="http://www.inria.fr/koala/colas/mouse-wheel-scroll/">WHEEL Mouse FAQ</ulink>
which describes
how to get lots of X applications to recognise the scrolling action.
For current instructions on XFree86 4.x see
<ulink url="http://www.xfree86.org/current/mouse.html">XFree86 4.x - Mouse Docs</ulink>.
</para>
</sect3>
<sect3>
<title>USB Mouse</title>
<para>
This part is taken from The Linux <acronym>USB</acronym> Sub-System by
Brad Hards.
</para>
<sect4>
<title>USB Human Interface Device (HID) Configuration</title>
<sect5>
<title>General HID Configuration</title>
<para>
There are two options for using a <acronym>USB</acronym> mouse or a
<acronym>USB</acronym> keyboard - the standalone Boot Protocol way and
the full featured HID driver way. The Boot Protocol way is generally
inferior, and this document describes the full featured way. The Boot
Protocol way may be appropriate for embedded systems and other systems
with resource constraints and no real need for the full keyboard and
mouse capabilities.
</para>
<para>
It is important to remember that the HID driver handles those devices
(or actually those interfaces on each device) that claim to comply with
the Human Interface Device (HID) specification. However the HID
specification doesn't say anything about what the HID driver should do
with information received from a HID device, or where the information
that is sent to a device comes from, since this is obviously dependent
on what the device is supposed to be doing, and what the operating
system is. Linux (at the operating system kernel level) supports four
interfaces to a HID device - keyboard, mouse, joystick and a generic
interface, known as the event interface.
</para>
</sect5>
<sect5>
<title>HID Mouse Configuration</title>
<para>
In the kernel configuration stage, you need to turn on
<acronym>USB</acronym> Human Interface Device (HID) support and Mouse
Support Do not turn on <acronym>USB</acronym> HIDBP Mouse support.
Perform the normal kernel rebuild and installation steps. If you are
installing as modules, you need to load the
<filename>input.o</filename>, <filename>hid.o</filename> and
<filename>mousedev.o</filename> modules.
</para>
<para>
Plug in a <acronym>USB</acronym> mouse and check that your mouse has
been correctly sensed by the kernel. If you don't have a kernel message,
look for the changes to <filename>/proc/bus/usb/devices</filename>.
</para>
<para>
Since <acronym>USB</acronym> supports multiple identical devices, you
can have multiple mice plugged in. You can get each mouse seperately, or
you can get them all mixed together. You almost always want the mixed
version, and that is what will be used together. You need to set up a
device node entry for the mixed mice. It is customary to create the
entries for this device in the /dev/input/ directory.
</para>
<para>
Use the following commands:
<programlisting role="small">
mkdir /dev/input
mknod /dev/input/mice c 13 63
</programlisting>
</para>
<tip>
<para>
If you are unsure whether you are configuring the right mouse device,
use <command>cat /dev/input/mice</command> (or other appropriate
devices names). In case you do this for the correct mouse, you should see some
bizarre looking characters as you move the mouse or click any of the
buttons.
<!--
FIXME
there are other mouse devices, e.g. USB
has GPM to be stopped?
cat </dev/input/mice ?
weird language, could be more clear
-->
</para>
</tip>
<para>
If you want to use the mouse under X, you have various options. Which
one you select is dependent on what version of XFree86 you are using and
whether you are using only <acronym>USB</acronym> for your mouse (or
mice), or whether you want to use a <acronym>USB</acronym> mouse and
some other kind of pointer device.
</para>
<para>
You need to edit the <filename>XF86Config</filename> file (usually
<filename>/usr/X11R6/lib/X11/XF86Config</filename> or
<filename>/etc/X11/XF86Config</filename>).
</para>
<para>
If you are using XFree86 version 4.0 or later, add an
InputDevice section that looks like the following:
<programlisting role="small">
Section "InputDevice"
Identifier "USB Mice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
EndSection
</programlisting>
or, if you want to use a wheel mouse, something like this may be more useful:
<programlisting role="small">
Section "InputDevice"
Identifier "USB Mice"
Driver "mouse"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/input/mice"
Option "ZAxisMapping" "4 5"
Option "Buttons" "5"
EndSection
</programlisting>
</para>
<para>
Consult the
<ulink url="http://www.xfree86.org/current/mouse.html">current XFree86 documentation</ulink>
for a detailed explanation and more examples.
</para>
<para>
You also need to add an entry to each applicable ServerLayout Section.
These are normally at the end of the configuration file. If you only have
a <acronym>USB</acronym> mouse (or <acronym>USB</acronym> mice), then
replace the line with the "CorePointer" entry with the following line:
<programlisting role="small">
InputDevice "USB Mice" "CorePointer"
</programlisting>
</para>
<para>
If you want to use both a <acronym>USB</acronym> mouse (or
<acronym>USB</acronym> mice) and some other kind of pointer device,
then add (do not replace) the following line to the applicable
ServerLayout sections:
<programlisting role="small">
InputDevice "USB Mice" "SendCoreEvents"
</programlisting>
</para>
<para>
If you are using only a <acronym>USB</acronym> mouse (or
<acronym>USB</acronym> mice) with XFree86 3.3, edit the Pointer
section so that it looks like the following:
<programlisting role="small">
Section "Pointer"
Protocol "IMPS/2"
Device "/dev/input/mice"
EndSection
</programlisting>
</para>
<para>
If you are trying to use a <acronym>USB</acronym> mouse (or
<acronym>USB</acronym> mice) in addition to another pointer type
device with XFree86 3.3, then you need to use the XInput
extensions. Keep the existing Pointer (or modify it as required for
the other device if you are doing an initial installation), and add
the following entry (anywhere sensible, ideally in the Input
devices area):
<programlisting role="small">
Section "Xinput"
SubSection "Mouse"
DeviceName "USB Mice"
Protocol "IMPS/2"
Port "/dev/input/mice"
AlwaysCore
EndSubSection
EndSection
</programlisting>
</para>
<para>
Restart the X server. If you don't have any mouse support at this point,
remember that Ctrl-Alt-F1 will get you a virtual terminal that you can
use to kill the X server and start debugging from the error messages.
</para>
<para>
If you want to use the mouse under gpm, run (or kill and restart if it
is already running) gpm with the following options. <command>gpm -m
/dev/input/mice -t imps2</command> (as superuser). You can make
this the default if you edit the initialisation files. These are
typically named something like rc.d and are in
<filename>/etc/rc.d/</filename> on RedHat distributions.
</para>
<para>
If you have both a <acronym>USB</acronym> mouse (or
<acronym>USB</acronym> mice) and some other kind of pointer device, you
may wish to use gpm in repeater mode. If you have a PS/2 mouse on
/dev/psaux and a <acronym>USB</acronym> mouse (or <acronym>USB</acronym>
mice) on /dev/input/mice, then the following <command>gpm</command>
command would probably be appropriate: <command>gpm -m /dev/input/mice
-t imps2 -M -m /dev/psaux -t ps2 -R imps2</command>. Note that this will
make the output appear on <filename>/dev/gpmdata</filename>, which is a
FIFO and does not need to be created in advance. You can use this as the
mouse "device" to non-X programs, and both mice will work together.
<!--
this paragraph is also available some pages before
-->
</para>
<para>
<table frame="all">
<title>Arguments for the <command>-t</command> and <command>-R</command> option of <command>gpm</command>.</title>
<tgroup cols="2">
<colspec colname="column1"/>
<colspec colname="column2"/>
<thead>
<row>
<entry>option</entry>
<entry>description</entry>
</row>
</thead>
<tbody>
<row>
<entry>ms</entry>
<entry>MicroSoft compatible serial mouse</entry>
</row>
<row>
<entry>ps2</entry>
<entry>PS/2 or C&amp;T 82C710</entry>
</row>
<row>
<entry>bm</entry>
<entry>Logitech bus mouse</entry>
</row>
<row>
<entry>bm</entry>
<entry>ATI XL bus mouse</entry>
</row>
<row>
<entry>mb</entry>
<entry>MicroSoft bus mouse</entry>
</row>
<row>
<entry>msc</entry>
<entry>Mouse Systems serial mouse</entry>
</row>
<row>
<entry>logi</entry>
<entry>older mouse</entry>
</row>
<row>
<entry>mman</entry>
<entry>Mouse Man protocol, serial Logitech mouse</entry>
</row>
<row>
<entry>sun</entry>
<entry>SUN mouse, three button</entry>
</row>
<row>
<entry>ms3</entry>
<entry>Intellimouse with wheel, at serial port</entry>
</row>
<row>
<entry>imps2</entry>
<entry>Intellimouse with wheel, at PS/2 port</entry>
</row>
<row>
<entry>pnp</entry>
<entry>PnP mice, alternative to <command>ms</command></entry>
</row>
<row>
<entry>mm</entry>
<entry>MM series</entry>
</row>
<row>
<entry>bare</entry>
<entry>oldest serial two button mouse</entry>
</row>
</tbody>
</tgroup>
</table>
<!--
FIXME
why is this table in this chapter?
-->
</para>
</sect5>
</sect4>
</sect3>
<sect3>
<title>Wrist Input Device - Twiddler</title>
<para>
The <command>gpm</command> contains a driver for the Twiddler
device at the serial port. For information about the Twiddler see
<ulink url="http://www.handykey.com/">Handykey Corporation</ulink>
.
</para>
</sect3>
</sect2>
<sect2>
<title>Macintosh PowerBooks</title>
<para>
PowerBooks have a trackpad and only one button, although you can plug in
external multi-button <acronym>USB</acronym> mice. The usual thing is to
map a couple of keys on the keyboard to the middle and right mouse
buttons; your Linux distribution should come with instructions on how to
configure this (it's not specific to laptops, as all Apple mice are
single-button).
</para>
<para>
If you are using the <command>Xpmac</command> server, the default is
option-1 and option-2, and you can change this by passing
<command>-middlekey &lt;keycode&gt;</command> <command>-rightkey
&lt;keycode&gt;</command> arguments to <command>Xpmac</command>, and
<command>-nooptionmouse</command> if you don't want the option key to be
needed.
</para>
<para>
If you are using XFree86, you pass
<command>adb_buttons=&lt;middlekey&gt;</command>,<command>&lt;rightkey&gt;</command>
kernel arguments (no option is required). I use
<command>adb_buttons=58,55</command> to map the option and Apple/command
keys (which are little-used in Linux); use e.g. <command>xev</command>
to find out the keycode for a given key.
</para>
<!--
xmonobut - A simple X11 application that modifys mouse button mapping.
Xmonobut is a simple X11 application that helps access 2nd and 3rd
mouse buttons on touchscreen / single mouse button ( such as macs )
machines. ppdbuttons?
mouseemu -userland driver hint from Sebastian H.
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s8-apm">
<title>Advanced Power Management - APM</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
Start by reading the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/index.html">Battery-Powered-mini-HOWTO</ulink>.
</para>
<para>
For <acronym>APM</acronym> to work the machine's firmware must implement the APM Specification.
<!--
<ulink url="http://www.intel.com/IAL/powermgm">APM Specification</ulink>.
not really in webarchive
-->
Linux supports versions 1.0 through 1.2 of the standard.
To work with Linux the <acronym>APM</acronym> <acronym>BIOS</acronym>
must support 32-bit protected mode connections.
</para>
<para>
To display information about the <acronym>APM</acronym> <acronym>BIOS</acronym>
on your system you can run <command>dmesg | grep apm</command> command or look
in the <filename>/proc/apm</filename> file.
</para>
</sect2>
<sect2>
<title>Introduction</title>
<para>
APM support consists of two parts: <emphasis>kernel</emphasis> support
and <emphasis>user-land</emphasis> support.
</para>
<sect3>
<title>Kernel Support</title>
<para>
You need a kernel that has the <acronym>APM</acronym> driver compiled
in using the appropriate kernel configuration options.
Currently most distributions do not ship kernels with the
<acronym>APM</acronym> driver enabled so you may have to enable the
driver using a boot option or to compile a custom kernel.
Please see
<ulink url="http://tldp.org/HOWTO/Kernel-HOWTO/">Kernel-HOWTO</ulink>
or your distribution manual for details.
</para>
<para>
The <acronym>APM</acronym> driver can be modularized but this is
not recommended since many drivers will disable their
<acronym>APM</acronym> features if the <acronym>APM</acronym> driver
is not present when they initialize themselves.
</para>
<para>
The available <acronym>APM</acronym> options are (please see
<filename>Documentation/Configure.help</filename> in the kernel source
tree for more details):
</para>
<para>
<itemizedlist>
<listitem>
<para>
<command>CONFIG_APM_IGNORE_USER_SUSPEND</command>
Just a workaround for some NEC Versa M series laptops.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_DO_ENABLE</command>
Enable <acronym>APM</acronym> features at boot time.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_CPU_IDLE</command>
Puts CPU in power save mode, if there is nothing to do for the kernel.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_DISPLAY_BLANK</command>
Some laptops can use this to
turn off the <acronym>LCD</acronym> backlight when the screen blanker of
the Linux virtual console blanks the screen. Note that this is only used
by the virtual console screen blanker, and won't turn off the backlight
when using the X Window system.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_POWER_OFF</command>
Turns the machine completely
down, when using <command>halt</command>. This feature works with most
laptops without problems.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_IGNORE_MULTIPLE_SUSPEND</command>
Just a workaround for <trademark>IBM</trademark> ThinkPad 560.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_IGNORE_SUSPEND_BOUNCE</command>
Just a workaround for Dell Inspiron 3200 and other notebooks.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_RTC_IS_GMT</command>
Stores time in Greenwich Mean Time format.
It is in fact recommended to store GMT in your real time clock (RTC) in the BIOS.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_APM_ALLOW_INTS</command>
Resolves some problems with <emphasis>Suspend to Disk</emphasis>
for some laptops, for instance many newer <trademark>IBM</trademark> ThinkPads.
</para>
</listitem>
<listitem>
<para>
<command>CONFIG_SMP</command> Symmetric Multi-Processing support.
This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N.
Though the default seems to be Y. So it may be enabled if you are
unaware.
I have got reports that SMP support enabled does interfere with APM.
So with a single CPU machine like a laptop you are on the save side,
when you N.
</para>
</listitem>
</itemizedlist>
</para>
<para>
Features of the <acronym>APM</acronym> driver according to the Kernel
documentation file <filename>Documentation/Configure.help</filename>:
"The system time will be reset after a USER RESUME operation, the
<filename>/proc/apm</filename> device will provide battery status
information, and user-space programs will receive notification of
<acronym>APM</acronym> <emphasis>events</emphasis> (e.g., battery status
change). "
</para>
</sect3>
<sect3>
<title>Userland Support</title>
<para>
The most important <emphasis>userland</emphasis> utility is
<ulink url="http://worldvisions.ca/~apenwarr/apmd/">apmd</ulink>,
a daemon that handles <acronym>APM</acronym> events.
</para>
<para>
If you run a 2.2.x or later kernel and
want to experiment, Gabor Kuti &lt;seasons_AT_falcon.sch.bme.hu&gt;
has made a kernel patch that allows you to
<emphasis>hibernate</emphasis> any Linux system to disk, even if your
computers <acronym>APM</acronym> <acronym>BIOS</acronym> doesn't
support it directly. In my humble opinion you don't need this features
if your laptop provides a function key to invoke suspend mode
directly.
</para>
<para>
Please see the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/">Battery Powered Linux Mini-HOWTO</ulink>
for detailed information.
</para>
<para>
Here's what <command>apmd</command> can do:
</para>
<para>
<itemizedlist>
<listitem>
<para>
apmd(8): logs the battery status to syslog every now and then and
runs a proxy script that can take action before suspend or after
resume
</para>
</listitem>
<listitem>
<para>
apm(1): prints the current battery status or suspends the computer
</para>
</listitem>
<listitem>
<para>
apmsleep(1): suspends the machine for a limited time
</para>
</listitem>
<listitem>
<para>
xapm(1x): provides a battery meter for X11
</para>
</listitem>
<listitem>
<para>
libapm.a: a library for writing <acronym>APM</acronym> applications
</para>
</listitem>
</itemizedlist>
</para>
<para>
Some <acronym>APM</acronym> firmware fails to restore mixer
settings properly which can result in squeals of feedback in the
music after the machine has resumed. A solution is to set up the
proxy script so that it calls a mixer application after resume.
</para>
<para>
From the apmsleep(1) man page: Some computers, especially laptops,
can wake up from a low-power suspend to DRAM mode using the Real-time clock
(RTC) chip. Apmsleep can be used to set the alarm time in the RTC and to go
into suspend or standby mode. An interrupt from the RTC causes the
computer to wake-up. The program detects this event, by waiting for a
leap in the kernel time and terminates successfully. If no time leap
occurs within one minute, or something goes wrong, the exit value will
be non-zero. Apmsleep is part of the <command>apmd</command> package.
</para>
<para>
In 2001 Richard Gooch wrote a simple <command>apmd</command> alternative
which is available in the
<ulink url="http://www.atnf.csiro.au/~rgooch/linux/">pmutils</ulink>
package.
</para>
<para>
Also, take a look at <command>apmcd</command> (<command>apm</command> based crontab) at
<ulink url="ftp://ftp.binary9.net/pub/linux/">ftp://ftp.binary9.net/pub/linux/</ulink> .
This tool was written by
<ulink url="http://mrnick.binary9.net/">Nicolas J. Leon</ulink>
&lt;nicholas_AT_binary9.net&gt;.
</para>
</sect3>
</sect2>
<sect2>
<title>Caveats</title>
<para>
If you use another operating system at the same computer make sure
that its "suspend" and "hibernate" features don't write to partitions
that are used by Linux.
</para>
</sect2>
<sect2>
<title>Troubleshooting</title>
<para>
If your machine worked with 2.0.x kernels but not with the 2.2.x series,
take this advice from Klaus Franken kfr_AT_klaus.franken.de : "The
default changed in 2.2. Search in the init-scripts for
<command>halt</command> and change it to <command>halt -p</command> or
<command>poweroff</command>. See <command>man halt</command> , if you
don't have this option you need a newer version of
<command>halt</command>." You may find it in the
<command>SysVinit</command> package.
</para>
<para>
On some new machines (for instance HP Omnibook 4150 - 366 MHz model)
when accessing <filename>/proc/apm</filename>,
you may get a kernel fault <command>general protection fault: f000</command>.
<!-- Stephen.Rothwell_AT_canb.auug.org.au -->
<ulink url="http://www.canb.auug.org.au/~sfr/">Stephen Rothwell</ulink>
explaines: "This is your <acronym>APM</acronym> <acronym>BIOS</acronym>
attempting to use a real mode segment while in protected mode,
i.e. it is a bug in your BIOS. .. We have seen a few of
these recently, except all the others are in the power off
code in the <acronym>BIOS</acronym> where we can work around
it by returning to real mode before attempting to power off. Here we cannot do this."
</para>
<para>
According to Kernel docs
<filename>Documentation/Configure.help</filename>: "Some other things
you should try when experiencing seemingly random,
<emphasis>weird</emphasis> problems:
</para>
<para>
<orderedlist>
<listitem>
<para>
make sure that you have enough swap space and that it is enabled
<command>swapon -s</command>.
</para>
</listitem>
<listitem>
<para>
pass the <command>no-hlt</command> option to the kernel.
</para>
</listitem>
<listitem>
<para>
switch on floating point emulation in the kernel and pass the
<command>no387</command> option to the kernel.
</para>
</listitem>
<listitem>
<para>
pass the <command>floppy=nodma</command> option to the kernel.
</para>
</listitem>
<listitem>
<para>
pass the <command>mem=4M</command> option to the kernel (thereby
disabling all but the first 4 MB of RAM).
</para>
</listitem>
<listitem>
<para>
make sure that the CPU is not over clocked (doesn't seem suitable for
mobile machines).
</para>
</listitem>
<listitem>
<para>
read the
<ulink url="http://www.bitwizard.nl/sig11/">sig11 FAQ</ulink> .
<!--
see also tldp.org
-->
</para>
</listitem>
<listitem>
<para>
disable the cache from your <acronym>BIOS</acronym> settings.
</para>
</listitem>
<listitem>
<para>
install a fan for the video card or exchange video RAM (doesn't seem
suitable for mobile machines).
</para>
</listitem>
<listitem>
<para>
install a better fan for the CPU (doesn't seem suitable for mobile
machines).
</para>
</listitem>
<listitem>
<para>
exchange RAM chips (doesn't seem suitable for mobile machines).
</para>
</listitem>
<listitem>
<para>
exchange the motherboard (doesn't seem suitable for mobile machines).
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title><acronym>APM</acronym> and <acronym>PCMCIA</acronym></title>
<para>
From the
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>:
&quot;Card Services can be compiled with support for
<acronym>APM</acronym> (Advanced Power Management) if you've configured
your kernel with <acronym>APM</acronym> support. ... The
<acronym>PCMCIA</acronym> modules will automatically be configured for
<acronym>APM</acronym> if a compatible version is detected on your
system. Whether or not <acronym>APM</acronym> is configured, you can use
<command>cardctl suspend</command> before suspending your laptop, and
<command>cardctl resume</command> after resuming, to cleanly shut down
and restart your <acronym>PCMCIA</acronym> cards. This will not work
with a modem that is in use, because the serial driver isn't able to
save and restore the modem operating parameters. <acronym>APM</acronym>
seems to be unstable on some systems. If you experience trouble with
<acronym>APM</acronym> and <acronym>PCMCIA</acronym> on your system, try
to narrow down the problem to one package or the other before reporting
a bug. Some drivers, notably the <acronym>PCMCIA</acronym> SCSI drivers,
cannot recover from a suspend/resume cycle. When using a
<acronym>PCMCIA</acronym> SCSI card, always use <command>cardctl
eject</command> prior to suspending the system.&quot;.
</para>
</sect2>
<sect2>
<title>APM and Resuming X Windows</title>
<para>
Some machines have <acronym>APM</acronym> firmware that fails to save
and restore display controller chip registers across a suspend.
Earlier versions of the XFree86 X server did not restore the screen
properly after resume, a problem which was addressed by
<ulink url="http://www.linuxlaptops.com/ll/xresume.html">Linux Laptops</ulink>.
However, contemporary versions of XFree86 mostly do the right thing.
<!--
FIXME
link points to TuxMobil
-->
</para>
<para>
Sometimes X and <acronym>APM</acronym> don't work smoothly together.
The machine might even hang. A recommendation from Steve Rader:
Some linux systems have their X11 server hang when doing
<command>apm -s</command>. Folks with this affliction might want to switch
to the console virtual terminal and then suspend
<command>chvt 1; apm -s</command> as root, or, more appropiately
<command>sudo chvt 1; sudo apm -s</command>. I have these commands in a script, say,
<command>my-suspend</command> and then do
<command>xapmload --click-command my-suspend</command> .
</para>
</sect2>
<sect2>
<title>Software Suspend</title>
<para>
<ulink url="http://www.sourceforge.net/projects/swsusp">Software suspend</ulink>
enables the possibility of suspending a machine. It doesn't need APM.
You may suspend your machine by either pressing Sysrq-d or with
<command>swsusp</command> or <command>shutdown -z</command> (patch for
<command>sysvinit</command> needed). It creates an image which is
saved in your active swaps. By the next booting the kernel detects the
saved image, restores the memory from it and then it continues to run
as before you've suspended. If you don't want the previous state to
continue use the <command>noresume</command> kernel option.
</para>
<para>
Software suspends may even be better than hibernate, because now I can
suspend my Linux system, boot into Microsoft Windows, perform a few
illegal operations and be shut down, and then restart my Linux setup
exactly where I left off! This is something that cannot be done with
hibernation, since that always restores the last state that you
suspended from, be it Microsoft Windows or Linux. So if I want to switch
to Microsoft Windows to play games or do anything else, I can leave my
Linux desktop exactly as it is and return to how I left it.
</para>
<para>
In recent 2.6 kernels SoftWareSuspend is part of the kernel. You may
find it in the section Power Management. But there are also
backports to 2.4 available.
</para>
<para>
Since the original Software Suspend code was written by Gabor Kuti and Pavel
Machek back in 1998, three different implementations have been created for the
2.6 kernel, all forks of the same original codebase.
</para>
<para>
<ulink url="http://www.tuxonice.net/">TuxOnIce</ulink>, former known as
Software Suspend 2, has a long feature list, including the ability to cancel a
suspend by pressing Escape, image compression to save time and space, a
versatile plugin architecture, and support for machines with Highmem,
preemption and SMP.
</para>
<!--
"The 'Suspend2' project has been renamed to 'TuxOnIce' Nigel Cunningham announced on the lkml..."
http://kerneltrap.org/node/8476
Here is a
<ulink url="http://www.suspend2.net/features">quick comparison between the two that still exist</ulink>.
<ulink url="http://www.suspend2.net/">Software Suspend 2</ulink>
-->
</sect2>
<sect2>
<title>Tips and Tricks</title>
<sect3>
<title>Battery Status on Text Console</title>
<para>
You may use the following entry in <filename>.bashrc</filename>
to show the battery level on the command prompt.
</para>
<sect4>
<title>When Using APM</title>
<para>
<programlisting role="small">
export PS1="\$(cat /proc/apm | awk '{print \$7}') \h:\w\$ "
</programlisting>
</para>
</sect4>
<sect4>
<title>When Using ACPI</title>
<para>
<programlisting role="small">
# Color the bash prompt in function of the percentage of battery
# with acpi subsystem.
# Based on the originally apm based script that has been posted
# on debian-laptop by
# Jason Kraftcheck &lt;kraftche at cae.wisc.edu&gt;.
#
# This script is licensed under the GNU GPL version 2 or later,
# see /usr/share/common-licences/GPL on a Debian system or
# http://www.gnu.org/copyleft/gpl.html on the web.
# (c) 2003 Fabio 'farnis' Sirna &lt;farnis at libero dot it&gt;
function acpi_percent()
{
if [ `cat /proc/acpi/battery/BAT0/state | grep present: |cut -d\ -f18` = "yes" ]; then
{
CAPACITY=`cat /proc/acpi/battery/BAT0/info |grep "design capacity:"|cut -d\ -f11`
LEVEL=`cat /proc/acpi/battery/BAT0/state | grep remaining|cut -d\ -f8`
ACPI_PERCENT=`echo $(( $LEVEL * 100 / $CAPACITY ))`
if [ "$LEVEL" = "$CAPACITY" ]; then
echo FULL
else
echo $ACPI_PERCENT%
fi
}
else echo "NO BATTERY"
fi
}
function acpi_charge()
{
ACPI_CHARGE=`cat /proc/acpi/ac_adapter/AC/state | cut -d\ -f20`
case $ACPI_CHARGE in
*on-line*)
ACPI_CHARGE="+" ;;
*off-line*)
ACPI_CHARGE="-" ;;
esac
echo $ACPI_CHARGE
}
function acpi_color()
{
if [ "$(acpi_charge)" = "+" ]; then
{
if [ `cat /proc/acpi/battery/BAT0/state | grep present: |cut -d\ -f18` = "no" ]; then
echo "0;31"
else echo "1;32"
fi
}
else
case $(acpi_percent) in
10?%) echo "0;32" ;;
9?%) echo "0;32" ;;
8?%) echo "0;32" ;;
7?%) echo "0;32" ;;
6?%) echo "0;32" ;;
5?%) echo "0;32" ;;
4?%) echo "0;33" ;;
3?%) echo "0;33" ;;
2?%) echo "0;33" ;;
1?%) echo "0;31" ;;
?%) echo "0;31;5" ;;
*) echo "0;35" ;;
esac
fi
}
function acpi_color_prompt
{
PS1='\[\e[$(acpi_color)m\][$(acpi_charge)$(acpi_percent)][\t] \u:\w\$&gt;\[\e[0;37m\] '
}
# linux console
if [ "$TERM" = "linux" ]; then
PROMPT_COMMAND=acpi_color_prompt
fi
function echo_acpi
{
echo -n "($(acpi_charge)$(acpi_percent)) "
}
</programlisting>
</para>
</sect4>
</sect3>
<sect3>
<title>Debian GNU/Linux</title>
<para>
All "normal" Debian GNU/Linux kernels are APM capable, they just need an append
line added to the boot loader configuration file (e.g. <filename>/etc/lilo.conf</filename>.
<programlisting role="small">
append="apm=on"
</programlisting>
</para>
<para>
You might use the following parameters (with the appropriate changes)
in your boot loader configuration file (e.g. <filename>/etc/lilo.conf</filename>
to experiment with <acronym>ACPI</acronym> and APM, when compiled in the same kernel.
Usage of APM and <acronym>ACPI</acronym> at the same time doesn't work, see Kernel docs for
details.
<programlisting role="small">
append="acpi=off apm=on"
</programlisting>
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s9-acpi">
<title>ACPI</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://xtrinsic.com/geek/articles/acpi.phtml">ACPI-HOWTO I</ulink>
by Emma Jane Hogbin
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.columbia.edu/~ariel/acpi/acpi_howto.txt">ACPI-HOWTO II</ulink>
by Ariel Glenn. This document describes how to compile, install, and
use the <acronym>ACPI</acronym> driver for Linux and its associated applications.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.cpqlinux.com/acpi-howto.html">ACPI-HOWTO III</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://acpi.sourceforge.net/wiki">ACPI4Linux Project</ulink>
and its
<ulink url="http://acpi.sourceforge.net/wiki">Wiki</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.acpi.info/">ACPI Info</ulink> provides the
ACPI specification.
</para>
</listitem>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s1-cpu"/> the CPU chapter of this guide
</para>
</listitem>
<!--
cross references to ACPI: fan, CPU frequency
-->
</orderedlist>
</para>
</sect2>
<sect2>
<title>ACPI Details</title>
<para>
<acronym>ACPI</acronym> stands for <emphasis>Advanced Configuration and
Power Interface</emphasis>. This is a specification by Toshiba, Intel
and Microsoft. Besides many other things it also defines power
management. This is why it is often compared to APM.
</para>
<para>
You might use the following parameters (with the appropriate changes)
in your boot loader configuration file (e.g. <filename>/etc/lilo.conf</filename>
to experiment with <acronym>ACPI</acronym> and APM, when compiled in the same kernel.
Usage of APM and <acronym>ACPI</acronym> at the same time doesn't work, see Kernel docs for
details.
<programlisting role="small">
append="acpi=on apm=off"
</programlisting>
</para>
<para>
The
<ulink url="http://sourceforge.net/projects/acpi">Linux ACPI Project</ulink>
is committed to the development of fundamental ACPI (Advanced Configuration and Power
Interface) components for Linux. This includes a generic ACPI table parser, AML
interpreter, bus and device drivers, policy, user interface, and support tools.
</para>
<para>
The
<ulink url="http://www.netego.de/hpc?p=acpipower&amp;l=en">E-AcpiPower</ulink>
epplet is based on E-Power. It is modified to read
battery status information using the new acpi kernel module, making it much
more accurate and reliable than the old APM method.
</para>
<para>
<ulink url="http://rffr.de/acpi">TCL/TK script</ulink>
which allows setting the ACPI CPU performance
state using a graphical interface under Linux.
</para>
<!--
<para>
<ulink url="http://www.iapp.de/~riemer/projects/acpi.py/">acpi.py</ulink>
provides an uniform and platform-independent interface to ACPI.
</para>
in webarchive
-->
<para>
<ulink url="http://grahame.angrygoats.net/acpi.shtml">Linux ACPI client</ulink>
is a command-line tool, similar to the <command>apm</command>
command, that provides information on battery status, AC power, and
thermal readings.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s10-pmu">
<title>Power Management Unit - PMU (PowerBook)</title>
<para>
PowerBooks don't support the <acronym>APM</acronym> specification, but
they have a separate protocol for their PMU (Power Management Unit).
There is a free (GPL) daemon called <command>pmud</command> that handles
power management; it can monitor the battery level, put the machine to
sleep, and set different levels of power consumption. It was written by
Stephan Leemburg.
<!-- stephan_AT_jvc.nl
, and is available from PPC
distribution ftp sites (e.g.
ftp://ftp.linuxppc.com/contrib/software/Utilities/System/).
link doesn't work anymore
-->
There is
also an older utility called <command>snooze</command> available from
the same sites that just puts the PowerBook to sleep.
<ulink url="http://pbbuttons.berlios.de/">PBButtons</ulink>
now includes the functionality of <command>pmud</command>.
</para>
<para>
Cron works fine on my laptop as I never shut it off completely. I only
put it to sleep. When it wakes up, the unexecuted
<command>cron</command> jobs from the sleep period all run.
</para>
<para>
This part is a courtesy of Steven G. Johnson.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s11-batteries">
<title>Batteries</title>
<epigraph>
<attribution>
Unknown AuthorEss
</attribution>
<para>
May the batteries be with you.
</para>
</epigraph>
<para>
For information about available battery types, take a
look at the Hardware Features chapter above.
</para>
<para>
Please see the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/">Battery Powered Linux Mini-HOWTO</ulink>
and the
<ulink url="http://tuxmobil.org/mobile_battery.html">TuxMobil battery page</ulink>
for further information. A survey of
<ulink url="http://tuxmobil.org/energy_laptops.html">other means to supply power for mobile computers</ulink>
e.g. solar energy is available at TuxMobil.
For general information about batteries see the
<ulink url="http://www.technick.net/public/code/cp_dpage.php?aiocp_dp=guide_bpw2_00_toc">Battery FAQ</ulink>.
<!--
a very good article about LiON batteries in CT 17/2003 page 170ff
Ladegeraete fuer NiMH Akkus CT 16/2003 page 204ff.
-->
</para>
<para>
<ulink url="http://www.canb.auug.org.au/~sfr/">Stephen Rothwell</ulink>
proposed a patch that will add multiple battery support to the kernel APM.
</para>
<para>
From the <command>mobile-update</command> page
(modified by WH): Discharge the battery. If your
battery runs only for about 20 minutes, you probably
suffer from memory effects. Most laptops do not
discharge the battery properly. With low powered
devices like old computer fans they can be discharged
completely. This removes memory effects. You should
do so even with LiIon batteries, though they don't
suffer much from memory effect (the manual of
an <trademark>IBM</trademark> Thinkpad says
to cycle the batteries through a full
charge/discharge cycle 3 times every few
months or so).
</para>
<warning>
<para>
Try this at your own risk! Make sure the voltage of
the fans is compatible to your battery. It works
for me.
</para>
</warning>
<para>
In the US, this company has most batteries for
anything and can rebuild many that are no longer
manufactured: Batteries Plus, 2045 Pleasant Hill
Road, Duluth, GA 30096 +1 770 495 1644.
</para>
<para>
The
<ulink url="http://karl.jorgensen.com/battery-stats/">battery-stats</ulink>
package collects statistics about the (lack of)
charge on laptop batteries. It also contains a simple graph
utility to show the battery charge over time or detect
a misbehaviour of the battery which might announce a
coming end of batterylife.
Battery-stats knows nothing about electrochemical stuff going on
inside batteries - hence it will not try to make any predictions
whatsoever. But somebody with knowledge of batteries should be able
to tell whether they are behaving OK.
This package uses APM; there is no support for ACPI yet.
</para>
<para>
<ulink url="http://ibam.sourceforge.net/">IBAM (Intelligent BAttery Monitor)</ulink>
is an advanced battery monitor
for laptops, which uses statistical and adaptive linear methods to provide
accurate estimations of minutes of battery left or of the time needed until
full recharge.
This package uses APM; there is no support for ACPI yet.
</para>
<para>
<ulink url="http://www-leland.stanford.edu/~bbense/toys/">A hacked rclock</ulink>
. Booker C. Bense has hacked the <emphasis>rclock</emphasis> program
to include a simple battery power meter on the clock face.
</para>
<para>
<ulink url="http://www.jaist.ac.jp/~daisuke/Linux/xbatstat.html">xbatstat</ulink>
. A battery level status checker for Linux and X.
</para>
<sect2>
<title>Smart Battery Support</title>
<para>
The
<ulink url="https://sourceforge.net/projects/sbs-linux/">sbsutils</ulink>
package is a set of utilities programs to handle the Smart Battery
on laptops, it offers Linux kernel &amp; ACPI support for the Smart Battery System
found in some laptop computers.
</para>
</sect2>
<sect2>
<title>How to Improve Battery Uptime</title>
<para>
These are the most important factors which have influence on the battery
uptime. Please see the appropriate chapters for power saving tips:
</para>
<itemizedlist>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s1-cpu"/> CPU
</para>
</listitem>
<listitem>
<para>
fan
</para>
</listitem>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s12-memory"/> memory
</para>
</listitem>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s4-graphic-chip"/>graphics card
</para>
</listitem>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s23-harddisk"/> hard disk drive
</para>
</listitem>
<listitem>
<para>
<xref linkend="mobile-guide-p2c1s21-cd-drive"/> optical drive
</para>
</listitem>
</itemizedlist>
<para>
Getting your computer to use the least amount of power can be problematic.
Intel's
<ulink url="http://www.linuxpowertop.org/index.php"></ulink> project provides information on reducing power usage, tips, and tricks for Intel-based computers running Linux.
As a first step, Intel has released PowerTOP, a tool that helps you find what
software is using the most power. By fixing (or closing) these applications or
processes, you can immediately see the power savings in the tool. You'll also
see the estimated time left for battery power if you are running a laptop. The
Tips &amp; Tricks page has fixes for a lot of the issues that are already found.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s12-memory">
<title>Memory</title>
<para>
Unfortunately some laptops come with
proprietary memory chips. So they are not
interchangeable between different models. But
this seems changing. With some models it's very
difficult to install the memory if you have to
open the case in detail. But this is also
changing. Places were the memory can be changed
easily are dedicated maintenance cover on the
backside or often if you only have to remove
the keyboard.
<!--
details how to detect the right screws
hint to repair4laptop.org
-->
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s13-pnp">
<title>Plug-and-Play Devices (PnP)</title>
<para>
The <emphasis>Plug and Play driver project</emphasis> for Linux is a
project to create support within the Linux kernel (see
<ulink url="http://linux.org/">Linux.Org</ulink> for
more information) for handling Plug and Play (and other semi-PnP)
devices in a clean, consistent way. It aims to allow a driver of any
type of hardware to have this hardware configured by the PnP driver in
the kernel. This driver is then notified when the device is
reconfigured, or even removed from the system, so as to allow for
graceful action in these circumstances.
<!--
FIXME
linux.org or kernel.org
-->
</para>
<para>
<emphasis>ISA PnP tools</emphasis> is another useful package.
</para>
<!--
<para>
And there is a project at
<ulink url="http://www.redhat.com/pnp/overview.html">RedHat</ulink> .
</para>
webarchive: Sorry, no matches.
-->
<para>
The latest <acronym>PCMCIA</acronym> driver package (&gt;3.1.0) has
utilities <command>lspnp</command> and <command>setpnp</command> to
manipulate PNP settings.
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s14-docking-station-port-replicator">
<title>Docking Station / Port Replicator</title>
<!--
CT 21/2003 page 154ff.
-->
<sect2>
<title>Definitions</title>
<para>
First some definitions. There is a difference between <emphasis>docking
station</emphasis> and <emphasis>port replicator</emphasis>.
</para>
<para>
I use the term <emphasis>docking station</emphasis> for a box which
contains slots to put some interface cards in, and space to put a
harddisk, etc. in. This box can be permanently connected to a PC. A
<emphasis>port replicator</emphasis> is just a copy of the laptop ports
which may be connected permanently to a PC.
</para>
</sect2>
<sect2>
<title>Other Solutions</title>
<para>
I don't use a docking station myself. They seem really expensive and I can't
see any usefulness. Alright you have to deal with some more cables, but is
it worth so much money? Docking stations are useful in an office
environment when you have a permanent network connection, or need the
docking station's expansion bus slots (e.g. for some excotic SCSI device).
</para>
<para>
Also all docking stations I know are proprietary models, so if you
change your laptop you have to change this device, too. I just found
one exception a docking station which connects to your laptop via
<trademark class="registered">IrDA</trademark> the IRDocking IR-660 by
<ulink url="http://www.tekram.com/">Tekram</ulink>
. It supports these connectors: 10Base-T (RJ-45); PS/2 Keyboard; PS/2
Mouse; 25-Pin Printer Port (LPT); IR Transceiver; Power (6 VDC). So it
seems that a VGA port and a port to connect a desktop PC directly are
missing. This device should work with Linux/<trademark
class="registered">IrDA</trademark>, though I couldn't check it out.
</para>
<para>
I would prefer to buy a PC instead and connect it via
<emphasis>network</emphasis> to the laptop.
</para>
<para>
Or use an external display, which usually works well as described above,
and an external keyboard and mouse. If your laptop supports an extra
PS/2 port you may use a cheap solution a <emphasis>Y-cable</emphasis>,
which connects the PS/2 port to an external keyboard and an external
monitor. Note: Your laptop probably has support for the <emphasis>Y-cable</emphasis>
feature, e.g. the COMPAQ Armada 1592DT.
</para>
</sect2>
<sect2>
<title>Docking Station Connection Methods</title>
<para>
AFAIK there are <emphasis>four solutions</emphasis> to connect a laptop
to a docking station:
</para>
<para>
<orderedlist>
<listitem>
<para>
SCSI port (very seldom)
</para>
</listitem>
<listitem>
<para>
parallel port
</para>
</listitem>
<listitem>
<para>
(proprietary) docking port (common)
</para>
</listitem>
<listitem>
<para>
USB (often offered by third party manufacturers)
</para>
</listitem>
</orderedlist>
</para>
<para>
From Martin J. Evans
<!--
<ulink url="http://www.mjedev.demon.co.uk/index.html">Martin J. Evans</ulink>
link invalid
-->
"The main problem with docking stations is getting the operating
system to detect you are docked. Fortunately,
you can examine the devices available in <filename>/proc</filename>
and thus detect a docked state. With
this in mind a few simple scripts is all you need to get your machine
configured correctly in a docked state.
</para>
<para>
You may want to build support for the docking station hardware as
modules instead of putting it directly into the kernel. This will save
space in your kernel but your choice probably largely depends on how
often you are docked.
</para>
<para>
1) Supporting <emphasis>additional disks</emphasis> on the docking
station SCSI card
</para>
<para>
To my mind the best way of doing this is to:
</para>
<para>
<orderedlist>
<listitem>
<para>
Either build support for the SCSI card into the kernel or build it as a module.
</para>
</listitem>
<listitem>
<para>
Put the mount points into <filename>/etc/fstab</filename> but use the
"noauto" flag to prevent them from being mounted automatically with the
<command>mount -a</command> flag. In this way, when you are docked you
can explicitly mount the partitions off any disk connected to the
docking station SCSI card.
</para>
</listitem>
</orderedlist>
</para>
<para>
2) Supporting <emphasis>additional network adaptors</emphasis> in the docking station
</para>
<para>
You can use a similar method to that outlined above for the graphics
card. Check the <filename>/proc</filename> filesystem in your rc scripts
to see if you are docked and then set up your network connections
appropriately. "
</para>
<para>
Once you determine this information, you may use a script, similar to
the following example, to configure the connection to your docking
station at startup. The script is provided by Friedhelm Kueck:
</para>
<para>
<programlisting role="small">
# check, if laptop is in docking-station (4 <acronym>PCMCIA</acronym> slots available)
# or if it is standalone (2 slots available)
# Start after cardmgr has started
#
# Friedhelm Kueck mailto:fk_AT_impress.de
# 08-Sep-1998
#
# Find No. of Sockets
SOCKETS=`tail -1 /var/run/stab | cut -d ":" -f 1`
case "$SOCKETS" in
"Socket 3")
echo Laptop is in Dockingstation ...
echo Disabeling internal LCD Display for X11
echo
cp /etc/XF86Config_extern /etc/XF86Config
#
# Setup of <acronym>PCMCIA</acronym> Network Interface after start of cardmgr
#
echo
echo "Setting up eth0 for use at Network ..."
echo
/sbin/ifconfig eth0 10.1.9.5 netmask 255.255.0.0 broadcast 10.1.255.255
/sbin/route add -net 10.1.0.0 gw 10.1.9.5
/sbin/route add default gw 10.1.10.1
;;
"Socket 1")
echo Laptop is standalone
echo Disabling external Monitor for X11
cp /etc/XF86Config_intern /etc/XF86Config
echo
echo Network device NOT setup
;;
esac
</programlisting>
</para>
</sect2>
<sect2>
<title>Universal USB Port Replicators</title>
<para>
I have used a Typhoon USB 2.0 7in1 Docking Station made by
<ulink url="http://www.anubisline.com/">Anubis</ulink>
P/N 83057 to check the Linux compatibility of such devices. Actually
this device should be named port replicator, because it does not have
any extension slots.
This device doesn't have a VGA port to connect to an external
display. Only a few USB docking stations have this feature. It would
be nice to get a report whether a VGA port works or not.
Tested with laptop COMPAQ M700 (USB 1.1) and custom made kernel 2.6.1.
Note the port replicator didn't work with
an Apple PowerBook G4.
<!--
See also Different Environments.
-->
</para>
<para>
How does its different ports work with Linux:
<itemizedlist>
<listitem>
<para>
USB 2.0 A-type downstream: works with external hard disk and mouse out of the box
</para>
</listitem>
<listitem>
<para>
USB 2.0 A-type downstream: see above
</para>
</listitem>
<listitem>
<para>
PS/2 keyboard: works out of the box
</para>
</listitem>
<listitem>
<para>
PS/2 mouse: works, but for 2.6 Kernels you have to specifiy
the right mouse protocol <command>psmouse_proto=imps</command>
(if psmouse is compiled as a module).
</para>
</listitem>
<listitem>
<para>
serial port: tested with serial mouse, doesn't seem to work,
<command>/dev/ttyUSB0</command> was assigned
</para>
</listitem>
<listitem>
<para>
parallel port: tested, device <command>/dev/usb/usblp0</command> assigned, works
e.g. with HP LaserJet 2100
</para>
</listitem>
<listitem>
<para>
LAN: usbnet loads, device eth1 was assigned,
<command>ifconfig</command> or <command>pump</command> configures the network device
</para>
</listitem>
<listitem>
<para>
transfer port aka host link:
works with usbnet module, use <command>ifconfig usb0</command> to configure
the network interface,
(USB 1.1 host link B-type) untested
</para>
</listitem>
</itemizedlist>
</para>
<para>
Here is the output of <command>dmesg</command>
for the Typhoon port replicator:
<programlisting role="small">
hub 1-0:1.0: new USB device on port 1, assigned address 26
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
hub 1-1:1.0: new USB device on port 3, assigned address 27
hub 1-1.3:1.0: USB hub found
hub 1-1.3:1.0: 4 ports detected
hub 1-1:1.0: new USB device on port 4, assigned address 28
eth1: register usbnet at usb-0000:00:07.2-1.4, ASIX AX8817x USB 2.0 Ethernet
hub 1-1.3:1.0: new USB device on port 1, assigned address 29
usb0: register usbnet at usb-0000:00:07.2-1.3.1, Prolific PL-2301/PL-2302
hub 1-1.3:1.0: new USB device on port 2, assigned address 30
drivers/usb/class/usblp.c: usblp0: USB Bidirectional printer dev 30 if 0 alt 1 proto 2 vid 0x067B pid 0x2305
hub 1-1.3:1.0: new USB device on port 3, assigned address 31
pl2303 1-1.3.3:1.0: PL-2303 converter detected
usb 1-1.3.3: PL-2303 converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
hub 1-1.3:1.0: new USB device on port 4, assigned address 32
HID device not claimed by input or hiddev
hid: probe of 1-1.3.4:1.0 failed with error -5
input: Composite USB PS2 Converter USB to PS2 Adaptor v1.09 on usb-0000:00:07.2-1.3.4
HID device not claimed by input or hiddev
hid: probe of 1-1.3.4:1.1 failed with error -5
input: Composite USB PS2 Converter USB to PS2 Adaptor v1.09 on usb-0000:00:07.2-1.3.4
</programlisting>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s15-network-connections">
<title>Network Connections</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/PLIP.html">PLIP-mini-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/NET3-4-HOWTO.html">Networking-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Ethernet-HOWTO.html">Ethernet-HOWTO</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://www.tldp.org/">Term-Firewall-mini-HOWTO</ulink>
</para>
</listitem>
-->
</orderedlist>
</para>
</sect2>
<sect2>
<title>Connection Methods</title>
<para>
Almost all recent laptops are equipped with a built-in network card.
This chapter shows some methods to connect older laptops without
internal network cards.
</para>
<sect3>
<title><acronym>PCMCIA</acronym> Network Card</title>
<para>
If your laptop supports <acronym>PCMCIA</acronym> this is the easiest
and fastest way to get network support. Make sure your card is supported
before buying one.
</para>
</sect3>
<sect3>
<title>Serial Null Modem Cable</title>
<para>
Probably the cheapest way to connect your laptop to another computer,
but quite slow. You may use PPP or SLIP to start the connection.
</para>
</sect3>
<sect3>
<title>Parallel Port NIC (Pocket Adaptor)</title>
<para>
<ulink url="http://www.unix-ag.uni-siegen.de/~nils/accton_linux.html">Accton Pocket Ethernet and Linux</ulink>
This ethernet adaptor uses a parallel port and delivers approximately 110k Bytes/s
throughput for those notebooks that do not have <acronym>PCMCIA</acronym> slots.
</para>
<!--
<para>
<ulink url="http://www.linux-on-laptops.com/linksys.html">Linux and Linksys Ethernet Adaptors</ulink>
A short note on the use of the Linksys parallel-port ethernet adaptor under Linux.
This is a widely available networking adaptor that doesn't require a <acronym>PCMCIA</acronym> slot.
</para>
broken URL
-->
</sect3>
<sect3>
<title>Parallel "Null" Modem Cable</title>
<para>
Offers more speed than a serial connection. Some laptops use chipsets
that will not work with PLIP. Please see
<ulink url="http://tldp.org/HOWTO/PLIP.html">PLIP-HOWTO</ulink>
for details.
</para>
</sect3>
<sect3>
<title>Docking Station NIC</title>
<para>
I don't have experience with a NIC in a docking station yet.
</para>
</sect3>
</sect2>
<sect2>
<title>Wake-On-LAN</title>
<para>
Wake-On-LAN works with some laptops equipped with built-in network cards.
<ulink url="http://www.scyld.com/wakeonlan.html">Wake-On-LAN</ulink>
is the generic name for the AMD "Magic Packet" technology. It's
very similar to the PCMCIA modem "wake on ring" signal line. The basic idea is
that the network adapter has a very-low-power mode to monitor the network for
special packet data that will wake up the machine.
The
<ulink url="http://www.scyld.com/wakeonlan.html">etherwake</ulink>
package as well as the
<ulink url="http://gsd.di.uminho.pt/jpo/software/wakeonlan/">Wakeonlan</ulink> Perl script
are able to send 'magic packets' to wake-on-LAN enabled
ethernet adapters and motherboards, in order to switch on remote computers.
You may use <command>ethtool</command> to configure some
special Wake-On-LAN settings.
<!--
example
http://lpn.rnbhq.org/R31/R31.shtml
compatible cards: e100, eepro100
-->
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s16-modem">
<title>Built-In Modem</title>
<sect2>
<title>Modem Types</title>
<para>
There are three kinds of modems available: internal,
<acronym>PCMCIA</acronym> card or external serial port modems. But
some internal modems will not work with Linux these modems are usually
called WinModem. This is caused by non-standard hardware. So you have to use either a
<acronym>PCMCIA</acronym> card modem or an external modem (serial or USB). The
<ulink url="http://walbran.org/sean/linux/linmodem-howto.html">LinModem-HOWTO</ulink>
by Sean Walbran provides a detailed instruction how to deal
with these kind of modems. My pages about
<ulink url="http://tuxmobil.org/modem_linux.html">Internal Modems in Laptops</ulink>
and
<ulink url="http://tuxmobil.org/minipci_linux.html">miniPCI Devices in Laptops</ulink>
provide a survey about the modem controllers used in different laptops.
</para>
<para>
Quotation from the Kernel-FAQ: "9.Why aren't WinModems supported? (REG,
quoting Edward S. Marshall) The problem is the lack of specifications
for this hardware. Most companies producing so-called
<emphasis>WinModems</emphasis> refuse to provide specifications which
would allow non-Microsoft operating systems to use them. The basic
issue is that they don't work like a traditional modem; they don't
have a DSP, and make the CPU do all the work. Hence, you can't talk
to them like a traditional modem, and you -need- to run the modem
driver as a realtime task, or you'll have serious data loss issues
under any kind of load. They're simply a poor design."
</para>
<para>
"<emphasis>Win</emphasis> modems are lobotomized modems which expect
Windows to do some of their thinking for them. If you do not have
Windows, you do not have a connection. "
</para>
<para>
Anyway, I have set up a page collecting information on laptops with internal modems at
<ulink url="http://tuxmobil.org/hardware.html">TuxMobil - Hardware</ulink>
. Maybe it's possible to run such modems with MS-Windows9x/NT
emulators like <command>wine</command> or <command>VMware</command>, but I don't know it.
</para>
<para>
The
<ulink url="http://linmodems.org">Linux WinModem Support</ulink>
and
<ulink url="http://www.xmodem.org/">the Xmodem.org (former Gromit Winmodem) page</ulink>
are more or less the standard as to whether a modem is
real or not, and also contain directions to getting drivers for the few
winmodems that do have Linux drivers.
</para>
<!--
http://www.idir.net/~gromitkc/winmodem.html (a mirror)
http://www.grapevine.net/~gromitkc/winmodem.html (a mirror)
http://www.kcdata.com/~gromitkc/winmodem.html (a mirror)
Note: all are same site 209.242.64.145 www.grapevine.net
now xmodem.org
-->
<para>
There is a driver for Lucent WinModems available.
LucentPCI (binary only) driver, for PCI driven internal modems, see
<ulink url="http://linmodems.org">Linux WinModem Support</ulink>
and the
<ulink url="http://www.close.u-net.com/ltmodem.html">LTModem diagnostic tool</ulink>.
<!--
<ulink url="http://www.suse.cz/development/ltmodem/">SuSE - Labs</ulink>
http://atrey.karlin.mff.cuni.cz/~vojtech/input/adapters.html
-->
</para>
</sect2>
<sect2>
<title>Caveats</title>
<warning>
<para>
Pay attention to the different kinds of phone lines: analog and ISDN.
You can't connect an analog modem to an ISDN port and vice versa. Though
there might be hybrid modems available. Connecting to the wrong port may
even destroy your modem. Trick: If you are looking for an analog phone
port in an office building which is usually wired with ISDN, take a look
at the fax lines, they are often analog lines.
</para>
</warning>
<warning>
<para>
If your machine features an internal modem as well as an internal
ethernet card, pay also attention to plug the right cable into the plug.
Otherwise you may damage your hardware easily. It may even cause a fire.
</para>
</warning>
<para>
For tracking the packets on PPP you may use <command>pppstats</command>.
Or <command>pload</command> this provides a graphical view of the traffic
(in and out) of the PPP connection. It is based on athena widgets hence
is very portable. It also uses very little CPU time.
<!--
The home of
<command>pload</command> is
<ulink url="http://www.engr.utk.edu/~mdsmith/pload/">here</ulink>.
in webarchive and downloadable
-->
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s17-gprs">
<title>GPRS</title>
<para>
<acronym>GPRS</acronym> is a General Packet Radio Service, an add-on to GSM and TDMA cellular
telephone standards used all over the world. It allows (almost) always-on
Internet connections using GSM (or TDMA) telephones.
It makes mobile internet usage on laptops fairly inexpensive.
The
<ulink url="http://turtiainen.dna.fi/GPRS-HOWTO">GPRS-HOWTO</ulink>
is written by Esa Turtianen etu_AT_dna.fi and Jari Arkko Jari_AT_arkko.com
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s17-scsi">
<title>SCSI</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
If unsure about the right SCSI support, compile a kernel with all
available SCSI drivers as modules. Load each module step by step until
you get the right one.
</para>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/SCSI-2.4-HOWTO/index.html">SCSI-2.4-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Survey</title>
<para>
There is no current x86 laptop yet with a SCSI harddisk. Though there have
been two models with a built in SCSI port: Texas Instruments TI 4000 and HP
OmniBook 800. Maybe the PowerBook G3 has a SCSI disk, but I didn't check
this yet. The old Apple Powerbook Duo models had a SCSI hard disk.
</para>
<para>
For other models, if you need SCSI support you may get it by using a
SCSI-<acronym>PCMCIA</acronym> card or via a SCSI adapter in a docking
station.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s18-usb">
<title>Universal Serial Bus - USB</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
You should get information about the <acronym>USB</acronym> controller
with <command>cat /proc/pci</command> and about <acronym>USB</acronym>
devices with <command>cat /proc/bus/usb/devices</command>.
</para>
</sect2>
<sect2>
<title>Miscellaneous</title>
<para>
Newer laptops come equipped with the Universal Serial Bus -
<acronym>USB</acronym>. The following <acronym>USB</acronym> devices are
available, not all of them are
fully supported by Linux yet:
keyboard,
mouse,
printer,
tablet,
camera,
cpia,
webcam,
MP3 player,
modem,
wireless LAN,
audio,
jukebox,
scanner,
storage (hard drive, memory stick),
floppydrive,
ZIP,
Super Disk - LS 120,
compact flash reader,
CD,
BlueTooth,
ethernet,
serial,
joystick,
USB Host-to-Host Cable,
hub
.
</para>
<para>
Visit the
<ulink url="http://www.linux-usb.org/">USB Linux</ulink> home page. Also I
have set up a page collecting information about laptops and mobile devices
using <acronym>USB</acronym> at the
<ulink url="http://tuxmobil.org/hardware.html">TuxMobil - Mobile Hardware Survey</ulink> .
</para>
<warning>
<para>
Please note, I have got a report that the power by a laptop via USB is not
enough for some kind of devices, e.g. Web Cams or hard disks. But it seems to depend
on the laptop and the specific device. With desktop Linux machines these
USB devices work flawlessly, but with mobile devices not.
</para>
</warning>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s19-firewire">
<title>FireWire - IEEE1394 - i.Link</title>
<para>
Firewire, also known as IEEE-1394 and iLink, is a high-speed serial
bus system that was originally developed by Apple Computer.
Currently, its widest implementation is for digital video; however,
it has a lot of other uses. Like USB, Firewire is a serial protocol
that supports hot-swapping. Firewire supports much higher speeds
than USB. The
<ulink url="http://linux1394.sourceforge.net/">Linux IEEE 1394 Subsystem</ulink>
provides support for IEEE 1394 (FireWire, i.Link).
It consists of a kernel subsystem as well as applications.
</para>
<para>
Also I have set up a page collecting information about laptops and FireWire at
<ulink url="http://tuxmobil.org/hardware.html">TuxMobil - Mobile Hardware Survey</ulink> .
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s20-floppy-drive">
<title>Floppy Drive</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
Usually there are no problems connecting a floppy drive to a Linux
laptop. But with a laptop floppy drive you may sometimes not be able to
use every feature. I encountered the <command>superformat</command>
command (from the fdutils package) couldn't format more than 1.44MB with
my HP OmniBook 800. You may also have difficulty when the floppy drive
and CD drive are mutually exclusive, or when the floppy drive is a
<acronym>PCMCIA</acronym> device (as with the Toshiba Libretto 100).
With older laptops, there might be a minor problem if they use a 720K
drive. As far as I know all distributions come with support for 1.44M
(and sometimes 1.2M) floppies only. Though it's possible to install
Linux anyway. Please see Installation chapter. Please see kernel
documentation for boot time parameters concerning certain laptop floppy
drives, for instance <trademark>IBM</trademark> ThinkPad. Or
<command>man bootparam</command> .
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s21-cd-drive">
<title>Optical Drives (CD/DVD)</title>
<sect2>
<title>CD-ROM</title>
<sect3>
<title>Related Documentation</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/CDROM-HOWTO/">CDROM-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/CD-Writing-HOWTO.html">CD-Writing-HOWTO</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</sect3>
<sect3>
<title>Introduction</title>
<para>
Most notebooks today come with CD drives. If floppy and CD drive are
swappable they are usually mutually exclusive, however many vendors (HP,
Dell) provide cables which allow the floppy module to be connected to
the parallel port. Sometimes the CD drives comes as external
<acronym>PCMCIA</acronym> device (e.g. SONY), or as SCSI device (e.g. HP
OmniBook 800), USB device (e.g. SONY), or as Firewire (e.g. SONY VAIO
VX71P). Such an external devices might bear problems to install Linux
from it.
</para>
<para>
As far as I know there are SONY DiscMans available which have a port to
connect them to a computer or even a SCSI port. I found an article
published by Ziff-Davis Publishing Company (September 1996 issue, but
missed to note the URL) written by Mitt Jones: "Portable PC Card CD-ROM
drives transform laptops into mobile multimedia machines", which listed:
Altec Lansing AMC2000 Portable Multimedia CD-ROM Center; Axonix ProMedia
6XR; CMS PlatinumPortable; EXP CDS420 Multimedia Kit; H45
Quick<acronym>PCMCIA</acronym> CD; Liberty 115CD; Panasonic KXL-D740;
Sony PRD-250WN CD-ROM Discman.
</para>
<para>
To here music from internal CD drives usually works without problems.
But note:
</para>
<tip>
<para>
Some notebooks come with an external CD drive, you need an extra cable
to connect the sound output of the drive to the sound input of the
notebook.
</para>
</tip>
</sect3>
</sect2>
<!--
<sect1 id="mobile-guide-p2c1s21-cd-rw">
-->
<sect2>
<title>CD-RW</title>
<para>
Most notebooks today even come with internal or external CD writers.
The internal usually work, see
<ulink url="http://tldp.org/HOWTO/CD-Writing-HOWTO.html">CD-Writing-HOWTO</ulink>
for details. But with the different external (PCMCIA, Firewire, USB) drives you probably need
some tweaking.
</para>
</sect2>
<!--
<sect1 id="mobile-guide-p2c1s22-dvd-drive">
-->
<sect2>
<title>DVD Drive</title>
<para>
<ulink url="http://linvdr.org/projects/regionset/">regionset</ulink>
adjusts and shows the region code of DVD drives.
</para>
<!--
<para>
<ulink url="http://linuxvideo.org/">The Linux Video and <acronym>DVD</acronym> Project</ulink>
has made great headway since its start. Also provided on the site are
links to various documents discussing <acronym>DVD</acronym> chipset
specifications. The Linux Video and <acronym>DVD</acronym> Project is
avidly seeking help from the opensource community for development. See also
<ulink url="http://tldp.org/HOWTO/DVD-Playback-HOWTO/index.html">DVD-Playback-HOWTO</ulink>
.
</para>
outdated
-->
<para>
<ulink url="http://www.trylinux.com/projects/udf/index.html">Universal Disk Format (UDF) Driver</ulink>
: "UDF is a newer CDROM filesystem standard that's required for
<acronym>DVD</acronym> roms. It's meant to be a replacement for the
ISO9660 filesystem used on today's CDROMs, but the immediate impact for
most will be DVD. <acronym>DVD</acronym> multimedia cdroms use the UDF
filesystem to contain MPEG audio and video streams. To access
<acronym>DVD</acronym> cdroms you would need a <acronym>DVD</acronym>
cdrom drive, the kernel driver for the cdrom drive, some kind of MPEG
video support, and a UDF filesystem driver (like this one). Some
<acronym>DVD</acronym> cdroms may contain both UDF filesystems and
ISO9660 filesystems. In that case, you could get by without UDF
support."
</para>
<para>
<ulink url="http://www.linuxvideo.org/">DVD Video</ulink>
</para>
<para>
DVD formats:
<programlisting role="small">
Digital Versatile Disc
DVD-5 4.4GB 1side 1 coat ~ 2h video
DVD-9 8.5GB 1side 2 coat ~ 4h video
DVD-10 9.4GB 2side 1 coat ~ 4.5h video
DVD-18 17 GB 2side 2 coat ~ 8h video
</programlisting>
</para>
<!--
how to backup a laptop using the built-in CD/DVD writer?
Splitpipe accepts the streamed output of a program such as tar on
standard input and distributes it over multiple chunks. These chunks
contain labels that guarantee integrity, verify that the entire chunk is
read, and that they are read in the proper order. This allows for the
backup of full filesystems to DVD or CD, at high speed.
http://ds9a.nl/splitpipe/
use regionset: if you have not installed MS first
for video check also DMA
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s23-harddisk">
<title>Hard Disk</title>
<sect2>
<title>Linux Compatibility Check</title>
<para>
Useful programms are <command>hdparm</command>,
<command>dmesg</command>, <command>fsck</command> and
<command>fdisk</command> .
<!--
PIO versus DMA
GAI Temp can read the temperatures acpi, Lm_sensors, and hddtemp
offer and display them in an "undisturbing" way in gnome-panel or as a
dockapp. To allow this flexibility, GAI Temp uses the General Applet
Interface (GAI).
http://leidola.newcon.de/projekte/gai-temp/gai-temp.html
benchmark hdparm -tT ??
-->
</para>
</sect2>
<sect2>
<title>Utilities</title>
<para>
The
<ulink url="http://smartmontools.sourceforge.net/">smartmontools</ulink>
package contains two utility programs (smartctl and smartd)
to control and monitor storage systems using the Self-Monitoring, Analysis and
Reporting Technology System (SMART) built into most modern ATA and SCSI hard
disks. In many cases, these utilities will provide advanced warning of disk
degradation and failure.
</para>
<para>
The <ulink url="http://www.guzu.net/linux/hddtemp.php">hddtemp</ulink>
utility can read the temperature of S.M.A.R.T. hard disks.
</para>
</sect2>
<sect2>
<title>Solid-State-Disks - SSDs</title>
<para>
Solid-State-Disks (SSDS) need some optimization of the Linux file system
before installing the operating system.
Here are some
<ulink url="http://www.thomas-krenn.com/de/wiki/Partition_Alignment">tips and tricks for partition alignment</ulink>.
Also useful some tips from Theodore Ts'o about
<ulink url="http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/">aligning filesystems to an SSD's erase block size</ulink>.
</para>
</sect2>
<sect2>
<title>Miscellaneous</title>
<para>
Be careful when using your laptop abroad. I have heard about some
destroyed harddisks due to a magnetic field emitted from the
magnetic-holds at the backresttable of the seats in a German railway
waggon.
</para>
<para>
Though I am quite satisfied with the quality of the hard disk in my
laptop, when I removed it from the case I unintendedly dropped it. I
recommend to be very careful.
</para>
</sect2>
<sect2>
<title>Form Factors</title>
<para>
AFAIK there are only two form factors for harddisks used in laptops. Since
2003 there is the 1.8" format. But much older and still the most common
format is the 2.5" format. The 2.5" format seems to be available in different heights
(Please note I couldn't verify this information yet):
</para>
<para>
<itemizedlist>
<listitem>
<para>
18mm: laptops built before 1996 usually have drives 18mm high
<!-- Sebastian H. JVC 1.8" -->
</para>
</listitem>
<listitem>
<para>
12.7mm: I got a report about such disks but without a notebook model or manufacturer name
</para>
</listitem>
<listitem>
<para>
11mm: since 1996 the drives are 11mm high
</para>
</listitem>
<listitem>
<para>
9mm: many laptops, including the subnotebooks, now use a 9mm-high
disk drive. The largest available in this format in late 1999 is
<trademark>IBM</trademark> <emphasis>12GN</emphasis>.
</para>
</listitem>
<listitem>
<para>
9.5mm: Toshiba Libretto L70 and L100 have a 9.5mm HD
</para>
</listitem>
<listitem>
<para>
8.45mm: Toshiba Libretto 20, 30, 50 and 60 have 8.45mm tall HDs
</para>
</listitem>
<listitem>
<para>
6.35mm: Toshiba Libretto L1000 has a 6.35mm HD
</para>
</listitem>
</itemizedlist>
</para>
<para>
It might be possible to use a hard disk wich doesn't fit with some case
modifications.
</para>
<para>
Some laptops come with a removable hard disk in a tray, for instance the
KAPOK 9600D. There seem to be no SCSI drives for laptops available.
</para>
</sect2>
<!--
buses: IDE, SATA, SCSI
-->
<sect2>
<title>Manufacturer Tools</title>
<para>
Some hard disk manufacturers offer dedicated tools to change hard disk
parameters. For example Hitachi offers
<ulink url="http://www.hitachigst.com/hdd/support/download.htm">Drive Fitness Test (DFT)</ulink>,
which provides a quick, reliable method to test SCSI and
IDE hard disk drives, including Serial-ATA IDE drives. The Drive Fitness Test
analyze function performs read tests without overwriting customer data.
(However, Drive Fitness Test is bundled with some restoration utilities that
will overwrite data.)
The
<ulink url="http://www.hitachigst.com/hdd/support/download.htm">Feature Tool</ulink>
is a DOS-bootable tool for changing various ATA features.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s24-hotswap">
<title>Hot-Swapping Devices (MultiBay, SelectBay, ..)</title>
<para>
Some laptops (usually the more expensive ones) come
with a free slot, which may bear a second hard disk or CD/DVD drive.
Every manufacturer seems to name it differently,
names like MultiBay(TM) and SelectBay(TM) are common. Different
Linux tools are available to handle these hot-swapping devices.
</para>
<para>
thotswap is part of the
<ulink url="http://www.buzzard.me.uk/toshiba/index.html">Toshiba(tm) Linux Utilities</ulink>
it makes it possible to hotswap devices in the SelectBay.
</para>
<para>
<ulink url="http://timstadelmann.de/hotswap.html">Hotswap</ulink>
is a utility to register and deregister hotswappable IDE
hardware. It is written to be used on Laptops with some sort of
hardware bay to remove the module from the machine without rebooting
it.
Note that this utility is not required to insert or remove batteries
or floppy disk drives; only for IDE devices.
</para>
<para>
The hard disk management tool <command>hdparm</command> also
comes with a hot swap option.
</para>
<para>
Some bays can (in some cases only) carry a second battery. Currently I
don't know how Linux can handle this. For example are there
any tools, which show battery stats for the second battery?
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s24-wlan">
<title>WireLess Network - WLAN</title>
<epigraph>
<attribution>
Bertolt Brecht, 1929
<!--
<ulink url="http://uplate.hp.infoseek.co.jp/">Bertolt Brecht, 1929</ulink>
-->
</attribution>
<para>
For this let us found a city/ And we will name it Mahagonny/ That means: Net City/ She shall be like a Net/ That is
set out to catch edible birds./ Everywhere there is toil and labor/ But here there is amusement/ For it is the
uninhibited lust of men/ Not to suffer and to be allowed all things/ That is the essence of gold
</para>
</epigraph>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Linux.Wireless.drivers.html">Wireless-HOWTO I</ulink>,
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.linux-wlan.org/">Wireless-HOWTO II</ulink> and
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.fuw.edu.pl/~pliszka/hints/wireless.html">Wireless-HOWTO III</ulink>.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Introduction</title>
<!--
minipci_linux.html
WLAN standards, IrDA, BlueTooth, DECT, ...
Centrino
USB adapters
-->
<para>
Many notebooks now come pre-equipped with wireless network support for the
802.11 protocol family. These devices are either based on
<ulink url="http://tuxmobil.org/minipci_linux.html">miniPCI</ulink>
or
<ulink url="http://tuxmobil.org/pcmcia_linux.html">PCMCIA</ulink>.
You may check that with either <command>lspci</command> or
<command>cardctl ident</command>. External WLAN adapters are available
as PCMCIA or CF-Cards and as <acronym>USB</acronym> devices.
Details will follow in a later issue.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s3-bluetooth">
<title>BlueTooth</title>
<para>
Some laptops come pre-equipped with built-in BlueTooth support, but I had
no time to investigate that any further. Actually I do not have such a
machine to test Linux on it yet.
<!-- Sebastian H. these internal BT devices are often USB -->
</para>
</sect1>
<sect1 id="mobile-guide-p2c1s3-infrared-port">
<title>Infrared Port</title>
<epigraph>
<attribution>
Unknown AuthorEss
<!-- Karl Jaspers ?? -->
</attribution>
<para>
Better red, than dead.
</para>
</epigraph>
<sect2>
<title>Linux Compatibility Check</title>
<para>
To get the <trademark class="registered">IrDA</trademark> port of your
laptop working with Linux/<trademark class="registered">IrDA</trademark>
you may use StandardInfraRed (SIR) or FastInfraRed (FIR).
</para>
<sect3>
<title>SIR</title>
<para>
Up to 115.200bps, the infrared port emulates a serial port like the
16550A UART. This will be detected by the kernel serial driver at boot
time, or when you load the <filename>serial</filename> module. If
infrared support is enabled in the BIOS, for most laptops you will get a
kernel message like:
</para>
<para>
<programlisting role="small">
Serial driver version 4.25 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A #first serial port /dev/ttyS0
ttyS01 at 0x3000 (irq = 10) is a 16550A #e.g. infrared port
ttyS02 at 0x0300 (irq = 3) is a 16550A #e.g. <acronym>PCMCIA</acronym> modem port
</programlisting>
</para>
</sect3>
<sect3>
<title>FIR</title>
<para>
If you want to use up to 4Mbps, your machine has to be equipped with a
certain FIR chip. You need a certain Linux/<trademark
class="registered">IrDA</trademark> driver to support this chip.
Therefore you need exact information about the FIR chip. You may get
this information in one of the following ways:
</para>
<para>
<orderedlist>
<listitem>
<para>
Read the <emphasis>specification</emphasis> of the machine, though it is
very rare that you will find enough and reliable information to use
with Linux there.
</para>
</listitem>
<listitem>
<para>
Try to find out whether the FIR chip is a <emphasis>PCI</emphasis>
device. Do a <command>cat /proc/pci</command> . The appropriate files
for 2.2.x kernels are in <filename>/proc/bus/pci</filename> . Though
often the PCI information is incomplete. You may find the latest
information about PCI devices and vendor numbers in the kernel
documentation usually in
<filename>/usr/src/linux/Documentation</filename> or at the page of
<ulink url="http://members.datafast.net.au/~dft0802/">Craig Hart</ulink>
. From kernel 2.1.82 on, you may use <command>lspci</command>
from the <command>pci-utils</command> package, too.
</para>
</listitem>
<listitem>
<para>
Use the <emphasis>DOS tool</emphasis> <command>CTPCI330.EXE</command>
provided in ZIP format by the
<ulink url="http://www.heise.de/ct/ftp/ctsi.shtml">German computer magazine CT</ulink>.
<!--
<ulink url="ftp://www.heise.de/pub/ct/ctsi/ctpci330.zip">ftp://www.heise.de/pub/ct/ctsi/ctpci330.zip</ulink>
-->
The information provided by this program is sometimes better than that provided by the Linux tools.
</para>
</listitem>
<listitem>
<para>
Try to get information about <emphasis>Plug-and-Play (PnP)</emphasis>
devices. Though I didn't use them for this purpose yet, the
<command>isapnp</command> tools, could be useful.
</para>
</listitem>
<listitem>
<para>
If you have installed the <emphasis>Linux/<trademark
class="registered">IrDA</trademark> software</emphasis> load the FIR
modules and watch the output of <command>dmesg</command>, whether FIR is
detected or not.
</para>
</listitem>
<listitem>
<para>
Another way how to figure it out explained by Thomas Davis
(modified by WH): "Dig through the FTP site of the vendor, find the
<emphasis>Windows9x FIR drivers</emphasis>, and they have (for a SMC chip):
<programlisting role="small">
-rw-rw-r-- 1 ratbert ratbert 743 Apr 3 1997 smcirlap.inf
-rw-rw-r-- 1 ratbert ratbert 17021 Mar 24 1997 smcirlap.vxd
-rw-rw-r-- 1 ratbert ratbert 1903 Jul 18 1997 smcser.inf
-rw-rw-r-- 1 ratbert ratbert 31350 Jun 7 1997 smcser.vxd
</programlisting>
If in doubt, always look for the .inf/.vxd drivers for Windows95.
Windows95 doesn't ship with _ANY_ FIR drivers.
(they are all third party, mostly from Counterpoint, who was assimilated by ESI)."
</para>
</listitem>
<listitem>
<para>
Also Thomas Davis found a package of small DOS
<ulink url="ftp://ftp.smsc.com/pub/appsoftware/">utilities</ulink>
made by SMC. The package contains <command>FINDCHIP.EXE</command>.
And includes a <command>FIRSETUP.EXE</command> utility that is
supposed to be able to set all values except the chip address.
Furthermore it contains <command>BIOSDUMP.EXE</command>, which produces this output:
</para>
<para>
Example 1 (from a COMPAQ Armada 1592DT)
</para>
<para>
<programlisting role="small">
In current devNode:
Size = 78
Handle = 14
ID = 0x1105D041 = 'PNP0511' -- Generic IrDA SIR
Types: Base = 0x07, Sub = 0x00, Interface = 0x02
Comm. Device, RS-232, 16550-compatible
Attribute = 0x80
CAN be disabled
CAN be configured
BOTH Static &#38; Dynamic configuration
Allocated Resource Descriptor Block TAG's:
TAG=0x47, Length=7 I/O Tag, 16-bit Decode
Min=0x03E8, Max=0x03E8
Align=0x00, Range=0x08
TAG=0x22, Length=2 IRQ Tag, Mask=0x0010
TAG=0x79, Length=1 END Tag, Data=0x2F
</programlisting>
</para>
<para>
Result 1:
</para>
<para>
<command>Irq Tag, Mask (bit mapped - ) = 0x0010 = 0000 0000 0000 0001 0000</command>
so, it's IRQ 4. (start at 0, count up ..), so this is a
SIR only device, at IRQ=4, IO=x03e8.
</para>
<para>
Example 2 (from an unknown machine)
</para>
<para>
<programlisting role="small">
In current devNode:
Size = 529
Handle = 14
ID = 0x10F0A34D = 'SMCF010' -- SMC IrCC
Types: Base = 0x07, Sub = 0x00, Interface = 0x02
Comm. Device, RS-232, 16550-compatible
Attribute = 0x80
CAN be disabled
CAN be configured
BOTH Static &#38; Dynamic configuration
Allocated Resource Descriptor Block TAG's:
TAG=0x47, Length=7 I/O Tag, 16-bit Decode
Min=0x02F8, Max=0x02F8
Align=0x00, Range=0x08
TAG=0x22, Length=2 IRQ Tag, Mask=0x0008
TAG=0x47, Length=7 I/O Tag, 16-bit Decode
Min=0x02E8, Max=0x02E8
Align=0x00, Range=0x08
TAG=0x2A, Length=2 DMA Tag, Mask=0x02, Info=0x08
TAG=0x79, Length=1 END Tag, Data=0x00
</programlisting>
</para>
<para>
Result 2:
</para>
<para>
a) it's a SMC IrCC chip
</para>
<para>
b) one portion is at 0x02f8, has an io-extent of 8 bytes; irq = 3
</para>
<para>
c) another portion is at 0x02e8, io-extent of 8 bytes; dma = 1 (0x02 =0000 0010)
</para>
<!--
<para>
<ulink url="http://www.jps.net/tadavis/irda/devids.txt">Thomas Davis</ulink>
has placed some device information.
webarchive: in, but document seems to belong to MS: PLUG AND PLAY VENDOR
IDs AND DEVICE IDs
http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/devids.txt
</para>
-->
<warning>
<para>
The package is not intended for the end user, and some of the
utilities could be harmful. The only documentation in the package
is in Microsoft Word format. Linux users may read
this with
<ulink url="http://www.fe.msk.ru/~vitus/catdoc/">catdoc</ulink>.
</para>
</warning>
</listitem>
<listitem>
<para>
Use the <emphasis>Device Manager</emphasis> of the MicroSoft
Windows9x/NT operating system.
</para>
</listitem>
<listitem>
<para>
You may also use the <emphasis>hardware surveys</emphasis> mentioned
below.
</para>
</listitem>
<listitem>
<para>
And as a last resort, you may even <emphasis>open the laptop</emphasis>
and look at the writings at the chipsets themselfs.
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Hardware Survey</title>
<para>
I have made an IrDA hardware survey at
<ulink url="http://tuxmobil.org/ir_misc.html">TuxMobil</ulink>
. This list also contains information about infrared
capable devices which are not mentioned here
(mice, printers, remote control, transceivers, etc.).
</para>
<para>
To make this list more valuable, it is necessary to collect more
information about the infrared devices in different hardware. You can
help by sending me a short e-mail containing the exact name of the
hardware you have and which type of infrared controller is used.
</para>
<para>
Please let me know also how well Linux/<trademark
class="registered">IrDA</trademark> worked (at which tty, port and
interrupt it works and the corresponding infrared device, e.g. printer,
cellular phone).
</para>
<para>
Also you can help by contributing detailed technological information
about some infrared devices, which is necessary for the development of
drivers for Linux.
</para>
</sect3>
</sect2>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/howtos.html">Linux-Infrared-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title><trademark class="registered">IrDA</trademark> Configuration - Survey</title>
<sect3>
<title><trademark class="registered">IrDA</trademark></title>
<para>
The Linux infrared support is still experimental, but rapidly
improving. I try to describe the installation in a
short survey. Please read my
<ulink url="http://tuxmobil.org/howtos.html">Linux-Infrared-HOWTO</ulink>
for detailed information. And visit the
<ulink url="http://irda.sourceforge.net">Linux/IrDA Project</ulink>.
</para>
<sect4>
<title>Kernel</title>
<para>
<orderedlist>
<listitem>
<para>
Get a 2.4.x kernel and the latest Linux/IrDA patches from the
<ulink url="http://irda.sourceforge.net">Linux/IrDA Project</ulink>.
</para>
</listitem>
<listitem>
<para>
Compile it with all <trademark class="registered">IrDA</trademark> options enabled.
</para>
</listitem>
<listitem>
<para>
Also enable experimental, sysctl, serial and network support.
</para>
</listitem>
</orderedlist>
</para>
</sect4>
<sect4>
<title>Software</title>
<para>
<orderedlist>
<listitem>
<para>
Get the Linux <trademark class="registered">IrDA</trademark>
software <command>irda-utils</command> at
<ulink url="http://irda.sourceforge.net/">The Linux IrDA Project</ulink>
.
</para>
</listitem>
<listitem>
<para>
Untar the package.
</para>
</listitem>
<listitem>
<para>
Do a <command>make depend; make all; make install</command>
</para>
</listitem>
</orderedlist>
</para>
</sect4>
<sect4>
<title>Hardware</title>
<para>
<orderedlist>
<listitem>
<para>
Enable the <trademark class="registered">IrDA</trademark> support in the BIOS.
</para>
</listitem>
<listitem>
<para>
Check for SIR or FIR support, as described above.
</para>
</listitem>
<listitem>
<para>
Start the Linux/<trademark class="registered">IrDA</trademark>
service with <command>irattach DEVICE -s 1</command> .
</para>
</listitem>
<listitem>
<para>
Watch the kernel output with <command>dmesg</command> .
</para>
</listitem>
</orderedlist>
</para>
</sect4>
</sect3>
<sect3>
<title>Linux Infrared Remote Control - LIRC</title>
<para>
<ulink url="http://www.lirc.org">Linux Infrared Remote Control LIRC</ulink>
is a package that supports receiving and sending IR signals of the most
common IR remote controls. It contains a device driver for hardware
connected to the serial port, a daemon that decodes and sends IR
signals using this device driver, a mouse daemon that translates IR
signals to mouse movements and a couple of user programs that allow to
control your computer with a remote control. I don't have valid
information about how much infrared remote control is working with
laptop infrared devices.
</para>
</sect3>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c2s2-fingerprint-reader">
<title>FingerPrint Reader</title>
<para>
UPEK, provider of popular fingerprint sensors to IBM's T42 notebooks and others,
has announced that they will be providing a BioAPI compliant library to perform
biometric authentication under Linux. There is also a proposed
<ulink url="http://linuxbiometrics.com/modules/news/article.php?storyid=16">FingerPrint Reade driver</ulink>.
</para>
</sect1>
</chapter>
<chapter id="mobile-guide-p2c2-accessories">
<title>Accessories: PCMCIA, USB and Other External Extensions</title>
<sect1 id="mobile-guide-p2c2s1-pcmcia-cards">
<title><acronym>PCMCIA</acronym> Cards</title>
<sect2>
<title>Card Families</title>
<para>
<orderedlist>
<listitem>
<para>
Ethernet adapter
</para>
</listitem>
<listitem>
<para>
Token Ring adapter
</para>
</listitem>
<listitem>
<para>
Ethernet + Modem / GSM
</para>
</listitem>
<listitem>
<para>
Fax-Modem / GSM adapter
</para>
</listitem>
<listitem>
<para>
SCSI adapter
</para>
</listitem>
<listitem>
<para>
I/O cards: RS232, LPT, RS422, RS485, GamePort,
<trademark class="registered">IrDA</trademark>, Radio, Video
</para>
</listitem>
<listitem>
<para>
Memory cards
</para>
</listitem>
<listitem>
<para>
harddisks
</para>
</listitem>
<listitem>
<para>
2.5" harddisk adapters
</para>
</listitem>
</orderedlist>
</para>
<para>
For desktops there are <acronym>PCMCIA</acronym> slots for ISA and PCI
bus available.
</para>
</sect2>
<sect2>
<title>Linux Compatibility Check</title>
<para>
With the command <command>cardctl ident</command> you may get information
about your card.
If your card is not mentioned in <filename>/etc/pcmcia/config</filename>,
create a file <filename>/etc/pcmcia/&lt;MYCARD&gt;.conf</filename> appropriately.
Take an entry in the first file as a model. You may try every driver, just in
case it might work, for instance the <command>pcnet_cs</command>
supports many NE2000 compatible <acronym>PCMCIA</acronym> network cards.
Note: it is a bad practice to edit <filename>/etc/pcmcia/config</filename>
directly, because all changes will be lost with the next update.
After creating <filename>/etc/pcmcia/&lt;MYCARD&gt;.conf</filename>
restart the PCMCIA services.
<!--
FIXME
this remedy is mentioned twice
describe how to restart a service for different distributions
-->
This may not be enough to get the card to work, but works sometimes for no-name
network cards or modem cards. If you get a card to work or have written a
new driver please don't forget to announce this to
<ulink url="http://pcmcia-cs.sourceforge.net/">the developer of the <acronym>PCMCIA</acronym>-CS package David Hinds</ulink>.
Look at the current issue of
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/SUPPORTED.CARDS">SUPPORTED.CARDS</ulink>
to get information about supported cards.
</para>
<para>
Since not all cards are mentioned there, I have set up a
<ulink url="http://tuxmobil.org/pcmcia_linux.html">Survey of <acronym>PCMCIA</acronym>/CardBus/CF Cards Supported by Linux</ulink>.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c2s2-expresscards">
<title>ExpressCards</title>
<para>
ExpressCard is the official standard for modular expansion for desktop and
mobile systems based on PCI-Express. These cards offer a smaller and
faster PC Card solution.
Here is the
<ulink url="http://tuxmobil.org/expresscard_linux.html">Linux Hardware Compatibility List - HCL for
ExpressCards</ulink>, which includes a survey of
<ulink url="http://tuxmobil.org/expresscard_linux.html">Linux installations on laptops and notebooks which feature an ExpressCard slot</ulink>.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s2-smartcards">
<title>SmartCards</title>
<para>
SmartCard reader, see Project Muscle -
<ulink url="http://www.linuxnet.com/smartcard/index.html">Movement for the Use of Smart Cards in a Linux Environment</ulink>
and the
<ulink url="http://tuxmobil.org/smart_linux.html">Linux Hardware Compatibility List - HCL for SmartCards</ulink>.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s2-sdio-cards">
<title>SDIO Cards</title>
<para>
Looking for
<ulink url="http://tuxmobil.org/sdio_linux.html">Linux drivers for SDIO cards</ulink>?
There is almost nothing available yet. But here are at least some pointers.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s3-memory-technology-devices">
<title>Memory Technology Devices - RAM and Flash Cards</title>
<para>
<ulink url="http://www.linux-mtd.infradead.org/">The Linux Memory Technology Device</ulink>
project aims to provide a unified subsystem for handling RAM and
Flash cards (Memory Technology Devices). It is intended to be
compatible with the Linux <acronym>PCMCIA</acronym> code, to prevent
duplication of code and effort, yet its main target is small
embedded systems, so it will be possible to compile the drivers into
the kernel for use as a root filesystem, and a close eye will be
kept on the memory footprint.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s1-memory-stick">
<title>Memory Stick</title>
<para>
The Memory Stick is a proprietary memory device, in the beginning only used in
devices made by SONY. But now they are available in mobile computers made by
other manufacturers, too. The current sticks are USB devices and work with
all recent kernels. After loading the <filename>usb-storage</filename>
you may mount them as SCSI devices, often as
<filename>/dev/sda</filename> or <filename>/dev/sdb</filename>.
For older laptops see the appropriate pages at Linux-on-Laptops.
</para>
<para>
There is also a SONY Memory Stick Floppy Adapter - MSAC-FD2M. I don't
know whether this works with Linux.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s1-card-reader">
<title>Card Readers for SD/MMC/Memory Stick</title>
<sect2>
<title>External Readers</title>
<para>
All external SD/MMC/CF-Card/Memory Stick readers are USB devices
and work fine with the <command>usb-storage</command> module.
The only caveat which might occur is that you may have difficulties
to determine the device assignment. Just use <command>dmesg</command>
after you have connected the reader. The command should show
a SCSI device like <filename>/dev/sda1</filename> assigned to
the USB drive.
</para>
</sect2>
<sect2>
<title>Internal Readers</title>
<para>
Currently there are three kinds of devices available: USB, PCMCIA and
PCI devices.
</para>
<para>
USB devices are seldom, but usually work out of the box. They behave
like the external readers mentioned above.
<!--
Xeron N.N.
-->
</para>
<para>
Some readers are PCMCIA/CardBus devices. Often such a reader is located
near the CardBus slot. The command <command>cardctl ident</command>
will reveal these cards.
</para>
<para>
For some laptops and notebooks a
<ulink url="http://projects.drzeus.cx/wbsd">driver for the Winbond's W83L518D and W83L519D SD/MMC card reader</ulink>
is available.
<!--
Acer Aspire 1501 LMi
HP/Compaq nx7010
-->
</para>
<para>
Some proprietary devices are not yet known to work with Linux. Except the
readers built into the SHARP Linux PDAs, but the driver is closed
source and available as a binary only for the ARM CPU.
<!--
ASUS M6800N, S5200N
-->
</para>
<!--
Memory stick / SD card reader The reader seems to be attached via the
RICOH CardBus controller R/RL/5C476 (II). When inserting a memory stick I
get the following in /var/log/messages:
Jul 29 13:24:02 localhost cardmgr[3880]: unsupported card in socket 0
Jul 29 13:24:03 localhost cardmgr[3880]: product info: "RICOH", "Bay2Controller"
Jul 29 13:24:03 localhost cardmgr[3880]: function: 254 ((null))
http://www.geocities.com/q20linux/
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c2s4-usb-devices">
<title>USB Devices</title>
<para>
For more info about this and other Linux-compatible USB
devices see the
<ulink url="http://www.qbik.ch/usb/devices/">USB Survey</ulink>
and my
<ulink url="http://tuxmobil.org/usb_linux.html">Mobile USB Linux Hardware Survey</ulink>
.
</para>
<sect2>
<title>Ethernet Devices</title>
<para>
From kernel source 2.4.4:
<itemizedlist>
<listitem><para>ADMtek AN986 Pegasus (eval. board)</para></listitem>
<listitem><para>ADMtek ADM8511 Pegasus II (eval. board)</para></listitem>
<listitem><para>Accton 10/100</para></listitem>
<listitem><para>Billington USB-100</para></listitem>
<listitem><para>Corega FEter USB-TX</para></listitem>
<listitem><para>MELCO/BUFFALO LUA-TX</para></listitem>
<listitem><para>D-Link DSB-650TX, DSB-650TX-PNA, DSB-650, DU-E10, DU-E100</para></listitem>
<listitem><para>Linksys USB100TX, USB10TX</para></listitem>
<listitem><para>LANEED Ethernet LD-USB/TX</para></listitem>
<listitem><para>SMC 202</para></listitem>
<listitem><para>SOHOware NUB Ethernet</para></listitem>
</itemizedlist>
Any Pegasus II based board also are supported.
If you have devices with vendor IDs other than noted above
you should add them in the driver code and send a message
to &lt;petkan_AT_dce.bg&gt; for update.
</para>
</sect2>
<sect2>
<title>BlueTooth Dongles</title>
<para>
There are many dongles around. I have made some experience with the
<ulink url="http://www.aircable.net/">AIRcable</ulink>
for laptops and PDAs (e.g. SHARP's Zaurus models SL-5x00 and C-7x0). This
USB dongle kit provides a fast, convenient way of connecting mobile Linux
computers to another personal computer or notebook computer or
mobile phone without any cabling. The AIRcable uses a
BlueTooth connection without the need to set up a complicated
BlueTooth configuration. For example: The AIRcable Zaurus-USB
can be used for syncing the Zaurus (ZaurusManager, Intellisync),
for Qtopia desktop and for network connections through
the PC (Linux, Windows and Apple) running pppd.
You may find further details and a
<ulink url="http://tuxmobil.org/bluetooth_linux.html">survey of compatible mobile phones etc.</ulink>
at TuxMobil.
</para>
</sect2>
<sect2>
<title>Port Replicators/Docking Stations</title>
<para>
I do not have experience with these devices yet. But I expect that
it will be difficult, if not impossible, to get them to run with Linux.
For other kinds of port replicators and docking stations see the
appropriate section in the laptop chapter.
<!--
FIXME
xref
why two chapters?
CT xx/2003
-->
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c2s4-printers-and-scanners">
<title>Printers and Scanners</title>
<sect2>
<title>Survey of Mobile Printers and Scanners</title>
<!--
see also mobile printing section below
-->
<para>
For a survey of ports and protocol to print via a mobile or stationary
printer see the Different Environments chapter below.
</para>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.canon.com/">CANON</ulink>
: BJC-80 (this printer can also be used as a scanner with the optional
scan head!) David F. Davey wrote: "I finally have a Canon BJC-80
printer working properly with <trademark
class="registered">IrDA</trademark>. By properly I mean as a
pseudo-PostScript device by way of <command>ghostscript</command> and
a modified <command>lpd</command>.
</para>
<para>
How:
</para>
<para>
<itemizedlist>
<listitem>
<para>
linux-2.2.7-ac2-irda6
</para>
</listitem>
<listitem>
<para>
<command>/proc/sys/net/irda/slot_timeout</command> increased to 10
(essential or discovery fails)
</para>
</listitem>
<listitem>
<para>
<command>ghostscript</command> DEVICE set to bjc600
</para>
</listitem>
<listitem>
<para>
<filename>printcap</filename> includes:
<programlisting role="small">
:xc#01777777:\
:fc#017:\
:fs#020000010002:
</programlisting>
</para>
</listitem>
<listitem>
<para>
and <command>lpd</command> had to be modified to accept the ulong
<emphasis>fs</emphasis> and to handle <emphasis>xc</emphasis> (which is
documented but not coded in the lpd's I have looked at). "
</para>
</listitem>
</itemizedlist>
</para>
<para>
For further information look at his page
<ulink url="http://www.windclimber.net/linux/bjc-80.pcgi">BJC-80</ulink>
.
</para>
<para>
Tim Auckland wrote: Would my version of <command>lpd</command> help?
<command>unixlpr</command> is a portable version of the lpr/lpd suite,
compatible with traditional versions and
<ulink url="http://rfc.net">RFC</ulink>
1179 and with a couple of
minor extensions, including the <command>:ms=</command> field (also seen
in SunOS 4) and the ability to print directly to TCP connected printers
without needing special filters. <command>ms</command> allows you to
configure the tty using stty arguments directly, so if stty can handle
the extended flags, my <command>lpd</command> should handle <trademark
class="registered">IrDA</trademark> <emphasis>out of the box</emphasis>.
You can find the latest <command>unixlpr</command>
<ulink url="http://www.geocities.com/CapeCanaveral/Hall/7203/Printing/">here</ulink>
.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.canon.com/">CANON</ulink>
: BJC-50 65&percnt; of the size of the BJC-80,
Li-Ion battery included, and basically the same features as the BJC-80.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.canon.com/">CANON</ulink>
: BJ-30
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.citizen-america.com/">Citizen</ulink>
: CN-60
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.pentaxtech.com/">Pentax</ulink>
: Pocketjet
</para>
</listitem>
<listitem>
<para>
HP: DeskJet 340Cbi. This is a small, portable, low-duty-cycle printer.
It prints either black, or color (3 color). I have had some problems
with it loading paper. Overall, the small size and portability make it a
nice unit for use with laptops. I use the HP 500/500C driver with Linux.
</para>
</listitem>
<listitem>
<para>
Olivetti: JP-90
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.maxpointgmbh.de">MaxPoint</ulink>
: TravelScan, mobile scanner for the <acronym>PCMCIA</acronym> port.
</para>
</listitem>
</orderedlist>
</para>
<para>
AFAIK only the HP DeskJet 340Cbi and the BJC-80 machine have an infrared
port. Pay attention to the supplied voltage of the power supply if you
plan to travel abroad. I couldn't check the scan functionalities with Linux yet.
</para>
</sect2>
<sect2>
<title>Scanner and OCR Software</title>
<para>
<ulink url="http://www.mostang.com/sane/">SANE</ulink>
stands for <emphasis>Scanner Access Now Easy</emphasis> and is an
application programming interface (API) that provides standardized
access to any raster image scanner hardware (flatbed scanner, hand-held
scanner, video- and still-cameras, frame-grabbers, etc.). The SANE
standard is free and its discussion and development is open to
everybody. The current source code is written for
<acronym>UNIX</acronym> (including Linux) and is available under the
GNU public license (commercial application and backends are welcome,
too, however).
</para>
<para>
<ulink url="http://altmark.nat.uni-magdeburg.de/~jschulen/ocr/">GOCR</ulink>
is optical character recognition software. It converts PGM files into ASC files.
</para>
<para>
For scanner drivers see
<ulink url="http://www.willamowius.de/scanner.html">Linux Drivers for Handheld Scanners</ulink>.
</para>
</sect2>
<sect2>
<title>Connectivity</title>
<para>
There are different ways to connect a printer or scanner to a laptop.
For printers usually: parallel port, serial port, <acronym>USB</acronym>
and <trademark class="registered">IrDA</trademark> port. For scanners
usually: parallel port, SCSI (via <acronym>PCMCIA</acronym> or generic
SCSI port), <acronym>USB</acronym> and <acronym>PCMCIA</acronym> port.
All of them need the appropriate kernel drivers.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p3c4s1-pda-serial-devices">
<title>Serial Devices</title>
<sect2>
<title>Keyspan PDA Serial Adapter</title>
<para>
Single port DB-9 serial adapter, pushed as a PDA adapter for iMacs (mostly
sold in Macintosh catalogs, comes in a translucent white/green dongle).
Fairly simple device.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p3c4s1-external-storage">
<title>External Storage Devices</title>
<sect2>
<title>External Hard Disks</title>
<para>
There are external hard disk cases with different connectors available:
PCMCIA, USB and FireWire. Cases are available for 2.5" (laptop hard disks),
3.5" (desktop hard disks) and 5.25" (CD-Writer).
All of them work very well together with Linux. Especially I like
the cases for 2.5" hard disks, you may upgrade your current laptop
hard disk and use the old one to put it into the external box to
extend your hard disk space.
</para>
<para>
Caveat: After wake up from suspend mode, the external hard drive
can't work. To cure this problem these remedies might help:
Disconnect the external drive and then plug it in again.
Or use an AC adapter to power the external drive. Though this seems
unconvenient in a suspend situation. But since the external drive
gets the power from the adapter, there is no disconnection from
power as will be if power is provided from USB.
</para>
<para>
Caveat: Take care that the jumpers are set to Master. Almost
all external hard disk cases will not work when the
jumpers are set to Slave or Cable Select.
</para>
</sect2>
<!--
USB Sticks
Memory Sticks
SD/MMC Card Reader
Floppy Drives
external CD/DVD CD-RW/DVD-RW
-->
</sect1>
<sect1 id="mobile-guide-p2c2s5-power-and-phone-plugs">
<title>Power and Phone Plugs, Power Supply</title>
<para>
When travelling abroad you might consider to take a set of different
power and phone plugs with you. Also, it's useful if you can change the
input voltage of the power supply, for instance from 110V in the US to
220V in Germany. There also power supplies for 12V batteries from cars.
</para>
<para>
Some models of power plugs:
<programlisting role="small">
____ _
/ () \ _ _ _ _ _(_)_
frontal view: |() ()| (_)=(_) (_) (_) (_) (_)
------
abbrevation.: C13 C8 ?? PS/2 C5
symbol......: ?? ?? -O)- N.N. N.N.
</programlisting>
<!--
see ASUS L3800C user guide
-->
</para>
<warning>
<para>
Though some -O)- shaped plug may seem to be compatible with your laptop, because
of the appropriate physical size, take extreme care it uses the same
plus-minus voltage scheme, for instance plus for the inner ring and
minus for the outer one. Often, but not always, there are the appropriate
symbols near the plug.
</para>
</warning>
<para>
More about laptop and PDA power supplies at
<ulink url="http://tuxmobil.org/energy_laptops.html">TuxMobil</ulink>.
</para>
</sect1>
<sect1 id="mobile-guide-p2c2s6-bags-and-suitcases">
<title>Bags and Suitcases</title>
<para>
You probably wonder, why I include this topic here. But shortly after
using my COMPAQ Armada 1592DT I recognized that the rear side of the
machine (where the ports are arranged) was slightly damaged. Though I
have taken much care when transporting the laptop, this was caused by
putting the bag on the floor. It seems that the laptop has so much
weight, that it bounces inside the bag on its own rear side. So I
decided to put a soft pad into the bag before loading the laptop. A good
bag is highly recommended if you take your laptop on trips, or take it
home every night.
</para>
<para>
Laptops computers are frequently demolished in their carrying bag. The
two main causes of demolition are poking the LC display and banging the
edges. A good case has very stiff sides to spread out pokes, and lots of
energy-absorbent padding around the edges to help when you whack it on
the door jamb. Few cases actually have either of these features.
</para>
<para>
More laptops are lost to theft than damage, so camouflage is a wise too.
Emerson, Tom # El Monte &lt;TOMEMERSON_AT_ms.globalpay.com&gt; wrote: "I
use for a laptop <emphasis>travelling bag</emphasis>: a Pyrex
<emphasis>casserole carrier</emphasis> bag. Yup, you might think it
<emphasis>odd</emphasis> to use a casserole bag for a laptop, but it
turns out it has several advantages:
</para>
<para>
<itemizedlist>
<listitem>
<para> The one I use has a microwavable heating pad in it - while I
don't actually heat this pad (it's meant to keep food warm while in
transport), it does provide padding underneath the laptop. The carrier
I have only has a lower - heating - pad, but there is also a similar
carrier that has both a lower - heating - pad and an upper - cooling -
pad - placed in the freezer to get it cold - -- the intent is that you
keep one or the other in the bag to keep your food hot or cold as
desired. A secondary advantage to the - cooling pad - pad is that if
you've - chilled - it before taking the computer out for the day, it
will keep the CPU cooler while you're running the laptop...
</para>
</listitem>
<listitem>
<para>
the top of the bag has a zipper on three sides, so it - opens - the
same way as my laptop - I don't even need to take it out of the carrier
to use the laptop
</para>
</listitem>
<listitem>
<para>
there is enough room at the side of the bag to store the external power
supply, a regular Logitech mouseman, and the network - dongle - with
BNC/TP ports - and if I had it, the modem/phone port as well -
</para>
</listitem>
<listitem>
<para>
there is enough clearance on top of the machine to include a handful of
CD's or diskettes, if needed.
</para>
</listitem>
<listitem>
<para>
when it's left - unattended - in a car, it's less likely to be stolen -
think about it, if you were a thief walking through a parking lot and
eyeing the contents of cars, a - laptop bag - is instantly
recognizable as holding a laptop computer - something that can be fenced
at a pretty hefty profit, but if you saw a casserole carrier in the
front seat of a car, would you think it contained anything OTHER than a
casserole? - and probably half-eaten, at that... - Unless you are a
hungry thief, chances are you'll skip this and move on.
</para>
</listitem>
<listitem>
<para>
likewise, I've heard that keeping a laptop computer in a diaper bag is
another good - camouflage - technique - who in their right mind is
going to steal a bag of - dirty - diapers?"
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
</chapter>
</part>
<!-- PART FOUR B ============================================================= -->
<part id="mobile-guide-p5-kernel">
<title>Kernel</title>
<chapter id="mobile-guide-p5c1-kernel-history">
<title>Kernel History</title>
<para>
The kernel chapter isn't ready yet. Just some notes about important
changes with kernel 2.4 and 2.6 related to mobile computers. As well
as some notes about Kernel configurations for laptops.
</para>
<sect1 id="mobile-guide-p2c1s1-kernel-2-4">
<title>Kernel 2.4</title>
<sect2>
<title>PCMCIA</title>
<para>
From
<ulink url="http://www.pcmcia.org/">PCMCIA.ORG</ulink>:
<quote>
PCMCIA (Personal Computer Memory Card International Association) is an
international standards body and trade association with over 200 member companies
that was founded in 1989 to establish standards for Integrated Circuit cards and to
promote interchangeability among mobile computers where ruggedness, low power,
and small size were critical. As the needs of mobile computer users have changed, so
has the PC Card Standard. By 1991, PCMCIA had defined an I/O interface for the
same 68 pin connector initially used for memory cards. At the same time, the Socket
Services Specification was added and was soon followed by the Card Services
Specifcation as developers realized that common software would be needed to
enhance compatibility.
</quote>
The cards are available in different formats: Type I, II, III.
</para>
<para>
A quotation from the <filename>../Documentation/Changes</filename> file:
"PCMCIA (PC Card) support is now partially implemented in the main
kernel source. Pay attention when you recompile your kernel. If you
need to use the <command>PCMCIA-CS</command> modules, then don't compile
the kernel's PCMCIA support. If you don't need to use the PCMCIA-CS
modules (i.e. all the drivers you need are in the kernel sources), then
don't compile them; you won't need anything in there. Also, be sure to
upgrade to the latest <command>PCMCIA-CS</command> release." Further
information you may get from the README-2.4 included with this package.
</para>
<para>
You may find an example kernel configuration for laptops in the
<xref linkend="mobile-guide-a12-kernel-configuration"/>.
<!-- appendix J -->
</para>
</sect2>
<sect2>
<title>Powermanagement</title>
<para>
At the moment there are two power management drivers in the linux kernel
(AFAIK). They each have different userspace interfaces
<filename>/proc/apm/</filename> and <filename>/dev/apmctl/</filename> and
<filename>/proc/acpi/</filename> or something.
</para>
<para>
For further information see the page of
<ulink url="http://john.fremlin.de/linux/offbutton/index.html">John Fremlin</ulink>
. He has also written a program named <command>powermanager</command>.
</para>
<para>
With kernel 2.4 there is <acronym>ACPI</acronym> available, see
<acronym>ACPI</acronym> chapter below.
</para>
<para>
The SuSE
<ulink url="http://forge.novell.com/modules/xfmod/cvs/cvsbrowse.php/powersave/">Powersave Daemon</ulink>
provides battery, temperature, AC, and CPU
frequency control and monitoring along with proper suspend to disk/RAM and
standby support with shell hooks that are easy to extend. It supports APM
and ACPI machines and can control a hard disk's advanced power and
acoustic management settings. It is perfect for laptops and workstations
that need to run quietly with low power consumption, or switch to full
performance mode if needed. Self definable power schemes give full control
over power control features and allow easy and automatic switching between
performance or power saving settings for each hardware component.
</para>
</sect2>
<sect2>
<title>Hotplug</title>
<para>
There is a new
<ulink url="http://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel">mailing list</ulink>
for developers interested in any aspects of the Linux
kernel hotplug ability and functionality. This would include (but is
not restricted to) USB, PCMCIA, SCSI, Firewire, and probably PCI
developers.
There is an initial
<ulink url="http://sourceforge.net/projects/linux-hotplug/">SourceForge</ulink>
site.
</para>
<para>
Kernel Support for Hot-Plugable Devices
<programlisting role="small">
CONFIG_HOTPLUG
Say Y here if you want to plug devices into your computer while
the system is running, and be able to use them quickly. In many
cases, the devices can likewise be unplugged at any time too.
One well known example of this is PCMCIA- or PC-cards, credit-card
size devices such as network cards, modems or hard drives which are
plugged into slots found on all modern laptop computers. Another
example, used on modern desktops as well as laptops, is USB.
Enable HOTPLUG and KMOD, and build a modular kernel. Get
<ulink url="http://linux-hotplug.sourceforge.net">agent software</ulink>
and install it. Then your kernel will automatically call out to a
user mode "policy agent" (<command>/sbin/hotplug</command>) to
load modules and set up software needed to use devices as
you hotplug them.
</programlisting>
</para>
<!-- hotplug versus udev and HAL -->
</sect2>
</sect1>
<sect1 id="mobile-guide-p2c1s1-kernel-2-6">
<title>Kernel 2.6</title>
<!--
ide-scsi no longer necessary for burning of CDs
-->
<sect2>
<title>PCMCIA</title>
<para>
<ulink url="http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html">PCMCIAutils</ulink>
contains hotplug scripts and initialization tools necessary to
allow the PCMCIA subsystem to behave (almost) as every other hotpluggable
bus system (e.g. USB, IEEE1394).
Please note that the kernel support for this new feature is only present
since 2.6.13-rc1.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-a12-kernel-configuration">
<title>Kernel Configuration for Laptops</title>
<para>
You may find an example for 2.4.x kernels
<ulink url="http://tuxmobil.org/kernel_config_laptop.html">here</ulink>
Please note: <emphasis>Don't</emphasis> use this file by default, please use
always <command>make config</command>, <command>make menuconfig</command>
or <command>make xconfig</command>
to create a kernel configuration file. See
<ulink url="http://tldp.org/HOWTO/Kernel-HOWTO/">Kernel-HOWTO</ulink>
(from TLDP) for details.
Thomas Hertweck has written another useful
<ulink url="http://www.thomashertweck.de/kernel.html">Linux-Kernel-HOWTO</ulink>
(but it is only available in German and Italian).
</para>
<para>
<ulink url="http://savannah.nongnu.org/projects/laptopkernel/">laptopkernel</ulink>
is a patchset for the Linux kernel containing several useful
patches for laptop-users. It contains acpi, software suspend, supermount
and some hardware compatibility patches. Unfortunately this project is not
maintained anymore since 2003.
</para>
</sect1>
</chapter>
</part>
<!-- PART FIVE ============================================================= -->
<part id="mobile-guide-p5-on-the-road">
<title>On the Road</title>
<chapter id="mobile-guide-p5c1-different-environments">
<title>Different Environments</title>
<epigraph>
<attribution>
Confucius, 450 B.C.
</attribution>
<para>
Tell me and I might forget. Show me and I can remember. Involve me and I will understand.
</para>
</epigraph>
<sect1 id="mobile-guide-p5c1s1-related-howtos">
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Security-HOWTO/index.html">Security-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Multiboot-with-LILO.html">Multiboot-with-LILO-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Ethernet-HOWTO.html">Ethernet-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/NET3-4-HOWTO.html">Networking-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Offline-Mailing.html">Offline-Mailing-mini-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/PLIP.html">Plip-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/SLIP-PPP-Emulator/">Slip-PPP-Emulator-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
<para>
If you are using Debian GNU/Linux then you should refer to the
Debian Reference chapter entitled "Network configuration".
Debian contains a number of packages that help to make roaming
among different networks effortless.
<!--
FIXME
provide URL
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c1s2-configuration-tools">
<title>Configuration Tools</title>
<sect2>
<title>NetEnv</title>
<para>
Do you use your laptop in different network environments? At home? In
the office? At a customers site?
</para>
<para>
If yes, the small package "netenv" might be useful for you. When booting
your laptop it provides you with a simple interface from which you can
choose the current network environment. The first time in a new
environment, you can enter the basic data and save it for later reuse.
</para>
<para>
Netenv sets up a file containing variable assignments which describe the
current environment. This can be used by the <acronym>PCMCIA</acronym>
setup scheme, e.g. like the one that comes with Debian/GNU Linux and
perhaps others.
</para>
<para>
The netenv data can be used for things like:
</para>
<para>
<orderedlist>
<listitem>
<para>
Network Device: Configure the network device for different environments.
</para>
</listitem>
<listitem>
<para>
Choose a proper <filename>XF86Config</filename>: Think of using your
laptop standalone with touchpad vs. connected to a CRT monitor along
with an external mouse. For example, a wheel mouse could be used when
docked, but the driver is not compatible with the normal trackpoint or
touchpad.
</para>
</listitem>
<listitem>
<para>
Windowmanager: You can set up your windowmanager appropriate to the
current location of your machine.
</para>
</listitem>
<listitem>
<para>
Printing Environment: The netenv data can easily be used to set up the
printing environment.
</para>
</listitem>
</orderedlist>
</para>
<para>
Netenv is available at
<ulink url="http://netenv.sourceforge.net">netenv home</ulink>.
It depends on <command>dialog(1)</command> for its menu interface.
Netenv was developed by Gerd Bavendiek.
</para>
</sect2>
<sect2>
<title>System Configuration Profile Management - SCPM</title>
<para>
SuSE's
<ulink url="http://forge.novell.com/modules/xfmod/project/?scpm">System Configuration Profile Management - SCPM</ulink>
software allows you to switch configuration profiles.
You can boot directly into one profile and then switch to another
profile at run time. This is the successor of SuSE's older "scheme"
management software.
</para>
</sect2>
<sect2>
<title>ifplugd</title>
<para>
<ulink url="http://0pointer.de/lennart/projects/ifplugd/">ifplugd</ulink>
is a lightweight Linux daemon which configures the network
automatically when a cable is plugged in and deconfigures it when the
cable is pulled. It is primarily intended for usage with laptops. It
relies on the distribution's native network configuration subsystem, and
is thus not very intrusive.
<!--
netplugd monitors one or more network interfaces, running a script
when their state changes. The monitored parameters are: whether the
interface is interface up or down, whether the interface is running, and
whether the link beat is detected (that is, a network cable is plugged in
the adapter socket and the hub is on).
http://people.debian.org/~enrico/netplugd.html
-->
</para>
</sect2>
<sect2>
<title>divine</title>
<para>
<ulink url="http://www.fefe.de/divine/">divine</ulink>
is an utility for people who use their machines in different
networks all the time. "The idea is this:
</para>
<para>
<itemizedlist>
<listitem>
<para>
you describe the possible networks in /etc/divine.conf, including one or
more machines that are probably up (routers and NIS servers come to
mind).
</para>
</listitem>
<listitem>
<para>
at boot time, you run divine.
</para>
</listitem>
<listitem>
<para>
<command>divine</command> starts a thread that injects fake arp requests
into the network. The thread will try again up to three times, pausing
1 second between retries. If the last try times out again, the thread
will print an error message, leave the interface in the original state
and exit cleanly.
</para>
</listitem>
<listitem>
<para>
the main thread just looks for arp replies and exits if one is found.
</para>
</listitem>
<listitem>
<para>
You have one <filename>resolv.conf</filename> per network, for example
<filename>/etc/resolv.conf.default</filename> and
<filename>/etc/resolv.conf.work</filename>. <command>divine</command>
will symlink one of them to <filename>/etc/resolv.conf</filename> for
you.
</para>
</listitem>
<listitem>
<para>
You can specify a proxy server plus port and divine
will write the proxy server to
<filename>/etc/proxy</filename>. This can be evaluated
inside your shell startup script, like this (<command>zsh</command>):
<programlisting role="small">
export http_proxy="http://`&lt;/etc/proxy`/"
</programlisting>
The included perl script edit-netscape-proxy.pl
will edit the proxy settings in your Netscape 4 preferences file.
</para>
</listitem>
<listitem>
<para>
You can even specify an additional script to be run for each selection.
You can use this to edit <filename>/etc/printcap</filename> or
<filename>/etc/issue</filename> or do something else I forgot.
</para>
</listitem>
</itemizedlist>
</para>
<para>
The point about <command>divine</command> in contrast to other solutions
is that other solutions normally use <command>ping</command> or
something like that. <command>divine</command> can check a large number
of networks instantaneously, assuming that the machines you ping answer
within one second (.4 seconds are normal on Ethernets). And pinging an
unknown address will do an arp request anyway, so why not do an arp
request in the first place?"
</para>
</sect2>
<sect2>
<title>Mobile IP</title>
<para>
From the
<ulink url="http://tldp.org/HOWTO/NET3-4-HOWTO.html">Networking-HOWTO</ulink>
: "The term <emphasis>IP Mobility</emphasis>
describes the ability of a host that is able to move its network
connection from one point on the Internet to another without changing
its IP address or losing connectivity. Usually when an IP host changes
its point of connectivity it must also change its IP address. IP
Mobility overcomes this problem by allocating a fixed IP address to the
mobile host and using IP encapsulation (tunneling) with automatic
routing to ensure that datagrams destined for it are routed to the
actual IP address it is currently using."
</para>
<para>
<!--
<ulink url="http://www.cs.hut.fi/Research/Dynamics">HUT Mobile IP</ulink>
-->
<ulink url="http://dynamics.sourceforge.net/">Dynamics Mobile IP</ulink>
is a dynamical, hierarchical Mobile IP system for Linux operating system.
The implementation enables a hierarchical model for IP mobility, thus
decreasing the location update times as a mobile host moves. Dynamics
system has been designed Wireless LAN technology in mind, and the system
has optimized functionality for mobility in WLAN.
</para>
<para>
See also
<ulink url="http://tuxmobil.org/manet_linux.html">Linux and Mobile AdHoc Networks - MANETs</ulink>.
</para>
<sect3>
<title>Resources</title>
<para>
<orderedlist>
<!--
<listitem>
<para>
<ulink url="http://anchor.cs.binghamton.edu/~mobileip/">Linux Mobile-IP</ulink>
webarchive: in, but not much
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/MobileIP/index.html">Linux Mobile IP from HP Labs Bristol</ulink>
by Manuel Rodriguez.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://mosquitonet.Stanford.EDU/software/mip.html">MosquitoNet Mobile IP</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://mip.ee.nus.sg/">Mobile IP at NUS</ulink>
webarchive: in, but not much
</para>
</listitem>
<listitem>
<para>
<ulink url="http://anchor.cs.binghamton.edu/~mobileip/">Linux Mobile-IP</ulink>
webarchive: in, but not much
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://http.cs.berkeley.edu/~randy/Daedalus/BARWAN/">Bay Area Research Wireless Access Network</ulink>
- BARWAN
</para>
</listitem>
</orderedlist>
</para>
<para>
Sources: Kenneth E. Harker and Dag Brattli
</para>
</sect3>
</sect2>
<sect2>
<title>DHCP/BootP</title>
<para>
DHCP and BootP are also useful for working in different environments.
Please see the
<ulink url="http://tldp.org/HOWTO/DHCP/index.html">DHCP-HOWTO</ulink>
.
<!--
and
<ulink url="http://www.tldp.org/">BootP-HOWTO</ulink>
-->
</para>
</sect2>
<sect2>
<title>PPPD Options</title>
<para>
The <command>pppd</command> command can be configured via several
different files:
<command>pppd file /etc/ppp/&lt;your_options&gt;</command> .
</para>
</sect2>
<sect2>
<title>/etc/init.d</title>
<para>
You may even choose to do your configuration by editing the
<filename>/etc/init.d</filename> files manually.
</para>
</sect2>
<sect2>
<title><acronym>PCMCIA</acronym> - Schemes</title>
<para>
How can I have separate <acronym>PCMCIA</acronym> device setups for home
and work? This is fairly easy using <acronym>PCMCIA</acronym>
<emphasis>scheme</emphasis> support. Use two configuration schemes,
called <command>home</command> and <command>work</command>. For details
please read the appropriate chapter in the
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>.
</para>
</sect2>
<sect2>
<title>Bootloaders</title>
<sect3>
<title>LILO</title>
<para>
From Martin J. Evans
<!--
<ulink url="http://www.mjedev.demon.co.uk/index.html">Martin J. Evans</ulink>
link invalid
-->
I have taken this recommendation: The first point to note is that
<command>init</command> will take any arguments of the form
<command>name=value</command> as environment variable assignments if
they are not recognized as something else. This means you can set
environment variables from the LILO boot prompt before your rc scripts
run. I set the <command>LOCATION</command> environment variable
depending on where I am when I boot Linux. e.g.
<programlisting role="small">
LILO: linux LOCATION=home
</programlisting>
Or
<programlisting role="small">
LILO: linux LOCATION=work
</programlisting>
Or simply
<programlisting role="small">
LILO: linux
</programlisting>
where failing to set <command>LOCATION</command> means the same as
<command>LOCATION=home</command> (i.e. my default). Instead of typing
<command>LOCATION=place</command> each time you boot you can add an
entry to your <filename>/etc/lilo.conf</filename> file and use the
append instruction. e.g.
<programlisting role="small">
# Linux bootable partition for booting Linux at home
#
image = /vmlinuz
root = /dev/hda3
label = linux
read-only
# Linux bootable partition config ends
#
# Linux bootable partition for booting Linux at work
#
image = /vmlinuz
root = /dev/hda3
label = work
read-only
append="LOCATION=work"
# Linux bootable partition config ends
</programlisting>
With the example above you can use "linux"
for booting at home and "work" for booting at work.
</para>
<para>
Armed with the facility above, you can now edit the relevant rc scripts
to test ENVIRONMENT before running <command>ifconfig</command>, setting
up <command>route</command> etc.
</para>
</sect3>
<sect3>
<title>Other Bootloaders</title>
<para>
There are several other bootloaders which are often overlooked.
Besides LILO, have a look at loadlin, CHooseOS (CHOS) (not GPL), GRand
Unified Bootloader (GRUB), System Commander and take a look at
<ulink url="ftp://metalab.unc.edu/pub/Linux/system/boot/loaders/">ftp://metalab.unc.edu/pub/Linux/system/boot/loaders/</ulink>
. The MicroSoft Windows-NT boot loader or OS/2 boot loader may even be used.
</para>
<!--
grub for installing via network
-->
</sect3>
</sect2>
<sect2>
<title>X-Windows</title>
<para>
From Steve &lt;steve_AT_cygnet.co.uk&gt; I got a configuration for X
Windows with an external monitor: Note that I have introduced a neat
trick! For my nice 17" monitor I start X11 with no options and get the
default 16-bit 1152x864 display - but when using the
<acronym>LCD</acronym> screen I specify a 15-bit display
(<command>startx -- -bpp 15</command>) and get the correct 800x600
resolution automatically. This saves having to have two X11 config
files.
</para>
</sect2>
<sect2>
<title>More Info</title>
<para>
<ulink url="http://www.ssc.com/lg/issue20/laptop.html">Using a Laptop in Different Environments</ulink>
by <!-- bav_AT_esn.sbs.de --> Gerd Bavendiek . This article appeared in
the August, 1997 issue of the
<ulink url="http://www.ssc.com/lg/">Linux Gazette</ulink>
. This is an excellent, short technical article describing an easy way
to setup your Linux notebook to boot into different network and printing
configurations, especially useful for those who use their machines at
home as well as other locations such as in the office, at school, or at
a customer site.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c1s3-e-mail">
<title>E-Mail</title>
<sect2>
<title>Introduction</title>
<para>
A short introduction about how to setup email on a laptop used at home
(dial-up) and work (ethernet) by Peter Englmaier &lt;ppe_AT_pa.uky.edu&gt;:
</para>
<!--
testmail is a Perl script that checks email availability at the
POP3 server, filters it according to defined rules, and depending on the
selected method gets the messages to the local mailbox and/or removes it
from the server. It uses Perl libnet module and helps you escape from
spam.
http://strony.wp.pl/wp/c_kruk/
-->
<sect3>
<title>Features</title>
<para>
As a laptop user, I have special demands for my email setup. The setup
described below, enables me to:
</para>
<para>
<itemizedlist>
<listitem>
<para>
Read my email from <emphasis>home</emphasis> using a POP email server,
which is supplied by my university, but could also be setup on a
<emphasis>work</emphasis> place computer.
</para>
</listitem>
<listitem>
<para>
Write email from home with the <emphasis>right</emphasis> return address
in the email (which does not mention my computer name).
</para>
</listitem>
<listitem>
<para>
Read/write my email while working on a workstation without access to my
laptop or the POP email server (as a backup).
</para>
</listitem>
<listitem>
<para>
Read my email while working on my laptop connected to the ethernet of
our institut.
</para>
</listitem>
<listitem>
<para>
Direct email while connected via ethernet (faster than the fetchmail
method).
</para>
</listitem>
<listitem>
<para>
Indirect email (over pop mail server) while not connected to the
ethernet at work (either at home via modem or somewhere else via
ethernet).
</para>
</listitem>
<listitem>
<para>
Use any emailer, e.g. <command>elm</command> or the simple
<command>mail</command> command.
</para>
</listitem>
<listitem>
<para>
Sort incoming email, delete spam, split email-collections (digests)
into seperate emails
</para>
</listitem>
</itemizedlist>
</para>
<para>
The configuration is based on <command>sendmail</command>,
<command>fetchmail</command>, and a <emphasis>remote pop
account</emphasis> for email.
</para>
</sect3>
<sect3>
<title>Configuration of sendmail</title>
<para>
This is the most complicated part. Having installed the
<command>sendmail-cf</command> package, I created a file named
<filename>/usr/lib/sendmail-cf/laptop.mc</filename>:
</para>
<para>
<programlisting role="small">
divert(-1)
include(`../m4/cf.m4')
define(`confDEF_USER_ID',''8:12'')
define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
# here you define your domain
define(`confDOMAIN_NAME',''pa.uky.edu'')
OSTYPE(`linux')
undefine(`UUCP_RELAY')
undefine(`BITNET_RELAY')
# there we send outgoing email
define(`SMART_HOST',`server1.pa.uky.edu')
# there we send mail to users my laptop does not know
define(`LUSER_RELAY',`server1.pa.uky.edu')
# again the domain, we want to be seen as
MASQUERADE_AS(pa.uky.edu)
FEATURE(allmasquerade)
FEATURE(nouucp)
FEATURE(nodns)
FEATURE(nocanonify)
FEATURE(redirect)
FEATURE(always_add_domain)
FEATURE(use_cw_file)
FEATURE(local_procmail)
MAILER(procmail)
MAILER(smtp)
HACK(check_mail3,`hash -a@JUNK /etc/mail/deny')
HACK(use_ip,`/etc/mail/ip_allow')
HACK(use_names,`/etc/mail/name_allow')
HACK(use_relayto,`/etc/mail/relay_allow')
HACK(check_rcpt4)
HACK(check_relay3)
</programlisting>
</para>
<para>
This looks more complicated as it is. All it does is, that it redirectes
outbound mail to server1 (SMART_HOST) and also mail for local users
which are not known (LUSER_RELAY). That way, I can write email to my
colleques without using their full email address. More important: the
From line in my email points back to my MASQUARADE_AS domain and not
directly to my laptop. If this where not the case, email returned with
the <emphasis>reply</emphasis> button might not reach me. You must
restart <command>sendmail</command> for changes to take effect. Note:
this configuration is for Redhat 5.2 systems. You may have to change
some details.
</para>
<para>
Now, all what is needed is to generate the <filename>/etc/sendmail.cf
</filename>file <command>m4 laptop.mc &gt;/etc/sendmail.cf</command> and
to add all possible domain names my laptop should respond to in
<filename>/etc/sendmail.cw</filename>:
</para>
<para>
<programlisting role="small">
# sendmail.cw - include all aliases for your machine here.
laptop
laptop.pa.uky.edu
128.17.18.30
guest1
guest1.somewhere.org
</programlisting>
</para>
<para>
It is important to have all aliases in this file, otherwise
<command>sendmail</command> will not accept the mail (and will reply
<emphasis>we don't relay</emphasis> to the sender). Finally, you must
now test the setup by sending email, replying to mail for all possible
configurations. Any missconfiguration can result in loss of email.
</para>
</sect3>
<sect3>
<title>Configuration for fetchmail on Laptop</title>
<para>
One method to get the email into your machine is through
<command>fetchmail</command>. Fetchmail periodically checks for new
email at one or more remote mail servers. I use the following fetchmail
configuration file (in my user home directory):
<filename>fetchmailrc</filename>
</para>
<para>
<programlisting role="small">
set postmaster "myusername"
set daemon 900
poll pop.uky.edu with proto POP3
user "mypopusername" there with password "mypoppassword" is mylaptopusername here
</programlisting>
</para>
<para>
Fetchmail will just get the email and send it to
<command>sendmail</command> which will it deliver into your
<filename>/var/spool/mail/$USER</filename> file.
</para>
</sect3>
<sect3>
<title>Forward E-Mail to the Laptop</title>
<para>
On my work station I have the following <filename>.forward</filename>
file:
</para>
<para>
<programlisting role="small">
me@pop.acount.edu,me@server1
</programlisting>
</para>
<para>
Here server1 is the machine where I keep my mailbox. All email is send
to the pop account to be picked up later by my laptop (using
<command>fetchmail</command>). However, when my laptop is connected via
ethernet, I want my email to go directly to the laptop, instead of pop:
</para>
<para>
<programlisting role="small">
me@laptop,me@server1
</programlisting>
</para>
<para>
In both cases, a backup of my email is send to server1 (where I also can
read it, in case I cannot get my laptop). I keep/store all email on the
laptop.
</para>
<para>
Switching is done by three script files and a crontab file (on the
workstation):
</para>
<para>
<filename>forward_pop</filename>
</para>
<para>
<programlisting role="small">
#!/bin/sh
echo "me@pop.acount.edu,me@server1" &gt; ${HOME}/.forward
</programlisting>
</para>
<para>
<filename>forward_laptop</filename>
</para>
<para>
<programlisting role="small">
#!/bin/sh
echo "ppe@laptop,ppe@server1" &gt; ${HOME}/.forward
crontab ${HOME}/mycrontab
${HOME}/utl/check_laptop
</programlisting>
</para>
<para>
<filename>check_laptop</filename>
</para>
<para>
<programlisting role="small">
#!/bin/sh
if /usr/sbin/ping -c 1 laptop &gt;/dev/null 2&gt;&amp;1 ; then
:
else
# redirect mail to pop
${HOME}/utl/forward_pop
sleep 10
if /usr/sbin/ping -c 1 laptop &gt;/dev/null 2&gt;&amp;1 ; then
# back to normal
${HOME}/utl/forward_laptop
else
# deactivate crontab check
/bin/crontab -l | grep -v check_laptop &gt;${HOME}/tmp/mycrontab.tmp
/bin/crontab ${HOME}/tmp/mycrontab.tmp
rm -f ${HOME}/tmp/mycrontab.tmp
fi
fi
</programlisting>
</para>
<para>
<filename>mycrontab</filename>
</para>
<para>
<programlisting role="small">
# mycrontab
0,10,20,30,40,50 * * * * ${HOME}/utl/check_laptop
</programlisting>
</para>
<para>
Each time I connect the laptop to the ethernet, I have to run
<command>forward_laptop</command>, and each time I disconnect I run
forward_pop. In case I forget to run <command>forward_pop</command>, the
crontab job runs it for me less then 10 minutes later. To do all that
automatically, I change the network script files on my laptop as
follows:
</para>
<para>
<filename>/sbin/ifdown</filename> (this script runs, whenever a network
device is stopped, new stuff between BEGIN and END)
</para>
<para>
<programlisting role="small">
...
fi
# BEGIN new stuff
# turn off forwarding email
mail ppe &lt;&lt;EOF
turning off forwarding email
device = ${DEVICE}
hostname = `hostname`
EOF
if &lsqb; "${DEVICE}" = "eth0" -a "`hostname`"
= "laptop" &rsqb;; then
su -lc "ssh -l myusername server1
utl/forward_pop" myusername &#62;&amp; /dev/null
fi
# END new stuff
ifconfig ${DEVICE} down
exec /etc/sysconfig/network-scripts/ifdown-post $CONFIG
</programlisting>
</para>
<para>
Note, that the script checks for the value of hostname. In case, I am
connected to a foreign ethernet, my hostname and ip-address will be
something else, e.g. guest1.
</para>
<para>
<filename>/etc/sysconfig/network-scripts/ifup-post</filename> (this
script is run, whenever a network device is started)
</para>
<para>
<programlisting role="small">
# Notify programs that have requested notification
do_netreport
# BEGIN new stuff
# check for email -- I'm using fetchmail for this
if &lsqb; "${DEVICE}" = "eth0" -o "${DEVICE}"
= "ppp0" &rsqb;; then
su -lc fetchmail myusername &#62;&amp; /dev/null &amp;
fi
# set clock if connected to ethernet, redirect email
if &lsqb; "${DEVICE}" = "eth0" -a "`hostname`" = "zaphod" &rsqb;; then
( rdate -s server1 ; hwclock --systohc --utc ) &#62;&amp; /dev/null &amp;
# forward email
su -lc "ssh -l myusername gradj utl/forward_laptop" myusername &#62;&amp; /dev/null &amp;
fi
# END new stuff
exit 0
</programlisting>
</para>
</sect3>
<sect3>
<title>Processing Incoming E-Mail with procmail</title>
<para>
This step is completely optional. The above described sendmail
configuration calls <command>procmail</command> for each received email,
but you could have called <command>procmail</command> using the
<command>.forward</command> file (see the procmail man page). Procmail
is a handy tool to block spam and to sort incoming email.
</para>
<para>
You need to setup a <command>.procmailrc</command> file to use
<command>procmail</command>. See the man page for procmail, procmailrc,
and procmailex (examples). My setup demonstrates, how to ignore certain
email messages and split email-collections (digest) into pieces:
</para>
<para>
<programlisting role="small">
# -- mail filtering -- procmail is called by sendmail --
PATH=/bin:/usr/bin
MAILDIR=$HOME/Mail
LOGFILE=$MAILDIR/from
# keep in mind:
# use ":0:" when writing to a file
# use ":0" when writing to a device, e.g. /dev/null, or send email
# - make a backup of *all* incoming mail, but ignore mail tagged below -
:0 c:
*! &circ;Sissa-Repro
backup
# - keep only last 50 messages
:0 ic
| cd backup &amp;&amp; rm -f dummy `ls -t msg.* | sed -e 1,50d`
# - delete email coming through the 'postdocs' email list, when
# it is not of any interest
:0
* &circ;From.*postdocs
* &circ;From.*Ernst Richter /dev/null :0
* &circ;From.*postdocs
* &circ;Subject.*card charge
/dev/null
# Split mailing list from the sissa preprint server into individual emails
# - this is quite complicated :( I can flip through the list much
# faster and ignore preprints which have uninteresting titles. Instead of
# having to browse through the whole list, my mailer will just present a
# list of papers.
# 1. split it in individual messages
:0
* &circ;From no-reply@xxx.lanl.gov
| formail +1 -de -A "Sissa-Repro: true" -s procmail
# 2. reformat messages a bit
# 2.1. extract 'Title:' from email-Body and add to email-header
as 'Subject:'
:0 b
* &circ;Sissa-Repro
*! &circ;Subject
TITLE=| formail -xTitle:
:0 a
|formail -A "Subject: $TITLE " -s procmail
# 2.2. store in my incoming sissa-email folder. Here, we could
# also reject (and thereafter delete) uninteresting 'Subjects'
# we could also mark more interesting subjects as urgend or send a copy
# to regular mail box.
:0:
* &circ;Sissa-Repro
* &circ;Subject
*! &circ;replaced with
sissa
</programlisting>
</para>
<para>
By the way, there is a <command>tk</command> GUI tool to configure
<command>procmail</command> (I think it is called
<command>dotfiles</command>).
</para>
</sect3>
</sect2>
<sect2>
<title>Email with UUCP</title>
<para>
Another possible solution for Email is to use UUCP. This software was
made for disconnected machines, and is by far the easiest solution if
you have several users on your laptop (we are talking about
<acronym>UNIX</acronym>, remember?), each with his/her own account.
</para>
<para>
Unlike what most people think, UUCP does not need a serial
connection: it works fine over TCP/IP, so your UUCP partner can be
any machine on the Internet, if it is reachable from your network
attachment point. Here is the UUCP <filename>sys</filename> for a
typical laptop:
<programlisting role="small">
system mylaptop
time any
chat "" \d\d\r\c ogin: \d\L word: \P
address uucp.mypartner.org
port TCP
</programlisting>
</para>
</sect2>
<sect2>
<title>MailSync</title>
<para>
<ulink url="http://mailsync.sourceforge.net/">Mailsync</ulink>
is a way of synchronizing a collection of mailboxes. The
algorithm is a 3-way diff. Two mailboxes are simultaneously compared to
a record of the state of both mailboxes at last sync. New messages and
message deletions are propagated between the two mailboxes. Mailsync
can synchronize local mailbox files in many formats and remote
mailboxes over IMAP, POP, and IMAPS.
</para>
<!--
OfflineIMAP is a tool to simplify email reading. It allows you to
read the same mailbox from multiple computers and ensures that your
changes will be automatically reflected on all computers. You can use
various mail clients to read a single box or read mail while offline with
full synchronization when you reconnect. You can read IMAP mail with
readers that lack IMAP support (same goes for SSL). OfflineIMAP's
multithreaded synchronization algorithm performs between 10 and 60 times
faster than many mail readers' internal IMAP support, and it can be used
even with mail readers that support IMAP already. There are five available
user interface modules, including scripted execution, an interactive
terminal interface, and GUI interfaces.
http://quux.org/devel/offlineimap/
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c1s3-data-transport">
<title>Data Transport Between Different Machines (Synchronization)</title>
<para>
I don't have experience with this topic yet. So just a survey about
some means of data transport and maintaining data consistency between
different machines.
</para>
<sect2>
<title>Useful Hardware</title>
<para>
<orderedlist>
<listitem>
<para>
external harddisks
</para>
</listitem>
<listitem>
<para>
ZIP drive
</para>
</listitem>
</orderedlist>
</para>
<para>
Wade Hampton wrote: "You may use MS-DOS formatted ZIP and floppy discs
for data transfer. You may be able to also use LS120. If you have SCSI,
you could use JAZ, MO or possibly DVD-RAM (any SCSI disc that you
could write to). I have the internal ZIP for my Toshiba 700CT. It
works great (I use <command>automount</command> to mount it). I use
VFAT on the ZIP disks so I can move them to Windows boxes, Linux
boxes, NT, give them to coworkers, etc. One problem, I must SHUTDOWN
to swap the internal CD with the ZIP."
</para>
</sect2>
<sect2>
<title>Useful Software</title>
<sect3>
<title>Version Management Software</title>
<para>
Although it is certainly not their main aim, version management software
like CVS (Concurrent Version System) are a perfect tool when you work on
several machines and you have trouble keeping them in sync (something
which is often called <quote>disconnected filesystems</quote> in the
computer science literature). Unlike programs like
<command>rsync</command>, which are asymmetric (one side is the master
and its files override those of the slave), CVS accept that you make
changes on several machines, and try afterwards to merge them.
Asymmetric tools are good only when you can respect a strict discipline,
when you switch from one machine to another. On the contrary, tools like
CVS are more forgetful.
</para>
<para>
To synchronize two or more machines (typically a desktop and a laptop),
just choose a CVS repository somewhere on the network. It can be on one
of the machines you want to synchronize or on a third host. Anyway, this
machine should be easily reachable via the network and have good disks.
</para>
<para>
Then, <command>cvs co</command> the module you want to work on, edit it,
and <command>cvs commit</command> when you reached a synch point and are
connected. If you made changes on both hosts, CVS will try to merge them
(it typically succeeds automatically) or give in and ask you to resolve
it by hand.
</para>
<para>
The typical limits of this solution: CVS does not deal well with binary
files, so this solution is more for users of vi or emacs than for GIMP
fans. CVS has trouble with some <acronym>UNIX</acronym> goodies like
symbolic links.
</para>
<para>
For more information on CVS, see the
<ulink url="http://www.loria.fr/~molli/cvs-index.html">Web page</ulink>
. The CVS documentation is excellent (in info format).
</para>
<!--
FIXME
subversion
-->
</sect3>
<sect3>
<title>CODA Filesystem</title>
<para>
The <ulink url="http://www.coda.cs.cmu.edu/">CODA</ulink> File
System is a descendant of the Andrew File System. Like AFS, Coda
offers location-transparent access to a shared
<acronym>UNIX</acronym> file name-space that is mapped on to a
collection of dedicated file servers. But Coda represents a
substantial improvement over AFS because it offers considerably
higher availability in the face of server and network failures. The
improvement in availability is achieved using the complementary
techniques of server replication and disconnected operation.
Disconnected operation proven especially valuable in supporting
portable computers .
</para>
</sect3>
<sect3>
<title>unison</title>
<para>
<ulink url="http://www.cis.upenn.edu/~bcpierce/unison/">unison</ulink>
is a file-synchronization tool for Unix and
Windows. It allows two replicas of a collection of files and directories
to be stored on different hosts (or different disks on the same host),
modified separately, and then brought up to date by propagating the
changes in each replica to the other.
Unison was written by researchers with an eye for well-defined
replication semantics: they were very fussy about safety, and made
sure to handle gracefully things like premature termination etc.
Unison is symmetric/bidirectional (unlike rsync), works fine with
binaries (unlike cvs), and is a user-level program (unlike most
distributed filesystems). It also makes a reasonable attempt to
synchronize transparently between Unix/Linux and Windows filesystems,
which is no small feat. Drawbacks: it does not do version control,
and does not handle synchronization among more than 2 file trees.
<command>unison</command> shares a number
of features with tools such as configuration management packages
(<command>CVS</command>,
<command>PRCS</command>,
etc.) distributed filesystems (
<ulink url="http://www.coda.cs.cmu.edu/">CODA</ulink>
, etc.)
<emphasis>uni-directional</emphasis> mirroring utilities
(<command>rsync</command>, etc.) and other
synchronizers (
Intellisync,
Reconcile, etc).
However, there are a
number of points where it differs:
</para>
<para>
<itemizedlist>
<listitem>
<para>
<command>unison</command> runs on both MicroSoft-Windows (95, 98, NT, and 2k) and
Unix (Solaris, Linux, etc.) systems (
for ARM based Linux PDAs see the
<ulink url="http://tuxmobil.org/feed.html">TuxMobil IPK feed</ulink>
. Moreover,
<command>unison</command> works <emphasis>across</emphasis> platforms,
allowing you to synchronize a Microsoft-Windows laptop with a Unix server, for
example.
</para>
</listitem>
<listitem>
<para>
Unlike a distributed filesystem, <command>unison</command> is a
user-level program: there is no need to hack (or own!) the kernel,
or to have superuser privileges on either host.
</para>
</listitem>
<listitem>
<para>
Unlike simple mirroring or backup utilities,
<command>unison</command> can deal with updates to both replicas of
a distributed directory structure. Updates that do not conflict are
propagated automatically. Conflicting updates are detected and
displayed.
</para>
</listitem>
<listitem>
<para>
<command>unison</command> works between any pair of machines
connected to the internet, communicating over either a direct
socket link or tunneling over an <command>rsh</command> or an
encrypted <command>ssh</command> connection. It is careful with
network bandwidth, and runs well over slow links such as PPP
connections.
</para>
</listitem>
<listitem>
<para>
<command>unison</command> has a clear and precise specification.
</para>
</listitem>
<listitem>
<para>
<command>unison</command> is resilient to failure. It is
careful to leave the replicas and its own private structures in
a sensible state at all times, even in case of abnormal
termination or communication failures.
</para>
</listitem>
<listitem>
<para>
<command>unison</command> is free; full source code
is available under the GNU Public License.
</para>
</listitem>
</itemizedlist>
</para>
</sect3>
<sect3>
<title>OpenSync, MultiSync</title>
<para>
<ulink url="http://www.opensync.org/">OpenSync</ulink> is the successor of
KitchenSync and MultiSync. OpenSync is a synchronization framework that is platform and distribution
independent. It consists of a powerful sync-engine and several plugins that
can be used to connect to devices.
OpenSync is very flexible and capable of synchronizing any type of data,
including contacts, calendar, tasks, notes and files.
</para>
<para>
<ulink url="http://multisync.sourceforge.net">MultiSync</ulink>
is a free modular program to synchronize
calendars, address books, and other PIM data between programs on your
computer and other computers, mobile devices, PDAs or cell phones.
Currently MultiSync has plugins for Ximian Evolution calendars and
IrMC Mobile Client calendars (supported by the Sony/Ericsson T68i) via
Bluetooth, IrDA, or a cable connection.
</para>
</sect3>
<sect3>
<title>Funambol</title>
<para>
<ulink url="http://www.funambol.com/opensource/">Funambol</ulink>
is an open source mobile application server software that provides push
email, address book and calendar (PIM) data synchronization, application
provisioning, and device management for wireless devices and PCs, leveraging
standard protocols. For users, this means BlackBerry-like capabilities on
commodity handsets.
Funambol is also a software development platform for mobile applications. It
provides client and server side Java APIs, and facilitates the development,
deployment and management of any mobile project. Funambol is the de facto
standard implementation of the Open Mobile Alliance Data Synchronization and
Device Management protocols (OMA DS and DM, formerly known as SyncML).
Funambol is replaces the former sync4J tools.
</para>
</sect3>
<sect3>
<title>Tsync</title>
<para>
<ulink url="http://sourceforge.net/projects/tsyncd/">Tsync (Transparent) Synchronization</ulink>
is a user-level daemon that provides transparent synchronization amongst a set of
computers. Tsync uses a peer-to-peer architecture for scalability, efficiency, and robustness.
</para>
</sect3>
<!--
<sect3>
<title>mirrordir</title>
<para>
<ulink url="http://www.obsidian.co.za/mirrordir/">Mirrordir</ulink>
is a suite of functions in one package. It contains a
remote login utility and daemon that provides a secure
shell, a cp equivalent which additionally copies to and
from ftp servers, a tool to mirror filesystems over ftp or
locally, and another utility you can pass a C script to
recursively perform operations on files.
</para>
<para>
<command>mirrordir</command>
forces the mirror directory to be an exact replica of the
control directory tree in every possible detail suitable for purposes
of timed backup. Files whose modification times or sizes differ are
copied. File permissions, ownerships, modification times, access
times, and sticky bits are duplicated. Devices, pipes, and symbolic
and hard links are duplicated. Files or directories that exist in
the mirror directory that don't exist in the control directory are
deleted. It naturally descends into subdirectories to all their
depths.
</para>
</sect3>
DEAD LINK
-->
<sect3>
<title>InterMezzo</title>
<para>
<ulink url="http://inter-mezzo.org/">InterMezzo</ulink>
is a new distributed file system with a focus on
high availability. InterMezzo is an Open Source
project, currently on Linux (2.2 and 2.3). A
primary target of development is to provide
support for flexible replication of directories,
with disconnected operation and a persistent
cache. For example, we want to make it easy to
manage copies of home directories on multiple
computers, and solve the laptop/desktop
synchronization problems. On a larger scale we aim
to provide replication of large file repositories,
for example to support high availability for
servers. InterMezzo was deeply inspired
by the Coda File System, but totally
re-designed and re-engineered.
</para>
</sect3>
<sect3>
<title>WWWsync</title>
<para>
<ulink url="http://www.alfie.demon.co.uk/wwwsync/">WWWsync/</ulink>
is a program written in Perl that will update your web pages by
ftp from your local pages. This was originally written for updating
Demon home-pages, but will work with other providers which provide
direct FTP access to your web pages. I didn't check this for laptop
purposes yet.
</para>
</sect3>
<sect3>
<title>rsync</title>
<para>
<command>rsync</command> is a program that allows files to be copied to
and from remote machines in much the same way as <command>rcp</command>.
It has many more options than <command>rcp</command>, and uses the
<emphasis>rsync remote-update protocol</emphasis> to greatly speedup
file transfers when the destination file already exists. The
<emphasis>rsync remote-update protocol</emphasis> allows
<command>rsync</command> to transfer just the differences between two
sets of files across the network link.
</para>
</sect3>
<sect3>
<title>Xfiles - file tree synchronization and cross-validation</title>
<para>
Xfiles is an interactive utility for comparing and merging one file tree
with another over a network. It supports freeform work on several
machines (no need to keep track of what files are changed on which
machine). Xfiles can also be used as a cross-validating disk &lt;-&gt;
disk backup strategy (portions of a disk may go bad at any time, with no
simple indication of which files were affected. Cross-validate against a
second disk before backup to make sure you aren't backing up bad data).
</para>
<para>
A client/server program (GUI on the client) traverses a file tree and
reports any files that are missing on the server machine, missing on the
client machine, or different. For each such file, the file size/sizes and
modification date(s) are shown, and a comparison (using
<acronym>UNIX</acronym> diff) can be obtained. For files that are missing
from one tree, <emphasis>similarly named</emphasis> files in that tree
are reported. Inconsistent files can then be copied in either direction
or deleted on either machine. The file trees do not need to be accessible
via nfs. Files checksums are computed in parallel, so largely similar
trees can be compared over a slow network link. The client and server
processes can also be run on the same machine. File selection and
interaction with a revision control system such as RCS can be handled by
scripting using jpython. Requirements Java1.1 or later and JFC/Swing1.1
are needed.
<ulink url="http://www.idiom.com/~zilla">Xfiles</ulink>.
</para>
</sect3>
<sect3>
<title>sitecopy</title>
<para>
Sitecopy is for copying locally stored websites to remote web servers.
The program will upload files to the server which have changed locally,
and delete files from the server which have been removed locally, to
keep the remote site synchronized with the local site, with a single
command. The aim is to remove the hassle of uploading and deleting
individual files using an FTP client.
<ulink url="http://www.lyra.org/sitecopy">sitecopy</ulink>.
</para>
</sect3>
<!--
<sect3>
<title>KBriefcase</title>
<para>
The KDE tool
<ulink url="http://netnow.micron.net/~mrolig/kbriefcase/">Kbriefcase</ulink>
tries to achieve a similar goal as the Windows briefcase, but in a
different way. Rather than pulling your files from the desktop, they
are pushed to the laptop. You drag a file from the local location to
the briefcase. You are then asked for the remote path to copy it to.
It will then copy the file to the remote location and make the
original read-only. When you restore and remove, the file is copied
back and write permissions are given back. The read-only status, of
course, makes sure you don't start editing the file again before
you've brought your changes back from the remote location.
</para>
webarchive: Sorry, no matches.
also not in KDE anymore
</sect3>
-->
</sect2>
<sect2>
<title>DataConversion: AddressBooks, BookMarks, Todo-Lists, LDAP, Webpages</title>
<para>
Transfering user data from one mobile device to another one, often requires
some tools to extract the data from the source device before importing them
into the target device, for example if you want to change your favorite
mobile phone. Or if you want to use the addressbook from your mobile with
your PDA, too.
Here are some tools for
<ulink url="http://dataconv.org/apps_bookmarks.html">bookmark conversion</ulink>,
<ulink url="http://dataconv.org/apps_addresses.html">addressbook migration</ulink>,
<ulink url="http://dataconv.org/apps_vcard.html">vCard extraction</ulink>,
<ulink url="http://dataconv.org/apps_ldap.html">LDAP merging</ulink> and
<ulink url="http://dataconv.org/apps_pda.html">data conversion for PDAs and HandHeld PCs</ulink>.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c1s4-backups">
<title>Backup</title>
<para>
To me data on mobile computers are even more likely to be damaged or lost
than on desktop computers. So backups are even more important. There are
different solutions for backups in mobile environments. I will describe
them in one of the next issues.
</para>
<para>
For backups on removable media like CD-R/RW or DVD-R/RW you may boot
from a Knoppix Live CD/DVD using the <command>toram</command> boot option.
This way Knoppix will be completely loaded into RAM and you may remove the
Knoppix CD/DVD from the drive to replace it with the backup media. Note:
this will only work if your laptop provides more than 1GB RAM.
<!-- Sebastian H. DSL DamnSmallLinux -->
</para>
</sect1>
<sect1 id="mobile-guide-p5c1s4-connections-to-servers">
<title>Connections to Servers</title>
<para>
From Dirk Janssen &lt;dirkj_AT_u.arizona.edu&gt;: Here are several good
ways of working on your laptop from your desktop machine. If you have a
separate desktop machine at work, you might want to use that as a
terminal server to your laptop. This means you get the larger screen and
the better keyboard, without having to worry about syncing files. The
easiest way to do this is to install ssh on both sides, and ssh from
your desktop (running X) to the laptop. Ssh will provide a secure
connection and, crucially, a secure X connection between the two
machines. If you type, for example, <command>emacs &amp;</command> in
the ssh shell, emacs will start a window on your desktop machine while
running on your laptop.
</para>
<para>
There are various ways in which you can make this situation more
productive/complicated. Emacs, for one thing, can open windows (called
frames by emacs) on separate displays by using
<command>make-frame-on-display</command>. This way, you can have the
same emacs displaying on your desktop and your laptop: A dual headed
system is born.
</para>
<para>
For other programs, you usually have to decide at startup time on which
screen you want them. To run them on the laptop screen, start them as
usual. To run them on the desktop screen, start them from the ssh shell
on the desktop or redirect their screens using the DISPLAY variable.
Some programs also accept a <command>-display</command> option. Read the
documentation on <command>xauth</command> on how to set this up. An easy
way out is to find out which pseudo display ssh has created for you by
typing <command>echo $DISPLAY</command> in the ssh shell. Assuming your
desktop is called <command>olli</command> and your laptop
<command>stan</command>, this will usually produce something like
<command>stan:10</command>. This means that processes on stan (the
laptop) display on what they think is the 10th screen of stan, which by
some ssh magic is actually relayed (in a secure way) to the screen of
olli.
</para>
<para>
There are some ways in which you can dynamically move windows from one
machine to another. A very interesting approach is taken by
<command>xmove</command>, but this program lacks a good user interface
(any volunteers?). Xmove creates a pseudo screen (similar to the stan:10
that ssh creates) and windows that have their DISPLAY set to this pseudo
screen can be moved back and forth between real screens (provided all
screens use the same color depth).
</para>
<para>
Alternatively, you can run an one of the several programs that open a
<command>virtual root window</command>: A window on your desktop that
contains other windows. It looks a lot like running an emulator. With
these programs, you can start your processes on stan, then move all
their windows to olli, then work for a while, and then move them back so
you can continue working on stan. Hibernate your laptop and repeat ad
infinitum. Check out xmx and VNC for this.
</para>
<para>
If this is all too complicated for you, but you like to use the two
screens at the same time, consider at least installing x2x. This little
tool makes it possible to move your mouse from one screen to the other,
and the keyboard focus goes with it. To run it, you need another ssh
going from stan (the laptop) to olli (the desktop): ie. type
<command>ssh olli</command> in a stan xterm. Keep this shell running and
find out which pseudo screen was created with <command>echo
$DISPLAY</command>. This will return something like
<command>olli:10</command> (see above for explanation). Now, type this
in any shell on olli: <command>x2x -west -to olli:10</command> (and I
mean, in a shell that runs on olli and displays on olli, not an ssh
shell) This creates a little black band to on the left (west) side of
your desktop's screen. Whenever you move the mouse over this, the mouse
on screen olli:10 will move. Because olli:10 is just an ssh-created
alias for the screen of stan, the mouse on your laptop will move and you
can type there by only moving your head, not your hands.
</para>
<para>
A note on X-security: Playing around with various screen programs is
much easier if you issue an <command>xhost +</command> on either
computer. But this is extremely unsafe. Do this only when you are not
connected to any larger network. If you have everything working, spend
some time on getting xauth to work. If you use xdm, it is usually easy.
Otherwise, consider starting your Xserver with the same magic cookie all
the time. This is less safe, but still pretty safe, and it means that
you have to copy the cookies only once. Check the startup scripts
(.xserverrc, .xinitrc, .xsession, etc) for something like
<command>cookie="MIT-MAGIC-COOKIE-1 `keygen`"</command> and change that
into (invent your own cookie here): <command>cookie="MIT-MAGIC-COOKIE-1
12345678901234567890abcdefabcdef"</command>
</para>
<!--
Some other ways to connect to a remote server (X11, OpenSSH, telnet,
FTP, NFS, CODA Filesystem, PPP, tunneling, firewalls, analog and ISDN
modems, PPP over MiniCom, sz, rz , Kermit).
ssh -X
-->
</sect1>
<sect1 id="mobile-guide-p5c1s5-security-in-different-environments">
<title>Security in Different Environments</title>
<sect2>
<title>Introduction</title>
<para>
I am not a computer security expert, but I think that security associated
with mobile devices requires specific attention. Please read the
<ulink url="http://www.linuxsecurity.com/Security-HOWTO">Security-HOWTO</ulink>
by Kevin Fenzi and Dave Wreski for more information. I just
collected some information below. Note, these means are just
small steps to additional security, though I recommend that you use them.
<!--
tlpd Security-HOWTO
-->
</para>
<para>
Please read also the
<ulink url="https://www.seifried.org/lasg/">Linux Administrator's Security Guide (LASG) - FAQ</ulink>
by Kurt Seifried.
</para>
</sect2>
<sect2>
<title>Means of Security</title>
<para>
<orderedlist>
<listitem>
<para>
Antivirus policy: For Linux there are some anti virus programms
available. Check the <acronym>BIOS</acronym> for an option to disable
writing at the boot sector.
<!--
Virus-HOWTO ??
-->
</para>
</listitem>
<listitem>
<para>
Laptop as a security risk itself: Since a laptop can easily be used to
intrude a network, it seems a good policy to ask the system
administrator for permission before connecting a laptop to a network.
</para>
</listitem>
<listitem>
<para>
Secure Protocol: When connecting to a remote server always use a secure
protocol (for instance <command>ssh</command>) or tunneling
<command>tunnelv</command> , <command>pptp</command> and
<command>APOP</command> for POP accounts.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c1s6-theft-protection">
<title>Theft Protection</title>
<sect2>
<title>Means to Protect the Data</title>
<para>
<orderedlist>
<listitem>
<para>
Encryption: the Linux Kernel offers different options.
This
<ulink url="http://shappyhopper.co.uk/b2154/sharedencryptedhowto.cgi">Encrypted dual boot single hard drive system HOWTO</ulink>,
explains how to secure your system using nothing but Free Software.
It was primarily written for people with a dual boot laptop, describing
free tools to encrypt Microsoft Windows as well as Linux partitions.
</para>
</listitem>
<listitem>
<para>
Here are some
<ulink url="http://tuxmobil.org/smart_linux.html">Linux guides for laptops with built-in SmartCard-Reader</ulink>.
</para>
</listitem>
<listitem>
<para>
User passwords: can be easily bypassed if the intruder gets physical
access to your machine.
</para>
</listitem>
<listitem>
<para>
Hard Disk Passwords:
</para>
</listitem>
<listitem>
<para>
BIOS passwords: are easily crackable at least with older laptop models.
Some manufacturers have now a second boot password (IBM).
</para>
<para>
If you use a BIOS password/boot loader security, ADVERTISE IT! Paste a
sticker (or tape a piece of paper) on the top of your laptop, saying
something like:
</para>
<programlisting role="small">
WARNING
This laptop is password protected. The password can only be removed
by an authorized [manufacturer's name] technician presented with
proof of ownership. So don't even think of stealing it, because
it won't do you any good.
</programlisting>
</listitem>
<listitem>
<para>
Before you buy a second hand machine, check whether the machine seems to
be stolen. I have provided a survey of
<ulink url="http://tuxmobil.org/stolen_laptops.html">databases for stolen laptops</ulink>.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Means to Protect the Hardware</title>
<para>
<orderedlist>
<listitem>
<para>
Laptop lock: Almost all (if not all) of the new laptops come with a slot
for the lock, and if yours doesn't have one, most locks come with a kit
to add a slot. One of Targus' Defcon locks even has a motion sensor,
so you don't have to lock it up to a secure place, if you don't have
one around.
</para>
<para>
The only drawback that I can think of is that it takes a couple extra
seconds to set up or pack up your laptop. It takes about 30 seconds to
snap into place and makes it impossible to quickly walk away with the
laptop. It won't stop a determined thief with the time to unscrew the
legs of the desk or one that wanders around with a substantial pair of
wire cutters in hand, but I feel pretty secure leaving the laptop on my
desk while I go to meetings or lunch.
</para>
<para>
Well known manufacturers of dedicated laptop locks are
<ulink url="http://www.kensignton.com">Kensignton</ulink>
and TARGUS.
</para>
</listitem>
<listitem>
<para>
Name plates: to reduce the possibility of theft, you may want to have a
nameplate (name, phone, e-mail, address) made and affixed to the cover
of the laptop. A nice one will cost you about $12, and can be made by
any good trophy shop. They'll glue it on for you too. You could use
double-sided tape instead, but glue is more permanent. So it's easy to
return, but will look beaten and abused if these are removed. You may
even make an engravement into the laptop cover (inside). And even better
into every removable part (hard disk, battery, CD/DVD drive, power
unit). If this machine ever gets to a repair office, I might get the
machine back. Make sure you remember to update the plates if you move.
</para>
<para>
If you don't mind marking up a piece of equipment worth several thousand
dollars, make sure your laptop has some distinguishing feature that is
easily recognizable, e.g. a bunch of stickers pasted on it. Not only
does it make your laptop easier to recognize, my guess is that people
would be less likely to steal it.
</para>
<para>
It might even be useful to have a sticker that clearly says <quote>Does
Not Run Windows</quote>. This is at least an argument for having your
bootloader stop at the bootloader prompt, rather than mosey onwards into
a colorful XDM login.
</para>
</listitem>
<listitem>
<para>
Link <command>xlock</command> to <command>apm</command> services. What
about setting a system such as when the laptop is unused for a while,
instead of using normal apm service and suspend the machine, makes it
run an xlock, disable the apm services in a way such that they do not
suspend the machine automatically and start a 'laptop-protection
daemon'. When the xlock disappears, the daemon is stopped and the apm
services are restarted (so you might use the apm services yourself).
</para>
<para>
In the case somebody unplugs the machine while under the xlock (without
giving the password), then the daemon would detect it and could start
doing some preventive action, such as:
- playing a sound with maximum volume saying "I am getting stolen".
- this daemon could also register to a fixed local server and do a ping
every now and then. If the ping stops before the daemon unregister to
the server, then server then can take other actions, such as sending
SMS message, starting a video camera, in the room, etc. The apm
services down would make the stealer unable to use the hot keys to
suspend/stop the machine, isn't it?
<!--
FIXME
APM is deprecated
-->
</para>
</listitem>
<listitem>
<para>
You can change the <quote>pollution preventer</quote> logo at startup on
AWARD BIOSES. See instructions from
<ulink url="http://geggus.net/sven/linux-bootlogo.html">Sven Geggus</ulink>.
For IBM ThinkPads there is a dedicated DOS utility for burning
your bizcard data into the BIOS boot screen.
</para>
</listitem>
<listitem>
<para>
Boot loader: a boot loader may be used to put your name and phone number
(or whatever text you choose) into the boot sequence before the
operating system is loaded. This provides a label that can't be removed
by editing files or even doing a simple format of the harddisk. Some
boot loaders (e.g. LILO) offer a password option, which is highly
recommend (note without it's very easy to get root access).
</para>
</listitem>
<listitem>
<para>
Camouflage: if you carry a dedicated laptop bag, this can be spotted by
a thief easily. So think about getting another kind of bag.
</para>
</listitem>
<listitem>
<para>
Serial Number: note the serial number in a secure place. This will be
necessary if your laptop gets stolen.
</para>
</listitem>
<listitem>
<para>
Insurance: There are some dedicated insurances, see my page
<ulink url="http://tuxmobil.org/stolen_laptops.html">Database of Stolen Laptops</ulink>.
</para>
</listitem>
<listitem>
<para>
Use of software that connects and identifies itself: As far as I know
there was an old DOS utility that did something like this. It embedded
itself into the bootsector and upon a certain keycombination it would throw a
serial number onto the screen and play an audio code through the speaker
(in case th monitor was no longer usable for whatever reason). You were
supposed to register the serial number with the company that produced
the utility.
</para>
<para>
The laptop can send a mail with its real IP address if connected (mail
with a print of <command>ifconfig</command> started by
<filename>/etc/ppp/ip-up</filename> or by a <command>cron</command> job
(if connected at a company-network).
</para>
</listitem>
<listitem>
<para>
Always remove the external devices and secure them in another
place/room. Set the BIOS to boot on the hard disk first as a default
setting and remove boot on other devices if possible. Also try to plug
the power supply in the least accessible plug. So if your machine get
stolen in your office the 'quick way' (e.g. during a 5 sec. cigarette
break), the stealer won't perhaps have time to get the power supply,
neither the time to get the drives. Perhaps he/she will end up with a
less useful laptop and you may recover it.
</para>
</listitem>
<listitem>
<para>
Electronic Devices (Transponders): There are also devices available,
which can be detected remote via satellites, see my page
<ulink url="http://tuxmobil.org/stolen_laptops.html">about stolen laptops</ulink> for a survey.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>The Day After</title>
<para>
Your primary goal is to prevent your laptop from being stolen in the
first place. Your secondary goal is to recover it after it is stolen.
Report it to the police station ASAP. Check the local newsgroup (in
case...) or even post in it.
</para>
<para>
I have provided a
<ulink url="http://tuxmobil.org/stolen_laptops.html">survey of databases for stolen laptops</ulink>.
</para>
</sect2>
<sect2>
<title>Resources</title>
<para>
The chapter about theft protection has taken some advantages of ideas
of Lionel "Trollhunter" Bouchpan-Lerust-Juery and a discussion, which has
taken place in the
<ulink url="http://www.debian.org/MailingLists/subscribe">debian-laptop</ulink>
mailing list in January 2001.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c1s7-dealing-with-down-times">
<title>Dealing with Down Times (Cron Jobs)</title>
<para>
A cron-like program that doesn't go by time: <command>anacron</command>
(like "anac(h)ronistic") is a periodic command scheduler. It executes
commands at intervals specified in days. Unlike <command>cron</command>,
it does not assume that the system is running continuously. It can
therefore be used to control the execution of daily, weekly and monthly
jobs (or anything with a period of n days), on systems that don't run 24
hours a day. When installed and configured properly,
<command>anacron</command> will make sure that the commands are run at
the specified intervals as closely as machine-uptime permits.
</para>
<para>
<ulink url="http://metalab.unc.edu/pub/Linux/system/daemons/cron">hc-cron</ulink>
is a modified version of Paul
Vixie's widely used <command>cron</command>
daemon. Like the original program it runs specified jobs at periodic
intervals. However, the original <command>crond</command> relies on the
computer running continuously, otherwise jobs will be missed. This
problem is addressed by <command>hc-cron</command>, that is indended for
use on <emphasis>home-computers</emphasis> that are typically turned off
several times a day; <command>hc-cron</command> will remember the time
when it was shut down and catch up jobs that have occurred during down
time when it is started again.
<!--
Felix Braun is the author of the programm
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c1s8-mobile-printing">
<title>Mobile Printing</title>
<!--
see also printers and scanners section above
this company offers small printers, with BT and IrDA
VideoStar uses one
http://www.custom.it/
-->
<para>
There are different techniques to print from mobile computers. You
may use mobile printer hardware (see chapter Printers and Scanners above)
or print via a stationary printer. To connect to a mobile or
stationary printer or printer server you may use many protocols:
<orderedlist>
<listitem>
<para>
InfraRed - IrLPT/IrCOMM:
See the
<ulink url="http://tuxmobil.org/howtos.html">InfraRed-HOWTO</ulink>.
</para>
</listitem>
<listitem>
<para>
InfraRed - IrOBEX:
See the
<ulink url="http://tuxmobil.org/howtos.html">InfraRed-HOWTO</ulink>.
</para>
</listitem>
<listitem>
<para>
BlueTooth:
See the
<ulink url="http://www.holtmann.org/linux/bluetooth/cups.html">Bluetooth printing backend for CUPS</ulink>
At the moment this backend only provides native printing for
Bluetooth serial port enabled printers, but for the future the support of Basic Printing (BPP) and Hardcopy Cable
Replacement (HCRP) is planned.
</para>
</listitem>
<listitem>
<para>
wireless network - WLAN
</para>
</listitem>
<listitem>
<para>
network - LAN
</para>
</listitem>
<listitem>
<para>
rlpr - remote line printer
</para>
</listitem>
<listitem>
<para>
Server Message Block - SMB, via SAMBA
</para>
</listitem>
<listitem>
<para>
parallel port
</para>
</listitem>
<listitem>
<para>
serial port
</para>
</listitem>
<listitem>
<para>
USB port
</para>
</listitem>
</orderedlist>
<!--
other techniques for PDA printing by Till Kampeter linuxprinting.org
DPOF - digital print order format
USB-PIC-Bridge from digital cameras to jet printers
ipp client for PDA
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c1s8-noise-reduction">
<title>Noise Reduction</title>
<para>
Due to the proliferation of cellular phones and walkmans it's not quite
common in our days to take care of a quiet environment. Anyway I want to
give some recommendations for the polite ones.
</para>
<para>
Computer noises are caused by hardware (fan, optical drive, hard disk)
and applications.
<!-- FIXME this chapter should be structured in this order -->
</para>
<sect2>
<title>Console (Shell) and X11</title>
<para>
The beeping of X11 windows can be
configured to a shorter and lower pitched tone or even to a
blunt "thump" with <command>xset b ...</command> options (a lower pitched tone
is usually less annoying and distracting). Independently of
that, most xterm-compatible windows and shells can be
configured to make "visual bell" instead of "audio bell".
For the console <command>setterm -blength 0</command> and for X11
<command>xset b off</command> turns the bell off. See also the
<ulink url="http://pcmcia-cs.sourceforge.net/ftp/doc/PCMCIA-HOWTO.html"><acronym>PCMCIA</acronym>-HOWTO</ulink>
and much more details in the
<ulink url="http://tldp.org/HOWTO/Visual-Bell.html">Visible-Bell-Howto</ulink>.
</para>
</sect2>
<sect2>
<title><acronym>PCMCIA</acronym></title>
<para>
When starting your laptop with <acronym>PCMCIA</acronym>-CS
configured correctly, this will be shown by two high beeps. If you
want to avoid this put <command>CARDMGR_OPTS="-q"</command> into the
<acronym>PCMCIA</acronym> configuration file, e.g.
<filename>/etc/default/pcmcia</filename> for Debian/GNU Linux.
<!--
old Potato 2.0
<filename>/etc/pcmcia.conf</filename> for Debian/GNU Linux.
-->
</para>
<para>
To avoid the dialtones during the modem dialing add
</para>
<para>
<programlisting role="small">
module "serial_cs" opts "do_sound=0"
</programlisting>
</para>
<para>
to <filename>/etc/pcmcia/config.opts</filename> (from <command>man
serial_cs</command>). This will disable speaker output completely,
but the <command>AT M</command> command should let you selectively
control when the speaker is active, e.g. <command>AT M0</command>
turns off the modem's speaker.
</para>
</sect2>
<sect2>
<title><acronym>USB</acronym></title>
<para>
<command>usbmgr</command> configuration file <filename>/etc/usbmgr.conf</filename>.
<programlisting role="small">
### BEEP
# beep off
# beep on
</programlisting>
</para>
</sect2>
<sect2>
<title>Hotplug</title>
<para>
Add an entry into the configuration file <filename>/etc/sysconfig/hotplug</filename>.
<programlisting role="small">
HOTPLUG_BEEP="no"
</programlisting>
</para>
</sect2>
<sect2>
<title>Fan</title>
<warning>
<para>
Please make sure what you are doing, when configuring the fan. Your
laptop may overheat and die, in case you have done something wrong.
Just in case you want to check the fan try to cause a heavy
CPU load, for example by issueing <command>md5sum /dev/urandom</command>.
Now <command>top</command> will show an increased CPU load and
the fan should began to run eventually. Note: usually you need
to have been connected to power, otherwise the CPU might reduce
load by itself. Also watch for the CPU temperature
<command>acpi -bt</command> or
<command>cat /proc/acpi/thermal_zone/*</command>.
</para>
</warning>
<para>
For some laptop series there are
Linux utilities available to control the fan and other
features.
</para>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://www.buzzard.me.uk/toshiba/index.html">Toshutils</ulink>
by Jonathan Buzzard for some Toshiba models.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tpctl.sourceforge.net">tpctl</ulink>
IBM ThinkPad configuration tools for Linux by Thomas Hood.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://people.debian.org/~dz/i8k/">i8k</ulink>
utils for DELL laptops.
</para>
</listitem>
</itemizedlist>
</para>
<sect3>
<title>Known Problems</title>
<para>
With some laptops the fan is always on or at least very often. Here
are some remedies.
</para>
<sect4>
<title>Reduction of CPU Frequency</title>
<para>
In some cases the fan is always on because the CPU is working with
highest frequency. You may use either
<ulink url="http://sourceforge.net/projects/cpufreqd">cpufreqd</ulink>
or
<ulink url="http://mnm.uib.es/~gallir/cpudyn/">cpudyn</ulink>
to cure this.
</para>
</sect4>
<sect4>
<title>IRQ Problems with ParPort Module</title>
<para>
Sometimes the <filename>parport</filename> causes the fan to be
always on. You may edit the <filename>/etc/modules.conf</filename>
to cure this:
<programlisting role="small">
alias parport_lowlevel parport_pc
options parport_pc io=378 irq=7
</programlisting>
The IO address and the IRQ number depend on the hardware settings
or the BIOS configuration. Often the IRQ does not need to be given.
The problem and its solution was discussed in the
<!--
<ulink url="http://lists.suse.com/archive/suse-laptop/2002-Nov/0205.html">SuSE Laptop Mailing List</ulink>.
-->
<ulink
url="http://lists.opensuse.org/opensuse-mobile-de/2002-11/msg00174.html">SuSE Laptop Mailing List (in German)</ulink>.
</para>
</sect4>
<sect4>
<title>ACPI</title>
<para>
Sometimes a setting in the <filename>/proc/acpi/</filename> might
also help.
</para>
</sect4>
<sect4>
<title>Miscellaneous</title>
<para>
Pressing the Fn+z key kombination tells the BIOS to recheck the sensors and stops the fan,
for DELL laptops.
</para>
</sect4>
</sect3>
</sect2>
<sect2>
<title>Harddisk</title>
<!--
Serge Winitzki &lt;winitzki_AT_erebus.phys.cwru.edu&gt;
-->
<para>
To avoid unnecessary hard disk noise you may use the same
techniques as described in the power saving chapter above.
Modern laptop and notebook hard drives come with a so-called
"Acoustic Management", just have a look into the manual
to get an overview about the possible settings.
</para>
<para>
Some hard disk manufacturers offer dedicated tools, e.g.
Hitachi's
<ulink url="http://www.hitachigst.com/hdd/support/download.htm">Feature Tool</ulink>
allows to change the drive Automatic Acoustic Management settings to the
Lowest acoustic emanation setting (Quiet Seek Mode), or
Maximum performance level (Normal Seek Mode). Also
<command>hdparm -M</command> offers some Acoustic Management options.
</para>
</sect2>
<sect2>
<title>Miscellaneous Applications</title>
<para>
You may configure <command>vi</command> with the
<command>flash</command> option, so it will use a flash in case
of an error, instead of a bell. So just put this line into your
<filename>.vimrc</filename> or at the <command>vim</command> prompt:
<programlisting role="small">
set flash
</programlisting>
or try
<programlisting role="small">
set visualbell
</programlisting>
</para>
</sect2>
</sect1>
</chapter>
<!-- INCLUDE *************************************************************** -->
<!--
presentation chapter
-->
<!-- /INCLUDE ************************************************************** -->
<chapter id="mobile-guide-p5c2-solutions-with-laptops">
<title>Solutions with Mobile Computers</title>
<sect1 id="mobile-guide-p5c2s1-introduction">
<title>Introduction</title>
<para>
The power and capabilities of laptops and PDAs are sometimes limited as described
above. But in turn, they have a feature which desktops don't have their
mobility. I try to give a survey about applications which make sense in
connection with mobile computers.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s2-mobile-network-analyzer">
<title>Mobile Network Analyzer</title>
<para>
I'm not an expert in this field, so I just mention the tools I know.
Please check also for other applications. Besides the usual tools
<command>tcpdump</command>, <command>netcat</command>, there are two
applications I prefer, which may be used to analyze network traffic:
</para>
<para>
The <ulink url="http://www.ee.ethz.ch/stats/mrtg/">Multi Router Traffic Grapher (MRTG)</ulink>
is a tool to monitor the traffic load on network-links. MRTG generates HTML pages
containing GIF images which provide a LIVE visual representation of this
traffic. MRTG is based on Perl and C and works under
<acronym>UNIX</acronym> and Windows NT.
</para>
<para>
<ulink url="http://ntop.org/">Network Top - ntop</ulink>
is a <acronym>UNIX</acronym> tool that shows the network usage,
similar to what the popular top <acronym>UNIX</acronym> command does.
<command>ntop</command> is based on <command>libpcap</command> and it
has been written in a portable way in order to virtually run on every
<acronym>UNIX</acronym> platform and on Win32 as well.
<command>ntop</command> can be used in both interactive or web mode.
In the first case, <command>ntop</command> displays the network
status on the user's terminal. In web mode a web browser (e.g.
netscape) can attach to <command>ntop</command> (that acts as a web
server) and get a dump of the network status. In the latter case,
<command>ntop</command> can be seen as a simple RMON-like agent with
an embedded web interface.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s3-mobile-router">
<title>Mobile Router</title>
<para>
Though designed to work from a single floppy, the <emphasis>Linux Router
Project (LRP) </emphasis>, seems useful in combination with a laptop,
too.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s4-hacking-and-cracking-networks">
<title>Hacking and Cracking Networks</title>
<para>
When thinking about the powers of laptops, hacking and cracking networks
may come into mind. I don't want to handle this topic here, but
instead recommend the
<ulink url="http://www.linuxsecurity.com/Security-HOWTO">Security-HOWTO</ulink> .
<!--
FIXME is there another Security-HOWTO from Seyfried?? as well as from
TLDP?
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s5-mobile-data-collection">
<title>Mobile Data Collection</title>
<!--
see also Linux PDAs
-->
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Coffee.html">Coffee-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/AX25-HOWTO/">AX-25-HOWTO</ulink>
</para>
</listitem>
<!--
<listitem>
<para>
<ulink url="http://www.tldp.org/">HAM-HOWTO</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Serial-HOWTO.html">Serial-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Serial-Programming-HOWTO/">Serial-Programming-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Applications</title>
<para>
A Linux laptop can be used to collect data outside an office, e.g.
geodesy data, sales data, network checks, patient data in a hospital and
others. There is support for wireless data connections via cellular phone
modems and amateur radio. I am not sure whether <acronym>PCMCIA</acronym>
radio cards are supported, see
<ulink url="http://www.aironet.com/">Aironet Wireless Communications</ulink>.
</para>
</sect2>
<sect2>
<title>Specific Environments</title>
<para>
There are laptops available with cases build for a rugged environment
(even waterproof laptops). In some environments, for instance in
hospitals, take care of the Electro-Magnetic-Compatibility of the
laptop. This is influenced by many factors, for instance by the material
used to build the case. Usually magnesium cases shield better than the
ones made of plastics.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p5c2s6-mobile-office">
<title>Mobile Office</title>
<para>
With
<ulink url="http://www.kde.org">KDE</ulink> (K-Office),
<ulink url="http://www.gnome.org/">Gnome</ulink>
and the commercial products WordPerfect, Staroffice and
<ulink url="http://www.applix.com/">Applixware</ulink>
Linux has more and more business software applications. With the
corresponding hardware, e.g. a portable printer and a cellular phone
which connects to your laptop, you will have a very nice mobile office.
<!--
OpenOffice and apps for PDAs have to be mentioned.
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s7-digital-camera">
<title>Connection to Digital Camera</title>
<para>
AFAIK there are currently three methods to connect a digital camera to a
laptop: the infrared port (<trademark
class="registered">IrDA</trademark>), serial port and maybe USB. There
are also some auxiliary programs for conversion of pictures, etc.
</para>
<para>
Eric &lt;dago_AT_tkg.att.ne.jp&gt; wrote: "I finally succeeded in
downloading pictures from my digital camera, but not exactly the way I
expected, i.e. not through <acronym>USB</acronym> port but using
<acronym>PCMCIA</acronym> card port and memory stick device, part of
digital camera hardware. Anyway, some interesting things to mention:
</para>
<para>
Sony (pretending using a standard) uses the msdos format to store
images as JPEG files ; so the best way to have your OS recognizing
them is to mount the raw device like a msdos filesystem; using mount
directly doesn't work (don't know why) but an entry in the /etc/fstab
file allows you to mount the device correctly. i.e.:
<programlisting role="small">
/dev/hde1 /mnt/camera msdos user,noauto,ro 0 0
</programlisting>
Of course, <command>newfs</command> before <command>mount</command> works
too, but there is nothing to see at all ;-) I think both
<command>noauto</command> and <command>ro</command> are important flags;
I tried without it and it didn't work. Somehow the mount I got seems
buggy . And if <command>ro</command> is missing, the camera doesn't
recognize back the memory stick and it needs to be msdos-formatted.
</para>
<para>
Appropriate to the camera documentation , both <acronym>PCMCIA</acronym>
and <acronym>USB</acronym> port behave the same (for Mac and Windoze -
i.e. you see a file system auto mounted) - I deduce for Linux it should
be the same thing too, as long as the <acronym>USB</acronym> driver is
installed. I think now that mounting <acronym>USB</acronym> raw device
the way I did with <acronym>PCMCIA</acronym> should work, but I still
couldn't find which device to use."
</para>
<para>
<ulink url="http://digitalux.netpedia.net/">OpenDiS (Open Digita Support)</ulink>
is a library and utility program for cameras such as the Kodak
DC-220, DC-260, DC-265, and DC-280, that run Flashpoint's Digita
operating system. The library is a unix implementation of the
Digita Host Interface Specification, intended for embedding
Digita support in other products such as
<command>gPhoto</command>. The utility is a simple command-line
program for standalone downloading of photos from the cameras.
</para>
<para>
<ulink url="http://www.gphoto.org/">gPhoto</ulink>
enables you to take a photo from any digital camera, load it
onto your PC running a free operating system like GNU/Linux,
print it, email it, put it on your web site, save it on your
storage media in popular graphics formats or just view it on
your monitor. <command>gPhoto</command> sports a new HTML
engine that allows the creation of gallery themes (HTML
templates with special tags) making publishing images to the
world wide web a snap. A directory browse mode is implemented
making it easy to create an HTML gallery from images already on
your computer. Support for the Canon PowerShot A50, Kodak
DC-240/280 USB, and Mustek MDC-800 digital cameras.
</para>
<para>
<ulink url="http://www.lightner.net/lightner/bruce/ppc_use.html">photopc</ulink>
is a library and a command-line frontend to manipulate
digital still cameras based on Fujitsu chipset and Siarra
Imaging firmware. The program is known to work with Agfa,
Epson and Olympus cameras. Should also work with Sanyo, but
this is untested. The cameras typically come with software
for Windows and for Mac, and no description of the protocol.
With this tool, they are manageable from a
<acronym>UNIX</acronym> box. Bruce D. Lightner
&lt;lightner_AT_metaflow.com&gt; has added support for
Win32 and DOS platforms. Note that the program does not
have any GUI, it is plain command-line even on Windows.
For a GUI, check out the <command>phototk</command>
program.
</para>
<!--
<para>
<ulink url="http://members.xoom.com/kavalsky/dc20.htm">DC20</ulink>
is a user friendly package for the Kodak DC20 camera. It
consists of two programs, a low-level driver for
manipulating the camera from the command line and a TCL/Tk
front-end which uses the driver. You can use the internal
viewer, or choose any standard external viewer.
webpage not available anymore
</para>
-->
<para>
<ulink url="http://kdc2tiff.sourceforge.net/">kdc2tiff</ulink>
is software to convert .kdc images from Kodak's DC120
digital camera to .tiff or .jpg files. This software pays
particular attention to aspect ratio, high quality
scaling, contrast adjustment, gamma correction, and image
rotation.
</para>
<para>
<ulink url="http://www.netspace.net.au/~bmiller/linux/rdc2e/">rdc2e</ulink>
is a command line tool that downloads images from a
Ricoh RDC-2E digital camera. It is available as either
a source tar ball or a RedHat 6.1 i386 RPM.
</para>
<para>
<ulink url="http://www.debian.org/Packages/unstable/graphics/fujiplay.html">fujiplay</ulink>
Interface for Fuji digital cameras.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s8-quickcam">
<title>Connection to QuickCam (Video)</title>
<para>
AFAIK there are three methods to connect a
video camera to a laptop: a ZV port, FireWire and maybe USB,
but I don't know how this works with Linux. I have
heard rumors about using a sound card for video
data transfer to a Linux box, see
<ulink url="http://worldvisions.ca/~apenwarr/">apenwarr</ulink>
. I have heard rumors about a
Linux-QuickCam-mini-HOWTO, but couldn't find a
reliable URL yet. Check the <command>sane</command>
package which is build for scanner support, this
should contain support for still-grabbers as well.
</para>
<para>
<ulink url="http://kmc-utils.sourceforge.net/">kmc_remote</ulink>
provides a graphical interface for controlling
Kodak Motion Corder fast digital cameras over a
serial connection. kmc_remote is built on the
kmc_serial library, part of the kmc_utils
package. kmc_remote provides a virtual button
panel and simple one-touch commands for changing
system variables which would involve multiple
button operations on the real camera button
console. Buttons, record settings (image size,
record rate, shutter speed, trigger mode, burst
mode), and playback rate control should be fully
functional. All camera models are supported, as
well as both PAL and NTSC video.
</para>
<para>
<ulink url="http://www.intel.com/PCcamera/">Intel PC Camera Pro Pack</ulink>
is one of the first webcams with
<acronym>USB</acronym> ports. Also SONY has
announced a webcam with <acronym>USB</acronym>
port. See a survey at
<ulink url="http://www.steves-digicams.com/text_navigator.html">Steve's Digicams</ulink>
.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s9-television-set">
<title>Connection to Television Set</title>
<para>
If you have a ZV port in the laptop, it should be easy to connect it to
a TV set, using either NSCA or PAL, but I don't know whether either
works with Linux.
<!--
S-Video
video_linux.html
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s10-cellular-phone">
<title>Connection to Cellular Phone</title>
<para>
AFAIK there are two methods to connect a cellular phone to a laptop: via
the <emphasis>infrared port</emphasis> (<trademark
class="registered">IrDA</trademark>) or via the <emphasis>serial
port</emphasis>. See the Linux/<trademark
class="registered">IrDA</trademark> project for the current status of
<trademark class="registered">IrDA</trademark> connections. As far as I
know only the Ericsson SH888, the Nokia 8110 and the Siemens S25 provide
infrared support.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s11-gps">
<title>Connection to Global Positioning System (GPS)</title>
<para>
From the
<ulink url="http://tldp.org/HOWTO/Hardware-HOWTO/">Hardware-HOWTO</ulink>
I know there is <emphasis>Trimble Mobile GPS</emphasis> available for Linux.
You may also connect a GPS via a serial port. Most GPS receivers have
a data port and can connect to a PC with a special serial cable.
</para>
<para>
<itemizedlist>
<listitem>
<para>
Differential GPS is a technique to apply a correction factor from a
known location to a GPS signal. This can substantially reduce the
uncertainity in the GPS location. Normally the correction signal is
acquired using a special radio receiver: <command>dgpsip</command>
allows you to receive a DGPS signal via TCP/IP, and send it to the GPS
connected to your serial port.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.wombat.ie/gps/">DGPS</ulink>
is a project to put together a low cost hardware and software solution
for Differential GPS (in both real time mode using RTCM correction
format and in post processed mode).
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.mayko.com/gpsd.html">gpsd</ulink>
is a daemon that listens to a GPS or Loran receiver and translates
the positional data to simplified format that can be more easily
used by other programs, like chart plotters. The package comes with
a sample client that plots the location of the currently visible
GPS satellites (if available) and a speedometer. Added support for
the DeLame EarthMate as well as a new 'speedometer' mini client.
</para>
</listitem>
<listitem>
<para>
The
<ulink url="http://www.gbdirect.co.uk/">QtGPS</ulink>
package contains a piece of software for
<acronym>UNIX</acronym>/Linux/X and a GPS receiver. It performs
logging and replaying of a journey, supporting a moving-map
display. QtGPS works with Lat/Long and British OSGB (Ornance
Survey) co-ordinate systems.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.geog.uni-hannover.de/grass/index.php">GRASS</ulink>
(Geographic Resources Analysis Support System) is a free
software raster and vector based GIS, image processing system,
graphics production system, and spatial modeling system.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.eazy.net/users/fgiannan/xaprs/">XASTIR</ulink>
is a free APRS (Automatic Position Reporting System) program.
APRS(tm) was developed to track mobile GPS stations with
two-way radio to convey position reports, messaging, weather
and more. XASTIR plots this information on a map on your
screen where you can see the entire world or zoom down to
street level.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.amphibious.org/gps.html">as-gps</ulink>
contains a basic support library for accessing the
inexpensive ($20) Aisin-Seiki GPS Module previously
available at mavin.com. The package also includes several
simple console utilities for dumping satellite status,
location, and time and for synchronizing the system clock.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://academy.cas.cz/~gis/">gmap</ulink>
is a map viewer with emphasis on temporal data. It hopes
to evolve into a free and powerful Geographical
Information System.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.mgix.com/gps3d/">gps3d</ulink>
is a set of utilities that lets you manipulate your GPS
from your Linux box. One nice feature is the ability to
view GPS data (track, waypoints, fix, etc.) on an
OpenGL, 3D texture-mapped model of earth.
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s12-ham">
<title>Connection via Amateur Radio (HAM)</title>
<para>
As far as I know laptops are used in amateur radio contests. Please see
<!--
<ulink url="http://www.tldp.org/HOWTO/HAM-HOWTO.html">HAM-HOWTO</ulink>
link invalid HOWTO no longer at TLDP
-->
HAM-HOWTO by Terry Dawson, <emphasis>VK2KTJ</emphasis>,
&lt;terry_AT_perf.no.itg.telstra.com.au&gt;.
</para>
<!--
http://radio.linux.org.au
-->
<para>
<ulink url="http://www.eazy.net/users/fgiannan/xaprs/">XASTIR</ulink>
is a free APRS (Automatic Position Reporting System)
program. APRS(tm) was developed to track mobile GPS
stations with two-way radio to convey position
reports, messaging, weather and more. XASTIR plots
this information on a map on your screen where you
can see the entire world or zoom down to street
level.
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s13-satellite-watching">
<title>Satellite Watching</title>
<para>
Together with an antenna and software like <command>seesat</command> or
<command>sattrack</command> you can use a laptop to locate a satellite for
visual observation. You could also use <command>xephem</command> on a
laptop when stargazing. See also the
<ulink url="http://tldp.org/HOWTO/Astronomy-HOWTO/">Astronomy-HOWTO</ulink>
.
<!--
http://www.clearskyinstitute.com/xephem/ CSI
Linux-User 06/2003 p. 56ff.
-->
</para>
</sect1>
<sect1 id="mobile-guide-p5c2s14-aviation">
<title>Aviation</title>
<para>
Many people are using laptops for aviation related topics. The
<ulink url="http://metalab.unc.edu/fplan/Aviation-HOWTO/">Aviation HOWTO</ulink>
provides pointers to software packages that run under the Linux operating system
and are useful to private, commercial, or military pilots. The ultimate
goal is to enable pilots to use the Linux operating system for all their
aviation related computing needs.
</para>
<!--
GPLIGC is a program to analyze IGC flight data from GNSS flight
data recorders used by glider pilots. It can be used to optimize flights
for the online contest (2003 rules). It uses Perl/Tk and gnuplot. The
openGLIGCexplorer (written in C++) allows one to view the data in 3D with
OpenGL, and can also be used as a digital elevation model terrain viewer.
License: GNU General Public License (GPL)
URL: http://freshmeat.net/projects/gpligc/
-->
</sect1>
<sect1 id="mobile-guide-p5c2s15-blind-or-visually-impaired-users">
<title>Blind or Visually Impaired Users</title>
<para>
There are some groups of which could gain a
specific profit by using laptops. For instance
blind or visually impaired people (I explicitly
avoid to say handicapped people). See
<ulink url="http://tldp.org/HOWTO/Accessibility-HOWTO/">Accessibility-HOWTO</ulink>
and
<ulink url="http://leb.net/blinux/">Blinux - Linux for blind people</ulink>
for more information. <command>brltty</command> is
a program which supports different braille
terminals. <command>Festival</command> is
a speech synthesis system. Screen and
cursor magnifiers are available. See TuxMobil for a
<ulink url="http://tuxmobil.org/mobile_blind.html">small survey of laptop installation reports</ulink>
by or for blind people.
</para>
</sect1>
</chapter>
</part>
<!-- PART SIX ============================================================== -->
<part id="mobile-guide-p6-appendix">
<title>Appendix</title>
<appendix id="mobile-guide-a1-other-operating-systems">
<title>Other Operating Systems</title>
<sect1 id="mobile-guide-p6a1s1-dos-windows9x-nt">
<title>Microsoft DOS and Windows</title>
<sect2>
<title>Introduction</title>
<para>
There are a few reasons which might make it necessary to
put Micorosoft DOS/Windows and Linux together on one laptop. Often the support for
the flash ROM of <acronym>PCMCIA</acronym> cards and modems is not
available for Linux, or you have to retrieve hardware information, which
is not visible with Linux, due to a lack of support by some hardware
manufacturers. I'm not sure whether these tasks can be performed under an
emulation like DOS-EMU, WINE or VMware.
<!--
FAUmachine is a virtual machine, similar in many respects to [24]VMWare[tm] or
[25]Virtual PC[tm]. The FAUmachine virtual machine runs as a normal user process (no root
privileges or kernel modules needed) on top of (currently) Linux on i386 hardware. The
port of the FAUmachine virtual machine to OpenBSD is progressing well, the port to
Windows has just started.
http://www.connectix.com/products/vpc5w.html
http://www.vmware.com/support/
http://www.FAUmachine.org
-->
</para>
<para>
If you want Linux with X11, Netscape, etc., and
Microsoft-Windows9x,NT,2000,XP things will be tight in a 1GB harddisk.
Though I did so with a 810MB disk.
</para>
</sect2>
<sect2>
<title>DOS Tools to Repartition a Hard Disk</title>
<para>
Often you get a preinstalled version of Microsoft-Windows on your laptop. If you
just want to shrink the Windows partition, you need a tool to resize
the partition. Or you can remove the partition first, repartition, then
reinstall. Most of the following information I found at the page of
<ulink url="http://libweb.sonoma.edu/mike/fujitsu/">Michael Egan</ulink>
&lt;Michael.Egan_AT_sonoma.edu&gt;.
</para>
<para>
A well known and reliable commercial product is
<ulink url="http://www.powerquest.com/">Partition Magic</ulink>
from Power Quest.
</para>
<para>
<ulink url="http://www.bootitng.com">BootitNG</ulink> is a shareware
programm, which is capable of resizing NTFS, EXT2, EXT3 and ReiserFS
partitions.
</para>
<para>
<command>System Commander 2000</command> by Symantec? resizes FAT32
partitions, unlike Partition Magic, SC2000 seems to be able to work without
the presence of an installed Microsoft operating system (tough you may
use Partition Magic from two standalone floppy disks).
</para>
<para>
One more "newer" utility for repartitioning and resizing FAT partitions
is <emphasis>Ranish Partition Manager/Utility</emphasis> (FAT-32
support is claimed for this as well, Linux support is taken into
account.)
<ulink url="http://www.ranish.com/part/">Ranish Partition Manager/Utility</ulink>
.
</para>
<para>
Many people have used <emphasis>FIPS 15c</emphasis> (which may support FAT-32)
<ulink url="http://bmrc.berkeley.edu/people/chaffee/fips/fips.html">FIPS</ulink>
for repartitioning FAT partition sizes.) Also, another version from a
different source is FIPS 2.0 (claims to support FAT-32)
<ulink url="http://www.igd.fhg.de/~aschaefe/fips/">FIPS 2.0</ulink>
for repartitioning FAT partition sizes.)
</para>
</sect2>
<sect2>
<title>Partition Sharing</title>
<para>
You may share your swap space between Linux and Windows. Please see "Dealing with Limited Resources" section.
</para>
<para>
With Linux you can mount any kind of DOS/Windows partition of the type
<command>msdos</command>, <command>vfat</command> and even compressed
drives (Drivespace, etc.). For long file names use
<command>vfat</command> and if you like autoconversion ( a nice feature
for text files), you may do so by using the <command>conv=auto</command>
option. I have used this in my <filename>/etc/fstab</filename>, but
be aware this might cause some strange behaviour sometimes, look at
the kernel docs for further details.
</para>
<para>
<programlisting role="small">
/dev/hda8 /dos/d vfat user,exec,nosuid,nodev,conv=auto 0 2
</programlisting>
</para>
<para>
The other way round there are also
<ulink url="http://www.chrysocome.net/projects">some tools</ulink>,
which provide a means to read and write ext2 partitions from Windows9x/NT.
</para>
<para>
<ulink url="http://www.it.fht-esslingen.de/~zimmerma/software/ltools.htm">LREAD</ulink>
is a tool suite for Windows 9x and Windows NT (or DOS or Windows 3.x for
those who still have it) for accessing files on Linux harddisks (Linux's
native Extended 2 filesystem).
</para>
<para>
The tools allow to list directories, to copy files from Linux to DOS and
to copy files from DOS to Linux. You also can delete files or modify
access rights of Linux files from DOS/Windows.
</para>
<para>
In combination with an included simple server program, you can also
access your files from a remote client over the net (however, this might
be a security risk, as access protection in this case is rather simple).
</para>
<!--
Ext2 Installable File System For Windows - IFS
It provides Windows NT4.0/2000/XP with full access to Linux Ext2 volumes
(read access and write access). This may be useful if you have installed both
Windows and Linux as a dual boot environment on your computer.
http://www.fs-driver.org
acronis
-->
<sect3>
<title>LINE Is Not an Emulator</title>
<para>
<ulink url="http://line.sourceforge.net">LINE</ulink>
executes unmodified Linux applications on Windows by intercepting
Linux system calls. The Linux applications themselves are not emulated.
They run directly on the CPU just like all other Windows applications.
</para>
</sect3>
</sect2>
<sect2>
<title>Installation without CD Drive</title>
<para>
You may use the CD drive of a desktop (or copy the content of the CD to
the hard disk) and connect both machines with a null modem cable. Then
use a DOS boot floppy and the program <command>INTERLNK.EXE</command> to
connect both machines.
<!--
FIXME
only for really old machines
-->
</para>
</sect2>
<sect2>
<title>Miscellaneous</title>
<para>
<ulink url="http://www.travsoft.com/">TravSoft</ulink>
</para>
<para>
Windows/NT offers: RAS - Remote Access Service
</para>
<para>
Windows/9x/NT offers the PPTP protocol to connect to remote sites via
a TCP/IP tunnel. This protocol is also supported by Linux.
<ulink url="http://www.moretonbay.com/vpn/pptp.html">PoPToP</ulink>
is the PPTP server solution for Linux allowing Linux servers to function
seamlessly in the PPTP VPN environment. This enables administrators to
leverage the considerable benefits of both Microsoft clients and Linux
servers. The current pre-release version supports Windows 95/98/NT PPTP
clients and PPTP Linux clients. The PoPToP pre-release server is not yet
fully optimised. On release, PoPToP will be fully compliant with IETF
PPTP Internet Draft and it will seamlessly support Windows PPTP clients
with the full range of encryption and authentication features.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a1s2-bsd-unix">
<title>BSD <acronym>UNIX</acronym></title>
<para>
FreeBSD is a version of the <acronym>UNIX</acronym> operating system
that runs on PC hardware. It uses a different set of support for
<acronym>PCMCIA</acronym> devices, APM, and other mobility related
issues.
</para>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.freebsd.org/~picobsd/">PicoBSD</ulink>
is a one floppy version of FreeBSD 3.0-current, which in its
different variations allows you to have secure dialup access, small
diskless router or even a dial-in server. And all this on only one
standard 1.44MB floppy. It runs on a minimum 386SX CPU with 8MB of RAM
(no HDD required!). You probably may also use it to install BSD on a
laptop as described with micro Linuxes above.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.jp.FreeBSD.org/PAO/">PAO: FreeBSD Mobile Computing Package</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.monarch.cs.cmu.edu/">The CMU Monarch Project</ulink>
offers implementations of Mobile-IPv4 and Mobile-IPv6 for FreeBSD.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.yy.cs.keio.ac.jp/~sanpei/note-list.html">XF86Config Archive</ulink>
. A database of XF86Config files used by Linux and FreeBSD users. If you
need an XF86Config file for your notebook or laptop, check out this site.
(Some documents available in Japanese only.)
</para>
</listitem>
<listitem>
<para>
AFAIK there is no <trademark class="registered">IrDA</trademark> support yet.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://lists.openresources.com/FreeBSD/freebsd-mobile/">Archive of the FreeBSD-Mobile mailing list</ulink>
. Sorry don't know how to subscribe yet.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.jp.freebsd.org/PAO/LAPTOP_SURVEY/">Laptop Survey / FreeBSD - LTS</ulink>
is a project to collect information of laptop and NOTE-PC environments
running FreeBSD. It provides information in English and Japanese. Please support this project.
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p6a1s3-os-2">
<title>OS/2</title>
<para>
At
<ulink url="http://www.os2ss.com/users/DrMartinus/notebook.htm">The Notebook/2 Site</ulink>
by Dr. Martinus you may find information about different
notebooks and <acronym>PCMCIA</acronym> cards working with OS/2.
</para>
</sect1>
<!--
www.scenix.com
-->
<sect1 id="mobile-guide-p6a1s4-novell-netware">
<title>NOVELL Netware</title>
<para>
The client side with DOS/Windows9x style operating systems seems to be
no problem, since there are many <acronym>PCMCIA</acronym> cards with
drivers for Netware available. For Linux connections see the
<command>mars_nwe</command> package. Also the Caldera Linux distribtion
is well known for its Novell support.
</para>
<para>
I hadn't time to build a Netware server on a laptop yet and couldn't
check whether there are network connections possible
(<acronym>PCMCIA</acronym> driver for Netware server).
</para>
</sect1>
<sect1 id="mobile-guide-p6a1s5-debian-gnu-hurd">
<title>Debian GNU/Hurd (hurd-i386)</title>
<para>
The GNU Hurd is a totally new operating system being put together by the
GNU group. In fact, the GNU Hurd is the final component which makes it
possible to built an entirely GNU OS -- and Debian GNU/Hurd is going to
be one such (possibly even the first) GNU OS. The current project is
founded on the i386 architecture, but expect the others to follow soon.
</para>
<para>
The
<ulink url="http://www.urbanophile.com/arenn/hacking/hurd/hurd-hardware.html">GNU Hurd Hardware Compatibility Guide</ulink>
states that Hurd should work on laptops, but
<acronym>PCMCIA</acronym> support isn't ready yet.
</para>
</sect1>
</appendix>
<appendix id="mobile-guide-a2-other-resources">
<title>Other Resources</title>
<sect1 id="mobile-guide-p6a2s1-main-www-resources">
<title>Main WWW Resources</title>
<para>
Kenneth E. Harker maintains a quite valuable database at
<ulink url="http://www.linux-on-laptops.com/">Linux on Laptops</ulink>
. Please have a look at his site to get current information about
laptop related mailing lists, newsgroups, magazines and newsletters,
WWW sites and a big and up-to-date database about many different laptop
pages.
</para>
<para>
The author of this guide maintains the
<ulink url="http://tuxmobil.org/mylaptops.html">TuxMobil Linux Laptop and
Notebook Installation Survey</ulink> and a Linux compatibility database
about different laptop, notebook and PDA hardware, such as
<ulink url="http://tuxmobil.org/pcmcia_linux.html">PCMCIA/CardBus/CF-Cards</ulink>,
<ulink url="http://tuxmobil.org/graphic_linux.html">graphics cards</ulink>,
<ulink url="http://tuxmobil.org/sound_linux.html">sound chips</ulink>,
<ulink url="http://tuxmobil.org/ir_misc.html">IrDA devices</ulink>,
and more.
</para>
<!--
<para>
<ulink url="http://home.att.net/~epbrown01/PC_FAQ1.html">Portable computing FAQ1</ulink>
from the comp.sys.laptops news group.
</para>
outdated, check for newer issue
http://www.ece.ubc.ca/~davem/pda.html
University of British Columbia
Department of Electrical and Computer Engineering
Linux/PDA Software
Development Group
Group Leader: Dr. Dave Michelson
-->
</sect1>
<sect1 id="mobile-guide-p6a2s2-mailing-lists">
<title>Mailing Lists</title>
<para>
A survey of laptop mailing lists. Some of the addresses are taken from
Kenneths page. All comments are by me:
</para>
<sect2>
<title>General Lists</title>
<para>
To join the <emphasis>Linux-Laptop-Mailing-List</emphasis> at TuxMobil
visit the <ulink url="http://tuxmobil.org/mobilix_ml.html">subscription
page</ulink>. There you may find the list archive, too. This is a new
list, but offers a reasonable amount of members already.
</para>
<para>
To join the <emphasis>Linux-Laptop-Mailing-List</emphasis> from
Kernel.Org write a mail to &lt;majordomo_at_vger.kernel.org&gt; with
<command>subscribe linux-laptop</command> in the subject. You will
get a confirmation message than, which you have to reply
appropriately.
<!--
It has an
<ulink url="http://www.mail-archive.com/linux-laptop_at_vger.rutgers.edu">archive</ulink>
now.
DEAD LINK
-->
Note: This is the list formerly admininstrated by
&lt;majordomo_at_vger.rutgers.edu&gt;. This was a list with much
traffic, current traffic seems to be very low. The list seems to
have lost most of its members since changing the address.
</para>
<para>
A searchable mailing list archive (of the predecessor)
is hosted in the miscellaneous section of
<ulink url="http://www.geocrawler.com">GeoCrawler</ulink>.
</para>
<para>
The
<ulink url="http://www.egroups.com/group/linuxonlaptop">eGroups Discussion Forum (linuxonlaptop)</ulink>
is dedicated to Linux on laptop issues. It has almost no traffic and is archived.
</para>
<para>
Also the
<ulink url="http://www.egroups.com/group/linuxlaptop">eGroups Discussion Forum (linuxlaptop)</ulink>
is dedicated to Linux on laptop issues. It has almost no traffic and is archived.
</para>
<para>
The
<ulink url="http://www.eecs.umich.edu/~steveh/linux-notebook/discussion.html">Linux Notebook HQ Discussion Forum</ulink>
is dedicated to Linux on laptop issues. It has almost no traffic and is archived.
</para>
</sect2>
<sect2>
<title>Lists Dedicated to a Linux Distribution</title>
<para>
There is now a <emphasis>debian-laptop mailing list</emphasis>. Any
questions or discussions concerning running the Debian/GNU Linux
operating system(s) on laptops are welcome. Send mail to
&lt;debian-laptop-request_at_lists.debian.org&gt; with a subject of
<command>subscribe</command>. Or visit the
<ulink url="http://www.debian.org/MailingLists/subscribe">Debian/GNU Linux</ulink>
site and use the online form. The list is archived and has
a reasonable amount of traffic and a good quality.
</para>
<para>
SuSE offers a mailing list for discussion about mobility in the openSUSE
distribution &lt;opensuse-mobile_AT_opensuse.org&gt;. You may subscribe at
the
<ulink url="http://en.opensuse.org/Communicate">SuSE mailing list portal</ulink>.
Before asking questions there have a look into the
<ulink url="http://en.opensuse.org/HCL/Laptops">OpenSuse Hardware Compatibility List - HCL: Laptops</ulink>,
the
<ulink url="http://lists.opensuse.org/opensuse-mobile/">opensuse-mobile mailing list archive</ulink>
and the
<ulink url="http://en.opensuse.org/Documentation">OpenSuSE documentation portal</ulink>.
</para>
</sect2>
<sect2>
<title>Lists Dedicated to a Laptop or Manufacturer</title>
<para>
The
<ulink url="http://www.egroups.com/group/linux-dell-laptops">linux-dell-laptops</ulink>
is dedicated to Linux on DELL laptop issues. It has almost no traffic and is archived.
</para>
<para>
The linux-thinkpad list is dedicated to Linux on IBM ThinkPads issues. It
</para>
<para>
The linux-thinkpad list is dedicated to Linux on IBM ThinkPads issues.
It has almost no traffic. Write a mail to
&lt;majordomo_at_bm-soft.com&gt;.
</para>
<para>
Also the
<ulink url="http://www.topica.com/lists/linux-thinkpad/">linux-thinkpad</ulink>
is dedicated to Linux on IBM ThinkPads issues. It has almost no traffic and is archived.
</para>
<para>
The
<ulink url="http://www.onelist.com/subscribe.cgi/linux-on-portege">linux-toshiba-portege</ulink>
is dedicated to Linux on Toshiba Porteges issues. It has almost no traffic and is archived.
</para>
<para>
The linux-tosh-40xx list is dedicated to Linux on Toshiba Satellite 40xx
issues. It has almost no traffic. Write a mail to
&lt;majordomo_at_geekstuff.co.uk&gt;.
</para>
<!--
<para>
The
<ulink url="http://www.gweep.ca/mailman/listinfo.cgi/linux-tp240">linux-ibm-thinkpad-tp240-portege</ulink>
is dedicated to Linux on IBM ThinkPad 240 issues.
BUT: This list is intended to support users of Linux on the IBM ThinkPad
240 notebook. It is not a Linux help list, so please take most generic
Linux questions elsewhere.
Anyway this list seems not to be available anymore.
</para>
see Sony, IBM below
-->
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a2s3-usenet-newsgroups">
<title>USENET Newsgroups</title>
<para>
The USENET newsgroups can provide a source of information about aspects
of running Linux on notebooks that haven't yet been documented. If you
are unable to find the information you are looking for here or on any of
the pages linked to from this site, a post to the USENET newsgroups may
turn up an answer from someone that can help you.
</para>
<sect2>
<title>Linux Newsgroups</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="news:comp.os.linux.portable">comp.os.linux.portable</ulink>
As far as I know there is no archive of this group yet.
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.announce">comp.os.linux.announce</ulink>
</para>
</listitem>
<listitem>
<para>
comp.sys.mac.portables
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.answers">comp.os.linux.answers</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.development.apps">comp.os.linux.development.apps</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.development.system">comp.os.linux.development.system</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.hardware">comp.os.linux.hardware</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.misc">comp.os.linux.misc</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.networking">comp.os.linux.networking</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.setup">comp.os.linux.setup</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.os.linux.x">comp.os.linux.x</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
<title>PDA Newsgroups and IRC Channels</title>
<para>
<itemizedlist>
<listitem>
<para>
comp.sys.handhelds
</para>
</listitem>
<listitem>
<para>
comp.sys.newton.misc
</para>
</listitem>
<listitem>
<para>
comp.sys.palmtops
</para>
</listitem>
<listitem>
<para>
comp.sys.pen
</para>
</listitem>
<listitem>
<para>
#zaurus@irc.freenode.net
</para>
</listitem>
<listitem>
<para>
irc.freenode.net #opie #opie.de
<!--
Project OPIE- the Open Palmtop Integrated Environment
http://opie.handhelds.org | http://www.opie.info (german)
-->
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
<title>X Window System Newsgroups</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="news:comp.windows.x">comp.windows.x</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.windows.x.announce">comp.windows.x.announce</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.windows.x.apps">comp.windows.x.apps</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.windows.x.i386unix">comp.windows.x.i386unix</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
<sect2>
<title>Hardware Newsgroups</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="news:comp.sys.laptops">comp.sys.laptops</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:alt.periphs.pcmcia">alt.periphs.pcmcia</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.sys.ibm.pc.hardware.chips">comp.sys.ibm.pc.hardware.chips</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="news:comp.sys.ibm.pc.misc">comp.sys.ibm.pc.misc</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a2s4-rss-channels">
<title>Newsletters, RSS Channels</title>
<para>
<itemizedlist>
<listitem>
<para>
The
<emphasis>
<ulink url="http://tuxmobil.org/newsfeed.html">TuxMobil News (RDF/RSS)</ulink>
</emphasis>
is also available as a
<ulink url="http:tuxmobil.org/mobile_news.html">monthly digest via e-mail</ulink>.
</para>
</listitem>
<!--
LinuxDevices
ZDnet
-->
</itemizedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p6a2s4-magazines-and-newsletters">
<title>Magazines, Blogs Newsletters</title>
<para>
Magazines, blogs and newsletters about mobile computing in general.
</para>
<para>
<itemizedlist>
<listitem>
<para>
<emphasis>
<ulink url="http://laptopical.com/">Laptopical</ulink>: Laptops Weblog
</emphasis>
</para>
</listitem>
</itemizedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p6a2s5-general-laptop-information">
<title>General Laptop Information</title>
<!--
<para>
Lionel, "trollhunter" Bouchpan-Lerust-Juery,
&lt;trollhunter_AT_linuxfr.org&gt; has written a similar HOWTO, please look at his
<ulink url="http://infonomade.linuxfr.org/index.html">laptop pages</ulink>
(French version) or the
<ulink url="http://infonomade.linuxfr.org/indexen.html">laptop pages</ulink>
(English version).
</para>
-->
<para>
These are sources of information of general use to laptop and notebook
owners, regardless of the operating system used.
</para>
<para>
<ulink url="http://www.fcc.gov/oet/fccid/">Federal Communications Commission On-line Equipment Authorization Database</ulink>
If you are having problems identifying the manufacturer of a laptop
or notebook computer (or other electronic device,) this site lets
you search the FCC database based on the FCC ID number you can
usually find on the equipment if it was marketed in the United
States of America.
</para>
</sect1>
<!--
<sect1 id="mobile-guide-p6a2s6-laptop-volunteer-support-database">
<title>The Linux Laptop Volunteer Support Database</title>
link no longer valid ask Kenneth why
<para>
The
<ulink url="http://www.linux-on-laptops.com/volunteer.html">Linux Laptop Volunteer Support Database</ulink>
is an attempt to match those people who use the Linux operating
system on notebook or laptop computers and who wish to give back
to the Linux community and help other users with those people who
have questions, problems, or concerns about getting Linux running
on their mobile computers. The basic idea is that volunteers can
leave their name, e-mail address, and the brand name and model of
the laptop or notebook computer they are familiar with and
willing to answer questions about, and those with problems or
questions can look up others who are willing to help.
</para>
<para>
Those who already using Linux on their notebooks or laptops are highly
encouraged to sign up - the value of this service to the Linux community
grows with the number of volunteers and the variety of hardware
represented.
</para>
</sect1>
-->
</appendix>
<appendix id="mobile-guide-a3-repairing-the-hardware">
<title>Repairing the Hardware</title>
<para>
There are several different reasons that could make it necessary to open
the case of a laptop, notebook or PDA.
</para>
<para>
<orderedlist>
<listitem>
<para>
repair broken hardware
</para>
</listitem>
<listitem>
<para>
get some hardware info, which isn't available otherwise, e.g. reading the
sticker on an undetected chipset
</para>
</listitem>
<listitem>
<para>
remove the speakers (speakerektomy, as described in
<ulink url="http://tldp.org/HOWTO/Visual-Bell.html">Visual-Bell-HOWTO</ulink>
)
</para>
</listitem>
<listitem>
<para>
install overdrive for CPU
</para>
</listitem>
<listitem>
<para>
reflash the <acronym>BIOS</acronym>
</para>
</listitem>
<listitem>
<para>
change <acronym>BIOS</acronym> battery
</para>
</listitem>
<listitem>
<para>
upgrade harddisk
</para>
</listitem>
<listitem>
<para>
upgrade memory
</para>
</listitem>
<listitem>
<para>
implement additional hardware, e.g. an internal wireless LAN miniPCI card
</para>
</listitem>
</orderedlist>
</para>
<para>
Repairing a laptop can be quite expensive if you don't have a
manufacturer's warranty. Sometimes professional support is bad. But
opening a laptop case can be difficult. Often the procedures to upgrade
the memory and the harddisk are described in the manual. For further
details, you should try to get the maintenance/technical manual. Just
be extremely careful and make notes as to where each screw goes. You
must get most of them back in the right hole or you could ruin the
machine by damaging the system board. Also after you get all the screws
to an assembly out (some will be hidden) the parts are usually held
together with plastic clips molded in, so you still must exercise care
to separate them. Sometimes you need certain tools, for instance TORX
screw drivers or a solder kit. Good luck.
</para>
<warning>
<para>
Usually laptop and PDA manufacturers declare the warranty to be void if the case
was opened by people other than their own staff. If you want to try it
anyway you may find some interesting links about how to
<ulink url="http://repair4laptop.org/">repair, disassemble, upgrade or mod laptops or notebooks</ulink>,
<ulink url="http://repair4pda.org/">dissect, repair and upgrade broken PDAs and HandHelds</ulink>, as well as
<ulink url="http://repair4mobilephone.org/">take apart, repair and upgrade mobile (cell) phones</ulink>,
<ulink url="http://repair4player.org/">open, repair and upgrade mobile audio and video players</ulink> and
<ulink url="http://repair4printer.org/">repair and upgrade printers</ulink>.
</para>
</warning>
</appendix>
<appendix id="mobile-guide-a4-survey-micro-linuxes">
<title>Survey about Micro Linuxes</title>
<para>
Because of their small or non-existent footprint,
micro-Linuxes are especially suited to run on laptops -
particularly if you use a company-provided laptop running
Microsoft-Windows9x/NT. Or for installation purposes using another
non Linux machine. There are several
<emphasis>micro</emphasis> Linux distributions out there
that boot from one or two floppies or CD/DVD.
</para>
<para>
<!--
See
<ulink url="http://www.linuxhq.com">LinuxHQ</ulink>
or
<ulink url="http://www.txdirect.net/users/mdfranz/tinux.html">Tinux</ulink>
for details.
You may find a FAQ and a mailing list
about boot-floppies at
<ulink url="http://os.inf.tu-dresden.de/~sr1/boot-floppies/faq.html">Boot-Floppies-FAQ</ulink>
.
-->
Also a
<ulink url="http://tldp.org/HOWTO/Bootdisk-HOWTO/index.html">BootDisk-HOWTO</ulink>
is available. Thanks to Matthew D. Franz maintainer of
<ulink url="http://www.trinux.org/">Trinux</ulink> for this tips and
collecting most of the following URLs. Search also
for "mini distribution" at
<ulink url="http://freshmeat.net/">FreshMeat</ulink>.
</para>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.knopper.net/knoppix/index-en.html">Knoppix</ulink>
by Klaus Knopper is a bootable CD with a collection of
GNU/Linux software, automatic hardware detection, and
support for many graphics cards, sound cards, SCSI and
USB devices and other peripherals. KNOPPIX can be used
as a Linux demo, educational CD, rescue system, or
adapted and used as a platform for commercial software
product demos. It is not necessary to install anything
on a hard disk. Due to on-the-fly decompression, the CD
can have up to 2 GB of executable software installed on
it. A kix (Knoppix mini CD) is now available in the
contrib directory.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://sunsite.auc.dk/mulinux/">MuLinux</ulink> by Michele
Andreoli.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.toms.net/~toehser/rb/">tomsrbt</ulink>
"The most Linux on one floppy. (distribution or panic disk)." by Tom
Oehser.
</para>
</listitem>
<listitem>
<para>
Trinux
<ulink url="http://www.trinux.org/">Trinux</ulink>
"A Linux Security Toolkit" by Matthew D. Franz.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.psychosis.com/linux-router/">LRP "Linux Router Project"</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://home.sol.no/~okolaas/hal91.html">hal91</ulink>
<ulink url="http://chris.silmor.de/hal91/">hal91</ulink>
is a very small Linux distribution that fits on one floppy disk.
You need at least a 386 machine (FPU not necessary) with 8 mb ram to run
HAL91. The entire system runs in ram, so you can remove the floppy after
booting. The kernel supports IDE hard disks and ATAPI cdrom drives.
Supported filesystems are ext2, iso9660 and vfat, optional encryption using
AES is possible. Limited support for ethernet cards (NE2000 only) is also
included. Support for scsi adapters, parallel zip drive and other ethernet
cards is possible by loading kernel modules from an optional package.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.zelow.no/floppyfw/">floppyfw</ulink>
by Thomas Lundquist.
</para>
</listitem>
<listitem>
<para>
<!--
<ulink url="http://alberti.crs4.it/software/mini-linux/">minilinux</ulink>
(seems no more valid) or
webarchive: Not in Archive.
-->
<ulink url="http://www.kiarchive.ru/pub/linux/mini-linux/">minilinux</ulink>:
Minimal linux package. UMSDOS filesystem (no repartition), TCP/IP and
SLIP/PPP, X Windows including Xmosaic. Support Soundblaster, mouse, modem,
SCSI.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://sunsite.bilkent.edu.tr/pub/linux/monkey/docs/english.htm">Monkey Linux</ulink>
is a minimal Linux ELF distribution in 7.5MB archive (5
diskettes) designed to be used within MSDOS and to allow the user to
experiment with Linux anywhere he/she wants.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://web.archive.org/web/*/http://www.wu-wien.ac.at/usr/h93/h9301726/dlx.html">DLX</ulink>
by Erich Boehm is a full featured linux system running on Intel PC's. The special thing is
that DLX comes with only one 3,5" floppydisk. DLX boots with a kernel &gt;= 1.3.89 and
starts a ramdisk image. In addition to that DLX also has a writeable ext2
filesystem of about 130 kb on the same disk to easily store configuration
scripts (survives booting, is not on the ramdisk !). Further is DLX fully
prepared for the paralell-port ZIP-Drive which allows you to mount 100 mb
disks. You can even put large programs like perl5 on the disk
because a special directory on the ZIP-disk is mounted as /usr/local/*!
</para>
</listitem>
<listitem>
<para>
<ulink url="http://metalab.unc.edu/pub/Linux/kernel/images/">C-RAMDISK</ulink>
creates a bootable X Windows system
that fits on two 1.44 MB floppies. The kernel (2.0.26)
includes networking (PPP and dialin script, NE2000,
3C509) and the driver for the parallel port ZIP drive as
modules. The file system contains pppd, rlogin, tar
and ncftp and a small X Windows system. Requires a
Linux system (with 2.0.0 kernel or above) to create the
2 floppies. The cramdisk floppy set will boot to "xdm"
on a 486/pentium with 16MB RAM. For networking, the IP
addresses and/or ppp dialin sequence need to be set.
A method for modifying the floppy image is included.
</para>
</listitem>
<!--
website not available anymore
webarchive: in archive but nothing to download
<listitem>
<para>
<ulink url="http://celsius-software.hypermart.net/babel/">babel</ulink>
"A mini-distribution to run games"
</para>
</listitem>
-->
<!--
website not available anymore
webarchive: in archive but nothing to download
<listitem>
<para>
<ulink url="http://xdenu.tcm.hut.fi/">Xdenu</ulink>
, quotating Alan Cox: "<command>Xdenu</command> is a small distribution
program that installs as a set of DOS zips onto a DOS partition and gives
you a complete X11 client workstation."
</para>
</listitem>
-->
<!--
website not available anymore
webarchive: Robots.txt Query Exclusion.
<listitem>
<para>
<ulink url="http://www.ecks.org/loaf/">LOAF</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://pocket-linux.coven.vmh.net/">pocket-linux</ulink>
</para>
</listitem>
<!--
website not available anymore
webarchive: in archive but nothing to download
<listitem>
<para>
<ulink url="http://www.upce.cz/~kolo/fluf.htm">FLUF</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://www.linuxlots.com/~fawcett/yard/">YARD</ulink>
</para>
</listitem>
<!--
website not available anymore
webarchive: Not in Archive.
<listitem>
<para>
<ulink url="http://members.xoom.com/ror4/tlinux/">TLinux</ulink>
</para>
</listitem>
-->
<listitem>
<para>
<ulink url="http://linux.apostols.org/guru/wen/">ODL</ulink>
</para>
</listitem>
<listitem>
<para>
<!--
<ulink url="http://smalllinux.netpedia.net/">SmallLinux</ulink>
-->
<ulink url="http://www.superant.com/smalllinux/">SmallLinux</ulink>
by Steven Gibson. Three disk micro-distribution of Linux and utilities.
Based on kernel 1.2.11. Root disk is ext2 format and has
<command>fdisk</command> and <command>mkfs.ext2</command> so that a
harddisk install can be done. Useful to boot up on old machines with
less than 4MB of RAM.
</para>
</listitem>
<listitem>
<para>
<ulink url="ftp://ftp.blueznet.com/pub/colorg">cLIeNUX</ulink>
by Rick Hohensee client-use-oriented Linux distribution
</para>
</listitem>
<listitem>
<para>
<ulink url="http://metalab.unc.edu/pub/Linux/kernel">linux-lite</ulink>
by Paul Gortmaker for very small systems with less
than 2MB RAM and 10MB harddisk space (1.x.x kernel)
</para>
</listitem>
<listitem>
<para>
See also the packages at
<ulink url="http://metalab.unc.edu/pub/Linux/system/recovery/!INDEX.html">MetaLab</ulink>
formerly known as SunSite
and the
<ulink url="http://tldp.org/HOWTO/Bootdisk-HOWTO/index.html">Boot-Disk-HOWTO</ulink>
.
</para>
</listitem>
<listitem>
<para>
You may also consider some of the boot floppies provided by various
distributions falling into this category, e.g. the boot/rescue floppy of
Debian/GNU Linux.
</para>
</listitem>
<listitem>
<para>
If you like to build your own flavour of a boot floppy you may do so
manually, as described in the
<ulink url="http://tldp.org/HOWTO/Bootdisk-HOWTO/index.html">Boot-Disk-HOWTO</ulink>
or using some helper tools, for instance <command>mkrboot</command> (provided at least as a
Debian/GNU Linux package) or <command>pcinitrd</command>, which is
part of the <acronym>PCMCIA</acronym>-CS package by David Hinds.
</para>
</listitem>
<listitem>
<para>
Also you might try to build your Linux system on a ZIP drive. This is
described in the
<ulink url="http://tldp.org/HOWTO/ZIP-Install.html">ZIP-Install-HOWTO</ulink>
.
</para>
</listitem>
</orderedlist>
</para>
</appendix>
<appendix id="mobile-guide-a5-limited-resources">
<title>Dealing with Limited Resources or Tuning the System</title>
<sect1 id="mobile-guide-p6a5s1-related-howtos">
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://www.tldp.org/HOWTO/LBX.html">LBX-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Small-Memory/">Small-Memory-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www-128.ibm.com/developerworks/linux/library/l-lwl1/">Lightweight Linux, Part 1</ulink>:
Hardware is only as old as the software it runs: a modern operating system and
up-to-date applications return an older system to productivity. This article
provides best practices and step-by-step guidance on how to build a working
Linux system on older hardware or on modern hardware with limited memory and
storage.
<!--
Leverage older hardware and break the hardware/software upgrade cycle
-->
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s2-introduction">
<title>Introduction</title>
<para>
As mentioned in the introduction laptops sometimes have less resources
if you compare them to desktops. To deal with limited space, memory, CPU
speed and battery power, I have written this chapter.
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s3-small-space">
<title>Small Space</title>
<sect2>
<title>Introduction</title>
<para>
There are different types of techniques to gain more disk space, such as
sharing of space, freeing unused or redundant space, filesystem tuning
and compression. Note: some of these techniques use memory instead of disk
space. As you will see, there are many small steps necessary to free
some space.
</para>
</sect2>
<sect2>
<title>Techniques</title>
<para>
<orderedlist>
<listitem>
<para>
Stripping: Though many distributions come with stripped binaries today
it is useful to check this. For details see <command>man
strip</command>. To find every unstripped file you can use the
<command>file</command> command or more convenient the tool
<command>findstrip</command>. Attention: don't strip libraries,
sometimes the wrong symbols are removed due to a bad programming
technique. Or use the <command>--strip-unneeded</command> option.
</para>
</listitem>
<listitem>
<para>
Perforation: <command>zum(1)</command> reads a file list on stdin and
attempts to perforate these files. Perforation means, that series of
null bytes are replaced by <command>lseek</command>, thus giving the
file system a chance of not allocating real disk space for those bytes.
Example: <command>find . -type f | xargs zum</command>
</para>
</listitem>
<listitem>
<para>
Remove Odd Files and Duplicates: Check your system for core files, emacs
recovery files &lt;#FILE#&gt; vi recovery files &lt;FILE&gt;.swp, RPM
recovery files &lt;FILE&gt;.rpmorig and <command>patch</command>
recovery files. Find duplicates, you may try <command>finddup</command>.
Choose a system to name your backup, temporary and test files, e.g. with
a signature at the end.
</para>
</listitem>
<listitem>
<para>
Clean Temporary Files: , e.g. <filename>/tmp</filename>, there is even a
tool <command>tmpwatch</command>.
</para>
</listitem>
<listitem>
<para>
Shorten the Log Files: usually the files in <filename>/var/log</filename>.
You may use <command>logrotate</command> to achieve this task.
</para>
</listitem>
<listitem>
<para>
Remove Files: Remove files which are not "necessary" under all
circumstances such as man pages, documentation
<filename>/usr/doc</filename> and sources e.g.
<filename>/usr/src</filename> .
</para>
</listitem>
<listitem>
<para>
Unnecessary Libraries: You may use the <command>binstats</command>
package to find unused libraries (Thanks to Tom Ed White).
</para>
</listitem>
<listitem>
<para>
Filesystem: Choose a filesystem which treats disk space economically
e.g. <command>rsfs</command>. Tune your filesystem e.g.
<command>tune2fs</command>. Choose an appropriate partition and block
size.
</para>
</listitem>
<listitem>
<para>
Reduce Kernel Size: Either by using only the necessary kernel features
and/or making a compressed kernel image <command>bzImage</command>.
</para>
</listitem>
<listitem>
<para>
Compression: I didn't check this but as far as I know you may compress
your filesystem with <command>gzip</command> and decompress it on the
fly. Alternatively you may choose to compress only certain files. You
can even execute compressed files with <command>zexec</command>
</para>
</listitem>
<listitem>
<para>
Compressed Filesystems:
- For e2fs filesystems there is a compression version available
<ulink url="http://e2compr.sourceforge.net/">e2compr</ulink>.
</para>
<para>
- <ulink url="http://cmp.felk.cvut.cz/~pisa/dmsdos/">DMSDOS</ulink>
which enables your machine to access Windows95 compressed drives
(drivespace, doublestacker). If you don't need DOS/Windows95
compatibility, i.e. if you want to compress Linux-only data, this is
really discouraged by the author of the program.
<!--
<ulink url="http://fb9nt-ln.uni-duisburg.de/mitarbeiter/gockel/software/dmsdos/">dmsdos</ulink>
-->
</para>
</listitem>
<listitem>
<para>
Partition Sharing: You may share swap-space (see
<ulink url="http://tldp.org/HOWTO/Swap-Space.html">Swap-Space-HOWTO</ulink>) or
data partitions between different OS (see <command>mount</command>).
For mounting MS-DOS Windows95 compressed drives (doublespace,
drivespace) you may use <command>dmsdos</command>
<ulink url="http://metalab.unc.edu/pub/Linux/system/filesystems/dosfs/">dosfs/</ulink>
.
</para>
</listitem>
<listitem>
<para>
Libraries: Take another (older) library, for instance
<command>libc5</command> , this library seems to be smaller than
<command>libc6</command> also known as <command>glibc2</command> .
</para>
</listitem>
<listitem>
<para>
Kernel: If your needs are fitted with an older kernel version, you can
save some space.
</para>
</listitem>
<listitem>
<para>
GUI: Avoid as much Graphical User Interface (GUI) as possible.
</para>
</listitem>
<listitem>
<para>
Tiny Distributions: There are some distributions available which fit
from one 3.5" floppy to 10MB disk space and fit for small memories, too. See
<xref linkend="mobile-guide-a1-other-operating-systems"/> Appendix D
and below.
</para>
</listitem>
<listitem>
<para>
External Storage Devices (Hard Disks, ZIP Drives, NFS, SAMBA): Since
many notebooks may be limited in their expandability, using the parallel
port is an attractive option. There are external hard disks and ZIP
Drives available. Usually they are also connectable via
<acronym>PCMCIA</acronym>. Another way is using the resources of another
machine through NFS or SAMBA etc.
</para>
</listitem>
<listitem>
<para>
Purging of uneeded locales:
<command>localepurge</command> for Debian
is just a simple script to recover disk space wasted for unneeded
locale files and localized man pages. Depending on your installation, it
is possible to save some 200, 300, or even more megabytes of disk space
usually dedicated for locales you'll probably never have any usage for.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a5s4-harddisk-speed">
<title>Hard Disk Speed</title>
<para>
Use the tool <command>hdparm</command> to set up better harddisk
performance. Though I have seen laptop disk enabled with
<emphasis>striping</emphasis>, I can't see a reason to do so, because in
my humble opinion also known as RAID0 striping needs at least two
different disks to increase performance. Before using
<command>hdparm</command> check the BIOS settings for harddisk
parameters like DMA or ATA4 or 32bit transfer. The bad thing is that if
something is disabled there - it can not be enabled with
<command>hdparm</command>!
<!--
FIXME
Sebastian H. hdparm works even over BIOS settings!!
-->
</para>
<para>
See <acronym>UNIX</acronym> and LINUX Computing Journal:
<ulink url="http://www.diverge.org/ulcj/199910tfsp.shtml">Tunable Filesystem Parameters in /proc</ulink>
How to increase, decrease and reconfigure filsystem behavior from within
<filename>/proc</filename>.
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s5-small-memory">
<title>Small Memory</title>
<sect2>
<title>Related Documentation</title>
<para>
<orderedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Small-Memory/index.html">Small-Memory-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Module-HOWTO/">Module-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Kerneld/">Kerneld-HOWTO</ulink>
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>Techniques</title>
<para>
Check the memory usage with <command>free</command> and <command>top</command>.
</para>
<para>
<ulink url="http://www.complang.tuwien.ac.at/ulrich/mergemem/">Mergemem Project</ulink>
. Many programs contain <emphasis>memory areas of the same
content</emphasis> that remain undetected by the operating system.
Typically, these areas contain data that have been generated on startup
and remain unchanged for longer periods. With <command>mergemem</command>
such areas are detected and shared. The sharing is performed on the
operating system level and is invisible to the user level programs.
<command>mergemem</command> is particularily useful if you run many
instances of interpreters and emulators (like Java or Prolog) that keep
their code in private data areas. But also other programs can take
advantage albeit to a lesser degree.
</para>
<para>
You may also reduce the <emphasis>kernel size</emphasis> as much as
possible by removing any feature which is not necessary for your needs
and by modularizing the kernel as much as possible.
</para>
<para>
Also you may shutdown every service or <emphasis>daemon</emphasis> which
is not needed, e.g. <command>lpd</command>, <command>mountd</command>,
<command>nfsd</command> and close some <emphasis>virtual
consoles</emphasis>. Please see
<ulink url="http://tldp.org/HOWTO/Small-Memory/">Small-Memory-HOWTO</ulink>
for details.
</para>
<para>
And of course use <emphasis>swap space</emphasis>, when possible.
</para>
<para>
If possible you use the resources of another machine, for instance with
X11, VNC or even <command>telnet</command>. For more information on
Virtual Network Computing (VNC), see
<ulink url="http://www.realvnc.com/">VNC</ulink>.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a5s6-low-cpu-speed">
<title>Low CPU Speed</title>
<para>
You may want to overdrive the CPU speed but this can damage your
hardware and I don't have experience with it. For some examples look
at
<ulink url="http://www.silverace.com/libretto/">Adorable Toshiba Libretto - Overclocking</ulink>.
<!-- old http://www.cerf.net/~adorable/libretto.html -->
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s7-power-saving-techniques">
<title>Power Saving Techniques</title>
<para>
<orderedlist>
<listitem>
<para>
If you don't need infrared support, disable it in the
<acronym>BIOS</acronym> or shutdown the <trademark
class="registered">IrDA</trademark> device driver. There are also some
<trademark class="registered">IrDA</trademark> features of the kernel
which are useful for saving power.
</para>
</listitem>
<listitem>
<para>
<acronym>PCMCIA</acronym> services consume much power, so shut them down if you don't need them.
</para>
</listitem>
<listitem>
<para>
I'm not sure to which extend the <emphasis>backlight</emphasis> consumes power.
</para>
<warning>
<para>
<!--
see CT article
-->
As far as I know this device can only bear a limited
number of uptime circles. So avoid using screensavers,
which turn off the backlight.
</para>
</warning>
<para>
If you want do it anyhow, you may use <command>xset +dpms</command>
and <command>xset dpms 0 0 300</command> This turns the screen off
after 5 minutes of inactivity. Works only if the display is DPMS
capable.
</para>
</listitem>
<listitem>
<para>
For some examples to build batteries with increased uptime up to
8 hours look at
<ulink url="http://repair4laptop.org/notebook_battery.html">Repair4Laptop: Battery</ulink>
.
</para>
</listitem>
<listitem>
<para>
For information about <acronym>APM</acronym> look at the chapter
<acronym>APM</acronym> above.
</para>
</listitem>
<listitem>
<para>
The "noatime" option when mouting filesystems tells the kernel to
<emphasis>not</emphasis> update the <emphasis>access time</emphasis>
information of the file. This information, although sometimes useful, is
not used by most people. Therefore, you can safely disable it, then
preventing disk access each time you <command>cat</command> a file. Here
is an example of a <filename>/etc/fstab</filename> with this
power-saving option: <command> /dev/hda7 /var ext2 defaults,noatime 0 2
</command>
<!--
(do you know that <command>ls -lu</command>
gives you the access time?).
check man page !!!
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://sourceforge.net/projects/hdparm/">hdparm</ulink>
<emphasis>hdparm</emphasis> is a Linux disk utility that lets you
set spin-down timeouts and other disk parameters.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.complang.tuwien.ac.at/ulrich/linux/tips.html">Mobile Update Daemon</ulink>
This is a drop-in replacement for the standard <command>update</command>
daemon, <command>mobile-update</command> minimizes disk spin ups and
reduces disk uptime. It flushes buffers only when other disk activity is
present. To ensure a consistent file system call <command>sync</command>
manually. Otherwise files may be lost on power failure.
<command>mobile-update</command> does not use APM. So it works also on
older systems.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://noflushd.sourceforge.net/">noflushd</ulink>
: <command>noflushd</command> monitors disk activity and spins down
disks that have been idle for more than &lt;timeout&gt; seconds. It
requires a kernel &gt;=2.2.11 . Useful in combination with
<command>hdparm</command> and <command>mount</command> with
<emphasis>noatime</emphasis> option to bring down disk activity.
<!--
Aug 26 10:01:24 japh noflushd[311]: Spinning down /dev/hda.
Aug 26 10:01:40 japh noflushd[311]: Spinning up /dev/hda after 0 minutes of spindown.
<ulink url="http://noflushd.sourceforge.net">noflushd</ulink>
-->
</para>
<para>
Here are some comments and thoughts by Nat Makarevitch
<!-- nat_AT_makarevitch.org -->
about a possible approach which may
reduce the disk activity under Linux (sparing energy, especially with
noflushd) the file Documentation/filesystems/proc.txt of the Linux sourcetree
documents some useful features, esp. in the
<filename>/proc/sys/vm</filename> section.
Under Linux 2.2 I used:
<programlisting role="small">
echo "100 5000 8 256 500 60000 60000 1884 2" &gt; /proc/sys/vm/bdflush
</programlisting>
especially under Linux 2.4 which uses its spare time to 'pre-save' the
less-used memory pages into the swap, increasing the disk activity
I tried to figure the more adequate parameters (Linux 2.4.9, 192 MB RAM,
Toshiba 3480 laptop)
beware: some of those parameters may be dangerous or useless (I have not
gathered serious data about the practical efficiency). moreover do not
forget that delaying disk writes of data is intrinsically dangerous
<programlisting role="small">
echo 99 512 32 512 0 300000 60 0 0 &gt; /proc/sys/vm/bdflush
# is '60' the max value for age_super?
echo 1 1 96 &gt; /proc/sys/vm/buffermem
echo 512 128 32 &gt; /proc/sys/vm/kswapd
echo 1 10 96 &gt; /proc/sys/vm/pagecache
</programlisting>
</para>
</listitem>
<listitem>
<para>
The
<ulink url="http://www.buzzard.me.uk/toshiba/index.html">Toshiba Linux Utilities</ulink>
are a set of Linux utilities for controlling the fan, supervisor passwords,
and hot key functions of Toshiba Pentium notebooks.
There is a KDE package <emphasis>Klibreta</emphasis>, too.
</para>
</listitem>
<listitem>
<para>
At Kenneth E. Harker's page there is a recommendation for LCDproc
<ulink url="http://lcdproc.omnipotent.net/">LCDProc</ulink>
. "LCDproc is a small piece of software that will enable your Linux
box to display live system information on a 20x4 line backlit
<acronym>LCD</acronym> display. This program shows, among other
things, battery status on notebooks." I tried this package and
found that it connects only to the external
<ulink url="http://www.matrixorbital.com/">Matrix-Orbital</ulink>
<acronym>LCD</acronym> 20x4 display
, which is a <acronym>LCD</acronym> display connected to a serial
port. I can't see any use for a laptop yet, but you might use it to
build a wearable.
</para>
</listitem>
<listitem>
<para>
The
<ulink url="http://sourceforge.net/projects/diald/">Diald Dial Daemon</ulink>
provides on demand Internet connectivity
using the SLIP or PPP protocols. Diald can automatically dial
in to a remote host when needed or bring down dial-up
connections that are inactive.
<!--
FIXME
Sebastian H. how is this related to power saving?
-->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.kde.org">KDE</ulink>
provides <emphasis>KAPM</emphasis>,
<emphasis>Kbatmon</emphasis> and
<emphasis>Kcmlaptop</emphasis>. Written by Paul Campbell
<emphasis>kcmlaptop</emphasis> is a set of KDE control panels
that implements laptop computer support functions, it includes
a dockable battery status monitor for laptops - in short a
little icon in the KDE status bar that shows how much battery
time you have left. It also will warn you when power is
getting low and allows you to configure power saving options.
Similar packages you may find at the GNOME project
<ulink url="http://www.gnome.org/">GNOME</ulink>
. See the software maps at both
sites.
<!--
FIXME
should this be in the battery chapter?
-->
</para>
</listitem>
<listitem>
<para>
Please see the
<ulink url="http://tldp.org/HOWTO/Battery-Powered/">Battery-Powered-HOWTO</ulink>
for further information.
</para>
</listitem>
</orderedlist>
</para>
<!--
Serge Winitzki &lt;winitzki_AT_erebus.phys.cwru.edu&gt;:
-->
<para>
Some more words about
disks spin down with <command>noflushd</command> or
<command>hdparm</command> utilities. The objective
is to reduce hard disk usage to minimum, because on most laptops it
is the primary source of noise and energy consumption. The "noflushd" daemon is a
replacement of "update" which makes buffer updates on disk only when
some other data is being read from the disk (the behavior of "update"
is to flush buffers every 5 seconds, and it usually generates
constant disk activity, so that the disk never becomes idle).
"noflushd" also sets the disk spindown time and automatically calls
"sync" before spindown. The syntax is something like "noflushd -n 5
/dev/hda". Using "noflushd" may cause loss of data if some files were
edited while the disk was parked and not sync'ed, e.g. if the power
was suddenly lost.
</para>
<para>
The <command>hdparm</command> utility can set the sleep time too, and also tune the
IDE disk parameters for better performance. Make sure that the
kernel IDE parameter "Use DMA by default when available" (section
"Block devices") is enabled.
</para>
<para>
However, it is not enough to enable <command>noflushd</command>
or IDE disk sleep time to make the disk
effectively silent, because the system in most
default installations is running many cron jobs, writes to log files,
uses swap and so on. This activity is not always desirable,
especially if the computer is standalone (not on network) and is used
mostly by one user. Here are some recommendations.
</para>
<para>
First, the cron daemon and friends (anacron, atd, logrotate,
sendmail / exim / ...) could be removed from the system if the
services they run (such as, cleaning /tmp directories and logs,
checking email etc.) are not needed.
</para>
<para>
Secondly, the syslogd configuration file
<filename>/etc/syslog.conf</filename> should
be modified to reduce the number of log files and messages
logged, and also to have "-" signs before every file name (which
means that the system will not have to sync the disk every time a
message is logged).
</para>
<para>
Also, it is advisable to add "mark:none;" to the "syslog" strings,
so that the "strich strich strich MARK strich strich strich"
messages do not get written to the log files every half an hour.
Typical Linux installations today have too many log files for the
home user.
</para>
<para>
Finally, the disk may not go to sleep when a lot of swap space is
in use. Type "free" and see how much swap is being used and how
much free RAM is available. If you think there is enough free RAM
to work without swap, or if there is a lot of swap used AND also
a lot of free RAM, consider freeing the swap space ("su; swapoff
-a; swapon -a") or switching the swap space off altogether ("su;
swapoff -a"). Working without swap should be fine on systems with
64MB or more of RAM. (Working without swap will reduce the
available memory, of course, and some software crashes without
warning when it runs out of memory. But, adding swap will not
prevent the crash resulting from some runaway memory consumuing
software, it will only delay it, and it will make the system swap
a lot before it happens.)
</para>
<para>
With these changes in the system, one could get the laptop to
work for extended periods of time with its hard disk switched
off.
</para>
<para>
The kernel can be configured with "Yes" to "APM Support" and
"Enable console blanking using APM" (section "General setup").
Then the LCD screen lamp will shut off in console mode (so not
just the screen goes black, but also the lamp). In X mode, the
same effect can be obtained with "xset +dpms" (enable DPMS
function) and "xset s blank" (enable screen blanking). One can
add these commands to the X window session or window manager
initialization scripts.
</para>
<para>
The computer's BIOS energy savings options (hard disk sleep
time, video blanking time and so on) are probably not
useful and in some cases may even cause crashes. Therefore
they could be disabled in the laptop's BIOS.
<!--
FIXME
is this really true?
mention laptop-mode
-->
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s8-kernel">
<title>Kernel</title>
<sect2>
<title>Related Documentation</title>
<para>
<itemizedlist>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/Kernel-HOWTO/">Kernel-HOWTO</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tldp.org/HOWTO/BootPrompt-HOWTO.html">BootPrompt-HOWTO</ulink>
</para>
</listitem>
</itemizedlist>
</para>
<para>
Many kernel features are related to laptops. For instance APM,
<trademark class="registered">IrDA</trademark>,
<acronym>PCMCIA</acronym> and some options for certain laptops, e.g.
<trademark>IBM</trademark> ThinkPads. In some distributions they are not
included by default. And the kernel is usually bigger than necessary. So it's
seems a good idea to customize the kernel. Though this task might seem
difficult for the beginner it is highly recommended. Since this
involves dangerous operations you need to be careful. But, if you can
install a better kernel successfully, you've earned your intermediate
Linux sysadmin merit badge. - I will not handle this here,
because this topic is already covered in other documents.
</para>
<!--
The KernelBook Project: http://kernelbook.sourceforge.net The
KernelBook Project is a collaborative effort of open source and
commercial developers to create a functional specifications guide to
the Linux 2.3/2.4 kernel. This book in progress will be released
online for peer review and will be published by Macmillan Computer
Publishing under the Open Publishing License. Our intention is to
complement rather than compete with existing kernel documentation
projects.
-->
<para>
Compile a modular kernel with modules for CDROM, floppy,
pcmcia, sound and any other peripherals. It will allow to delay
loading of these modules until these devices are actually used,
and it may help recover the system after a hardware failure,
e.g. a bad CDROM, because a module can be removed and
re-inserted without restarting the system.
</para>
</sect2>
</sect1>
<sect1 id="mobile-guide-p6a5s9-tiny-applications">
<title>Tiny Applications and Distributions</title>
<para>
A small collection yet, but I'm looking for more information.
</para>
<para>
<orderedlist>
<listitem>
<para>
BOA - "Lightweight and High Performance WebServer.
<command>boa</command> is a single-tasking HTTP server. That means that
unlike traditional web servers, it does not fork for each incoming
connection, nor does it fork many copies of itself to handle multiple
connections. It internally multiplexes all of the ongoing HTTP
connections, and forks only for CGI programs (which must be separate
processes.) Preliminary tests show boa is capable of handling several
hundred hits per second on a 100 MHz Pentium."
</para>
</listitem>
<listitem>
<para>
<application>MGR</application> - a graphical windows system, which uses
much less resources than X.
</para>
</listitem>
<listitem>
<para>
Low Bandwidth X:
</para>
<para>
Alan Cox in LINUX REDUX February 1998 " .. there are two that handle
<emphasis>normal</emphasis> applications very nicely. LBX (Low Bandwidth
X) is the <emphasis>official</emphasis> application of the X11 Consortium (now
<ulink url="http://www.opengroup.org/">OpenGroup</ulink>.
<ulink url="http://www.vigor.nu/dxpc/">Dxpc</ulink>
is the alternative most people prefer. These systems act as proxy X11
servers and compress datastreams by well over 50 percent for normal
requests, often reaching a reduction to 25 percent of the original
bandwidth usage. With dxpc, X Windows applications are quite usable
over a 28.8 modem link or across the Internet."
</para>
</listitem>
<listitem>
<para>
<ulink url="http://blackboxwm.sf.net/">blackbox</ulink>
- "This is a window manager for X. It is similar in many respects to
such popular packages as Window Maker, Enlightenment, and FVWM2.
You might be interested in this package if you are tired of window
managers that are a heavy drain on your system resources, but you
still want an attractive and modern-looking interface."
</para>
<para>
<figure>
<title>Screenshot of <command>blackbox</command>.</title>
<mediaobject>
<imageobject>
<imagedata fileref="images/blackbox" align="center"/>
</imageobject>
<imageobject>
<imagedata fileref="images/blackbox.eps" format="EPS"/>
</imageobject>
<imageobject>
<imagedata fileref="images/blackbox.png" format="PNG"/>
</imageobject>
<textobject>
<phrase>Screenshot of <command>blackbox</command>.</phrase>
</textobject>
<!--
<caption>
<para>Screenshot of <command>blackbox</command>.</para>
</caption>
-->
</mediaobject>
</figure>
</para>
</listitem>
<!--
ratpoison is a simple Window Manager with no fat library
dependencies, no fancy graphics, no window decorations,
and no flashy wank. It is largely modelled after GNU
Screen which has done wonders in virtual terminal market.
All interaction with the window manager is done through
keystrokes. ratpoison has a prefix map to minimize the
key clobbering that cripples EMACS and other quality
pieces of software.
Ion, based on PWM, is a keyboard-friendly window manager with a very
text-editorish interface and no overlapping windows.
-->
<listitem>
<para>
<ulink url="http://www.xfce.org">xfce</ulink>
is a lightweight and stable desktop environment for various <acronym>UNIX</acronym> systems.
</para>
</listitem>
<listitem>
<para>
<application>linux-lite</application> - distribution based on a 1.x.x
kernel for systems with only 2MB memory and 10MB harddisk. URL see
above.
</para>
</listitem>
<listitem>
<para>
<!-- <ulink url="http://smalllinux.netpedia.net/">SmallLinux</ulink> -->
<ulink url="http://www.superant.com/smalllinux/">SmallLinux</ulink>
is a three disk micro-distribution of Linux and utilities. Based on
kernel 1.2.11. Root disk is ext2 format and has
<command>fdisk</command> and <command>mkfs.ext2</command> so that a
harddisk install can be done. Useful to boot up on old machines with
less than 4MB of RAM.
</para>
</listitem>
<listitem>
<para>
cLIeNUX - client-use-oriented Linux distribution.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.cs.vu.nl/~ast/minix.html">minix</ulink>
, not a Linux but a <acronym>UNIX</acronym> useful for very small
systems, such as 286 CPU and 640K RAM
. There is even X11 support named mini-x by
<ulink url="ftp://ftp.linux.org.uk/pub/linux/alan/">David I. Bell</ulink>
.
</para>
</listitem>
<listitem>
<para>
<command>screen</command> - tiny but powerful console manager.
John M. Fisk &lt;fiskjm_AT_ctrvax.vanderbilt.edu&gt; in
<ulink url="http://www.linuxgazette.com/issue01to08/lg_issue7.html#screen">LINUX GAZETTE</ulink>
<!-- July 1, 1996 --> :"It's a GUI, GUI, GUI, GUI world! " -- or so the
major OS manufacturers would have you belief. Truth is, that while this
is increasingly the case, there are times when the command line interface
(CLI) is still a very good choice for getting things done. It's fast,
generally efficient, and is a good choice on memory or CPU constrained
machines. And don't forget that there are still a lot of very nifty
things that can be done <emphasis>at the console</emphasis>."
</para>
</listitem>
<listitem>
<para>
tinyirc - "A tiny, stripped down IRC Client. Doesn't have most of the
more advance commands in the ircII family of IRC Clients, nor does it
have any color, but it works, and it's tiny."
</para>
</listitem>
<listitem>
<para>
JOVE Jonathans Own Version of Emacs, a small but powerful editor.
<!-- FIXME21 -->.
</para>
</listitem>
</orderedlist>
</para>
</sect1>
<sect1 id="mobile-guide-p6a5s10-hardware-upgrade">
<title>Hardware Upgrade</title>
<para>
You may also take into account to upgrade the hardware itself, though
this may have some caveats, see chapter Open a Laptop Case above. If you
<!-- FIXME xref -->
need a survey about the possibilities, you can take a look at
<ulink url="http://repair4laptop.org/">Repair4Laptop: repair, disassemble, upgrade or mod laptops or notebooks</ulink>.
</para>
</sect1>
</appendix>
<appendix id="mobile-guide-a6-ecology">
<title>Ecology and Laptops</title>
<sect1 id="mobile-guide-p6a6s1-ecology">
<title>Ecological Comparisons of Computers</title>
<para>
Scientists of
<ulink url="http://www.reuse-computer.de/">ReUse project</ulink>
located at the
<ulink url="http://tu-berlin.de/">Technical University of Berlin</ulink> recently compared the
energy consumption of different computer types along the life cycle. The
production of computers actually needs 535 kWh which is 10 % less than 4
years ago. Most of the energy will be consumed while the computer is used
for example at work for 8 hours/day. The energy consumption of new
computers with 2,5-3 GHz processors is even in the
stand-bye-mode still 100 Watt, whereas a 1,4 GHz PC needs 80
Watt and a 4 year old PC only needed 60 Watt. Therefore from the
ecological point of view it is better to buy an old computer
that didn't need the energy for a new production and which
consumes less electricity while it is being used.
</para>
<para>
LCD displays need less energy than other monitors. For this reason
laptops are the most ecological types of the compared computers. They
need the smallest amount of energy when they are used. And 3 year old
laptops are better than new ones since their processors need less
energy than new ones. There is also an article in the
German computer magazine
<ulink url="http://heise.de/ct/">C't 21/ 2003</ulink>.
</para>
<para>
Some more stuff about Linux as a means to save our environment is
included in the
<ulink url="http://computerecology.org/">Linux-Ecology-HOWTO</ulink>.
</para>
</sect1>
</appendix>
<appendix id="mobile-guide-a6-neomagic-chip">
<title>NeoMagic Graphics Chipset Series NM20xx</title>
<sect1 id="mobile-guide-p6a6s1-introduction">
<title>Introduction</title>
<para>
The NeoMagic graphics chipset series NM20xx has been popular in
laptops build around 1996.
For a long time this graphics chip was only supported by commercial X11 servers,
since the middle of 1998 RedHat provided a binary X11 server
manufactured by PrecisionInsight. Since version 3.3.3 the appropriate
X11 server is also available in XFree86.
</para>
</sect1>
<sect1 id="mobile-guide-p6a6s2-textmode-100-37">
<title>Textmode 100x37</title>
<para>
This chapter is a courtesy of Cedric Adjih
<!--
cedric.adjih_AT_inria.fr
-->
, though I have changed some minor parts. Please note: Another method to
achieve a better resolution in text mode is the use of the framebuffer
driver (as explained in the X-Windows chapter above). This method
requires kernel reconfiguration (some Linux distributions include an
appropriate kernel already) and a new entry (vga=NNN) in
<filename>/etc/lilo.conf</filename>. In text mode it works even with
VESA BIOSes before version 2.0, at least on the models I could test it.
Though the SVGATextMode method could be faster (couldn't check this
yet).
</para>
<para>
An apparently little known fact about the Neomagic chipset NM20xx is
that you can run text mode in 100x37 (i.e. 800x600). This text mode is
very nice (as opposed to the 80x25 which is ugly). I tried this with a
HP OmniBook 800 and suppose it might work with other laptops using the
NeoMagic chip, too.
</para>
<para>
The main problem is that is a bit difficult to set up, and if you're
going wrong with the commands <command>SVGATextMode</command>
or <command>restoretextmode</command> some results on the
<acronym>LCD</acronym> might be frightening. Although I didn't manage to
break my <acronym>LCD</acronym> with many attempts going wrong,
DISCLAMER: THIS MIGHT DAMAGE YOUR HARDWARE. YOU HAVE BEEN WARNED. FOLLOW
THE FOLLOWING INSTRUCTIONS AT YOUR OWN RISKS. I'M NOT RESPONSIBLE IF
SOMETHING BAD HAPPENS.
</para>
<sect2>
<title>Survey</title>
<para>
You need to do <emphasis>three</emphasis> main steps:
<orderedlist>
<listitem>
<para>
Enable Linux to boot in 800x600 textmode. The problem is that you won't
see any text before the following two steps aren't done.
</para>
</listitem>
<listitem>
<para>
Automatically run <command>restoretextmode</command> with correct register data.
</para>
</listitem>
<listitem>
<para>
Automatically run <command>SVGATextMode</command>.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
<sect2>
<title>More Details</title>
<para>
All the files I have modified, are available for now on
<ulink url="http://starship.python.net/crew/adjih/data/cda-omni-trick.tar.gz">my pages</ulink>
</para>
<sect3>
<title>Enabling Linux to Boot in 800x600</title>
<para>
Recent kernels (2.2.x) need to be compiled with CONFIG_VIDEO_GFX_HACK
defined. Default is off. (look in
<filename>/usr/src/linux-2.2.x/arch/i386/boot/video.S</filename>)
</para>
<para>
This is done by passing the parameter <command>vga=770</command> to
older kernels or <command>vga=7</command> to 2.2.x kernels. Example with
<filename>lilo.conf</filename>:
</para>
<para>
<programlisting role="small">
image=/boot/bzImage-modif
label=22
append="svgatextmode=100x37x8_SVGA" #explained later
vga=7
read-only
</programlisting>
</para>
</sect3>
<sect3>
<title>Running restoretextmode and SVGATextMode at Boot Time</title>
<para>
Running <command>restoretextmode</command> and
<command>SVGATextMode</command> at Boot Time. You must arrange to run
<command>restoretextmode &lt;name of some textreg.dat file&gt;</command>
and <command>SVGATextMode 100x37x8_SVGA</command> at boot time.
</para>
<para>
An example <filename>textreg.dat</filename> for restoretextmode
(obtained using <command>savetextmode</command>) is in my tar archive in
<filename>tmp/</filename>, and an example
<filename>/etc/TextConfig</filename>.
</para>
<para>
Since I'm lazy, I've simply put <command>SVGATextMode</command> and
<command>restoretextmode</command> in the
<filename>/etc/rc.boot/kbd</filename> file from my Debian/GNU Linux
which get executed at boot time (also available in the tar archive).
</para>
</sect3>
<sect3>
<title>Now the Key Point</title>
<para>
Annoying things will be displayed if you don't use the right
SVGATextMode in the right video text mode: this is why I also pass the
environmental variable <command>"svgatextmode=100x37x8_SVGA"</command>
(arbitrary name) to the kernel (using append=xxx in lilo.conf) when I
also set <command>vga=7</command>: the script
<filename>/etc/rc.boot/kbd</filename> tests this variable and calls
<command>restoretextmode</command> and <command>SVGATextMode</command>
IF AND ONLY IF.
</para>
</sect3>
</sect2>
<sect2>
<title>Road Map</title>
<para>
<orderedlist>
<listitem>
<para>
Recompile the kernel 2.2.x with CONFIG_VIDEO_GFX_HACK
</para>
</listitem>
<listitem>
<para>
Insert the restoretextmode with the correct parameter in the
initialisation script, with no other changes.
</para>
</listitem>
<listitem>
<para>
Boot with normal text mode (80x25) but restoretextmode: you should see
the screen going to 100x37, but with only 80x25 usable. Don't use
SVGATextMode yet.
</para>
</listitem>
<listitem>
<para>
It is much better to conditionnalize your initialize code as I did, to
keep the possibility of booting in both modes: you may test this now
with some reboots (starting restoretextmode or not).
</para>
</listitem>
<listitem>
<para>
Boot with 100x37 text mode using parameter <command>vga=7</command>
(lilo.conf), you should see white background at some point, but the
characters will be black on black. This is ok. You'll have to reboot
blindly now.
</para>
</listitem>
<listitem>
<para>
Insert the &lt;path&gt;/SVGATextMode 100x37x8_SVGA after the
restoretextmode in initialization scripts.
</para>
</listitem>
<listitem>
<para>
Reboot with <command>vga=7</command> (lilo.conf)
</para>
</listitem>
<listitem>
<para>
Should be OK now. Enjoy.
</para>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
</appendix>
<appendix id="mobile-guide-a7-annotated-bibliography">
<title>Annotated Bibliography: Books For Linux Nomads</title>
<para>
Scott Mueller: Upgrading and Repairing Laptops, 2003
</para>
<para>
From the publisher:
"Scott Mueller goes where no computer book author has gone before right past all
the warranty stickers, the hidden screws, and the fear factor to produce a
real owner's manual that every laptop owner should have on his desk.
This book shows the upgrades users can perform, the ones that are
better left to the manufacturer, and how to use add-on peripherals
to make the most of a laptop. The CD contains one-of-a-kind
video showing just what's inside a portable PC."
<ulink url="http://www.amazon.com/exec/obidos/ASIN/0789728001/lilaclinuxwithla">Amazon Order</ulink>.
</para>
<para>
Other resources:
<itemizedlist>
<listitem>
<para>
<ulink url="http://repair4laptop.org/">upgrading, repairing and modding laptops or notebooks</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://repair4pda.org/">upgrading, repairing and modding PDAs and HandHelds</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://repair4mobilephone.org/">upgrading, repairing and modding mobile (cell) phones</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://repair4player.org/">upgrading, repairing and modding mobile media players</ulink>
</para>
</listitem>
</itemizedlist>
</para>
<para>
Chris Hurley, Michael Puchol, Russ Rogers, Frank Thornton: WarDriving - Drive, Detect, Defend, A Guide to Wireless Security, 2004
</para>
<para>
From the Publisher:
"Wardriving has brought some of the top people in the wireless industry
together to put together a truly informative book on what wardriving is
and the tools that should be part of any IT department's arsenal that
either has wireless or is looking to deploy it." -John Kleinschmidt,
Michiganwireless.org Founder
The practice of WarDriving is a unique combination of hobby, sociological
research, and security assessment. The act of driving or walking through
urban areas with a wireless-equipped laptop to map both protected and
un-protected wireless networks has sparked intense debate amongst
lawmakers, security professionals, and the telecommunications industry.
This first ever book on WarDriving is written from the inside perspective
of those who have created the tools that make WarDriving possible and
those who gather, analyze, and maintain data on all secured and open
wireless access points in very major, metropolitan area worldwide. These
insiders also provide the information to secure your wireless network
before it is exploited by criminal hackers.
Wireless networks have become a way of life in the past two years. As more
wireless networks are deployed the need to secure them increases. This book
educates users of wireless networks as well as those who run the networks
about the insecurities associated with wireless networking. This effort is
called WarDriving. In order to successfully WarDrive there are hardware and
software tool required. This book covers those tools, along with cost
estimates and recommendations. Since there are hundreds of possible
configurations that can be used for WarDriving, some of the most popular are
presented to help readers decide what to buy for their own WarDriving setup.
Many of the tools that a WarDriver uses are the same tools that could be used
by an attacker to gain unauthorized access to a wireless network. Since this
is not the goal of a WarDriver, the methodology that users can use to
ethically WarDrive is presented. In addition, complete coverage of WarDriving
applications, such as NetStumbler, MiniStumbler; and Kismet, are covered."
<ulink url="http://www.amazon.com/exec/obidos/ASIN/1931836035/lilaclinuxwithla">Amazon Order</ulink>.
</para>
<para>
TuxMobil Resources:
<itemizedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/wireless_unix.html">Linux and Wireless LANs</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/manet_linux.html">Linux and Mobile AdHoc Networks - MANETs</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/wireless_community.html">Linux and Wireless Communities Around the World</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/linux_wireless_access_point.html">Linux and Wireless Access Points - WLAN APs</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/linux_wireless_sniffer.html">Linux and Wireless Sniffer Applications</ulink>
</para>
</listitem>
</itemizedlist>
</para>
<para>
Isidor Buchmann: Batteries in a Portable World - A Handbook on Rechargeable Batteries for Non-Engineers, 2001
</para>
<para>
From the Publisher:
"Batteries in a Portable World fills a definite need for practical
information about rechargeable batteries. Quite often, performance
specifications for batteries and chargers are based on ideal
conditions. Manufacturers carry out battery tests on brand new
equipment and in a protected environment, removed from the stress of
daily use. In Batteries in a Portable World, Mr. Buchmann observes the
battery in everyday life in the hands of the common user. By reading
Batteries in a Portable World, you will acquire a better understanding
of the strengths and limitations of the battery. You will learn how to
prolong battery life; become familiar with recommended maintenance
methods and discover ways to restore a weak battery, if such a method
is available for that battery type. Knowing how to take care of your
batteries prolongs service life, improves reliability of portable
equipment and saves money. Best of all, well-performing batteries need
replacement less often, reducing the environmental concern of battery
disposal."
<ulink url="http://www.amazon.com/exec/obidos/ASIN/0968211828/lilaclinuxwithla">Amazon Order</ulink>.
</para>
<para>
TuxMobil Resources:
<itemizedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/energy_laptops.html">Power Supplies for Laptops and PDAs</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/mobile_battery.html">Linux Tools for Laptop, Notebook and PDA Batteries</ulink>
</para>
</listitem>
</itemizedlist>
</para>
<para>
<ulink url="http://www.verysecurelinux.com/">Bob Toxen</ulink>:
Real World Linux Security: Intrusion Detection, Prevention, and Recovery 2nd Ed., 2002
</para>
<para>
This book contains a chapter about mobile security.
<ulink url="http://www.amazon.com/exec/obidos/ASIN/0130464562/lilaclinuxwithla">Amazon Order</ulink>.
<!--
Online: <ulink url="http://www.realworldlinuxsecurity.com/">here</ulink>;
-->
</para>
<para>
TuxMobil Resources:
<itemizedlist>
<listitem>
<para>
<ulink url="http://tuxmobil.org/mobile_security.html">Security for Mobile Linux Computers</ulink>
</para>
</listitem>
<listitem>
<para>
<ulink url="http://tuxmobil.org/stolen_laptops.html">Theft and Loss Protection for Linux Laptops, Notebooks and PDAs</ulink>
</para>
</listitem>
</itemizedlist>
</para>
</appendix>
<appendix id="mobile-guide-a8-resources-specific-laptops">
<title>Resources for Specific Laptop Brands</title>
<para>
Certain laptops have found some more enthusiastic Linux users, than
other models. This list is probably not comprehensive:
</para>
<!--
<sect1 id="mobile-guide-p6a8s1-acer">
<title>Acer</title>
<para>
<ulink url="http://www.tldp.org/">Linux Installation on an Acer LapTop HOWTO</ulink> by Harish Thampi.
</para>
</sect1>
-->
<sect1 id="mobile-guide-p6a8s2-compaq">
<title>COMPAQ</title>
<para>
<!--
<ulink url="http://www.inetdirect.net/stg/pen/chris/concerto.html">COMPAQ Concerto Fan's Home Page</ulink>
and
-->
<ulink url="http://www.zenspider.com/~pwilk/aero_stuff.html">COMPAQ Contura Aero-FAQ</ulink>.
</para>
<para>
The latest version of the
<ulink url="http://www.cs.nmsu.edu/~pfeiffer/index_old.html#linux">Linux Compaq Concerto Pen Driver</ulink>
is available from Joe Pfeiffer's home page.
</para>
</sect1>
<sect1 id="mobile-guide-p6a8s3-dell">
<title>DELL</title>
<para>
Mailing list at
<ulink url="http://www.egroups.com/group/linux-dell-laptops">linux-dell-laptops</ulink>
</para>
<para>
Manufacturer Linux information:
<ulink url="http://linux.dell.com/desktops.shtml">DELL</ulink>
</para>
</sect1>
<sect1 id="mobile-guide-p6a8s4-ibm">
<title><trademark>IBM/Lenovo</trademark> ThinkPad</title>
<para>
ThinkPad Configuration Tool for Linux by Thomas Hood
<ulink url="http://tpctl.sourceforge.net/">tpctl</ulink>
</para>
<para>
<emphasis>Running Linux on
<trademark>IBM</trademark>ThinkPads</emphasis>, to join send an email
to <command>linux-thinkpad-subscribe_at_topica.com</command>, to post
send mail to <command>linux-thinkpad_at_topica.com</command> . See
<ulink url="http://www.topica.com/lists/linux-thinkpad/">here for details</ulink>.
</para>
<para>
<ulink url="http://www.slac.stanford.edu/~strauman/pers/tp4utils/">TrackPoint driver</ulink> by Till Straumann.
</para>
</sect1>
<sect1 id="mobile-guide-p6a8s5-sony">
<title>Sony VAIO</title>
<para>
For installation on VAIOs via external CD drive, see chapter Installation
above. Some hints for the Jog-Dial you may find in the
chapter Mice Species. The SONY VAIO C1 series includes some models,
which are based on the first dedicated mobile CPU, the CRUSOE.
The CRUSOE is manufactured by
<ulink url="http://www.transmeta.com/">TransMeta</ulink>
. At TransMeta you may find information about the binary
compatibility of the CRUSOE. The
<ulink url="http://samba.org/picturebook/">Sony PCG-C1XS Picturebook Camera Capture</ulink>
program captures images and movies on a Sony VAIO picturebook PCG-C1XS, taking
advantage of the built in CCD camera and hardware JPEG encoder. It
features PPM capture, JPEG capture (hardware JPEG), AVI capture of
MJPEG, MJPEG capture of separate frames (for MPEG encoding),
setting of brightness/contrast/etc., and a 1:4 sub-sampling option.
<!--
Andrew Tridgell tridge_AT_linuxcare.com
FIXME
xref 2x
-->
</para>
<!--
<para>
There are two HOWTOs available:
<ulink url="http://www.cadic.com/VAIO-HOWTO">The Linux SONY Vaio PCG-C1XD HOWTO</ulink>
(dead link)
by Philippe CADIC &lt;ccadic_AT_cadic.com&gt;. And the VAIO-HOWTO at the LDP.
</para>
-->
<para>
There is also a VAIO C1 related Linux mailing list, too
&lt;linux-c1_at_gnu.org&gt;.
</para>
<para>
<ulink url="http://frijoles.com/c1-info/faq.html">Sony Vaio C1 FAQ</ulink>
mostly MS-Windows related, but contains useful hardware information and a mailing list.
</para>
<para>
The
<ulink url="http://spicd.raszi.hu/">SONY VAIO SPIC daemon</ulink>
is a fast and small hack for create a
working apmd to Sony VAIO laptops. It uses the sonypi kernel module to
detect the AC adapter status and the LCD backlight, and cpufreq for CPU
frequency change.
</para>
<para>
<ulink url="http://www.alcove-labs.org/en/software/sonypi/">spicctrl</ulink>
uses the sonypi interface provided by /dev/sonypi and the Linux
kernel.
</para>
</sect1>
<sect1 id="mobile-guide-p6a8s6-toshiba">
<title>Toshiba</title>
<para>
<ulink url="http://www.buzzard.me.uk/toshiba/index.html">Toshiba Linux Utilities</ulink>
are a set of Linux utilities for controlling the fan, supervisor
passwords, and hot key functions of Toshiba Pentium notebooks.
Utilities to change supervisor passwords and adjust power/battery modes
are included.
There is a KDE package <emphasis>Klibreta</emphasis>, too.
</para>
<para>
Mailing lists:
<ulink url="http://www.onelist.com/subscribe.cgi/linux-on-portege">linux-on-portege</ulink>
, Linux on Toshiba Satellite 40xx linux-tosh-40xx &lt;majordomo_at_geekstuff.co.uk&gt;.
</para>
<para>
Toshiba itself offers now
<ulink url="http://linux.toshiba-dme.co.jp/linux/index.htm">Toshiba Linux Support (Japanese branch)</ulink> and
<ulink url="http://newsletter.toshiba-tro.de/main/index.html">Toshiba Linux Support (German branch)</ulink>
.
</para>
</sect1>
</appendix>
<appendix id="mobile-guide-a10-credits">
<title>Credits</title>
<!--
<epigraph>
<attribution>
Karl Marx / Isaac Newton ?
</attribution>
<para>
Wir stehen alle auf den Schultern von Riesen.
</para>
</epigraph>
-->
<para>
I would like to thank the many people who assisted with
corrections and suggestions. Their contributions have made this work far
better than I could ever have done alone. Especially I would like to
thank:
</para>
<para>
<itemizedlist>
<listitem>
<para>
First of all Kenneth E. Harker <!-- &lt;kharker_AT_cs.utexas.edu&gt; -->,
from his page
<ulink url="http://www.linux-on-laptops.com/">Linux on Laptops</ulink>
I have included much material into this HOWTO, but didn't always quote
him verbatim.
</para>
</listitem>
<listitem>
<para>
The other authors from
<ulink url="http://tldp.org/">THE LINUX DOCUMENTATION PROJECT - TLDP</ulink>
.
</para>
</listitem>
<listitem>
<para>
The members of the
<ulink url="http://irda.sourceforge.net/">Linux/<trademark class="registered">IrDA</trademark> Project</ulink>
.
</para>
</listitem>
<listitem>
<para>
The members of the Linux-Laptop Mailing List.
</para>
</listitem>
<listitem>
<para>
The members of the Debian-Laptop Mailing List.
</para>
</listitem>
<listitem>
<para>
The members of the SuSE-Laptop Mailing List.
</para>
</listitem>
<listitem>
<para>
The visitors and contributors of my
<ulink url="http://tuxmobil.org/">TuxMobil</ulink>
project.
</para>
</listitem>
<!--
sort order ABC
-->
<listitem>
<para>
Cedric Adjih <!-- cedric.adjih_AT_inria.fr -->, wrote the chapter about the NeoMagic chipset.
</para>
</listitem>
<listitem>
<para>
Amlaukka <!-- amlaukka_AT_cs.Helsinki.FI -->
</para>
</listitem>
<listitem>
<para>
Michele Andreoli, maintainer of
<ulink url="http://sunsite.auc.dk/mulinux/">muLinux</ulink>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.procyon.com/~pda/lphdisk/">Patrick D. Ashmore <!-- pda_AT_procyon.com --></ulink>
</para>
</listitem>
<listitem>
<para>
Ben Attias <!-- hfspc002_AT_csun.edu -->.
</para>
</listitem>
<listitem>
<para>
Gerd Bavendiek <!-- bav_AT_esn.sbs.de -->,
<ulink url="http://netenv.sourceforge.net">netenv</ulink>
</para>
</listitem>
<listitem>
<para>
John Beimler <!-- john_AT_radiomind.com -->, provided the URL of <command>photopc</command>.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.nemein.com">Henri Bergius</ulink> <!-- Henri.Bergius_AT_nemein.com -->
</para>
</listitem>
<listitem>
<para>
Ludger Berse <!-- lberse01_AT_cityweb.de -->.
</para>
</listitem>
<listitem>
<para>
Stephane Bortzmeyer <!-- stephane_AT_sources.org --> for
his suggestions about email with UUCP, the use of CVS or
related tools to synchronize two machines, and
the <command>noatime</command> mount option.
</para>
</listitem>
<listitem>
<para>
Lionel, "trollhunter" Bouchpan-Lerust-Juery
<!-- trollhunter_AT_linuxfr.org
, for providing the
<ulink url="http://infonomade.linuxfr.org/portables/ressourcesfr.html">French translation</ulink>
and information about
<ulink url="http://infonomade.linuxfr.org/indexen.html">wearables</ulink>
.
-->
</para>
</listitem>
<listitem>
<para>
Felix Braun <!-- fbraun_AT_atdot.org -->.
</para>
</listitem>
<listitem>
<para>
David Burley <!-- khemicals_AT_marblehorse.org -->
</para>
</listitem>
<listitem>
<para>
David Chien <!-- chiendh_AT_uci.edu -->
</para>
</listitem>
<listitem>
<para>
Sven Crouse <!-- scrouse_AT_dcs.uconn.edu --> for information about touchpads
</para>
</listitem>
<listitem>
<para>
Eric <!-- dago_AT_tkg.att.ne.jp --> wrote how to transfer pictures from a digital camera.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://home.snafu.de/ingo.dietzel/">Ingo Dietzel</ulink>
<!-- ingo.dietzel_AT_berlin.snafu.de -->, for his patience with the project.
</para>
</listitem>
<listitem>
<para>
Brian Edmonds <!-- brian_AT_gweep.bc.ca -->
</para>
</listitem>
<listitem>
<para>
Peter Englmaier <!-- ppe_AT_pa.uky.edu -->, provided the chapter about a sophisticated email setup.
</para>
</listitem>
<listitem>
<para>
Joel Eriksson <!-- joel.eriksson_AT_alfa.telenordia.se -->, for information about Atari laptops.
</para>
</listitem>
<listitem>
<para>
Heiko Ettelbrueck <!-- mail at ettelbrueck.de -->
</para>
</listitem>
<listitem>
<para>
Gledson Evers <!-- pulga_linux_AT_bol.com.br -->, started the Portuguese translation.
</para>
</listitem>
<listitem>
<para>
Klaus Franken <!-- kfr_AT_klaus.franken.de -->.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.guido.germano.com">Guido Germano</ulink>
<!-- guido_AT_germano.com -->, for information about the Macintosh Powerbook 145B.
</para>
</listitem>
<listitem>
<para>
Bill Gjestvang <!-- datawolf_AT_ibm.net -->.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://splitbrain.org/">Andreas Gohr</ulink> prepared some sections of the PDA chapter and more
</para>
</listitem>
<listitem>
<para>
Alessandro Grillo <!-- Alessandro_Grillo_AT_tivoli.com -->, started the Italian translation.
</para>
</listitem>
<listitem>
<para>
Sven Grounsell <ulink url="http://tuxhilfe.de/">TuxHilfe</ulink>
</para>
</listitem>
<listitem>
<para>
Mikael Gueck <!-- mikael.gueck_AT_wapit.com -->
</para>
</listitem>
<listitem>
<para>
Marcus Hagn <!-- hagn_AT_gmx.net --> has written some powersaving tweaks
</para>
</listitem>
<listitem>
<para>
W. Wade, Hampton <!-- whampton_AT_staffnet.com -->, did much of spell, grammar and style checking and added many valuable information.
</para>
</listitem>
<listitem>
<para>
Sebastian Henschel prepared some sections of the PDA chapter and more <!-- shensche_AT_linuxmail.org -->
</para>
</listitem>
<listitem>
<para>
David Hinds, the maintainer of the
<ulink url="http://pcmcia-cs.sourceforge.net/"><acronym>PCMCIA</acronym>-CS</ulink> package.
</para>
</listitem>
<listitem>
<para>
Karsten Hopp <!-- Karsten.Hopp_AT_sap.com -->
</para>
</listitem>
<listitem>
<para>
Scott Hurring <!-- ScottH_AT_eac.com -->
</para>
</listitem>
<listitem>
<para>
JK <!-- ninjaz_AT_webexpress.com --><!-- kdjk5467 jk_AT_onshore.com -->
</para>
</listitem>
<listitem>
<para>
Uwe SV Kubosch <!-- uwe.kubosch_AT_sbs.siemens.no -->, hints about Amiga
</para>
</listitem>
<listitem>
<para>
Jeremy D. Impson <!-- jdimpson_AT_acm.org -->
provided instructions about installing on a Toshiba Libretto 50CT
<ulink url="http://nwc.syr.edu/~jdimpson">Jeremy D. Impson</ulink>
</para>
</listitem>
<listitem>
<para>
Adrian D. Jensen <!-- adjensen_AT_notes.west.raytheon.com --> , provided some notes on removable hard disks
</para>
</listitem>
<listitem>
<para>
Steven G. Johnson <!-- stevenj_AT_alum.mit.edu -->, provided most of the information about Apple/Macintosh m68k machines and LinuxPPC on the PowerBook.
</para>
</listitem>
<listitem>
<para>
Dan Kegel <!-- dank_AT_alumni.caltech.edu -->, pointed me to the Toshiba Linux page.
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.mk-stuff.de/">Michael Kupsch</ulink>
</para>
</listitem>
<listitem>
<para>
Gilles Lamiral <!-- lamiral_AT_mail.dotcom.fr --> for providing the PLIP Install-HOWTO.
</para>
</listitem>
<listitem>
<para>
Sian Leitch <!-- algol68_AT_sleitch.nildram.co.uk -->, suggestions on style
</para>
</listitem>
<listitem>
<para>
<ulink url="http://www.leo.org/~loescher/">Stephan Loescher</ulink> <!-- loescher_AT_leo.org -->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://home.pages.de/~lufthans/">LuftHans</ulink>
<!-- ldp-discuss_AT_LuftHans.com -->, announced this HOWTO to the maintainer of the
<ulink url="http://tldp.org/HOWTO/Hardware-HOWTO/">Hardware-HOWTO</ulink>.
</para>
</listitem>
<listitem>
<para>
Anderson MacKay <!-- mackay_AT_rice.edu -->,
<ulink url="http://linux.rice.edu">RLUG - Rice University Linux User Group</ulink>
, gave many different detailed recommendations.
</para>
</listitem>
<listitem>
<para>
Nat Makarevitch gave suggestions how to use <command>noflushd</command> <!-- nat_AT_makarevitch.org -->
</para>
</listitem>
<listitem>
<para>
Jari Malinen, for support with HUT Mobile IP (now Dynamics
<!--
jtm_AT_mart2.cs.hut.fi
<ulink url="http://www.cs.hut.fi/~jtm">Jari Malinen</ulink>
-->
Mobile IP).
</para>
</listitem>
<listitem>
<para>
Paul Mansfield <!-- paul_AT_mansfield.co.uk -->, ICQ:13391313 information about removable hard disks
</para>
</listitem>
<listitem>
<para>
Stefan Martig <!-- martig_AT_iamexwi.unibe.ch -->.
</para>
</listitem>
<listitem>
<para>
Marco Michna <!-- mmichna_AT_suse.de -->, from
<ulink url="http://www.suse.de">SuSE</ulink>
</para>
</listitem>
<listitem>
<para>
Harald Milz <!-- hm_AT_suse.de -->, from
<ulink url="http://www.suse.de">SuSE</ulink> provided numerous additions.
</para>
</listitem>
<listitem>
<para>
Emerson, Tom # El Monte <!-- TOMEMERSON_AT_ms.globalpay.com -->, for his idea about laptop bags.
</para>
</listitem>
<listitem>
<para>
Dan Mueth <!-- d-mueth_AT_uchicago.edu --> author of the
<ulink url="http://kmc-utils.sourceforge.net/">kmc_utils</ulink>
</para>
</listitem>
<listitem>
<para>
Louis A. Mulieri <!-- mulieri_AT_salus.med.uvm.edu -->, information about removable hard disks
</para>
</listitem>
<listitem>
<para>
Nathan Myers
<!-- ncm_AT_linuxlaptops.com -->
, from
<ulink url="http://www.linuxlaptops.com">LL - LinuxLaptops</ulink>
for numerous additions.
</para>
</listitem>
<listitem>
<para>
Leandro Noferin
<!-- lnoferin_AT_cybervalley.org -->, for proofreading the <emphasis>italian</emphasis> parts.
</para>
</listitem>
<listitem>
<para>
Ulrich Oelmann
<!-- ulrich.oelmann_AT_tu-clausthal.de -->
, gave valuable additions about the installation with <command>muLinux</command>.
</para>
</listitem>
<listitem>
<para>
Michael Opdenacker, for tips and tricks about PDAs and moral support
<ulink url="http://free-electrons.com/">Free-Electrons</ulink>
</para>
</listitem>
<listitem>
<para>
Federico Pellegrin
<!--
<ulink url="http://sole.infis.univ.trieste.it/~drzeus/rh_pcd.html">Federico Pellegrin</ulink>
drzeus_AT_infis.univ.trieste.it
-->,
provided the chapter about installation from a parallel port CD drive
</para>
</listitem>
<listitem>
<para>
Sean 'Shaleh' Perry, <!-- shaleh_AT_livenet.net -->, Debian maintainer of
<command>anacron</command> and other packages, for Debian support.
</para>
</listitem>
<listitem>
<para>
Igor Pesando <!-- ipesando_AT_to.infn.it -->.
</para>
</listitem>
<listitem>
<para>
Benjamin C. Pierce <!-- bcpierce_AT_saul.cis.upenn.edu -->
</para>
</listitem>
<listitem>
<para>
Lucio Pileggi <!-- lucio_AT_ing.unipi.it -->, provided information about the Siemens S25 cellular phone.
</para>
</listitem>
<listitem>
<para>
Jacek Pliszka <!-- pliszka_AT_phyun0.ucr.edu --> , provided information
about miscellaneous topics, e.g. USB devices, external floppy and CD drives.
</para>
</listitem>
<listitem>
<para>
Lorn 'ljp' Potter (Qtopia Community Liaison) gave some improvements for the PDA chapter
</para>
</listitem>
<listitem>
<para>
Steve Rader <!-- rader_AT_wiscnet.net -->.
</para>
</listitem>
<listitem>
<para>
Bruce Richardson <!-- brichardson_AT_lineone.net -->
</para>
</listitem>
<listitem>
<para>
<ulink url="http://jaime.robles.nu">Jaime Robles</ulink>
<!-- ea4abw_AT_amsat.org -->, gave me some information about the HAM-HOWTO.
</para>
<!-- <ulink url="http://www.geocities.com/SiliconValley/5161">Jaime Robles</ulink>
http://inicia.es/de/ea4abw/linux.html
-->
</listitem>
<listitem>
<para>
Pete Rotheroe <!-- rotheroe_AT_yahoo.com -->
</para>
</listitem>
<listitem>
<para>
Simon Rowe <!-- sjrowe_AT_ewor.co.uk -->
</para>
</listitem>
<listitem>
<para>
Frank Schneider <!-- SPATZ1_AT_T-ONLINE.DE -->.
</para>
</listitem>
<listitem>
<para>
Hans Schou <!-- chlor_AT_schou.dk -->, FlashPath for Linux
</para>
</listitem>
<listitem>
<para>
Martin "Joey" Schulze <!-- joey_AT_finlandia.infodrom.north.de -->
</para>
</listitem>
<listitem>
<para>
Chandran Shukla <!-- chandran_AT_xmission.com -->.
</para>
</listitem>
<listitem>
<para>
Fabio Sirna provided a script to show the battery status in console mode
with ACPI <!-- farnis at libero.it -->
</para>
</listitem>
<listitem>
<para>
Adam Spiers <!-- adam_AT_thelonious.new.ox.ac.uk -->.
</para>
</listitem>
<listitem>
<para>
Peter Sprenger <!-- spre_AT_lugs.ch -->.
</para>
</listitem>
<listitem>
<para>
Bill Staehle <!-- staehle_AT_netvalue.net -->
</para>
</listitem>
<listitem>
<para>
Leon Stok <!-- stok_AT_YIS.NL -->
</para>
</listitem>
<listitem>
<para>
Christian Stolte <!-- stolte_AT_fuchinobe.skk.slb.com -->
</para>
</listitem>
<listitem>
<para>
Peter Teuben <!-- teuben_AT_astro.umd.edu -->, for some suggestions about hard disks.
</para>
</listitem>
<listitem>
<para>
Bob Toxen <!-- bob_AT_cavu.com -->.
</para>
</listitem>
<listitem>
<para>
Thomas Traber <!-- traber_AT_inetmail.de -->.
</para>
</listitem>
<listitem>
<para>
Geert Van der Plas <!-- Geert.VanderPlas_AT_esat.kuleuven.ac.be -->, provided information about the touchpad driver included in the GPM.
</para>
</listitem>
<listitem>
<para>
Marcel Ovidiu Vlad <!-- marceluc_AT_leland.Stanford.EDU -->.
</para>
</listitem>
<listitem>
<para>
Michael Wiedmann <!-- mw_AT_miwie.in-berlin.de -->,
<ulink url="http://www.in-berlin.de/User/miwie/pia/">PIA - X11 based PalmPilot Address Manager</ulink>
, found many spelling errors and more.
</para>
</listitem>
<listitem>
<para>
Tim Williams <!-- timmerw_AT_inlink.com -->, pointed me to System Commander 2000 partition manager
</para>
</listitem>
<listitem>
<para>
Serge Winitzki <!-- &lt;winitzki_AT_erebus.phys.cwru.edu&gt; --> wrote some
recommendations for noise reduction and/or energy saving
</para>
</listitem>
<listitem>
<para>
Richard Worwood
<!--
<ulink url="http://www.felch01.demon.co.uk/laptop-howto.html">Richard Worwood</ulink>
richard_AT_felch01.demon.co.uk , for mirroring of the HOWTO.
-->
</para>
</listitem>
</itemizedlist>
</para>
<para>
Sorry, but probably I have forgotten to mention everybody who helped.
</para>
</appendix>
<appendix id="mobile-guide-a11-copyrights">
<title>Copyrights</title>
<epigraph>
<attribution>
N.N.
</attribution>
<para>
GNU GPL "The source will be with you ... always!"
</para>
</epigraph>
<sect1 id="mobile-guide-p6a11s1-copyrights">
<title>Copyrights</title>
<para>
For all chapters except "Lectures, Presentations, Animations and
Slideshows" permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with
the Invariant Sections being "Preface" and "Credits", with the
Front-Cover Texts being "Linux on the Road - the First Book on Mobile
Linux", and with the Back-Cover Texts being the section "About the
Author". A copy of the license is included in the section entitled "GNU
Free Documentation License".
</para>
<para>
Copyright for the included pictures belongs to their respective owners.
</para>
</sect1>
<sect1 id="mobile-guide-p6a11s2-gfdl">
<title>GNU Free Documentation License - GFDL</title>
<para>
Version 1.1, March 2000
</para>
<para>
Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place,
Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and
distribute verbatim copies of this license document, but changing it is
not allowed.
</para>
<sect2>
<title>0. PREAMBLE</title>
<para>
The purpose of this License is to make a manual, textbook, or other
written document "free" in the sense of freedom: to assure everyone the
effective freedom to copy and redistribute it, with or without modifying
it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their
work, while not being considered responsible for modifications made by
others.
</para>
<para>
This License is a kind of "copyleft", which means that derivative works
of the document must themselves be free in the same sense. It
complements the GNU General Public License, which is a copyleft license
designed for free software.
</para>
<para>
We have designed this License in order to use it for manuals for free
software, because free software needs free documentation: a free program
should come with manuals providing the same freedoms that the software
does. But this License is not limited to software manuals; it can be
used for any textual work, regardless of subject matter or whether it is
published as a printed book. We recommend this License principally for
works whose purpose is instruction or reference.
</para>
</sect2>
<sect2>
<title>1. APPLICABILITY AND DEFINITIONS</title>
<para>
This License applies to any manual or other work that contains a notice
placed by the copyright holder saying it can be distributed under the
terms of this License. The "Document", below, refers to any such manual
or work. Any member of the public is a licensee, and is addressed as
"you".
</para>
<para>
A "Modified Version" of the Document means any work containing the
Document or a portion of it, either copied verbatim, or with
modifications and/or translated into another language.
</para>
<para>
A "Secondary Section" is a named appendix or a front-matter section of
the Document that deals exclusively with the relationship of the
publishers or authors of the Document to the Document's overall subject
(or to related matters) and contains nothing that could fall directly
within that overall subject. (For example, if the Document is in part a
textbook of mathematics, a Secondary Section may not explain any
mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal,
commercial, philosophical, ethical or political position regarding them.
</para>
<para>
The "Invariant Sections" are certain Secondary Sections whose titles are
designated, as being those of Invariant Sections, in the notice that
says that the Document is released under this License.
</para>
<para>
The "Cover Texts" are certain short passages of text that are listed, as
Front-Cover Texts or Back-Cover Texts, in the notice that says that the
Document is released under this License.
</para>
<para>
A "Transparent" copy of the Document means a machine-readable copy,
represented in a format whose specification is available to the general
public, whose contents can be viewed and edited directly and
straightforwardly with generic text editors or (for images composed of
pixels) generic paint programs or (for drawings) some widely available
drawing editor, and that is suitable for input to text formatters or for
automatic translation to a variety of formats suitable for input to text
formatters. A copy made in an otherwise Transparent file format whose
markup has been designed to thwart or discourage subsequent modification
by readers is not Transparent. A copy that is not "Transparent" is
called "Opaque".
</para>
<para>
Examples of suitable formats for Transparent copies include plain ASCII
without markup, Texinfo input format, LaTeX input format, SGML or XML
using a publicly available DTD, and standard-conforming simple HTML
designed for human modification. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary
word processors, SGML or XML for which the DTD and/or processing tools
are not generally available, and the machine-generated HTML produced by
some word processors for output purposes only.
</para>
<para>
The "Title Page" means, for a printed book, the title page itself, plus
such following pages as are needed to hold, legibly, the material this
License requires to appear in the title page. For works in formats which
do not have any title page as such, "Title Page" means the text near the
most prominent appearance of the work's title, preceding the
beginning of the body of the text.
</para>
</sect2>
<sect2>
<title>2. VERBATIM COPYING</title>
<para>
You may copy and distribute the Document in any medium, either
commercially or noncommercially, provided that this License, the
copyright notices, and the license notice saying this License applies to
the Document are reproduced in all copies, and that you add no other
conditions whatsoever to those of this License. You may not use
technical measures to obstruct or control the reading or further copying
of the copies you make or distribute. However, you may accept
compensation in exchange for copies. If you distribute a large enough
number of copies you must also follow the conditions in section 3.
</para>
<para>
You may also lend copies, under the same conditions stated above, and
you may publicly display copies.
</para>
</sect2>
<sect2>
<title>3. COPYING IN QUANTITY</title>
<para>
If you publish printed copies of the Document numbering more than 100,
and the Document's license notice requires Cover Texts, you must enclose
the copies in covers that carry, clearly and legibly, all these Cover
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the
back cover. Both covers must also clearly and legibly identify you as
the publisher of these copies. The front cover must present the full
title with all words of the title equally prominent and visible. You may
add other material on the covers in addition. Copying with changes
limited to the covers, as long as they preserve the title of the
Document and satisfy these conditions, can be treated as verbatim
copying in other respects.
</para>
<para>
If the required texts for either cover are too voluminous to fit
legibly, you should put the first ones listed (as many as fit
reasonably) on the actual cover, and continue the rest onto adjacent
pages.
</para>
<para>
If you publish or distribute Opaque copies of the Document numbering
more than 100, you must either include a machine-readable Transparent
copy along with each Opaque copy, or state in or with each Opaque copy a
publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the
general network-using public has access to download anonymously at no
charge using public-standard network protocols. If you use the latter
option, you must take reasonably prudent steps, when you begin
distribution of Opaque copies in quantity, to ensure that this
Transparent copy will remain thus accessible at the stated location
until at least one year after the last time you distribute an Opaque
copy (directly or through your agents or retailers) of that edition to
the public.
</para>
<para>
It is requested, but not required, that you contact the authors of the
Document well before redistributing any large number of copies, to give
them a chance to provide you with an updated version of the Document.
</para>
</sect2>
<sect2>
<title>4. MODIFICATIONS</title>
<para>
You may copy and distribute a Modified Version of the Document under the
conditions of sections 2 and 3 above, provided that you release the
Modified Version under precisely this License, with the Modified Version
filling the role of the Document, thus licensing distribution and
modification of the Modified Version to whoever possesses a copy of it.
In addition, you must do these things in the Modified Version:
</para>
<para>
A. Use in the Title Page (and on the covers, if any) a title distinct
from that of the Document, and from those of previous versions (which
should, if there were any, be listed in the History section of the
Document). You may use the same title as a previous version if the
original publisher of that version gives permission.
</para>
<para>
B. List on the Title Page, as authors, one or more persons or entities
responsible for authorship of the modifications in the Modified Version,
together with at least five of the principal authors of the Document
(all of its principal authors, if it has less than five).
</para>
<para>
C. State on the Title page the name of the publisher of the Modified
Version, as the publisher.
</para>
<para>
D. Preserve all the copyright notices of the Document.
</para>
<para>
E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
</para>
<para>
F. Include, immediately after the copyright notices, a license notice
giving the public permission to use the Modified Version under the terms
of this License, in the form shown in the Addendum below.
</para>
<para>
G. Preserve in that license notice the full lists of Invariant Sections
and required Cover Texts given in the Document's license notice.
</para>
<para>
H. Include an unaltered copy of this License.
</para>
<para>
I. Preserve the section entitled "History", and its title, and add to it
an item stating at least the title, year, new authors, and publisher of
the Modified Version as given on the Title Page. If there is no section
entitled "History" in the Document, create one stating the title, year,
authors, and publisher of the Document as given on its Title Page, then
add an item describing the Modified Version as stated in the previous
sentence.
</para>
<para>
J. Preserve the network location, if any, given in the Document for
public access to a Transparent copy of the Document, and likewise the
network locations given in the Document for previous versions it was
based on. These may be placed in the "History" section. You may omit a
network location for a work that was published at least four years
before the Document itself, or if the original publisher of the version
it refers to gives permission.
</para>
<para>
K. In any section entitled "Acknowledgements" or "Dedications", preserve
the section's title, and preserve in the section all the substance and
tone of each of the contributor acknowledgements and/or dedications
given therein.
</para>
<para>
L. Preserve all the Invariant Sections of the Document, unaltered in
their text and in their titles. Section numbers or the equivalent are
not considered part of the section titles.
</para>
<para>
M. Delete any section entitled "Endorsements". Such a section may not be
included in the Modified Version.
</para>
<para>
N. Do not retitle any existing section as "Endorsements" or to conflict
in title with any Invariant Section.
</para>
<para>
If the Modified Version includes new front-matter sections or appendices
that qualify as Secondary Sections and contain no material copied from
the Document, you may at your option designate some or all of these
sections as invariant. To do this, add their titles to the list of
Invariant Sections in the Modified Version's license notice. These
titles must be distinct from any other section titles.
</para>
<para>
You may add a section entitled "Endorsements", provided it contains
nothing but endorsements of your Modified Version by various
parties for example, statements of peer review or that the text has
been approved by an organization as the authoritative definition of a
standard.
</para>
<para>
You may add a passage of up to five words as a Front-Cover Text, and a
passage of up to 25 words as a Back-Cover Text, to the end of the list
of Cover Texts in the Modified Version. Only one passage of Front-Cover
Text and one of Back-Cover Text may be added by (or through arrangements
made by) any one entity. If the Document already includes a cover text
for the same cover, previously added by you or by arrangement made by
the same entity you are acting on behalf of, you may not add another;
but you may replace the old one, on explicit permission from the
previous publisher that added the old one.
</para>
<para>
The author(s) and publisher(s) of the Document do not by this License
give permission to use their names for publicity for or to assert or
imply endorsement of any Modified Version.
</para>
</sect2>
<sect2>
<title>5. COMBINING DOCUMENTS</title>
<para>
You may combine the Document with other documents released under this
License, under the terms defined in section 4 above for modified
versions, provided that you include in the combination all of the
Invariant Sections of all of the original documents, unmodified, and
list them all as Invariant Sections of your combined work in its license
notice.
</para>
<para>
The combined work need only contain one copy of this License, and
multiple identical Invariant Sections may be replaced with a single
copy. If there are multiple Invariant Sections with the same name but
different contents, make the title of each such section unique by adding
at the end of it, in parentheses, the name of the original author or
publisher of that section if known, or else a unique number. Make the
same adjustment to the section titles in the list of Invariant Sections
in the license notice of the combined work.
</para>
<para>
In the combination, you must combine any sections entitled "History" in
the various original documents, forming one section entitled "History";
likewise combine any sections entitled "Acknowledgements", and any
sections entitled "Dedications". You must delete all sections entitled
"Endorsements."
</para>
</sect2>
<sect2>
<title>6. COLLECTIONS OF DOCUMENTS</title>
<para>
You may make a collection consisting of the Document and other documents
released under this License, and replace the individual copies of this
License in the various documents with a single copy that is included in
the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
</para>
<para>
You may extract a single document from such a collection, and distribute
it individually under this License, provided you insert a copy of this
License into the extracted document, and follow this License in all
other respects regarding verbatim copying of that document.
</para>
</sect2>
<sect2>
<title>7. AGGREGATION WITH INDEPENDENT WORKS</title>
<para>
A compilation of the Document or its derivatives with other separate and
independent documents or works, in or on a volume of a storage or
distribution medium, does not as a whole count as a Modified Version of
the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an "aggregate", and this
License does not apply to the other self-contained works thus compiled
with the Document, on account of their being thus compiled, if they are
not themselves derivative works of the Document.
</para>
<para>
If the Cover Text requirement of section 3 is applicable to these copies
of the Document, then if the Document is less than one quarter of the
entire aggregate, the Document's Cover Texts may be placed on covers
that surround only the Document within the aggregate. Otherwise they
must appear on covers around the whole aggregate.
</para>
</sect2>
<sect2>
<title>8. TRANSLATION</title>
<para>
Translation is considered a kind of modification, so you may distribute
translations of the Document under the terms of section 4. Replacing
Invariant Sections with translations requires special permission from
their copyright holders, but you may include translations of some or all
Invariant Sections in addition to the original versions of these
Invariant Sections. You may include a translation of this License
provided that you also include the original English version of this
License. In case of a disagreement between the translation and the
original English version of this License, the original English version
will prevail.
</para>
</sect2>
<sect2>
<title>9. TERMINATION</title>
<para>
You may not copy, modify, sublicense, or distribute the Document except
as expressly provided for under this License. Any other attempt to copy,
modify, sublicense or distribute the Document is void, and will
automatically terminate your rights under this License. However, parties
who have received copies, or rights, from you under this License will
not have their licenses terminated so long as such parties remain in
full compliance.
</para>
</sect2>
<sect2>
<title>10. FUTURE REVISIONS OF THIS LICENSE</title>
<para>
The Free Software Foundation may publish new, revised versions of the
GNU Free Documentation License from time to time. Such new versions
will be similar in spirit to the present version, but may differ in
detail to address new problems or concerns. See
http://www.gnu.org/copyleft/.
</para>
<para>
Each version of the License is given a distinguishing version number. If
the Document specifies that a particular numbered version of this
License "or any later version" applies to it, you have the option of
following the terms and conditions either of that specified version or
of any later version that has been published (not as a draft) by the
Free Software Foundation. If the Document does not specify a version
number of this License, you may choose any version ever published (not
as a draft) by the Free Software Foundation.
</para>
</sect2>
</sect1>
</appendix>
<!--
APPINDEX
<chapter id="mobile-guide-index">
<title>Index</title>
<para>
&lmg-index;
...
</para>
</chapter>
APPINDEX
<xref linkend="mobile-guide-a1-other-operating-systems"/> Appendix A
-->
</part>
</book>
<!--
vim:tw=75:autoindent:
-->
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:nil
sgml-parent-document:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->