Linux on the Road Linux with Laptops, Notebooks, PDAs, Mobile Phones and Other Portable Devices Werner Heuser     Linux Mobile Edition  Edition Version 3.21 TuxMobil Berlin Copyright © 2000-2005 Werner Heuser 2005-11-14 Revision History Revision 3.21 2005-11-14 Revised by: wh Some more typos have been fixed. Revision 3.20 2005-11-14 Revised by: wh Some typos have been fixed. Revision 3.19 2005-11-14 Revised by: wh A link to keytouch has been added, minor changes have been made. Revision 3.18 2005-10-10 Revised by: wh Some URLs have been updated, spelling has been corrected, minor changes have been made. Revision 3.17.1 2005-09-28 Revised by: sh A technical and a language review have been performed by Sebastian Henschel. Numerous bugs have been fixed and many URLs have been updated. Revision 3.17 2005-08-28 Revised by: wh Some more tools added to external monitor/projector section, link to Zaurus Development with Damn Small Linux added to cross-compile section, some additions about acoustic management for hard disks added, references to X.org added to X11 sections, link to laptop-mode-tools added, some URLs updated, spelling cleaned, minor changes. Revision 3.16 2005-07-15 Revised by: wh Added some information about pcmciautils, link to SoftwareSuspend2 added, localepurge for small HDDs, added chapter about FingerPrint Readers, added chapter about ExpressCards, link to Smart Battery System utils added to Batteries chapter, some additions to External Monitors chapter, links and descriptions added for: IBAM - the Intelligent Battery Monitor, lcdtest, DDCcontrol updated Credits section, minor changes. 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. 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. 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. 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. Copyright (c) 2000-2005 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". ----------------------------------------------------------------------------- Table of Contents Preface 1. About the Author 2. Sponsoring 3. About the Document 4. Contact 5. Disclaimer and Trademarks I. Laptops and Notebooks 1. Which Laptop to Buy? 2. Laptop Distributions 3. Installation II. Handheld Devices - Personal Digital Assistants (PDAs) 4. Palmtops, Personal Digital Assistants - PDAs, Handheld PCs - HPCs 5. History of Linux on PDAs 6. Linux PDAs 7. Non-Linux PDAs - Ports and Tools 8. Connectivity III. Tablet PCs / Pen PCs 9. Tablet PCs / Pen PCs IV. Mobile (Cellular) Phones, Pagers, Calculators, Digital Cameras, Wearable Computing 10. Mobile (Cellular) Phones, Pagers 11. Calculators, Digital Cameras, Wearable Computing V. Mobile Hardware in Detail 12. Hardware in Detail: CPU, Display, Keyboard, Sound and More 13. Accessories: PCMCIA, USB and Other External Extensions VI. Kernel 14. Kernel History VII. On the Road 15. Different Environments 16. Solutions with Mobile Computers VIII. Appendix A. Other Operating Systems B. Other Resources C. Repairing the Hardware D. Survey about Micro Linuxes E. Dealing with Limited Resources or Tuning the System F. Ecology and Laptops G. NeoMagic Graphics Chipset Series NM20xx H. Annotated Bibliography: Books For Linux Nomads I. Resources for Specific Laptop Brands J. Credits K. Copyrights List of Tables 12-1. Arguments for the -t and -R option of gpm. List of Figures 6-1. Screenshot of the YOPY PDA 6-2. Screenshot of the SHARP Zaurus SL-5500 PDA. 7-1. Screenshot of the HELIO PDA. 7-2. Screenshot of the iPAQ PDA. 7-3. Screenshot of the PALM-Pilot emulator POSE. 12-1. Screenshot of cardinfo E-1. Screenshot of blackbox. ----------------------------------------------------------------------------- Preface   Life is the first gift, love is the second, and understanding is the third.   [http://www.margepiercy.com/] Marge Piercy ----------------------------------------------------------------------------- 1. About the Author 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 [http:// tuxmobil.org/howtos.html] Linux-Infrared-HOWTO about infrared support for Linux. My second is this one and my third the [http://computerecology.org/] Linux-Ecology-HOWTO , about some ways to use Linux in an ecology aware manner. 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 [http://tuxmobil.org/ mylaptops.html] TuxMobil Linux Laptop and Notebook Survey. During the work with the Linux-Mobile-Guide I have also collected some surveys about laptop related hardware: [http://tuxmobil.org/ graphic_linux.html] graphics chips , unofficially supported PCMCIA cards , [http://tuxmobil.org/modem_linux.html] internal modems , [http://tuxmobil.org /ir_misc.html] infrared chips and other hardware. In May 2000 I have founded the German vendor [http://xtops.de/] Xtops.DE: Linux, Laptops, Notebooks, PDAs pre-installed, to sponsor the TuxMobil project. ----------------------------------------------------------------------------- 2. Sponsoring 2.1. How to and Why Sponsor? 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 [http://tuxmobil.org/hp800e.html] HP OmniBook 800CT 5/100. Or sponsor a banner ad at [http://tuxmobil.org/] TuxMobil: Linux with Laptops, Notebooks, PDAs, Mobile Phones and Portable Computers. You can hire me for readings or workshops on Linux with Laptops, Linux with PDAs, Repairing of Laptops and other Linux topics, too. ----------------------------------------------------------------------------- 2.2. Table of Sponsors This guide is currently sponsored by:   *  AgendaComputing (Berlin, Germany out-of-business)   *  [http://xtops.de/index.html] Xtops.DE - Pre-Installed Linux on Laptops and PDAs ----------------------------------------------------------------------------- 3. About the Document Mirrors, Translations, Versions, Formats, URLs ----------------------------------------------------------------------------- 3.1. URLs in this Document Many times I have mentioned MetaLab formerly known as SunSite. This site carries a heavy load, so do yourself a favor, use one of the [http:// metalab.unc.edu/pub/Linux/MIRRORS.html] MetaLab mirrors . For Debian/GNU Linux the mirror URLs are organized in the scheme http:// www..debian.org . Nearly all of the programs I mention are available as [http:// www.debian.org/] Debian/GNU Linux package, or as RPM package. Look up your favorite RPM server, for instance [http://rpmfind.net/] rpmfind . ----------------------------------------------------------------------------- 3.2. Latest Version, Mirrors Former issues of this text are available at the [http://tldp.org/] THE LINUX DOCUMENTATION PROJECT - TLDP. The latest version of this document is available at [http://tuxmobil.org/ howtos.html] TuxMobil - HOWTOs. ----------------------------------------------------------------------------- 3.3. Proposed Translations The following translations are under construction:   *  Chinese, John Lian   *  Greek, Vassilis Rizopoulos   *  Italian, Alessandro Grillo ,   *  Japanese, Ryoichi Sato ,   *  Portuguese, Gledson Evers   *  Slovenia, Ales Kosir   *  Spanish, Jaime Robles 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 [http://lugww.counter.li.org/] local Linux Users Group - LUG. ----------------------------------------------------------------------------- 4. Contact 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 criticisms 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 Appendix B Other Resources mentioned below. Werner Heuser ----------------------------------------------------------------------------- 5. Disclaimer and Trademarks 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. 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. Though I hope trademarks will be superfluous sometimes (you may see what I mean at [http://www.opensource.org/osd.html] Open Source Definition ), 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. I. Laptops and Notebooks Table of Contents 1. Which Laptop to Buy? 1.1. Introduction 1.2. Portables, Laptops/Notebooks, Sub/Mini-Notebooks, Palmtops, PDAs/ HPCs 1.3. Linux Features 1.4. Main Hardware Features 1.5. Sources of More Information 1.6. Linux Compatibility Check 1.7. Writing a Device Driver 1.8. Buying a Second Hand Laptop 1.9. No Hardware Recommendations 1.10. Linux Laptop and PDA Vendor Survey 2. Laptop Distributions 2.1. Requirements 2.2. Recommendation 3. Installation 3.1. Related Documentation 3.2. Prerequisites - BIOS, Boot Options, Partitioning 3.3. Linux Tools to Repartition a Hard Disk 3.4. Laptop Installation Methods 3.5. Common Problems During Installation ----------------------------------------------------------------------------- Chapter 1. Which Laptop to Buy? 1.1. Introduction 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: 1. 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. Most peripheral cables are appallingly heavy. If you get a subnotebook and carry it around with a bunch of external drives, cables, and port expander 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. 2. Supported Operating Systems: proprietary versus open 3. Price: NoName versus Brand 4. Hardware Features: display size, harddisk size, CPU speed, battery type, etc. 5. Linux Support: graphics chip, sound card, infrared controller (IrDA®), internal modem, etc. ----------------------------------------------------------------------------- 1.2. Portables, Laptops/Notebooks, Sub/Mini-Notebooks, Palmtops, PDAs/HPCs 1.2.1. Portables Weight greater than 4.0 kg (9 lbs). Features like a PC, but in a smaller box and with LCD display. Examples: lunchbox or ruggedized laptops (e.g. [http://www.bsicomputer.com/] BSI Computer ). ----------------------------------------------------------------------------- 1.2.2. Laptops/Notebooks 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 laptop and notebook seem equivalent to me. ----------------------------------------------------------------------------- 1.2.3. Sub-Notebooks/Mini-Notebooks 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. ----------------------------------------------------------------------------- 1.2.4. Palmtops Weight between 0.7 and 1.3 kg (1.5 to 3 lbs). Features: proprietary commercial operating systems. Examples: HP200LX. ----------------------------------------------------------------------------- 1.2.5. Personal Digital Assistants (PDAs)/Handheld PCs (HPCs) 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. ----------------------------------------------------------------------------- 1.2.6. Wearables Watches, digital pens, calculators, digital cameras, cellular phones and other wearables. ----------------------------------------------------------------------------- 1.3. Linux Features 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, IrDA® port, sound card, PCMCIA 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 Part V in Linux on the Road Hardware In Detail below. 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 survey of Linux laptop, notebook, PDA and mobile phone vendors. ----------------------------------------------------------------------------- 1.4. Main Hardware Features Besides its Linux features, there often are some main features which have to be considered when buying a laptop. For Linux features please see Part V in Linux on the Road Hardware In Detail below. ----------------------------------------------------------------------------- 1.4.1. Weight Don't underestimate the weight of a laptop. This weight is mainly influenced by: 1. screen size 2. battery type 3. internal components, such as CD drive, floppy drive 4. power supply 5. material used for the case, usually they are either from plastics or from magnesium. ----------------------------------------------------------------------------- 1.4.2. Display Recent laptops come with active matrix (TFT) displays. Laptops with passive 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. ----------------------------------------------------------------------------- 1.4.3. Batteries The available battery types are Lithium Ion (LiIon), Nickel Metal Hydride ( NiMH) and Nickel Cadmium (NiCd). Though almost all current laptops come with LiIon batteries. 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. Unfortunately most laptops come with a proprietary battery size. So they are not interchangeable between different models. ----------------------------------------------------------------------------- 1.4.4. CPU 1.4.4.1. Supported CPU Families For details about systems which are supported by the Linux Kernel, see the [http://www.tux.org/lkml/] The linux-kernel mailing list FAQ. 1. i286: Linux doesn't support this CPU family yet. But there are some efforts at [http://elks.sourceforge.net/] ELKS. If you like, you may use [http://www.cs.vu.nl/~ast/minix.html] Minix, which is also a free Unix operating system. Minix supports 8088 to 286 CPUs with as little as 640K memory. Actually there are some [http://tuxmobil.org/286_mobile.html] laptops with ELKS and MINIX around. 2. 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. 3. m68k: This covers Amigas and Ataris having a Motorola 680x0 processor for x>=2; with MMU. And the early Apple/Macintosh computers. 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. For a complete list of all Macintosh computers ever made, with specifications, see [http://www.apple-history.com/] Apple-History . For Linux installation reports see [http://tuxmobil.org/apple.html] Linux Laptop and Notebook Survey: Apple. Note also that readers should *not* go to [http://www.linuxppc.org/] LinuxPPC 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 [http:// www.mac.linux-m68k.org/] linux-m68k. "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 APM 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." "Several Powerbooks have internal IDE which is supported. PCMCIA 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." Also there are two Atari laptops, for which I don't have enough information. The following quotations are from the [http:// capybara.sk-pttsc.lj.edus.si/yescrew/eng/atari.htm] Atari Gallery. "The STacy was released shortly after the Mega ST to provide a portable means of Atari computing. STacy computers were shipped with TOS v1.04. Designed to replace the STacy as the defacto portable ST computer, the ST Book 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." From Stok, Leon : 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. 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. 4. 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 [http://www.linuxppc.org/hardware/] LinuxPPC for a current list of supported machines. By the way: The team at [http://www.imaclinux.net] iMac Linux has managed to get the iMac DV to boot Linux to a usable point. You may get information about the iBook there as well. 5. Alpha, Sparc, Sparc64 architectures: These are currently under construction. As far as I know there are only the [http://www.tadpole.com /] Tadpole SPARC and ALPHA laptops, and some other ALPHA laptops available. [http://www.naturetech.com.tw/] NatureTech offers also SPARC CPUs in laptops. The TuxMobil survey of [http://tuxmobil.org/ mobile_solaris.html] Solaris on laptops and notebooks may also be helpful. 6. StrongARM: a very low-power CPU found in [http://www.rebel.com/] Rebel.com's 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. For PDAs with ARM/StrongARM CPU see the Part II in Linux on the Road Handheld Devices part below. 7. 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. 8. AMD Processor: More about Linux on AMD processors may be found at [http://www.x86-64.org/] x86-64 org . At TuxMobil there is also a survey of [http://tuxmobil.org/cpu_amd.html] laptops with AMD CPUs . 9. 64bit CPUs: At TuxMobil there is a survey of [http://tuxmobil.org/ cpu_64bit.html] laptops with 64bit CPUs . ----------------------------------------------------------------------------- 1.4.4.2. Miscellaneous 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. ----------------------------------------------------------------------------- 1.4.5. Number of Spindles Laptops and notebooks are often described by the number of spindles. 1. one spindle: harddisk. Usually sub-notebooks, often provided with an external optical drive (CD/DVD). 2. two spindles: harddisk, optical drive (CD/DVD). 3. three spindles: harddisk, optical drive (CD/DVD), floppy drive. These laptops are often used as desktop PC replacement. ----------------------------------------------------------------------------- 1.4.6. Cooling 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. ----------------------------------------------------------------------------- 1.4.7. Keyboard Quality 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: , , , , , < PageUp> and the cursor keys. ----------------------------------------------------------------------------- 1.4.8. Price Laptops are quite expensive if you compare them with desktops (though maybe not if compared with LCD, IrDA®, PCMCIA capabilities). So you may decide between a brand or no-name product. Though I would like to encourage you to take a no-name 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 second hand 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. ----------------------------------------------------------------------------- 1.4.9. Power Supply 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. ----------------------------------------------------------------------------- 1.5. Sources of More Information Specifications, manuals and manufacturer support often are not helpful. Therefore you should retrieve information from other sources too: 1. [http://tuxmobil.org/mylaptops.html] TuxMobil Linux Laptop and Notebook Survey , this survey covers other UniXes (for example BSD, Solaris), too. 2. [http://www.linux-on-laptops.com/] Linux on Laptops. General information about manufacturer support you may find in my [http:// tuxmobil.org/laptop_manufacturer.html] Linux Status Survey of Laptop and Notebook Manufacturers , though don't expect to much Linux support from them yet. Sometimes the [http://tuxmobil.org/laptop_oem.html] Matrix of OEM/ODM Relations may help to find information for your laptop under another brand name. ----------------------------------------------------------------------------- 1.6. Linux Compatibility Check 1.6.1. Related Documentation 1. [http://tldp.org/HOWTO/Hardware-HOWTO/] Hardware-HOWTO 2. [http://tldp.org/HOWTO/Kernel-HOWTO/] Kernel-HOWTO 3. PCMCIA-HOWTO 4. [http://tldp.org/HOWTO/PCI-HOWTO.html] PCI-HOWTO 5. [http://tldp.org/HOWTO/Plug-and-Play-HOWTO.html] Plug-and-Play-HOWTO ----------------------------------------------------------------------------- 1.6.2. Check Methods in General 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 Part V in Linux on the Road Hardware In Detail below. In general you may use: 1. 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 dmesg or by looking into /var/log/messages. For the very first boot messages check /var/log/boot. 2. If your kernel supports the /proc file system you may get detailed information about PCI devices by cat /proc/pci Please read the kernel documentation pci.txt. You may get further information about unknown PCI devices at the [http://pciids.sf.net/] Linux PCI ID Repository, the home of the pci.ids file. From 2.1.82 kernels on you may use the lspci command from the pci-utils package. 3. To retrieve information about Plug-and-Play (PNP) devices use isapnp-tools . 4. Use scsi_info by David Hinds for SCSI devices or scsiinfo. If you don't want to install a complete Linux you may retrieve this information by using a micro Linux ( see Appendix A Appendix A). The package muLinux provides even a small systest program and TomsRtBt comes with memtest . To use memtest you have to copy it on a floppy dd if=/usr/lib/memtest of=/ dev/fd0 and to reboot from this floppy. 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. Using Windows9x/NT to get hardware settings, basically boot Windows, then Start -> Settings -> Control Panel -> System -> Device Manager and write down everything, or make a hardcopy from the display using the key, plus keep a log of settings, hardware, memory, etc. Using MS-DOS and Windows3.1x you can use the command msd, which is an akronym for MicroSoft Diagnostics. Or you might try one of the numerous DOS shareware utilities: CHECK-IT, DR.HARD and others. Sometimes it's difficult to know what manufacturer has built the machine or parts of it actually. The [http://www.fcc.gov/oet/fccid/help.html] FCC "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." Many laptops are no more compatible with Windows than Linux. David Hinds, author of the PCMCIA drivers, points out that Toshiba notebooks use a proprietary Toshiba PCMCIA bridge chip that exhibits the same bugs under Windows as under Linux. IBM?? Thinkpads have serious BIOS problems that affect delivery of events to the power management daemon apmd. These bugs also affect MS-Windows, and are listed in IBM??'s documentation as considerations. Some incompatibilities are temporary, for instance laptops that have Intel's USB chip will probably get full USB support, eventually. ----------------------------------------------------------------------------- 1.7. Writing a Device Driver 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 [http://www.oreilly.com/openbook/] here . ----------------------------------------------------------------------------- 1.8. Buying a Second Hand Laptop Some recommendations to check a used laptop, before buying it: 1. Review the surface of the case for visible damages. 2. 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. 3. Do an IO stress-test, .e.g. with the tool bonnie. 4. You may use memtest and crashme to achieve a memory test. 5. Do a CPU stress test, e.g. with the command md5sum /dev/urandom or by compiling a kernel. 6. Check the floppy drive by formatting a floppy. 7. Check the CD/DVD drive by reading and writing a CD/DVD. 8. To check the battery seems difficult, because it needs some time: one charge and one work cycle. You may use battery-stats to do so, but note this tool only offer APM support, it is not available with ACPI support yet. 9. To check the surface of the harddisk you may take e2fsck. There is also a Linux tool dosfsck or the other fsck tools. 10. To test the entire disk (non-destructively), time it for performance, and determine its size, as root do: time dd if=/dev/hda of=/dev/null bs= 1024k . 11. Check whether the machine seems to be stolen. I have provided a [http:/ /tuxmobil.org/stolen_laptops.html] survey of databases for stolen laptops. 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 [http:// members.datafast.net.au/~dft0802/] PC Diagnostics 95 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 IrDA® port. 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 pretty 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." Laptop computers, unlike desktop machines, really do get used up. Lithium batteries are good for no more than 400 recharge cycles, sometimes much fewer. Keyboards wear out. LCD screen backlighting grows dim. Mouse buttons fail. Worst of all, connectors get loose as a result of vibration, causing intermittent failures (e.g. only when you hit the key). We have heard of a machine used on the table in a train being shaken to unusability in one trip. ----------------------------------------------------------------------------- 1.9. No Hardware Recommendations 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 [http://tuxmobil.org/ laptop_manufacturer.html] Linux support of laptop and notebook manufacturers survey. A good way to check Linux hardware compatibility the next time you go shopping a laptop is using a [http://www.knoppix.org/] Knoppix CD/DVD. The Knoppix hardware detection works quite well and is often capable to check all laptop hardware. ----------------------------------------------------------------------------- 1.10. Linux Laptop and PDA Vendor Survey You may check the [http://tuxmobil.org/reseller.html] Linux Laptop, PDA and Mobile Phone Vendor Survey at TuxMobil for a reseller in your country. Some of them even sell laptops without Microsoft operating systems. 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 [http:// tuxmobil.org/ms_tax.html] some tips and tricks to get rid of the Microsoft tax. If you want to buy a recent machine check the [http://tuxmobil.org/ recent_linux_laptops.html] Linux installation reports for recently available laptops and notebooks. ----------------------------------------------------------------------------- Chapter 2. Laptop Distributions 2.1. Requirements From the [http://tldp.org/HOWTO/Battery-Powered/] Battery-Powered-HOWTO I got this recommendation (modified by WH): 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. The installation routine should include a configuration, optimized for laptops. The minimal install 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 vi. Some portable systems do not need printing support. Don't forget to describe laptop-specific installation problems, e. g. how to install your distribution without a CD/DVD-ROM drive. Add better power management and seamless PCMCIA support to your distribution. Add a recompiled kernel and an alternative set of PCMCIA drivers with apm support that the user can install on demand. Include a precompiled apmd package with your distribution. Also include IrDA® infrared support and USB support. Add support for dynamically switching network configurations. 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. Add a convenient PPP dialer 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 usernet 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 wvdial from [http:// open.nit.ca/] OpenSourceInNitix. At TuxMobil you may find a huge number of links to [http://tuxmobil.org/ mylaptops.html] laptop and notebook Linux installation reports. They are ordered by manufacturer and Linux distribution. Special categories are available for:   *  [http://tuxmobil.org/debian_linux.html] Debian,   *  [http://tuxmobil.org/gentoo_mobile.html] Gentoo,   *  [http://tuxmobil.org/distribution_linux_laptop_redhat.html] RedHat,   *  [http://tuxmobil.org/distribution_linux_laptop_suse.html] SuSE,   *  [http://tuxmobil.org/distribution_linux_laptop_ubuntu.html] Ubuntu,   *  [http://tuxmobil.org/distribution_linux_laptop_slackware.html] SlackWare,   *  [http://tuxmobil.org/distribution_linux_laptop_mandrake.html] Mandrake (Mandriva),   *  [http://tuxmobil.org/mobile_minix.html] Minix and   *  [http://tuxmobil.org/mobile_bsd.html] different kinds of BSD flavors. Some resources are available in [http://tuxmobil.org/lang.html] different languages, e.g.   *  in German [http://tuxmobil.de/] TuxMobil(DE): Linux on Mobile Computers   *  in Russian [http://tuxmobil.ru/] TuxMobil(RU): Linux on Mobile Computers   *  and in Chinese [http://tuxmobil.cn/] TuxMobil(CN): Linux on Mobile Computers. ----------------------------------------------------------------------------- 2.2. Recommendation The [http://www.debian.org] Debian/GNU Linux 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 debian-laptop including a searchable archive is provided. And Debian/GNU Linux is free. At the end of August 1999 the [http://tuxmobil.org/debian_linux.html] Debian Laptop Distribution - Proposal was issued. And some more laptop related packages and a Debian meta-package dedicated to laptops are on the way. 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. ----------------------------------------------------------------------------- Chapter 3. Installation 3.1. Related Documentation 1. [http://tldp.org/HOWTO/CDROM-HOWTO/] CDROM-HOWTO 2. [http://tldp.org/HOWTO/CD-Writing-HOWTO.html] CD-Writing-HOWTO 3. [http://tldp.org/HOWTO/Config-HOWTO/] Config-HOWTO 4. [http://tldp.org/HOWTO/Diskless-HOWTO.html] Diskless-HOWTO 5. [http://tldp.org/HOWTO/Installation-HOWTO/] Installation-HOWTO 6. [http://tldp.org/HOWTO/Pre-Installation-Checklist/index.html] Pre-Installation-Checklist-HOWTO 7. [http://tldp.org/HOWTO/Update.html] Update-HOWTO 8. [http://tldp.org/HOWTO/Hard-Disk-Upgrade/] Hard-Disk-Upgrade-HOWTO 9. [http://www.tldp.org/LDP/gs/gs.html] Linux Installation and Getting Started 10. [http://www.debian.org/releases/stable/i386/install] Installing Debian/ GNU Linux For Intel x86 11. [http://tldp.org/HOWTO/Install-From-ZIP.html] Install-From-Zip-HOWTO 12. [http://tldp.org/HOWTO/ZIP-Drive.html] ZIP-Drive-HOWTO ----------------------------------------------------------------------------- 3.2. Prerequisites - BIOS, Boot Options, Partitioning 3.2.1. BIOS 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. ----------------------------------------------------------------------------- 3.2.2. Boot Options There are many boot options, which have effects on the behavior of laptops, e.g. apm=on|off and acpi=on|off: For details see [http://tldp.org/HOWTO/ BootPrompt-HOWTO.html] BootPrompt-HOWTO and the Kernel documentation in /usr/ src/linux/Documentation/kernel-parameters.txt . ----------------------------------------------------------------------------- 3.2.3. Partitioning 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 PCMCIA 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:   *  BIOS, some current BIOSes use a separate partition, for instance COMPAQ notebooks   *  suspend to disk, some laptops support this feature   *  swap space Linux   *  swap space Windows9x/NT   *  Linux base   *  Linux /home for personal data (please consider an encrypted partition for security reasons, for details about encryption see the according chapter below)   *  common data between Linux and Windows9x/NT   *  small (~32MB) boot partition for yaBoot (Linux/PPC boot loader), in HFS MacOS Standard format. Note this chapter isn't exhausting yet. Please read the appropriate HOWTOs first, e.g. the [http://tldp.org/HOWTO/Partition/] Partition-HOWTO . ----------------------------------------------------------------------------- 3.3. Linux Tools to Repartition a Hard Disk 3.3.1. GNU parted [http://www.gnu.org/software/parted] GNU parted 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 [http:// mlf.linux.rulez.org/mlf/ezaz/ntfsresize.html] ntfsresize . ----------------------------------------------------------------------------- 3.3.2. ext2resize [http://ext2resize.sourceforge.net/] ext2resize 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 parted project. ----------------------------------------------------------------------------- 3.3.3. fixdisktable Something was recently published on the 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 [http://www.igd.fhg.de/~aschaefe/ fips/] FIPS , Ranish Partition Manager/Utility or Partition Magic destroying your partition information. You can find information on this partition-fixer named "fixdisktable" at [http://bmrc.berkeley.edu/people/chaffee/fat32.html] his pages. It is quite a ways down in that page. Or look for it [ftp:// bmrc.berkeley.edu/pub/linux/rescue/] via ftp and locate the latest "fixdisktable" in that FTP directory. (Source and binary dist should be available.) ----------------------------------------------------------------------------- 3.3.4. Caveats Before repartitioning your hard disk take care about the disk layout. Especially look for hidden disk space or certain partitions used for suspend to disk or hibernation mode. Some laptops come with a partition which contains some BIOS programs (e.g. COMPAQ Armada 1592DT). Search the manual carefully for tools like PHDISK.EXE, Suspend to Disk, Diagnostic TOOLS. [http://www.procyon.com/~pda/lphdisk/] Patrick D. Ashmore 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 APM "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 APM suspends. 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 PHDISK.EXE program provided with their laptop or directly from Phoenix Technologies. Now, Linux users are free from this restriction. lphdisk 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." Please see chapter DOS Tools to Repartition a Hard Disk, too. ----------------------------------------------------------------------------- 3.3.5. Multi Boot Please see the chapter chapter Chapter 15 Different Environments, for information about booting different operating systems from the same harddisk. ----------------------------------------------------------------------------- 3.4. Laptop Installation Methods   There's More Than One Way To Do It - TMTOWTDI   Larry Wall, Tom Christiansen & Randal L. Schwartz: Programming Perl, Sec. Ed. 1996 p. 10 From the [http://tldp.org/HOWTO/Battery-Powered/] Battery-Powered-HOWTO : "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." 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 laptop specific methods, which are necessary only in certain circumstances. Most current distributions support installation methods which are useful for laptops, including installation from CD-ROM, via PCMCIA 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. ----------------------------------------------------------------------------- 3.4.1. From a Boot Floppy plus CD/DVD-ROM - The Traditional Way 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 the floppy drive and the CD/DVD-ROM drive simultaneously, or if the floppy drive is only available as a PCMCIA device, 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 [http://tldp.org/HOWTO/ VAIO+Linux.html] VAIO+Linux-HOWTO . Note: Check the BIOS for the CD boot option and make sure your Linux distribution comes on a bootable CD. Certain laptops will only boot zImage kernels. bzImage kernels won't work. This is a known problem with the IBM?? Thinkpad 600 and Toshiba Tecra series, for instance. Some distributions provide certain boot floppies for these machines or for machines with limited memory resources, [http:// www.debian.org] Debian/GNU Linux for instance. ----------------------------------------------------------------------------- 3.4.2. From a CD/DVD-ROM - The Usual Way Newer laptops are able to boot a Linux distribution from a bootable CD/ DVD-ROM. This allows installation without a floppy disk drive. If the CD/DVD drive is only available as a PCMCIA device, as with the SONY VAIO PCG-Z600TEK, see the chapter about installing from PCMCIA devices below. ----------------------------------------------------------------------------- 3.4.3. From a DOS or Windows Partition on the same Machine 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 swappable floppy and CD-ROM components (if both are mutually exclusive) or if they are only available as PCMCIA devices. I have taken this method from [http://www.us.debian.org/releases/stable/ installmanual] Installing Debian GNU/Linux 2.1 For Intel x86 - Chapter 5 Methods for Installing Debian : 1. Get the following files from your nearest Debian FTP mirror and put them into a directory on your DOS partition: resc1440.bin drv1440.bin base2_1.tgz root.bin linux install.bat and loadlin.exe. 2. Boot into DOS (not Windows) without any drivers being loaded. To do this, you have to press at exactly the right moment during boot. 3. Execute install.bat from the directory where you have put the downloaded files. 4. Reboot the system and install the rest of the distribution, you may now use all the advanced features such as PCMCIA, PPP and others. This should work for other distributions as well. Maybe you have to do some appropriate changes. ----------------------------------------------------------------------------- 3.4.4. From a Second Machine With a Micro Linux On a Floppy 3.4.4.1. Introduction 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 micro Linux distributions out there that boot from one or two floppies and run off a ramdisk. See Appendix A Appendix A for a listing of distributions. I tried the following with muLinux ( available at [http://sunsite.auc.dk/ mulinux] muLinux ) to clone my HP OmniBook 800 to a COMPAQ Armada 1592DT. Thanks to Michele Andreoli, maintainer of muLinux for his support. Since muLinux doesn't support PCMCIA yet, you may use TomsRtBt instead. In turn TomsRtBt doesn't support PPP but provides slip. Note: Since version 7.0 muLinux provides an Add-On with PCMCIA support. 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 muLinux . ----------------------------------------------------------------------------- 3.4.4.2. Prerequisites 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 PCMCIA 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 nc. Note: this is an abbrevation for netcat, some distributions use this as the program name. You may use ftp, tftp, rsh, ssh, dd, rcp, kermit, NFS, SMB and other programs instead. Basic requirements are: 1. A good knowledge about using Linux. You have to know exactly what you are doing, if not you might end destroying former installations. 2. A null modem serial cable. ----------------------------------------------------------------------------- 3.4.4.3. Source Machine At your source machine issue the following commands (attention: IP address, port number, partition and tty are just examples!): 1. Edit /etc/ppp/options, it should contain only: /dev/ttyS0 115200 passive 2. With muLinux versions 3.x you may even use the convenient command setup -f ppp . 3. Start PPP: pppd . 4. Configure the PPP network device: ifconfig ppp0 192.168.0.1 . 5. Add the default route: route add default gw 192.168.0.1 . 6. Check the network connection: ping 192.168.0.2, though the destination machine isn't up yet. 7. Start the transfer from another console, remember : cat / dev/hda2 | gzip -c | nc -l -p 5555 . 8. After the transfer (there are no more harddisk writings) stop the ping: killall ping . ----------------------------------------------------------------------------- 3.4.4.4. Destination Machine At the destination machine issue: 1. Edit /etc/ppp/options, it should contain only: /dev/ttyS0 115200 passive 2. With muLinux versions >= 3.x you may even use the convenient command setup -f ppp . 3. Start PPP: pppd . 4. Configure the PPP network device: ifconfig ppp0 192.168.0.2 . 5. Add the default route: route add default gw 192.168.0.2 . 6. Check the network connection, by pinging to the source machine: ping 192.168.0.1 . 7. Change to another console and get the data from the server: nc 192.168.0.1 5555 | gzip -dc >/dev/hda4 . 8. 400 MB may take app. 6 hours, but your mileage may vary. 9. Stop the transfer, when it is finished with: . This can probably be avoided (but I didn't test it) by adding a timeout of 3 seconds using the -w 3 parameter for nc at the destination machine nc -w 3 192.168.0.1 5555 | gzip -dc >/dev/hda4 10. After the transfer is completed, stop the ping: killall ping . ----------------------------------------------------------------------------- 3.4.4.5. Configuration of the Destination Machine after the Transfer 1. Edit /etc/fstab . 2. Edit /etc/lilo.conf and /etc/lilo.msg and start lilo . 3. Set the new root device to the kernel: rdev image root_device . ----------------------------------------------------------------------------- 3.4.4.6. Miscellaneous 1. You may use bzip2 the same way as gzip (untested). 2. Since rshd, sshd, ftpd daemons are not available with muLinux, you have to build your own file transfer mechanism with nc also known as netcat, as described above. 3. I had to set up both PPP sides very quickly or the connection broke, I don't know why. 4. Speed optimization has to be done. Maybe these PPP options will help: asyncmap 0 or local. 5. I checked this only with a destination partition greater than the source partition. Please check dd instead of cat therefore. Or do the following (untested): At the destination machine cd into the root directory / and do nc -l -p 5555 | bzip2 -dc | tar xvf -. At the source machine cd into the root directory / and do tar cvf - . | bzip2 | nc -w 3 192.168.0.2 5555. This should shorten the time needed for the operation, too. Because only the allocated blocks need to be transfered. 6. Don't mount the destination partition. ----------------------------------------------------------------------------- 3.4.5. From a Second Machine With a 2.5" Hard Disk Adapter From Adam Sulmicki adam_AT_cfar.unc.edu 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 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 lilo 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 [http:// tldp.org/HOWTO/Hard-Disk-Upgrade/index.html] Hard-Disk-Upgrade-HOWTO. You might copy an existing partition, but it is also possible to achieve a customized installation. ----------------------------------------------------------------------------- 3.4.6. From a PCMCIA Device Since I don't have a laptop which comes with a PCMCIA floppy drive (for instance Toshiba Libretto 100), I couldn't check this method. Please see the chapter Booting from a PCMCIA Device in the PCMCIA-HOWTO. Also I couldn't check whether booting from a PCMCIA harddisk is possible. Anyway, when you are able to boot from a floppy and the laptop provides a PCMCIA slot, it should be possible to use different PCMCIA 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. 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 linux ide2=0x180,0x360 (or 0x180,0x386?) at the LILO boot prompt if you want Linux to recognize a PCMCIA CDROM after the kernel has booted. ----------------------------------------------------------------------------- 3.4.7. From a Parallel Port ZIP Drive I couldn't check this method by myself, because I don't have such a device. Please check the appropriate [http://tldp.org/HOWTO/Install-From-ZIP.html] Install-From-Zip-HOWTO . 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. From Jeremy Impson : 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.) 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. 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. 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 /home 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. 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. ----------------------------------------------------------------------------- 3.4.8. From a Parallel Port CD Drive (MicroSolutions BackPack) 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 (bpck) while in later versions it has been merged in the more general parallel port ide adaptors (the paride module that relays then of course on more specific low level drivers, which in the BackPack case is still called bpck). In RedHat 5.x based installations the bpck module is available already at installation stage so you'll just have to select the BackPack cdrom from the Other CD-ROMs at the installation stage and then give it some more options (but autoprobe should work just fine). In RedHat 6.x (which uses 2.2.x kernels and should then use paride), 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. 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 [http:// sole.infis.univ.trieste.it/~drzeus/rh_pcd.html] some information on it and the bootdisk image. 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 paride.img and can be found in the images/ drivers directory) in the usual way and insert it when the installer will ask for it. 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. 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). This chapter is a courtesy of Federico Pellegrin. Please check also the [http://tldp.org/HOWTO/CDROM-HOWTO/] CDROM-HOWTO. ----------------------------------------------------------------------------- 3.4.9. From a Parallel Port Using a Second Machine PLIP Network Install I got this courtesy by Nathan Myers : "Many distributions support installing via a network, using FTP, HTTP, or NFS. It is increasingly common for laptops to have only a single PCMCIA slot, already occupied by the boot floppy drive. Usually the boot floppy image has drivers for neither the floppy drive itself, nor the PCMCIA subsystem. Thus, the only network interface available may be the parallel port. Installation via the parallel port using the PLIP protocol has been demonstrated on, at least, Red Hat. All you need is a Laplink parallel cable, cheap at any computer store. See the [http://tldp.org/HOWTO/PLIP.html] PLIP-HOWTO 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 export your CD file system on NFS, or mount it where the ftp or web daemon can find it, as needed for the installation." The [http://www.tldp.org/HOWTO/PLIP-Install-HOWTO.html] PLIP Install HOWTO 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. ----------------------------------------------------------------------------- 3.4.10. From a USB Storage Device (Stick, CD, DVD, Floppy) 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. 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. ) during the boot process to select the boot device. 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.: [http://featherlinux.berlios.de/about.htm] Feather Linux 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 [http://featherlinux.berlios.de/usb-instructions.htm] instructions about installing Feather Linux on an USB drive. [http://www003.upp.so-net.ne.jp/tshiono/partboot-usb/] Partboot 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). [http://www.damnsmalllinux.org/] Damn Small Linux (DSL) 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. ----------------------------------------------------------------------------- 3.4.11. Installing via Network Interface 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. ----------------------------------------------------------------------------- 3.4.11.1. How to Prepare the Source Machine For my installation I have used a Knoppix CD in the source machine. Just enable the Terminal Server (KNOPPIX->Server-Dienste->Terminal-Server KNOPPIX-Services-Start-> 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. ----------------------------------------------------------------------------- 3.4.11.2. How to Prepare the Target Machine 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 su to become root. To achieve a hard disk installation do either knx-hdinstall for Knoppix <=3.3 or knoppix-installer for Knoppix >= 3.3. ----------------------------------------------------------------------------- 3.4.12. Installing via VNC 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. ----------------------------------------------------------------------------- 3.4.13. Installing Linux on Small Machines 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 fdisk to make a swap partition (fdisk 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 ) and issue swapon /dev/xxx (xxx = swap partition ). Thanks to Thomas Schmaltz. Bruce Richardson has written the [http://tldp.org/HOWTO/4mb-Laptops.html] 4MB-Laptop-HOWTO on installing a modern Linux distribution (specifically Slackware 7.0) onto laptops with 4MB RAM and <= 200MB hard disks. Another HOWTO is [http://www.xs4all.nl/~lennartb/rescuedisk/index.html] Getting Linux into Small Machines - HOWTO by L.C. Benschop. ----------------------------------------------------------------------------- 3.4.14. Installing Linux on Apple Macintosh PowerBooks and iBooks 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. 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). 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.) They can also boot/install from the Macintosh (HFS) partition on the internal hard disk. This part is a courtesy of Steven G. Johnson. For Linux installation reports see [http://tuxmobil.org/apple.html] Linux Laptop and Notebook Survey: Apple. ----------------------------------------------------------------------------- 3.4.15. Mass Installation 3.4.15.1. 2.5" to 3.5" IDE Adapter 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 lilo in each laptop and change the hostname and IP address. These adapter are usually quite cheap (app . ten dollar, but difficult to get) . ----------------------------------------------------------------------------- 3.4.15.2. SystemImager [http://systemimager.sourceforge.net] VA SystemImager 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. ----------------------------------------------------------------------------- 3.4.15.3. Debian/GNU Linux You might want to take a look at [http://www.informatik.uni-koeln.de/fai] FAI - Fully Automatic Installation. ----------------------------------------------------------------------------- 3.4.15.4. SuSE The package ALICE - Automatic Linux Installation and Configuration Environment, offers CVS-based configuration files and configuration templates. ----------------------------------------------------------------------------- 3.4.15.5. Replicator [http://www.ens-lyon.fr/~schaumat/replicator/] 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. ----------------------------------------------------------------------------- 3.4.15.6. bpbatch Also [http://www.bpbatch.org] bpbatch seems to be a good alternative. ----------------------------------------------------------------------------- 3.4.15.7. partimage [http://partimage.sourceforge.net/] Partition Image 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). ----------------------------------------------------------------------------- 3.5. Common Problems During Installation 3.5.1. Display Problems (Missing Lines, Thick Borders) 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:   *  Either using FrameBuffer, e.g. using a Kernel with framebuffer support and a boot option like vga=791, for details see the [http://tldp.org/ HOWTO/Framebuffer-HOWTO.html] FrameBuffer-HOWTO.   *  Or disabling FrameBuffer, e.g. using a boot option like vga=normal or another resolution Also, you could try passing video=vga16:off on the installer boot prompt.   *  As a workaround often it is possible to switch to a second console e.g. + , because this effect is often only related to the first console.   *  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 ywrap, etc.   *  Check the BIOS for display settings, often (older) Toshiba laptops behave like this.   *  Issue the command resize to get the correct screen size into the system.   *  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 clear command and/or the reset. II. Handheld Devices - Personal Digital Assistants (PDAs) Table of Contents 4. Palmtops, Personal Digital Assistants - PDAs, Handheld PCs - HPCs 4.1. Resources 5. History of Linux on PDAs 5.1. Itsy 6. Linux PDAs 6.1. AgendaComputing: Agenda VR3 6.2. Samsung: YOPY 6.3. SHARP SL-5000/5500/C700-860/C3x00/6000 aka Zaurus 7. Non-Linux PDAs - Ports and Tools 7.1. HELIO 7.2. iPAQ 7.3. Newton Message Pad 7.4. PALM-Pilot 7.5. HandSpring VISOR 7.6. Psion 5 8. Connectivity 8.1. From a Linux Box to a non Linux PDA ----------------------------------------------------------------------------- Chapter 4. Palmtops, Personal Digital Assistants - PDAs, Handheld PCs - HPCs   Linux PDAs, because using your palm isn't as good as the real thing.   Motto of [http:// zaurus.loveslinux.com] ZaurusLovesLinux ----------------------------------------------------------------------------- 4.1. Resources 1. Highly recommended is the page by Russell King [http:// www.arm.uk.linux.org/~rmk/] ARM Linux about PDAs with ARM CPU and with links to other Linux related PDA sites. 2. For more information on Virtual Network Computing, see [http:// www.uk.research.att.com/vnc] VNC . 3. PDAs and infrared remote control, see [http://hp.vector.co.jp/authors/ VA005810/remocon/remocone.htm] Hiromu Okada . 4. AFAIK you can run Linux on the IBM?? 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 [http:// www.isp-planet.com/mag/97/jul/bwm70.html] LINUX REDUX July 1997 by Alan Cox. 5. There is also the [http://www.cdpubs.com/hhsys/archives.html] Handheld Systems(TM) On-line Archives and a search engine about palmtop related topics [http://www.palmtop.net/] Palmtop.Net/ . 6. I have setup a page about [http://tuxmobil.org/pda_linux.html] Linux with PDAs and Handheld PCs , too. 7. These newsgroups for PDA application developers are available: codewarrior.embedded; codewarrior.games; codewarrior.linux; codewarrior.mac; codewarrior.palm; codewarrior.unix; codewarrior.windows; ----------------------------------------------------------------------------- Chapter 5. History of Linux on PDAs This chapter is not complete yet, there should be more information on 286 based PDAs which were Linux capable. ----------------------------------------------------------------------------- 5.1. Itsy 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. ----------------------------------------------------------------------------- 5.1.1. Resources 1. COMPAQ/Digital is the manufacturer of the [http://research.compaq.com/ wrl/projects/itsy/] Itsy. ----------------------------------------------------------------------------- Chapter 6. Linux PDAs The most known Linux PDAs in these days are the [http://tuxmobil.org/ pda_survey_agenda.html] Agenda VR3 by AgendaComputing (out-of-production), the [http://tuxmobil.org/pda_survey_compaq.html] iPAQ by HP/COMPAQ, the [http://tuxmobil.org/pda_survey_sharp.html] Zaurus series by SHARP, and the [http://tuxmobil.org/pda_survey_samsung.html] Yopy by Samsung (out-of-production). Except the iPAQ all of them are true Linux PDAs, they are pre-equipped with Linux by their manufacturers. There are different free distributions for Linux PDAs available, e.g.: [http://www.trolltech.com/] QT Embedded (pre-installed on the SHARP Zaurus), [http://opie.handhelds.org/] Opie, [http://familiar.handhelds.org/] Familiar. The [http://gpe.handhelds.org/] Gnome Palmtop Environment - GPE 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. Most of the software for the newer PDAs can be obtained as pre-compiled IPK packages. You may search the [http://www.killefiz.de/zaurus/] Zaurus Software Index - ZSI or [http://ipkgfind.handhelds.org/] ipkgfind 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 feed. For an example see the [http://tuxmobil.org/feed.html] TuxMobil IPK feed. 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. ----------------------------------------------------------------------------- 6.1. AgendaComputing: Agenda VR3 6.1.1. Resources 1. The manufacturer of the first dedicated Linux PDA the Agenda VR3 is AgendaComputing (out-of-business). ----------------------------------------------------------------------------- 6.2. Samsung: YOPY 6.2.1. Resources 1. Samsung is the manufacturer of the [http://www.sem.samsung.com/eng/ product/digital/pda/index.htm] YOPY. 2. The German [http://www.linux-magazin.de/News/index_html?newsid=519] Linux-Magazin about the YOPY. 3. [http://www.theyopy.de] An alternative YOPY site. 4. [http://www.yopy.cc] The official YOPY site. Figure 6-1. Screenshot of the YOPY PDA [yopy] ----------------------------------------------------------------------------- 6.3. SHARP SL-5000/5500/C700-860/C3x00/6000 aka Zaurus 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. Figure 6-2. Screenshot of the SHARP Zaurus SL-5500 PDA. [zaurus1] ----------------------------------------------------------------------------- 6.3.1. The SHARP System You may find the official site for information about Linux on the Zaurus at [http://developer.ezaurus.com/] SHARP Japan (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 [http://qpe.sourceforge.net/] QTopia 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 [http://www.zaurus.de/] Zaurus.DE for Germany or [http:// www.myzaurus.com/] MyZaurus for the US versions. The kernel is rather old: 2.4.6 with 2.4.6-rmk2-patches and some more from [http://www.lineo.com/] Lineo. The rmk-patches are from [http://www.arm.uk.linux.org/] Linux ARM Community. 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. [http://www.busybox.org/] BusyBox , provides nearly all UNIX-commands available on the official system. ----------------------------------------------------------------------------- 6.3.2. The Community Systems Currently I know of two running systems: OpenZaurus and Debian (unofficial). ----------------------------------------------------------------------------- 6.3.2.1. OpenZaurus [http://openzaurus.org/] OpenZaurus 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, [http://openzaurus.org/] OpenZaurus created a sane root-filesystem we all know from our regular Linux systems. It also replaces QTopia by [http://opie.handhelds.org] Open Palmtop Integrated Environment - OPIE , 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. ----------------------------------------------------------------------------- 6.3.2.2. Debian The current, unofficial version of [http://people.debian.org/~mdz/zaurus/] Debian Zaurus really tries to be a regular Debian system with apt and X. A simple version of dpkg is already shipped with [http://www.busybox.org/] BusyBox , 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 [http://openzaurus.org/] OpenZaurus 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 [http://emdebian.sourceforge.net/cgi-bin/twiki/view/Main/WebHome] EmDebian 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. ----------------------------------------------------------------------------- 6.3.2.3. PocketWorkStation Here are some of the features of [http://www.pocketworkstation.net/] PocketWorkStation a Debian/GNU Linux distribution for PDAs:   *  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 apt-get install konqueror, go eat lunch and come back to find it ready to run. No porting needed.   *  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).   *  VNC client fbvnc (same features as X11 above) - remote administer your NT box from your Zaurus.   *  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.   *  Switch between QTopia and X11 whenever you like without rebooting or needing to stop any of your X11 applications. ----------------------------------------------------------------------------- 6.3.3. Synchronization with your Linux PC The QTopia-Desktop is available as a download from [http:// www.trolltech.com/developer/download/qtopia.html] Trolltech for free (as in beer): There is a [http://www.zauruszone.farplanet.net/howtos/] FAQ, 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. ----------------------------------------------------------------------------- 6.3.4. External Serial Keyboard So far I was not able to get it going. There is a site which offers a [http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html] serial keyboard driver and a patch for the iPAQ . 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 inputattach, 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 <-> 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 inputattach, you have to use the line inputattach --newtonkbd /dev/ttyS0, _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. ----------------------------------------------------------------------------- 6.3.5. Cross-Compiling 6.3.5.1. Kernel In order to build the kernel, initrd and applications you need a cross-compiling environment, GCC is preferred. [http:// emdebian.sourceforge.net/cgi-bin/twiki/view/Main/WebHome] EmDebian 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 /usr/share/info/ iostream.ifo.gz to /usr/share/info/iostream-295.info.gz. You should get some pointers for other systems at the [http://www.arm.uk.linux.org] Linux ARM Community. 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. ----------------------------------------------------------------------------- 6.3.5.2. Applications Check the [http://qpe.sourceforge.net/sharp.html] QTopia pages for more info and the [http://qpe.sourceforge.net/development.html] QTopia - Development pages. Or check the instructions from [http://opie.handhelds.org/ wiki/index.php?SourceCode] OPIE. ----------------------------------------------------------------------------- 6.3.5.3. Tool Chains Werner Schulte provides an [http://www.handhelds.org/pub/linux/dists/ opiedev/] OPIE development Live CD. The CD contains an ISO image with the tools and methods described in his [http://www.uv-ac.de/opiedev] HOWTO - LiveCD chapter. The CD allows the user to crosscompile OPIE programs without having a cross-compiler installed on his linux-box (also i386 embedded available). Instructions for building a [http://www.lucid-cake.net/osx_arm/ index_en.html] cross-compiling GCC for the Zaurus under Mac OS X. A [http://www.pellicosystems.com/demolinux/zdemolinux/index.html] DemoLinux distribution 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. [http://kopsisengineering.com/kopsis/SharpZaurusSdkDsl] Zaurus Development with Damn Small Linux 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. [http://free-electrons.com/community/tools/kernelkit/en] KernelKit 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. ----------------------------------------------------------------------------- 6.3.6. Caveats 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. 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 / include/asm-arm/sharp_char.h , check for SHARP_BUZ_ALL_SOUNDS. ----------------------------------------------------------------------------- 6.3.7. Resources 6.3.7.1. Manufacturer: SHARP 1. [http://more.sbc.co.jp/slj/linux.asp] Sharp Linux/Java PDA Linux Information 2. [http://www.zaurus.com/dev/] Sharp Zaurus Developer's Program ----------------------------------------------------------------------------- 6.3.7.2. Kernel and Community Distributions 1. [http://www.arm.uk.linux.org/] ARM Linux 2. [http://emdebian.sourceforge.net/cgi-bin/twiki/view/Main/WebHome] Emdebian 3. [http://openzaurus.org/] OpenZaurus Project 4. [http://www.doc.ic.ac.uk/~jpc1/linux/ipaq/serial.html] Linux serial keyboards ----------------------------------------------------------------------------- 6.3.7.3. FAQs, Forums, etc. 1. [http://zaurus.help4free.de/html/modules/news/] Sharp Zaurus Hilfe und Support Community (German) 2. [http://www.zaurususergroup.com/modules.php?op=modload&name=FAQ&file= index] Unofficial Sharp Zaurus SL-5500 FAQ 3. [http://www.zauruszone.farplanet.net/howtos/] Sharp Zaurus - Developer Site 4. [http://www.handhelds.org] handhelds.org - mobile Devices ----------------------------------------------------------------------------- 6.3.7.4. Applications, Desktop Environments 1. [http://opie.handhelds.org] Open Palmtop Integrated Environment (OPIE) 2. [http://gpe.handhelds.org] GPE Palmtop Environment, GTK-based alternative to OPIE 3. [http://qpe.sourceforge.net] QTopia 4. [http://www.trolltech.com/developer/download/qtopia.html] QTopia-Desktop 5. The [http://www.uv-ac.de/ipaqhelp] iPAQ and Zaurus Development using QPE handbook 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). ----------------------------------------------------------------------------- 6.3.7.5. Software Indexes 1. [http://www.killefiz.de/zaurus/] Zaurus Software Index - ZSI 2. [http://www.zaurusoft.com/] ZaurusSoft 3. [http://ipkgfind.handhelds.org] IPKGfind Software Index ----------------------------------------------------------------------------- 6.3.8. Conversion from Palm Pilot to Zaurus See my [http://tuxmobil.org/go2z.html] survey of applications and conversion tools between a conventional PDA operating system (only PalmOS yet, WinCE/Pocket PC and Epoc will follow hopefully) and a Linux PDA. ----------------------------------------------------------------------------- Chapter 7. Non-Linux PDAs - Ports and Tools 7.1. HELIO Currently the HELIO is only available with the proprietary VT operating system. See [http://www.fms-computer.com] FMS for information about the Linux port. ----------------------------------------------------------------------------- 7.1.1. Resources 1. The manufacturer of the HELIO is [http://www.myhelio.com] VTech . 2. [http://vhl-tools.sourceforge.net/] vhl-tools , a SourceForge project, works on utilities, patches, documentation and integration of Open Source software for Linux on the VTech Helio PDA. 3. 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. 4. [http://www.kernelconcepts.de/helio/] KernelConcepts 5. [http://www.linux-vr.org/tools.html] VR Org cross compiler 6. [http://www.linux-community.de/News/] Linux-Magazin Figure 7-1. Screenshot of the HELIO PDA. [home_helio_03] ----------------------------------------------------------------------------- 7.2. iPAQ Currently the iPAQ PDAs by COMPAQ/HP are distributed only with a WinCE operating system. ----------------------------------------------------------------------------- 7.2.1. Resources 1. The manufacturer of the iPAQ PDAs is [http://www.compaq.com/products/ handhelds/pocketpc/index.html] COMPAQ/HP. Figure 7-2. Screenshot of the iPAQ PDA. [h3650] ----------------------------------------------------------------------------- 7.2.2. Braille Terminal [http://pages.infinit.net/sdoyon/] Stephane Doyon 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." ----------------------------------------------------------------------------- 7.3. Newton Message Pad The Newton Message Pad was one of the first PDAs. ----------------------------------------------------------------------------- 7.3.1. Resources 1. Apple is the manufacturer of the [http://www.apple.com] Newton Message Pad. 2. [http://privat.swol.de/ReinholdSchoeb/Newton/] Newton and Linux Mini-HOWTO . ----------------------------------------------------------------------------- 7.4. PALM-Pilot 7.4.1. Resources 1. 3COM is the manufacturer of the [http://www.3com.com] PALM-Pilot. 2. [http://tldp.org/HOWTO/PalmOS-HOWTO/] PalmOS-HOWTO (former Pilot-HOWTO) by David H. Silber. 3. [http://www.pilot-link.org/] PilotLink and XCoPilot 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. 4. [http://www.uclinux.org/] ucLinux 5. [http://www.icsi.berkeley.edu/~minenko/PalmVNC] PalmVNC is an implementation of the Virtual Network Client architecture that will allow you to use a Linux or other UNIX machine to put up a (tiny) X Window on a 3COM PalmPilot. 6. [http://tuxmobil.org/pda_linux_palm.html] Survey of Linux and BSD Applications for the Palm Figure 7-3. Screenshot of the PALM-Pilot emulator POSE. [pose] ----------------------------------------------------------------------------- 7.5. HandSpring VISOR The HandSpring VISOR is a clone of the PALM-Pilot PDA. ----------------------------------------------------------------------------- 7.5.1. USB From /usr/src/linux/Documentation/usb/usb-serial.txt: HandSpring Visor USB docking station. There is a [http:// usbvisor.sourceforge.net/] webpage and mailing lists. 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: pilot-xfer / dev/ttyUSB0 -b -/visor/ ----------------------------------------------------------------------------- 7.6. Psion 5 Currently I have information about a port for the Psion 5 and nothing about the Psion 3 series. ----------------------------------------------------------------------------- 7.6.1. Resources 1. [http://tldp.org/HOWTO/Psion-HOWTO.html] Psion-HOWTO. 2. [http://plptools.sourceforge.net/] PLPtools 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. 3. The [http://linux-7110.sourceforge.net/] OpenPsion (formerly PsiLinux/ Linux7k) is a project to port the unix-like operating system Linux to a small group of palmtops. ----------------------------------------------------------------------------- Chapter 8. Connectivity 8.1. From a Linux Box to a non Linux PDA [http://www.itee.uq.edu.au/~leonard/personal/software/#xcerdisp] Xcerdisp 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 [http://synce.sourceforge.net/] SynCE tools to get your handheld connected to the network. The purpose of the [http://synce.sourceforge.net/] SynCE 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. [http://www.jardino.nildram.co.uk/] KDE Pocket PC Contacts Import lets you import your Windows CE (or PocketPC) contacts into KDE's address book. Some more information about connectivity and synchronisation tools, as well as emulators and other software you may find at [http://tuxmobil.org/ pda_linux.html] TuxMobil - PDA and in the [http://tuxmobil.org/howtos.html] Linux-Infrared-HOWTO . III. Tablet PCs / Pen PCs Table of Contents 9. Tablet PCs / Pen PCs 9.1. Introduction 9.2. Display 9.3. Handwriting Recognition 9.4. Keyboard 9.5. Wireless LAN 9.6. Examples ----------------------------------------------------------------------------- Chapter 9. Tablet PCs / Pen PCs 9.1. Introduction 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 [http://tuxmobil.org/touch_laptops.html] survey of Linux touch screen laptops and the [http://tuxmobil.org/detach_disp.html] survey of Linux laptops with detachable displays and finally a [http:// tuxmobil.org/tablet_unix.html] survey about Linux on Tablet PCs, WebPads, NotePads and PenPCs. 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. ----------------------------------------------------------------------------- 9.2. Display 9.2.1. Touchscreen The [http://www.tldp.org/HOWTO/XFree86-Touch-Screen-HOWTO.html] XFree86-Touch-Screen-HOWTO describes how to setup X11 for touchscreens. There is also a short [http://tuxmobil.org/touch_laptops.html] survey of Linux laptops, which feature a touchscreen and/or have a pen as an input device and a [http://tuxmobil.org/tablet_unix.html] survey about Linux on Tablet PCs. ----------------------------------------------------------------------------- 9.2.2. Screen Rotation 9.2.2.1. X-Windows 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: Option "Rotate" "DEGREE" From version 4.3 on [http://xfree86.org/] XFree86 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 xrandr 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 [http: //x.org/] X.Org doesn't seem to support rotate and resize. ----------------------------------------------------------------------------- 9.2.2.2. Utilities There are some rotation utilities for Linux PDAs available, but I haven't tested them for Tablet PCs yet. Search the [http://killefiz.de/zaurus/] Zaurus Software Index - ZSI. ----------------------------------------------------------------------------- 9.3. Handwriting Recognition [http://www.east.isi.edu/projects/DSN/xstroke/] xstroke 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. [http://www.handhelds.org/projects/xscribble.html] Xscribble 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. [http://www.yudit.org/] Yudit 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. ----------------------------------------------------------------------------- 9.4. Keyboard 9.4.1. Soft Keyboard / On Screen Keyboard 9.4.1.1. xvkbd [http://homepage3.nifty.com/tsato/xvkbd/] xvkbd 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. ----------------------------------------------------------------------------- 9.4.1.2. GNOME On-screen Keyboard (GOK) The [http://www.gok.ca/] GNOME On-screen Keyboard (GOK) 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. ----------------------------------------------------------------------------- 9.4.2. Remote Keyboard 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. ----------------------------------------------------------------------------- 9.4.3. Virtual Keyboard There are different approaches for virtual (non physical) keyboards. Whether they work with Linux or not I could not verify yet.   *  [http://www.vkb.co.il/] Viki made by VKB   *  [http://www.canesta.com/] Keyboard Perception Chipset made by Canesta   *  [http://www.senseboard.com/] SenseBoard   *  [http://www.lightglove.com/] LightGlove   *  [http://www.sait.samsung.co.kr/] Scurry made by SAIT   *  [http://www.kittytech.com/] Kitty ----------------------------------------------------------------------------- 9.5. Wireless LAN Please see the chapter Section 12.35 Wireless LAN below. ----------------------------------------------------------------------------- 9.6. Examples   *  [http://www.softwarekombinat.de/linux-point510.html] Fujitsu: Point 510   *  [http://libxg.free.fr/point/point.htm] Fujitsu: Point 510   *  [http://www.paceblade.de/?a=2&p=1493] PaceBlade: PaceBook   *  [http://simpad.sourceforge.net] Siemens: SimPAD At TuxMobil there is a survey of [http://tuxmobil.org/tablet_unix.html] Linux installations on Tablet PCs, Pen PCs and WebPads. IV. Mobile (Cellular) Phones, Pagers, Calculators, Digital Cameras, Wearable Computing Table of Contents 10. Mobile (Cellular) Phones, Pagers 10.1. Mobile (Cellular) Phones 10.2. Pagers - SMS Messages 11. Calculators, Digital Cameras, Wearable Computing 11.1. Digital Cameras 11.2. Calculators 11.3. Wearable Computing 11.4. Watches 11.5. Play Station Portable ----------------------------------------------------------------------------- Chapter 10. Mobile (Cellular) Phones, Pagers You may find a [http://tuxmobil.org/phones_linux.html] Linux compatibility survey of mobile phones at TuxMobil. This survey contains also links to useful applications and to mobile phones driven by the Linux operating system. ----------------------------------------------------------------------------- 10.1. Mobile (Cellular) Phones 10.1.1. Connectivity to Mobile (Cellular) Phones with non-Linux Operating System For NOKIA cellular phones see [http://www.gnokii.org/] GNOKII project. And Linux [http://www.version6.net/misc/nserver.html] Nserver. 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). [http://www.openwap.org/] openWAP 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. [http://www.pxh.de/fs/gsmlib/download/] GSMLIB 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. [http://www.kannel.org/] Kannel 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. 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. ----------------------------------------------------------------------------- 10.1.2. Mobile (Cellular) Phones with a Linux Operating System There are some [http://tuxmobil.org/phones_linux.html] mobile phones with Linux operating system available. As well as [http://tuxmobil.org/ mobile_phone_linux_distributions.html] Linux distributions for mobile (cell) phones. ----------------------------------------------------------------------------- 10.2. Pagers - SMS Messages [http://www.qpage.org/] QuickPage 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). [http://daniel.haxx.se/projects/mail2sms/] mail2sms 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. [http://www.new.ox.ac.uk/~adam/computing/email2sms/] email2sms 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 Lingua::EN::Squeeze to compress the text down to as little as 40% 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. [http://www.styx.demon.co.uk/smslink/] SMSLink 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 telnet. 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. [http://lide.pruvodce.cz/~wayne/] nmsms is a very simple program to announce incoming email to an SMS address (email address) defined at compile time. The original From: and Subject: header are included in each mail announced. [http://www.hof-berlin.de/mepl/] mepl 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. ----------------------------------------------------------------------------- Chapter 11. Calculators, Digital Cameras, Wearable Computing   We are all cyborgs.   probably from "Cyborg Manifesto" by Donna J. Haraway in Simians, Cyborgs, and Women. The Reinvention of Nature. New York: Routledge, 1991 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 [http://www.embedded.com] Embedded.com . For Linux information, see [http://elks.sourceforge.net/] ELKS and the [http://uclinux.org/] uCLinux project. See also the news group comp.arch.embedded ----------------------------------------------------------------------------- 11.1. Digital Cameras 11.1.1. Related Documentation 1. [http://www.marblehorse.org/projects/documentation/kodak/] Kodak-Digital-Camera-HOWTO by David Burley . ----------------------------------------------------------------------------- 11.1.2. Introduction For information about cellular phones and digital cameras see the [http:// tuxmobil.org/ir_misc.html] Infrared Devices and Linux Survey and my [http:// tuxmobil.org/howtos.html] InfraRed-HOWTO . Newsgroup: rec.photo.digital . The Flashpath adapter is a diskette like device which is used to transfer data from a digital camera to a computer. See [http://www.smartdisk.com/ Downloads/FPDrivers/LinuxDownload.htm] Flashpath for Linux and James Radley's [http://www.susie.demon.co.uk/flashpath.html] flashpath homepage . Note: it is not officially certified and released under GPL. ----------------------------------------------------------------------------- 11.2. Calculators Information about calculators e.g. HP-48 is at [http://www.hpcalc.org] HP-Calculator.Org and Keith's [http://www.gmi.edu/~madd0118/hp48/] HP-48 Page . [http://www.columbia.edu/kermit/hp48.html] HP-48 Kermit Hints and Tips shows how to talk to the HP48 via its serial-line Kermit protocol. The HP-48 may also be used as a [http://panic.et.tudelft.nl/~costar/hp48] Linux terminal . See also at my page about [http://tuxmobil.org/ir_misc.html] Linux with Infrared Devices . [http://www.tunbury.demon.co.uk/casio/] Backup utility for the CASIO diary . 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 [http://www.aloha.net/alank/] Alank, [http://www.casioworld.com] CASIO World , [http://home.t-online.de/home/ Milan.Urosevic/] Milan Urosevic and [http://sunsite.unc.edu/pub/Linux/apps/] SunSite Archiv . [http://www.multimania.com/rlievin/] GtkTiLink 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. ----------------------------------------------------------------------------- 11.3. Wearable Computing Also related to Linux and mobile computers seems wearable computing. See also [http://www.media.mit.edu/wearables/] MIT , [http:// wearables.blu.org] Wearables Central and [http://www.wearcomp.org/] WearComp . [http://wearables.essex.ac.uk/sulawesi/] Sulawesi was developed due to the problems running a desktop GUI on a wearable computer. It has been designed and implemented to tackle what has been considered to be important challenges in a wearable user interface, the ability to accept input from any number of input devices, such as machine vision, speech recognition, portable keyboards, GPS devices, infra-red, etc. and to allow services to manipulate the information and generate a suitable output such as speech generation, graphics using a headmounted display, vibrotactile stimuli, etc. The Gili user interface has been updated, more documentation has been added, and the Spatial Reminder has been introduced. ----------------------------------------------------------------------------- 11.4. Watches The [http://datalink.fries.net/] datalink library 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 LCD). ----------------------------------------------------------------------------- 11.5. Play Station Portable [http://qpspmanager.sourceforge.net/] qpspmanager is a program to manage the files on a memorystick as used by a Sony Sony Playstation Portable. V. Mobile Hardware in Detail Table of Contents 12. Hardware in Detail: CPU, Display, Keyboard, Sound and More 12.1. Introduction 12.2. BIOS 12.3. CPU 12.4. Centrino 12.5. PCMCIA Controller 12.6. Graphics Chip 12.7. DVI Port 12.8. Video Port / ZV Port 12.9. LCD Display 12.10. Sound 12.11. Keyboard 12.12. Extra Keys / Hot Keys 12.13. Function Key 12.14. Power Key 12.15. Extra LEDs 12.16. Numeric Keypad 12.17. Pointing Devices - Mice and Their Relatives 12.18. Advanced Power Management - APM 12.19. ACPI 12.20. Power Management Unit - PMU (PowerBook) 12.21. Batteries 12.22. Memory 12.23. Plug-and-Play Devices (PnP) 12.24. Docking Station / Port Replicator 12.25. Network Connections 12.26. Built-In Modem 12.27. GPRS 12.28. SCSI 12.29. Universal Serial Bus - USB 12.30. FireWire - IEEE1394 - i.Link 12.31. Floppy Drive 12.32. Optical Drives (CD/DVD) 12.33. Hard Disk 12.34. Hot-Swapping Devices (MultiBay, SelectBay, ..) 12.35. WireLess Network - WLAN 12.36. BlueTooth 12.37. Infrared Port 12.38. FingerPrint Reader 13. Accessories: PCMCIA, USB and Other External Extensions 13.1. PCMCIA Cards 13.2. ExpressCards 13.3. SmartCards 13.4. SDIO Cards 13.5. Memory Technology Devices - RAM and Flash Cards 13.6. Memory Stick 13.7. Card Readers for SD/MMC/Memory Stick 13.8. USB Devices 13.9. Printers and Scanners 13.10. Serial Devices 13.11. External Storage Devices 13.12. Power and Phone Plugs, Power Supply 13.13. Bags and Suitcases ----------------------------------------------------------------------------- Chapter 12. Hardware in Detail: CPU, Display, Keyboard, Sound and More 12.1. Introduction 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. ----------------------------------------------------------------------------- 12.2. BIOS 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. 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. 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 [http://freshrpms.net/docs/bios-flash/] create a bootable CD-ROM with GNU/Linux, which enables one to actually flash a BIOS using a DOS utility without requiring Windows, MS-DOS or a floppy drive. Some newer laptops e.g. ASUS M5200A are equipped with a BIOS, which is able to update itself. The [http://www.nenie.org/misc/flashbootcd.html] Motherboard Flash Boot CD from Linux Mini HOWTO 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. [http://www.linuxbios.org] LinuxBIOS 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. Alternative approaches are [http://openbios.org/] OpenBIOS and [http:// freebios.sourceforge.net/] FreeBIOS. ----------------------------------------------------------------------------- 12.2.1. SMBios [http: