Linux Laptop-HOWTO <author>Werner Heuser <htmlurl url ="" name="<>"> &nl; Traduction franšaise par Mathieu Arnold <htmlurl url="" name=""> <date>v1.3, 8 March 1999 <abstract> Laptops are different from desktops/towers. They use certain hardware such as PCMCIA cards, infrared ports, batteries, docking stations. Often their hardware is more limited (e.g. disk space, CPU speed), though the performance gap is becoming smaller. In many instances, laptops can become a desktop replacement. Hardware support for Linux on laptops is sometimes more limited (e.g. graphic chips, internal modems). Laptops often use specialized hardware, hence finding a driver can be more difficult. Laptops are often used in changing environments, so there is a need for multiple configurations and additional security strategies. Though there are laptop related HOWTOs available already, this HOWTO contains a concise survey of laptop related documents. Also, laptop related Linux features, such as installation methods for laptops (via PCMCIA, without CD drive, etc.), laptop hardware features and configurations for different (network) environments are described. </abstract> <toc> <sect>Preface <p> Life is the first gift, love is the second, and understanding is the third. -- <htmlurl url="˜tmpiercy/" name="Marge Piercy"> <p> People like either laptops or desktops. I like to work with laptops rather than with desktops. I like Linux too. My first HOWTO is the <htmlurl url="˜wehe/index_li.html" name="Linux/IR-HOWTO"> about infrared support for Linux. Also I have written some pages about Linux with certain laptops: <htmlurl url="˜wehe/index_li.html" name="Olivetti Echos 133 DM"> (together with Kurt Saetzler), <htmlurl url="˜wehe/index_li.html" name="HP OmniBook 800CT">, <htmlurl url="˜wehe/index_li.html" name="HP OmniBook 3100"> (together with Friedhelm Kueck) and <htmlurl url="˜wehe/index_li.html" name="COMPAQ Armada 1592 DT">. But I don't claim to be a laptop guru, I just had the opportunity to install Linux on some laptops and I simply want to share the information I collected. <p> 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 are welcome. But please don't expect me to solve your laptop related problems. Please read all according manual pages, HOWTOs and WWW sites first, than contact the other resources mentioned below. <p> Many times I have mentioned <it>MetaLab</it> formerly known as <it>SunSite</it>. This site carries a heavy load, so do yourself a favor, use one of its mirrors <htmlurl url="" name=""> . <p> For <it>Debian/GNU Linux</it> the mirror URLs are organized in this scheme <tt>http://www.<country code, e.g. uk></tt> . <p> Since I don't own a non-Intel based machine, this HOWTO might not contain all the details for non-Intel systems or may contain inaccuracies. Sorry. <p> This text is included in the LINUX DOCUMENTATION PROJECT <htmlurl url="" name=""> . <p> The latest version of this document is available in HTML format at <htmlurl url="˜wehe/index_li.html" name="˜wehe/index_li.html"> . <p> Richard Worwood mirrors this HOWTO at <htmlurl url="" name=""> . <p> A similar HOWTO written in french by Lionel &dquot;Trollhunter&dquot; you may find at <htmlurl url="˜bouchpan" name="˜bouchpan"> . <p> Werner Heuser <> <sect>Copyright, Disclaimer and Trademarks <p> Copyright © 1999 by Werner Heuser. This document may be distributed under the terms set forth in the LDP license at <htmlurl url="" name=""> . 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 IMHO 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 Open Source Definition <htmlurl url="" name="">) : If certain words are trademarks, the context should make it clear to whom they belong. For example &dquot;MS Windows NT&dquot; implies that &dquot;Windows NT&dquot; belongs to Microsoft (MS). Mac is by Apple Computer. Trademarks belong to their respective owners. <sect>Which Laptop to Buy? <p> <sect1>Introduction <p> 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: <enum> <item> 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 (wether external or internal) or swappable parts like CD and floppy drive, are included in the weight.</item> <item> Supported Operations Systems: proprietary versus open</item> <item> Price: NoName versus Brand</item> <item> Hardware Features: display size, harddisk size, CPU speed, battery type, etc.</item> <item> Linux Support: graphic chip, sound card, infrared controller (IrDA), internal modem, etc.</item> </enum> <sect1>Portables, Laptops/Notebooks, Sub/Mini-Notebooks, Palmtops, PDAs/HPCs <p> <sect2>Portables <p> 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., <htmlurl url="" name="">) <sect2>Laptops/Notebooks <p> 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 <it>laptop</it> and <it>notebook</it> seem equivalent to me. <sect2>Sub-Notebooks/Mini-Notebooks <p> 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. <sect2>Palmtops <p> Weight between 0.7 and 1.3 kg (1.5 to 3 lbs). Features: proprietary commercial operating systems. Examples: HP200LX. <sect2>Personal Digital Assistants (PDAs)/Handheld PCs (HPCs) <p> Weight below 0.7 kg (1.5 lbs). Features: proprietary commercial operating systems and often non-Intel CPU (PalmOS, EPOC32, GEOS, Windows CE). Examples: Newton Message Pad, Palm III (former Pilot), Psion Series 5, CASIO Z-7000. Palmtops and PDAs are currently not covered in this HOWTO. Anyway it may be useful therefore too. There is also a PalmOS-HOWTO (former Pilot-HOWTO) by David H. Silber and the Newton and Linux Mini-HOWTO <htmlurl url=" " name=" "> . I just include some links, most of them are from Kenneth E. Harker's page <htmlurl url="" name=""> : <enum> <item><htmlurl url="˜aehall/newtl/" name="Newtl: Newton/Linux Communications System"> Newtl allows a Linux machine to communicate with a Newton PDA. Automatically send e-mail, print, and fax outboxes through your Linux machine, and more. <item> <htmlurl url="" name="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. <item> <htmlurl url="˜minenko/PalmVNC" name="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. <item>PDAs and infrared remote control, see Hiromu Okada <htmlurl url="" name=""> <item> 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. <item> For more information on Virtual Network Computing (VNC), see <htmlurl url="" name="http://"> . <item> There is also Handheld Systems(TM) On-line Archives at <htmlurl url="" name=""> .and a search engine about palmtop related topics at <htmlurl url="" name=""> . </enum> <p> <sect2>Cellular Phones, Calculators, Digital Cameras, Wearable Computing <p> These devices are not covered in this text. For general information about Embedded Systems, see <htmlurl url="" name=" ">. For Linux information, see ELKS <htmlurl url="" name=" "> and the uCLinux project at <htmlurl url="" name=" "> . Also related to this topic but not covered yet seems wearable computing, see <htmlurl url="" name=""> for further information. <sect1>Linux Features <p> Due to a lack of support by some hardware manufacturers, not every feature of a laptop is always supported or fully operational. The main devices which may cause trouble are: graphic 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 the Hardware In Detail sections below. <p> 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. <sect1>Main Hardware Features <p> Besides its Linux features, there often are some <it>main features</it> which have to be considered when buying a laptop. For <it>Linux features</it> please see the Hardware In Detail section below. <sect2>Weight <p> Don't underestimate the weight of a laptop. This weight is mainly influenced by: <enum> <item> screen size</item> <item> battery type</item> <item> internal components, such as CD drive, floppy drive</item> <item> power supply</item> </enum> <sect2>Display <p> Laptops come with one of two types of displays: <it>active</it> matrix (TFT) and <it>passive</it> matrix (DSTN). 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 15&dquot;. A bigger screen weighs more, costs more, and is harder to carry, but is good for a portable desktop replacement. <sect2>Batteries <p> The available battery types are <it>Lithium Ion (LiIon)</it>, <it>Nickel Metal Hybrid ( NiMh)</it> and <it>Nickel Cadmium (NiCd)</it>. 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. Unfortenately most laptops come with a proprietary battery size. So they are not interchangeable between different models. <sect2>CPU <p> <sect3>Supported CPU Families <p> For details about systems which are supported by the Linux Kernel, see the Linux FAQ <htmlurl url="" name=""> . <enum> <item>i286: Linux doesn't support this CPU family yet. But there are some efforts at ELKS <htmlurl url="" name="">. Unfortunately this project seems on halt. But if you like, you may use Minix <htmlurl url="˜ast/minix.html" name="˜ast/minix.html "> one of the predecessors of Linux. Minix supports 8088 to 286 with as little as 640K memory. <item>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. <item>m68k: This covers Amigas and Ataris having a Motorola 680x0 processor for x>=2; with MMU. AFAIK there is no laptop with such a CPU. But I'm not sure weither the early Mac laptops are falling into this category. Early PowerBooks did indeed have m68k chips in them. I think the DuoBook was what they were called. Not sure if they are Linux capable or not. <item>Alpha, Sparc, Sparc64, PowerPC, Arm and Hurd-i386 architectures: These are currently under construction. AFAIK there are only the Tadpole SPARC and ALPHA laptops, and some other ALPHA laptops available. For a current survey look at Kenneth E. Harker's <it>Linux on Laptops without x86 Family Processors</it> at <htmlurl url="" name=""> . </enum> <sect3>Miscellaneous <p> At higher speed, a CPU consumes more power and generates more heat. Therefore, in many laptops a special low-power CMOS 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 fan which seems quite loud. <sect2>Keyboard Quality <p> Though you might use your desktop computer to do longer writings, a good keyboard can save you some headaches and finger-aches. Look especially for the location of special keys like: <tt><ESC></tt>, <tt><TAB></tt>, <tt><Pos1></tt>, <tt><End></tt>, <tt><PageDown></tt>, <tt><PageUp></tt> and the cursor keys. <p> <sect2>Price <p> Laptops are quite expensive if you compare them with desktops. So you may decide between a brand or no-name product. Though I would like to encourage you to take a <it>no-name</it> 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 <it>second hand</it> 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. For German readers there is an online market place at <htmlurl url="" name="">, which offers a good survey about current prices for second hand machines. <sect2>Power Supply <p> If you travel abroad pay attention to the voltage levels which are supported by the power supply. <sect1>Sources of More Information <p> Specifications and manufacturer support often are not helpful. Therefore you should retrieve information from other sources too: <enum> <item> Highly recommended is the survey by Kenneth E. Harker <htmlurl url="" name=""> .</item> <item> <htmlurl url="" name=""> .</item> <item> Hardware-HOWTO</item> <item> open hardware - The Open Hardware Certification Program <htmlurl url="" name=""> </item> <item> - dedicated to the hardware aspects of (Linux) computing <htmlurl url="" name=""> </item> <item>How to Build a PC FAQ - excellent hardware overview by Billy Newsom <htmlurl url="" name=""></item> <item> Last but not least the WWW itself.</item> </enum> <sect1>Linux Compatibility Check <p> <sect2>Related HOWTOs <p> <enum> <item> Hardware-HOWTO</item> <item> Kernel-HOWTO</item> <item> PCMCIA-HOWTO</item> <item> PCI-HOWTO</item> <item> Plug-and-Play-mini-HOWTO</item> </enum> <sect2>Check Methods in General <p> 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 Hardware on Detail section below. In general you may use: <enum> <item> 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 usually by <tt>dmesg</tt> or by looking into <file>/var/log/messages</file>. <item> If your kernel supports the <file>/proc</file> file system you may get detailed information about PCI devices by <tt>cat /proc/pci</tt> Please read the kernel documentation <file>pci.txt</file>. You may get further information about unknown PCI devices at the database from Craig Hart at <htmlurl url="˜chart" name="˜chart">. From 2.1.82 kernels on you may use the <tt>lspci</tt> command from the <tt>pci-utils</tt> package. <item> To retrieve information about Plug-and-Play (PNP) devices use <tt>isapnp-tools</tt> . <item> Use <tt>scsi_info</tt> by David Hinds for SCSI devices or <tt>scsiinfo</tt>. </enum> If you don't want to install a complete Linux you may retrieve this information by using a micro Linux ( see appendix A). The package <tt>muLinux</tt> provides even a small <tt>systest</tt> program and <tt>TomsRtBt</tt> comes with <tt>memtest</tt>. To use <tt>memtest</tt> you have to copy it on a floppy <tt>dd if=/usr/lib/memtest of=/dev/fd0</tt> 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 <tt>Start -> Settings -> Control Panel -> System -> Device Manager</tt> and write down everything, or make a hardcopy from the display using the <tt><PRINT></tt> key, plus keep a log of settings, hardware, memory, etc. Using MS-DOS and Windows3.1x you can use the command <tt>msd</tt>, which is an akronym for MicroSoft Diagnostics. Or you might try one of the numerous DOS shareware utilities: <tt>CHECK-IT</tt>, <tt>DR.HARD</tt> and others. <sect1>Buying a Second Hand Laptop <p> Some recommendations to check an used laptop, before buying it: <enum> <item> Review the surface of the case for visible damages.</item> <item> Check the display for pixel faults. Maybe it's useful to take a magnifying glass therefore.</item> <item> Do an IO stress-test, .e.g. with the tool <tt>bonnie</tt>.</item> <item> You may use <tt>memtest</tt> and <tt>crashme</tt> to achieve a memory test. <item> Do a CPU stress test, e.g. with the tool <tt>Byte</tt> or by compiling a kernel.</item> <item> Check the floppy drive by formatting a floppy.</item> <item> Check the CD drive by reading a CD.</item> <item> To check the battery seems difficult, because it needs some time: one charge and one work cycle.</item> <item> To check the surface of the harddisk you may take <tt>e2fsck</tt>. There is also a Linux tool <tt>dosfsck</tt> or the other <tt>fsck</tt> tools.</item> <item> To test the entire disk (non-destructively), time it for performance, and determine its size, as root do: <tt>time dd if=/dev/hda of=/dev/null bs=1024k</tt> . <item> Check wether the machine seems stolen. There is at least one database about stolen laptops in the WWW. But I have lost the URL.</item> </enum> 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 IMHO is the tool <tt>PC Diagnostics 95</tt> made by Craig Hart <htmlurl url="˜chart" name="˜chart"> . Despite the 95 in its name it's plain DOS, tiny (76KB programm and 199KB data) reliable and free. Unfortenately it contains no check for the IrDA port. Please note this quotation from the disclaimer: &dquot;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 <it>pretty</it> 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.&dquot; <sect1>No Hardware Recommendations <p> 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 (according to harddisk space, CPU speed, display size, etc.) comes into the market. So I don't give any model or brand specific recommendations. <sect1>Laptop Distribution <p> <sect2>Requirements <p> From the Battery-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 <it>minimal install</it> 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 (as found in Suse Linux). Most portable systems do not need printing support (they will never be connected to a printer, printing is usually done with the desktop system at home). Quite a few laptops do not need any network support at all. Don't forget to describe <it>laptop-specific installation problems</it>, e. g. how to install your distribution without a cd-rom drive or how to setup the plip network driver. Add better <it>power management</it> and seamless <it>PCMCIA support</it> to your distribution. Add a recompiled kernel and an alternative set of PCMCIA drivers with <it>apm support</it> that the user can install on demand. Include a precompiled <it>apmd package</it> with your distribution. Add support for dynamically <it>switching network configurations</it>. 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. Changing a Linux system's network ID is a pain with most distributions. Add a <it>convenient PPP dialer</it> 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 <tt>usernet</tt> 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 <tt>wvdial</tt> from Worldvisions <htmlurl url="" name="">. <sect2>Recommendation <p> IMHO the Debian/GNU Linux <htmlurl url="" name=""> 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 at laptops. All the binaries are tiny, because they are stripped. And besides Debian/GNU Linux is free. Though other distributions are also worth to try them. <sect>Installation Methods <p> <sect1>Related HOWTOs <p> <enum> <item> CDROM-HOWTO</item> <item> Config-HOWTO</item> <item> Diskless-mini-HOWTO</item> <item> Installation-HOWTO</item> <item> Pre-Installation-Checklist-mini-HOWTO</item> <item> Update-mini-HOWTO</item> <item> Hard-Disk-Upgrade-mini-HOWTO</item> <item> Installation and getting started by Matt Welsh and others available at the LINUX DOCUMENTATION PROJECT <htmlurl url="" name=""></item> <item> Installing Debian Linux 2.1 For x86 by Bruce Perens, Sven Rudolph, Igor Grobman, James Treacy, Adam P. Harris <htmlurl url="" name=""> <item> Install-From-Zip-mini-HOWTO</item> <item> <htmlurl url="˜campbell" name="ZIP-Drive-mini-HOWTO "> </item> </enum> <sect1>Introduction <p> From the Battery-HOWTO:&dquot;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.&dquot; <p> 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 <it>laptop specific methods</it>, which are necessary only in certain circumstances. <p> 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. <sect1>From a Boot Floppy plus CD-ROM - The Usual Way <p> With modern laptops, the usual Linux installation (one Boot Floppy, one Support Floppy, one Packages CD-ROM) should be no problem, if there is are floppy drive and a CD-ROM drive available. Though with certain laptops you might get trouble if you can not simultaneously use the <it>floppy drive and CD-ROM drive </it>, or if the floppy drive is <it>only available as a PCMCIA device</it>, 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 VAIO-HOWTO. Note: Check the BIOS for the CD boot option and make sure your Linux distribution comes on a bootable CD. <p> Certain laptops will only boot <it>zImage</it> kernels. <it>bzImage</it> 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, Debian/GNU Linux <htmlurl url="" name=""> for instance. <sect1>From a DOS or Windows Partition at the same Machine <p> 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 <it>swappable floppy and CD-ROM components</it> (if both are mutually exclusive) or if they are <it>only available as PCMCIA devices</it>. I have taken this method from &dquot;Installing Debian GNU/Linux 2.1 For Intel x86 - Chapter 5 Methods for Installing Debian&dquot; <htmlurl url="" name=""> : <enum> <item>Get the following files from your nearest Debian FTP mirror and put them into a directory on your DOS partition: <tt>resc1440.bin drv1440.bin base2_1.tgz root.bin linux install.bat</tt> and <tt>loadlin.exe</tt>. <item>Boot into DOS (not Windows) without any drivers being loaded. To do this, you have to press <<tt>F8</tt>> at exactly the right moment. <item>Execute <tt>install.bat</tt> from that directory in DOS. <item>Reboot the system and install the rest of the distribution, you may now use all the advanced features such as PCMCIA, PPP and others. </enum> This should work for other distributions with similar changes. For RedHat see <htmlurl url="" name="How to Install from CD-ROM without Boot and Supplemental Disks"> . <p> Some new laptops may be able to boot a Linux distribution on a bootable CD-ROM (e.g., RedHat). This would allow installation without a floppy disk drive. <sect1>From a Second Machine With a Micro Linux On a Floppy <p> <sect2>Introduction <p> Because of their small or non-existent footprint, micro-Linuxes are especially suited to run on laptops -- particularly if you use a company-provided laptop running Windows9x/NT. Or for installation purposes using another non Linux machine. There are several <it>micro</it> Linux distributions out there that boot from one or two floppies and run off a ramdisk. See appendix A for a listing of distributions. I tried the following with <tt>muLinux</tt> to clone my HP OmniBook 800 to a COMPAQ Armada 1592DT. Thanks to Michele Andreoli, maintainer of muLinux for his support. Since <tt>muLinux</tt> doesn't support PCMCIA yet, you may use <tt>TomsRtBt</tt> instead. In turn <tt>TomsRtBt</tt> doesn't support <tt>PPP</tt> but provides <tt>slip</tt>. I have described how to copy an already existing partition, but it might be also 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 SMB, which is also supported by <tt>muLinux</tt> . <sect2>Prerequisites <p> 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 according method using a PCMCIA network card and a crossover network cable or a HUB, or a parallel &dquot;null modem&dquot; cable and PLIP. As the basic protocol I used PPP, but you may also use SLIP. For the data-transfer I used <tt>nc</tt>, you may use <tt>ftp</tt>, <tt>tftp</tt>, <tt>rsh</tt>, <tt>ssh</tt>, <tt>dd</tt>, <tt>rcp</tt>, <tt>kermit</tt>, <tt>NFS</tt>, <tt>SMB</tt> and others. Basic requirements are: <enum> <item> A good knowledge about using Linux. You have to know exactly what you are doing, if not you might end destroying former installations.</item> <item> A nullmodem serial cable.</item> </enum> <sect2>Source Machine <p> At your <it>source</it> machine issue the following commands (attention: IP address, port number, partition and tty are just examples!): <enum> <item> Edit <file>/etc/ppp/options</file>, it should contain only: <code> /dev/ttyS0 115200 passive </code></item> <item>With muLinux versions 3.x you may even use the convenient command <tt>setup -f ppp</tt> .</item> <item> Start PPP: <tt>pppd</tt> .</item> <item> Configure the PPP network device: <tt>ifconfig ppp0</tt> .</item> <item> Add the default route: <tt>route add default gw</tt> .</item> <item> Check the network connection: <tt>ping</tt>, though the destination machine isn't up yet.</item> <item> Start the transfer from another console, remember <tt><LEFT-ALT><Fx></tt>: <tt>cat /dev/hda2 | gzip -c | nc -l -p 5555</tt> .</item> <item> After the transfer (there are no more harddisk writings) stop the ping: <tt>killall ping</tt> .</item> </enum> <sect2> Destination Machine <p> At the <it>destination</it> machine issue: <enum> <item> Edit <file>/etc/ppp/options</file>, it should contain only: <code> /dev/ttyS0 115200 passive </code></item> <item>With muLinux versions 3.x you may even use the convenient command <tt>setup -f ppp</tt> .</item> <item> Start PPP: <tt>pppd</tt> .</item> <item> Configure the PPP network device: <tt>ifconfig ppp0</tt> .</item> <item> Add the default route: <tt>route add default gw</tt> .</item> <item> Check the network connection, by pinging to the source machine: <tt>ping</tt> .</item> <item> Change to another console and get the data from the server: <tt>nc 5555 | gzip -dc >/dev/hda4</tt> .</item> <item> 400 MB may take app. 6 hours, but YMMV.</item> <item> Stop the transfer, when it is finished with: <tt><CTL><C></tt> .</item> <item> After the transfer is completed, stop the ping: <tt>killall ping</tt> .</item> </enum> <sect2>Configuration of the Source Machine after the Transfer <p> <enum> <item> Edit <file>/etc/fstab</file> .</item> <item> Edit <file>/etc/lilo.conf</file> and <file>/etc/lilo.msg</file> and start <tt>lilo</tt> .</item> <item> Set the new root device to the kernel: <tt>rdev image root_device</tt> .</item> </enum> <sect2>Miscellaneous <p> <enum> <item> <tt>bzip2</tt> didn't work, probably because I wasn't able to make it read from <tt>stdin</tt> .</item> <item> Since <tt>rshd</tt>, <tt>sshd</tt>, <tt>ftpd</tt> daemons are not available with muLinux you have to build your own daemon with <tt>nc</tt>, as described above.</item> <item> I had to set up both PPP sides very quick or the connection broke, I don't know why.</item> <item> Speed optimization has to be done, <tt>asyncmap 0</tt> or <tt>local</tt>?</item> <item> I checked this only with a destination partition greater than the source partition. Please check <tt>dd</tt> instead of <tt>cat</tt> therefore.</item> <item> Don't mount the destination partition.</item> </enum> <sect1>From a Second Machine With a 2.5&dquot; Hard Disk Adapter <p> From Adam Sulmicki 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&dquot; 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 than 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 find additional information in the Hard-Disk-Upgrade-mini-HOWTO. You might copy an existing partition, but it is also possible to achieve a customized installation. <sect1>From a PCMCIA Device <p> Since I don't have a laptop which comes with a PCMCIA <it>floppy drive</it> (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 <it>harddisk</it> is possible. <p> 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. <sect1>From a Parallel Port Device (ZIP Drive, CD Drive) <p> I couldn't check this method by myself, because I don't have such a device. Please check the according Install-From-Zip-mini-HOWTO and CD-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. <sect> Hardware In Detail <p> <sect1> PCMCIA Controller <p> <sect2> Linux Compatibility Check <p> With the <tt>probe</tt> command, which is included in the PCMCIA-CS package by David Hinds you can get the type of the PCMCIA controller. Often this shows also up with <tt>cat /proc/pci</tt> . <sect2> Related HOWTOs <p> <enum> <item> PCMCIA-HOWTO</item> </enum> <sect2>PCMCIA Configuration - Survey <p> In the mailing lists where I'm a member, the question &dquot;How can I set up PCMCIA support, after the Linux installation?&dquot; comes up sometimes. Therefore I try to give a short survey. But the authoritative source for the latest information about the <it>PCMCIA Card Services for Linux</it>, including documentation, files, and generic PCMCIA information is the <htmlurl url="" name="Linux PCMCIA Information Page"> . For problems with PCMCIA and APM see the APM chapter. <sect3>Software <p> <enum> <item> Read the PCMCIA HOWTO, usually included in the PCMCIA-CS package.</item> <item> Install the newest available PCMCIA-CS package, if you take a rpm or deb package it is quite easy.</item> <item> If necessary, install a new kernel. Note: With 2.2.x kernels PCMCIA kernel support seems no longer necessary. I had no time to look this up yet. Please read the according documents.</item> <item> Make sure your kernel has module support and PCMCIA support enabled (and often APM support)</item> <item> Make sure your kernel also includes support for the cards you want to use, e.g. network support for a NIC card, serial support for a modem card, SCSI support for a SCSI card and so on.</item> </enum> <sect3>PCMCIA Controller <p> <enum> <item> Use the <tt>probe</tt> command to get information whether your PCMCIA controller is detected or not.</item> <item> Edit the file <file>/etc/sysconfig/pcmcia</file>. It should include <tt>PCMCIA=y</tt> and the type of your PCMCIA controller, e.g. <tt>PCIC=i82365</tt>. </item> <item> Start the PCMCIA services typically via <tt>/etc/init.d/pcmcia start</tt>. If you get two high beeps, everything should be fine.</item> <item> If something doesn't work, check the messages in <file>/var/log/messages</file> . </item> </enum> <sect3> PCMCIA Card <p> <enum> <item> Check your card with <tt>cardctl ident</tt> .</item> <item> If your card is not in <file>/etc/pcmcia/config</file>, edit this file accordingly.</item> <item> If you use X, you can use <tt>cardinfo</tt> to insert, suspend, or restart a PCMCIA card via a nice graphical interface. </enum> <sect1>Infrared Port <p> <sect2>Linux Compatibility Check <p> To get the IrDA port of your laptop working with Linux/IrDA you may use StandardInfraRed (SIR) or FastInfraRed (FIR). <sect3>SIR <p> Up to 115.200bps, the infrared port emulates a serial port like the 16550A UART. This will be detected by the kernel serial driver at boot time, or when you load the <file>serial</file> module. If infrared support is enabled in the BIOS, for most laptops you will get a kernel message like: <code> Serial driver version 4.25 with no serial options enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A #first serial port /dev/ttyS0 ttyS01 at 0x3000 (irq = 10) is a 16550A #e.g. infrared port ttyS02 at 0x0300 (irq = 3) is a 16550A #e.g. PCMCIA modem port </code> <sect3>FIR <p> If you want to use up to 4Mbps, your machine has to be equipped with a certain FIR chip. You need a certain Linux/IrDA driver to support this chip. Therefore you need exact information about the FIR chip. You may get this information in one of the following ways: <enum> <item>Read the <it>specification</it> of the machine, though it is very rare that you will find enough and reliable information there. <item>Try to find out wether the FIR chip is a <it>PCI</it> device. Do a <tt>cat /proc/pci</tt> . The according files for 2.2.x kernels are in <file>/proc/bus/pci</file> . Though often the PCI information is incomplete. You may find the latest information about PCI devices and vendor numbers in the kernel documentation usually in <file>/usr/src/linux/Documentation</file> or at the page of Craig Hart <htmlurl url="˜chart" name="˜chart"> . From kernel 2.1.82 on, you may use <tt>lspci</tt> from the <tt>pci-utils</tt> package, too. <item>Use the <it>DOS tool</it> <tt>CTPCI330.EXE</tt> provided in ZIP format by the German computer magazine CT <htmlurl url="" name=""> . The information provided by this program is sometimes better than that provided by the Linux tools. <item>Try to get information about <it>Plug-and-Play (PnP)</it> devices. Though I didn't use them for this purpose yet, the <tt>isapnp</tt> tools, could be useful. <item>If you have installed the <it>Linux/IrDA software</it> load the FIR modules and watch the output of <tt>dmesg</tt>, whether FIR is detected or not. <item>Another way how to figure it out explained by Thomas Davis (modified by WH): &dquot;Dig through the FTP site of the vendor, find the <it>Windows9x FIR drivers</it>, and they have (for a SMC chip): <code> -rw-rw-r-- 1 ratbert ratbert 743 Apr 3 1997 smcirlap.inf -rw-rw-r-- 1 ratbert ratbert 17021 Mar 24 1997 smcirlap.vxd -rw-rw-r-- 1 ratbert ratbert 1903 Jul 18 1997 smcser.inf -rw-rw-r-- 1 ratbert ratbert 31350 Jun 7 1997 smcser.vxd </code> If in doubt, always look for the .inf/.vxd drivers for Windows95. Windows95 doesn't ship with _ANY_ FIR drivers. (they are all third party, mostly from Counterpoint, who was assimilated by ESI).&dquot <item>Also Thomas Davis found a package of small <it>DOS utilities made by SMC</it>. Look at <htmlurl url="" name=""> . The package contains <tt>FINDCHIP.EXE</tt>. And includes a <tt>FIRSETUP.EXE</tt> utility that is supposed to be able to set all values except the chip address. Furthermore it contains <tt>BIOSDUMP.EXE</tt>, which produces this output: <p> Example 1 (from a COMPAQ Armada 1592DT) <code> In current devNode: Size = 78 Handle = 14 ID = 0x1105D041 = 'PNP0511' -- Generic IrDA SIR Types: Base = 0x07, Sub = 0x00, Interface = 0x02 Comm. Device, RS-232, 16550-compatible Attribute = 0x80 CAN be disabled CAN be configured BOTH Static & Dynamic configuration Allocated Resource Descriptor Block TAG's: TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x03E8, Max=0x03E8 Align=0x00, Range=0x08 TAG=0x22, Length=2 IRQ Tag, Mask=0x0010 TAG=0x79, Length=1 END Tag, Data=0x2F </code> Result 1: <p> <tt>Irq Tag, Mask (bit mapped - ) = 0x0010 = 0000 0000 0000 0001 0000</tt> so, it's IRQ 4. (start at 0, count up ..), so this is a SIR only device, at IRQ=4, IO=x03e8. <p> <p> Example 2 (from an unknown machine) <code> In current devNode: Size = 529 Handle = 14 ID = 0x10F0A34D = 'SMCF010' -- SMC IrCC Types: Base = 0x07, Sub = 0x00, Interface = 0x02 Comm. Device, RS-232, 16550-compatible Attribute = 0x80 CAN be disabled CAN be configured BOTH Static & Dynamic configuration Allocated Resource Descriptor Block TAG's: TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x02F8, Max=0x02F8 Align=0x00, Range=0x08 TAG=0x22, Length=2 IRQ Tag, Mask=0x0008 TAG=0x47, Length=7 I/O Tag, 16-bit Decode Min=0x02E8, Max=0x02E8 Align=0x00, Range=0x08 TAG=0x2A, Length=2 DMA Tag, Mask=0x02, Info=0x08 TAG=0x79, Length=1 END Tag, Data=0x00 </code> Result 2: <p> a) it's a SMC IrCC chip <p> b) one portion is at 0x02f8, has an io-extent of 8 bytes; irq = 3 <p> c) another portion is at 0x02e8, io-extent of 8 bytes; dma = 1 (0x02 =0000 0010) <p> <p> Thomas Davis has placed some device information at <htmlurl url="" name=""> . <p> WARNING: The package is not intended for the end user, and some of the utilities could be harmful. The only documentation in the package is in M$ Word format. Linux users may read this with <tt>catdoc</tt>, available at <htmlurl url="˜vitus/catdoc/" name="˜vitus/catdoc/"> . <item>Use the <it>Device Manager</it> of Windows9x/NT. <item>You may also use the <it>hardware surveys</it> mentioned below. <item>And as a last ressort, you may even <it>open the laptop</it> and look at the writings at the chipsets themselfs. </enum> <sect3>Hardware Survey <p> I have made a hardware survey at <htmlurl url="˜wehe/ir_misc.html" name="http:/˜wehe/ir_misc.html">. This list also contains information about infrared capable devices which are not mentioned here (mice, printers, remote control, transceivers, etc.). <p> To make this list more valuable, it is necessary to collect more information about the infrared devices in different hardware. You can help by sending me a short e-mail containing the exact name of the hardware you have and which type of infrared controller is used. <p> Please let me know also how well Linux/IrDA worked (at which tty, port and interrupt it works and the corresponding infrared device, e.g. printer, cellular phone). <p> Also you can help by contributing detailed technological information about some infrared devices, which is necessary for the development of drivers for Linux. <sect2>Related HOWTOs <p> <enum> <item> Linux/IR-HOWTO</item> </enum> <sect2>IrDA Configuration - Survey <p> <sect3>IrDA <p> The Linux infrared support is still experimental, but rapidly improving. I try to describe the installation in a short survey. Please read my Linux/IR-HOWTO <htmlurl url="˜wehe/index_li.html" name="˜wehe/index_li.html"> for detailed information. <sect4>Kernel <p> <enum> <item> Get a 2.2.x kernel.</item> <item> Compile it with all IrDA options enabled.</item> <item> Also enable experimental, sysctl, serial and network support.</item> </enum> <sect4>Software <p> <enum> <item> Get the Linux/IrDA software <tt>irda-utils</tt> at <htmlurl url="" name="The Linux IrDA Project"> .</item> <item> Untar the package.</item> <item> Do a <tt>make depend; make all; make install</tt></item> </enum> <sect4>Hardware <p> <enum> <item> Enable the IrDA support in the BIOS.</item> <item> Check for SIR or FIR support, as described above.</item> <item> Start the Linux/IrDA service with <tt>irmanager -d 1</tt> .</item> <item> Watch the kernel output with <tt>dmesg</tt> .</item> </enum> <sect3>Linux Remote Control - LiRC <p> Linux Remote Control <htmlurl url="˜columbus/lirc/" name="˜columbus/lirc/"> is maintained by Christoph Bartelmus. &dquot;Lirc is a package that supports receiving and sending IR signals of the most common IR remote controls. It contains a device driver for hardware connected to the serial port, a daemon that decodes and sends IR signals using this device driver, a mouse daemon that translates IR signals to mouse movements and a couple of user programs that allow to control your computer with a remote control.&dquot; I don't have valid information about how much infrared remote control is working with laptop infrared devices. <sect1>Graphic Chip <p> <sect2>Linux Compatibility Check <p> <sect3>Video Mode <p> The tool <tt>SuperProbe</tt> is part of XFree86 and is able to check many graphic chips. Please read the documentation carefully, because it might crash your hardware. From <tt>man SuperProbe</tt>: <p> &dquot;SuperProbe is a a program that will attempt to determine the type of video hardware installed in an EISA/ISA/VLB-bus system by checking for known registers in various combinations at various locations (MicroChannel and PCI machines may not be fully supported; many work with the use of the <tt>-no_bios</tt> option). This is an error-prone process, especially on Unix (which usually has a lot more esoteric hardware installed than MS-DOS system do), so SuperProbe may likely need help from the user. ... At this time, SuperProbe can identify MDA, Hercules, CGA, MCGA, EGA, VGA, and an entire horde of SVGA chipsets (see the -info option, below). It can also identify several HiColor/True-color RAMDACs in use on SVGA boards, and the amount of video memory installed (for many chipsets). It can identify 8514/A and some derivatives, but not XGA, or PGC (although the author intends to add those capabilities). Nor can it identify other esoteric video hardware (like Targa, TIGA, or Microfield boards).&dquot: For testing reasons start the X server with <tt>X 2> <error.msg></tt>. And try to change the resolution by typing <tt><CTL><ALT><+></tt> or <tt><CTL><ALT><-></tt>. Note: the + or - sign have to be taken from the numeric pad, which can be emulated at the letter pad by some laptops. <sect3>Text Mode <p> Just watch the display and determine if it works properly. If not, try to enable different video modes at startup time. Setting up X can sometimes be an exercise in trial and error. <sect2>Related HOWTOs <p> <enum> <item> XFree86-HOWTO</item> <item> XFree86-Video-Timings-HOWTO</item> <item> XFree86-XInside-HOWTO</item> <item> X-Big-Cursor-mini-HOWTO (useful when running X on a notebook with low contrast LCD)</item> <item> Keyboard-and-Console-HOWTO</item> <item> vesafb-mini-HOWTO</item> </enum> <sect2>Survey X-Servers <p> You might discover that some features of your laptop are not supported by XFree86, e.g. high resolutions, accelerated X or an external monitor. Therefor I give a survey of available X servers. <enum> <item> XFree86 <htmlurl url="" name=""></item> <item> Xinside aka AcceleratedX <htmlurl url="" name=""> , commercial </item> <item> SciTech <htmlurl url="" name=""> , commercial</item> <item> VESA Frame-Buffer-Device, available with 2.2.x kernels and XFree86 3.3.2 </item> </enum> <sect2>Resources <p> You may find a survey about X windows resources at Kenneth E. Harker's page <htmlurl url="" name="">. <sect2>External Monitor <p> There are several different methods to activate support for an external monitor: as a <it>BIOS option</it> or during runtime with a <it>keystroke</it> e.g. <tt><Fn>+<F4></tt>. Maybe you have to edit <file>/etc/XF86Config</file> by configuring <tt>int_disp</tt> and <tt>ext_disp</tt>. If you can't get this to work with XFree, try a demo version of the commercial X servers mentioned above. Also check with the RedHat and SuSE WWW sites as they may have new, binary-only, X servers that may work with your laptop. <sect2>Miscellaneous <p> Sometimes you may encounter a display not working properly in text mode. Currently I don't have any recommendations, please see Keyboard-Console-HOWTO. Take care of the <it>backlight</it> AFAIK this device can only bear a limited number of uptime circles. So avoid using screensavers too much. For problems with X windows and APM please see the APM chapter. <sect1>Sound <p> <sect2>Linux Compatibility Check <p> The only way I know to check this, is to compile the different sound drivers into the kernel and check whether they are detected or not. The best way to do so, is to compile them as modules because it's easier to load different parameters such as interrupts and IO ports than. For the new 2.2.x kernels, read the <file>/usr/src/linux/Documentation/sound/Introduction</file> document by Wade Hampton. This document may help you get started with sound. Also, you might try one of the commercial sound drivers mentionend below. <sect2>Related HOWTOs <p> <enum> <item> Sound-HOWTO <item> Visual-Bell-mini-HOWTO </enum> <sect2>Survey Sound Drivers <p> Many new laptops come with 16-bit sound. But MWave and some other sound technologies won't work or are very hard to get working, e.g. booting to DOS, loading a driver, then using the soundcard as a standard SB-PRO. So you might need a commercial sound driver. With the recent announcement of Linux support by IBM, it would be GREAT if IBM supported the MWave under Linux (hint, hint...). As a last ressort you may try the speaker module <tt>pcsnd</tt>, which tries to emulate a soundcard. <enum> <item> Kernel Sound Driver by Hannu Savolainen</item> <item> ALSA <htmlurl url="" name="Advanced Linux Sound Architecture"> , commercial or at least non-GPL (since I found a Debian/GNU Linux package I'm not sure anymore, about the commercial status)</item> <item> OSS <htmlurl url="" name="UNIX Sound System Lite / OSS">, commercial or at least non-GPL (since the 2.2.x kernels I'm not sure about the commercial status), also available from <htmlurl url="" name=""> .</item> </enum> <sect1>Keyboard <p> <sect2>Linux Compatibility Check <p> Usually there are no problems with Linux and the keyboard. Though there are two minor caveats: First the <tt>setleds</tt> program might not work. Second the key mapping might not fit your needs. Some Unix users and <tt>vi</tt> users expect to find the <CONTROL> key to the left of the <A> key. Many PC-type keyboards have the <CAPS-LOCK> key there. You may use <tt>xmodmap</tt> or <tt>loadkeys</tt> to re-map the keyboard. Some laptops (e.g., Toshiba) allow you to swap the <CAPS-LOCK> and <CONTROL> keys. Mark Alexander offered this solution in the linux-laptop mailing list: On RedHat, it's a one-line patch to <file>/usr/lib/kbd/keytables/</file> , or whatever file is referenced in <file>/etc/sysconfig/keyboard</file>: <code> ***˜ Tue Oct 31 14:00:07 1995 --- Thu Aug 28 13:36:03 1997 *************** *** 113,119 **** keycode 57 = space space control keycode 57 = nul alt keycode 57 = Meta_space ! keycode 58 = Caps_Lock keycode 59 = F1 F11 Console_13 control keycode 59 = F1 alt keycode 59 = Console_1 --- 113,119 ---- keycode 57 = space space control keycode 57 = nul alt keycode 57 = Meta_space ! keycode 58 = Control keycode 59 = F1 F11 Console_13 control keycode 59 = F1 alt keycode 59 = Console_1 </code> <sect2>Second Keyboard <p> A second keyboard can be attached using the PS/2 port (I don't know whether this is possible via the serial port). Also there is one laptop with a detachable keyboard the Siemens Scenic Mobile 800. This machine uses an infrared connection to the keyboard, but I don't know whether this works with Linux. WARNING: Don't plug the external keyboard in while the laptop is booted, or plug the mouse in the keyboard port and the keyboard in the mouse port. On a Toshiba, this caused one user to have to completely shutdown the laptop, remove the keyboard/mouse, and do a cold reboot. <sect1>Mice and their Relatives <p> <sect2>Linux Compatibility Check <p> You may check your mouse with the <tt>mev</tt> command from the GPM package. <sect2>Related HOWTOs <p> <enum> <item> 3-Button-Mouse-mini-HOWTO for serial mice</item> <item> Bus-Mouse-HOWTO</item> <item> Kernel-HOWTO</item> </enum> <sect2>Mice Species <p> <enum> <item> Trackpad, Touchpad, used with the majority of current laptops</item> <item> Trackball, e.g. COMPAQ LTE</item> <item> Pop-up-Mouse, e.g. HP OmniBook 800</item> <item> Trackpoint, Mouse-Pin, e.g. IBM ThinkPad and Toshiba</item> <item> 3 Button Mice, e.g. IBM Thinkpads at least the 600s. I have heard rumor about a 3 button mouse for Texas Instruments Travelmates, but couldn't verify this yet. </item> </enum> Most of the mice used in laptops are PS/2 mice (actually I don't know one with another mouse protocol). You may communicate with the PS/2 mouse through <file>/dev/psaux</file> or <file>/dev/psmouse</file>. If you use X windows this device and the protocol has to be set in <file>/etc/XF86Config</file>, too. In earlier releases, sometimes the GPM mouse manager and X windows had trouble sharing a mouse when enabled at the same time. But AFAIK this is no problem anymore for the latest versions. <sect2>Resources <p> <htmlurl url="˜cananian/Synaptics/" name="Synaptics"> Touchpad Linux Driver The Synaptics touchpad is a pointing device used in notebooks by Acer, Compaq, Dell, Gateway, Olivetti, Texas Instruments, Winbook, and others. <htmlurl url="˜pfeiffer/#pen" name="Linux"> Compaq Concerto Pen Driver The latest version of the Linux Compaq Concerto Pen Driver is available from its author's home page. <sect2>External Mouse <p> For better handling, e.g. with a 3 button mouse you may use an external mouse. This usually a serial mouse or a PS/2 mouse, according to the port your laptop offers. Usually this is no problem. WARNING: Don't plug in the external mouse while powered up. If you have separate mouse and keyboard ports, make sure you plug the mouse in the mouse port and the keyboard in the keyboard port. If you don't, you may have to do a hard reboot of the laptop to get it to recover. <sect1>Advanced Power Managment (APM) <p> <sect2>Linux Compatibility Check <p> From the Battery-Powered-mini-HOWTO &dquot; .. for APM to work on any notebook or energy-conscious desktop, the system BIOS ROM in the machine must support the APM standard. Furthermore, for APM to work with the Linux operating system, the system BIOS ROM must support either the 1.0 or 1.1 version of the APM standard, and it must also support 32-bit protected mode connections. A system that supports APM 1.1 is preferred, as it provides more features that the device driver and supporting utilities can take advantage of.&dquot; You may get information about the APM version with the <tt>dmesg</tt> command and in the <file>/proc/apm</file> file. <sect2>Introduction <p> APM support consists of two parts: <it>kernel</it> support and <it>user-land</it> support. For <it>kernel</it> support, enable the parameters in the corresponding kernel section. AFAIK not all features work with laptops. AFAIK the feature <tt>CONFIG_APM_POWER_OFF</tt> works with most laptops. The utilities for <it>userland</it> support may be found at <htmlurl url="˜apenwarr/apmd/" name="˜apenwarr/apmd/">. APMD is a set of programs that control the Advanced Power Management system found in most modern laptop computers. If you run a 2.2.x kernel and want to experiment, Gabor Kuti <> has made a kernel patch that allows you to <it>hibernate</it> any Linux system to disk, even if your computers APM BIOS doesn't support it directly. IMHO you don't need this features if your laptop provides a function key to invoke suspend mode directly. When you first install Linux, you will probably have to recompile the kernel. The kernel that came with your distribution probably does not have APM enabled. Please see the Battery Powered Linux Mini-HOWTO by Hanno Mueller <> <htmlurl url="˜hanno/" name="˜hanno/"> and the page of Kenneth E. Harker <htmlurl url="" name=""> for detailed information. Richard Gooch wrote: I'have had a look at the beta version of <tt>apmd</tt>, and I still don't like it, because: <itemize> <item> Only supports one command to run at suspend time. <item> Doesn't distinguish between user and system suspends. <item>doesn't provide a way to disable policy (the <tt>sync()</tt>; <tt>sleep(0) </tt>; <tt>sync()</tt>; <tt>sleep(1)</tt>; sequence) <item> Does not document extra features. <item> And I'm not sure that what we want is a single super daemon. A collection of smaller daemons might be better, since it allows people to pick and choose. A super daemon is bloat for those who only want one small feature. </itemize> Though this topic was discussed controversly Richard Gooch has put together a package <tt>suspendd</tt> at <htmlurl url="˜rgooch/linux/" name="˜rgooch/linux/"> . Also, have a look at <tt>apmcd</tt> (<tt>apm</tt> based crontab) at <htmlurl url="" name=""> . A tool made by Nicolas J. Leon <> <htmlurl url="" name="">. Note: I didn't check wether this features are merged into one package (<tt>apmd</tt> eventually) already. <sect2>Caveats <p> If you have another operating system preinstalled or use another operating system at the same disk, make sure there is no &dquot;hibernation&dquot; or &dquot;suspend&dquot; tool installed, which could severely interfere with Linux, e.g. it might use disk space which is occupied by Linux or vice versa. <sect2>Troubleshooting <p> If your machine worked with 2.0.x kernels but not with the 2.2.x series, take this advice from Klaus Franken : &dquot;The default changed in 2.2. Search in the init-scripts for <tt>halt</tt> and change it to <tt>halt -p</tt> or <tt>poweroff</tt>. See <tt>man halt</tt> , if you don't have this option you need a newer version of <tt>halt</tt>.&dquot; You may find it in the <tt>SysVinit</tt> package. <p> PCMCIA Card Services and Advanced Power Management (from the PCMCIA-HOWTO): "Card Services can be compiled with support for APM (Advanced Power Management) if you've configured your kernel with APM support. ... The PCMCIA modules will automatically be configured for APM if a compatible version is detected on your system. Whether or not APM is configured, you can use <tt>cardctl suspend</tt> before suspending your laptop, and <tt>cardctl resume</tt> after resuming, to cleanly shut down and restart your PCMCIA cards. This will not work with a modem that is in use, because the serial driver isn't able to save and restore the modem operating parameters. APM seems to be unstable on some systems. If you experience trouble with APM and PCMCIA on your system, try to narrow down the problem to one package or the other before reporting a bug. Some drivers, notably the PCMCIA SCSI drivers, cannot recover from a suspend/resume cycle. When using a PCMCIA SCSI card, always use <tt>cardctl eject</tt> prior to suspending the system." <p> Sometimes X windows and APM don't work smoothly together, the machine might even hang. A recommendation from Steve Rader: Some linux systems have their X server hang when doing <tt>apm -s</tt>. Folks with this affliction might want switch to the console virtual terminal then suspend <tt>chvt 1; apm -s</tt> as root, or, more appropiately.<tt>sudo chvt 1; sudo apm -s</tt>. I have these commands in a script, say, <tt>my-suspend</tt> and then do <tt>xapmload --click-command my-suspend</tt> . <p> On some new machines (for instance HP Omnibook 4150 - 366 MHz model) when accessing <file>/proc/apm</file>, you may get a kernel fault: <tt>general protection fault: f000</tt>. Stephen Rothwell <> <htmlurl url="˜sfr/" name="˜sfr/"> explaines: &dquot;This is your APM BIOS attempting to use a real mode segment while in protected mode, i.e. it is a bug in your BIOS. .. We have seen a few of these recently, except all the others are in the power off code in the BIOS wher we can work around it by returning to real mode before attempting to power off. Here we cannot do this.&dquot; <p> <tt> apmd-rhcn-2.4phil-1</tt> by RedHat <htmlurl url="" name=""> contains an unofficial patch for shutting down the PCMCIA sockets before a suspend and patches for multiple batteries. <sect1>Batteries <p> For information about available battery types, take a look at the Hardware Features chapter above. Please see Battery Powered Linux Mini-HOWTO by Hanno Mueller <> <htmlurl url="˜hanno/" name="˜hanno/"> for detailed information. Stephen Rothwell <htmlurl url="˜sfr/" name="˜sfr/"> is currently integrating a patch that will add multiple battery support to the kernel APM. From the <tt>mobile-update</tt> page (modified by WH): Discharge the battery. If your battery runs only for about 20 minutes, you probably suffer from memory effects. Most laptops do not discharge the battery properly. With low powered devices like old computer fans they can be discharged completely. This removes memory effects. You should do so even with LiIon batteries, though they don't suffer much from memory effext (the manual of an IBM Thinkpad says to cycle the batteries through a full charge/discharge cycle 3 times every few months or so). WARNING: Try this at your own risk! Make sure the voltage of the fans is compatible to your battery. It works for me. In the US, this company has most batteries for anything and can rebuild many that are no longer manufactured: Batteries Plus, 2045 Pleasant Hill Road, Duluth, GA 30096 +1 770 495 1644. <sect1>USB <p> Newer laptops come with the UniversalSerialBus. I haven't tried it on any of my systems because I don't have any USB devices. Visit <htmlurl url="˜inaky/uusbd-www/" name="˜inaky/uusbd-www/"> for the USB Linux home page. <sect1>Memory <p> Unfortenately most laptops come with a proprietary memory chips. So they are not interchangeable between different models. <sect1>Plug-and-Play Devices (PnP) <p> The <it>Plug and Play driver project</it> for Linux is a project to create support within the Linux kernel (see Linux.Org for more information) for handling Plug and Play (and other semi-PnP) devices in a clean, consistent way. It aims to allow a driver of any type of hardware to have this hardware configured by the PnP driver in the kernel. This driver is then notified when the device is reconfigured, or even removed from the system, so as to allow for graceful action in these circumstances <htmlurl url="˜cdb/mirrors/lpsg/pnp-linux.html" name="˜cdb/mirrors/lpsg/pnp-linux.html"> . <p> <it>ISA PnP tools</it> is another useful package. <p> And there is a project at RedHat <htmlurl url="" name=""> . <sect1>Docking Station / Port Replicator <p> <sect2>Definitions <p> First some definitions. There is a difference between <it>docking station</it> and <it>port replicator</it>. I use the term <it>docking station</it> for a box which contains slots to put some interface cards in, and space to put a harddisk, etc. in. This box can be permanently connected to a PC. A <it>port replicator</it> is just a copy of the laptop ports which may be connected permanently to a PC. <sect2>Other Solutions <p> I don't use a docking station. They seem really expensive and I can't see any usefulness. OK you have to mess up with some more cables, but is it worth so much money? Docking stations are useful in an office environment when you have a permanent network connection, or need the docking station's SCSI adaptor (e.g., for a CD-R). Also all docking stations I know are proprietary models, so if you change your laptop you have to change this device, too. I would prefer to buy a PC instead and connect it via <it>network</it> to the laptop. Or use an external display, which usually works well as described above, and an external keyboard and mouse. If your laptop supports an extra PS/2 port you may use a cheap solution a <it>Y cable</it>, which connects the PS/2 port to an external keyboard and an external monitor. Note: Your laptop probably has support for the <it>Y cable</it> feature, e.g. the COMPAQ Armada 1592DT. <sect2>Connection Methods <p> AFAIK there are <it>three solutions</it> to connect a laptop to a docking station: <enum> <item> SCSI port</item> <item> parallel port</item> <item> (proprietary) docking port</item> </enum> From <htmlurl url="" name="Martin J. Evans "> &dquot;The main problem with docking stations is getting the operating system to detect you are docked. Fortunately, if you configure your kernel with the /proc file system (does anyone not do this?) you can examine the devices available and thus detect a docked state. With this in mind a few simple scripts is all you need to get your machine configured correctly in a docked state. You may want to build support for the docking station hardware as modules instead of putting it directly into the kernel. This will save space in your kernel but your choice probably largely depends on how often you are docked. <p> 1) Supporting <it>additional disks</it> on the docking station SCSI card <p> To my mind the best way of doing this is to: <enum> <item> Either build support for the SCSI card into the kernel or build it as a module.</item> <item> Put the mount points into <file>/etc/fstab</file> but use the &dquot;noauto&dquot; flag to prevent them from being mounted automatically with the <tt>mount -a</tt> flag. In this way, when you are docked you can explicitly mount the partitions off any disk connected to the docking station SCSI card.</item> </enum> <p> 2) Supporting <it>additional network adaptors</it> in the docking station <p> You can use a similar method to that outlined above for the graphics card. Check the <file>/proc</file> filesystem in your rc scripts to see if you are docked and then set up your network connections appropriately. &dquot; Once you determine this information, you may use a script, similar to the following example, to configure the connection to your docking station at startup. The script is provided by Friedhelm Kueck: <p> <code> # check, if Laptop is in docking-station (4 PCMCIA slots available) # or if it is standalone (2 slots available) # Start after cardmgr has started # # Friedhelm Kueck # 08-Sep-1998 # # Find No. of Sockets SOCKETS=`tail -1 /var/run/stab | cut -d &dquot:&dquot; -f 1` case &dquot;$SOCKETS&dquot; in &dquot;Socket 3&dquot;) echo Laptop is in Dockingstation ... echo Disabeling internal LCD Display for X11 echo cp /etc/XF86Config_extern /etc/XF86Config # # Setup of PCMCIA Network Interface after start of cardmge # echo echo &dquot;Setting up eth0 for use at Network ...&dquot; echo /sbin/ifconfig eth0 netmask broadcast /sbin/route add -net gw /sbin/route add default gw ;; &dquot;Socket 1&dquot;) echo Laptop is standalone echo Disabling external Monitor for X11 cp /etc/XF86Config_intern /etc/XF86Config echo echo Network device NOT setup ;; esac </code> <sect1>Network Connections <p> <sect2>Related HOWTOs <p> <enum> <item> PLIP-mini-HOWTO</item> <item> NET-3-HOWTO</item> <item> Ethernet-HOWTO</item> <item> Term-Firewall-mini-HOWTO</item> </enum> <sect2>Connection Methods <p> <sect3>PCMCIA Network Card <p> If your laptop supports PCMCIA this is the easiest and fastest way to get network support. Make sure your card is supported before buying one. <sect3>Serial Null Modem Cable <p> Probably the cheapest way to connect your laptop to another computer, but quite slow. You may use PPP or SLIP to start the connection. <sect3>Parallel Port NIC (Pocket Adaptor) <p> <htmlurl url="˜nils/accton_linux.html" name="Accton Pocket Ethernet and Linux"> This ethernet adaptor uses a parallel port and delivers approximately 110k Bytes/s throughput for those notebooks that do not have PCMCIA slots. <htmlurl url="" name="Linux and Linksys Ethernet Adaptors"> A short note on the use of the Linksys parallel-port ethernet adaptor under Linux. This is a widely available networking adaptor that doesn't require a PCMCIA slot. <sect3>Parallel &dquot;Null&dquot; Modem Cable <p> Offers more speed than a serial connection. Some laptops use chipsets that will not work with PLIP. Please see PLIP-HOWTO for details. <sect3>Docking Station NIC <p> I don't have experience with a NIC in a docking station yet. <sect1>Modem <p> There are three kinds of modems available: internal, PCMCIA card or external serial port modems. But some internal modems will NOT work with Linux such as the MWave modems (IBM) or if the laptop has a WinModem. This is caused by non-standard hardware. So you have to use either a PCMCIA card modem or an external modem. Quotation from the Kernel-FAQ: &dquot;9.Why aren't WinModems supported? (REG, quoting Edward S. Marshall) The problem is the lack of specifications for this hardware. Most companies producing so-called <it>WinModems</it> refuse to provide specifications which would allow non-Microsoft operating systems to use them. The basic issue is that they don't work like a traditional modem; they don't have a DSP, and make the CPU do all the work. Hence, you can't talk to them like a traditional modem, and you -need- to run the modem driver as a realtime task, or you'll have serious data loss issues under any kind of load. They're simply a poor design.&dquot; WARNING: Pay attention to the different kinds of phone lines: analog and ISDN. You can't connect an analog modem to an ISDN port and vice versa. Though there might be hybrid modems available. Connecting to the wrong port may even destroy your modem. Trick: If you are looking for an analog phone port in an office building which is usually wired with ISDN, take a look at the fax lines, they are often analog lines. For tracking the packets on PPP you may use <tt>pppstats</tt>. Or <tt>pload</tt> this provides a graphical view of the traffic (in and out) of the PPP connection. It is based on athena widgets hence is very portable. It also uses very little CPU time. The home of <tt>pload</tt> is <htmlurl url="˜mdsmith/pload/" name="˜mdsmith/pload/"> . <sect1>SCSI <p> <sect2>Hardware Compatibility Check <p> If unsure about the right SCSI support, compile a kernel with all available SCSI drivers as modules. Load each module step by step until you get the right one. <sect2>Related HOWTOs <p> <enum> <item> SCSI-HOWTO</item> </enum> <sect2>Survey <p> AFAIK there is no laptop yet with a SCSI harddisk. Though there are two models with a built in SCSI port: Texas Instruments TI 4000 and HP OmniBook 800. For other models, if you need SCSI support you may get it by using a SCSI-PCMCIA card or via a SCSI adapter in a docking station. <sect1>Floppy Drive <p> <sect2>Linux Compatibility Check <p> Usually there are no problems connecting a floppy drive to a Linux laptop. But with a laptop floppy drive you may sometimes not be able to use every feature. I encountered the <tt>superformat</tt> command (from the fdutils package) couldn't format more than 1.44MB with my HP OmniBook 800. You may also have difficulty when the the floppy drive and CD drive are mutually exclusive, or when the floppy drive is a PCMCIA device (as with the Toshiba Libretto 100). With older laptops, there might be a minor problem if they use a 720K drive. AFAIK all distributions come with support for 1.44M (and sometimes 1.2M) floppies only. Though it's possible to install Linux anyway. Please see Installation chapter. Please see kernel documentation for boot time parameters concerning certain laptop floppy drives, for instance IBM ThinkPad. Or <tt>man bootparam</tt> . <sect1>CD Drive <p> Most notebooks today come with CD drives. If floppy and CD drive are swappable they are usually mutually exclusive. Sometimes they come as PCMCIA devices. Or as SCSI device (HP OmniBook 800). AFAIK there are discmans available which have a port to connect them to a computer or even a SCSI port. I found an article published by Ziff-Davis Publishing Company (September 1996 issue, but missed to note the URL) written by Mitt Jones: &dquot;Portable PC Card CD-ROM drives transform laptops into mobile multimedia machines&dquot;, which listed: Altec Lansing AMC2000 Portable Multimedia CD-ROM Center; Axonix ProMedia 6XR; CMS PlatinumPortable; EXP CDS420 Multimedia Kit; H45 QuickPCMCIA CD; Liberty 115CD; Panasonic KXL-D740; Sony PRD-250WN CD-ROM Discman. <sect1>Harddisk <p> <sect2>Linux Compatibility Check <p> Useful programms are <tt>hdparm</tt>, <tt>dmesg</tt>, <tt>fsck</tt> and <tt>fdisk</tt> . <sect2>Miscellaneaous <p> Be careful when using your laptop abroad. I have heard about some destroyed harddisks due to a magnetic field emitted from the magnetic-holds at the backresttable of the seats in a german railway waggon. <p> Though I am quite satisfied with the quality of the harddisk in my laptop, when I removed it from the case I unintendedly dropped it, I recommend to be very careful. <sect1>ZV Port <p> Some laptops come with a ZV port. Since I don't have a laptop with a ZV video port yet, I can provide only some URLs: <htmlurl url="˜rjkm/linux/bttv.html" name="˜rjkm/linux/bttv.html "> (driver) <htmlurl url="˜wenk/xwintv.html" name="˜wenk/xwintv.html "> (tvviewer). Alternatively to the ZV port you might use the USB port. <sect1>Accessories <p> <sect2>PCMCIA Cards <p> <sect3>Card Families <p> <enum> <item> Ethernet adapter</item> <item> Token Ring adapter</item> <item> Ethernet + Modem / GSM</item> <item> Fax-Modem / GSM adapter</item> <item> SCSI adapter</item> <item> I/O cards: RS232, LPT, RS422, RS485, GamePort, IrDA, Radio, Video</item> <item> SmartCard reader, see Project Muscle - &dquot;Movement for the Use of Smart Cards in a Linux Environment&dquot; <htmlurl url="" name=""> </item> <item> Memory cards</item> <item> harddisks</item> <item> 2.5&dquot; harddisk adapters</item> </enum> For desktops there are PCMCIA slots for ISA and PCI bus available. Source: <htmlurl url="" name=""> <sect3>Linux Compatibility Check <p> With the command <tt>cardctl ident</tt> you may get information about your card. Put this information into <file>/etc/pcmcia/config</file> if necessary. But this may not be enough to get the card to work, but works sometimes for no-name network cards or modem cards. If you get a card to work please don't forget to announce this to the developer of the PCMCIA-CS package David Hinds <htmlurl url="" name=""> . <sect2>Printers <p> Survey about small mobile printers: <enum> <item> CANON: BJC-80</item> <item> CANON: BJ-30</item> <item> HP: DeskJet 340Cbi. This is a small, portable, low-duty-cycle printer. It prints either black, or color (3 color). I have had some problems with it loading paper. Overall, the small size and portability make it a nice unit for use with laptops. I use the HP 500/500C driver with Linux. </item> <item> Olivetti: JP-90</item> </enum> AFAIK only the HP and the BJC-80 machine have an infrared port. Pay attention to the supplied voltage of the power supply if you plan to travel abroad. Source: <htmlurl url="" name=""> <sect2>Power and Phone Plugs, Power Supply <p> When travelling abroad you might consider to take a set of different power and phone plugs with you. Also, it's useful if you can change the input voltage of the power supply, for instance from 110V in the US to 220V in germany. There might be even power supplies for 12V batteries from cars. <sect2>Bags and Suitcases <p> You probably wonder, why I include this topic here. But shortly after using my COMPAQ Armada 1592DT I recognized that the rear side of the machine (where the ports are arranged) was slightly damaged. Though I have taken much care when transporting the laptop, this was caused by putting the bag on the floor. It seems that the laptop has so much weight, that it bounces inside the bag on its own rear side. So I decided to put a soft pad into the bag before loading the laptop. A good bag is highly recommended if you take your laptop on trips, or take it home every night. <sect>Different Environments - On the Road <p> <sect1>Related HOWTOs <p> <enum> <item> Security-HOWTO</item> <item> Multiboot-with-LILO-mini-HOWTO</item> <item> Ethernet-HOWTO</item> <item> NET-3-HOWTO</item> <item> Offline-Mailing-mini-HOWTO</item> <item> Plip-mini-HOWTO</item> <item> Slip-PPP-Emulator-mini-HOWTO</item> </enum> <sect1>Configuration Tools <p> <sect2>NetEnv <p> Do you use your laptop in different network environments? At home? In the office? At a customers site? If yes, the small package &dquot;netenv&dquot; might be useful for you. When booting your laptop it provides you with a simple interface from which you can choose the current network environment. The first time in a new environment, you can enter the basic data and save it for later reuse. Netenv sets up a file containing variable assignments which describe the current environment. This can be used by the PCMCIA setup scheme, e.g. like the one that comes with Debian/GNU Linux and perhaps others. The netenv data can be used for things like: <enum> <item> Network Device: Configure the network device for different environments.</item> <item> Choose a proper <file>XF86Config</file>: Think of using your laptop standalone with touchpad vs. connected to a CRT monitor along with an external mouse. For example, a wheel mouse could be used when docked, but the driver is not compatible with the normal trackpoint or touchpad.</item> <item> Windowmanager: You can set up your windowmanager according to the current location of your machine.</item> <item> Printing Environment: The netenv data can easily be used to set up the printing environment.</item> </enum> Netenv is available as Debian/GNU Linux package as well as tarball. It depends on <tt>dialog(1)</tt> for the menu system. It is developed by Gerd Bavendiek <htmlurl url="" name=""> you may get it at <htmlurl url="˜portgym/net/netenv.html" name="˜portgym/net/netenv.html"> . <sect2>Mobile IP <p> Mobile IP allows a portable computer access to the Internet from different networks without changing its IP address. <sect3>Resources <p> <enum> <item> <htmlurl url="˜mobileip/" name="Linux Mobile-IP"> <item> <htmlurl url="" name="Linux Mobile IP from HP Labs Bristol by Manuel Rodríguez"> <item> <htmlurl url="http://mosquitonet.Stanford.EDU/software/mip.html" name="MosquitoNet Mobile IP"> <item> <htmlurl url="" name="Mobile IP at NUS"> <item> <htmlurl url="˜mobileip/" name="Linux Mobile-IP"> <item> <htmlurl url="˜randy/Daedalus/BARWAN/BARWAN_index.html" name="Bay Area Research Wireless Access Network (BARWAN)"> </enum> Sources: Kenneth E. Harker and Dag Brattli <sect2>DHCP/BootP <p> DHCP and BootP are also useful for working in different environments. Please see the DHCP-HOWTO and BootP-HOWTO. <sect2>PPPD Options <p> The <tt>pppd</tt> command can be configured via several different files: <tt>pppd file /etc/ppp/<your_options></tt> . <sect2><tt>/etc/init.d</tt> <p> You may even choose to do your configuration by editing the <file>/etc/init.d</file> files manually. <sect2>PCMCIA - Schemes <p> How can I have separate PCMCIA device setups for home and work? This is fairly easy using PCMCIA <it>scheme</it> support. Use two configuration schemes, called <tt>home</tt> and <tt>work</tt>. For details please read the according chapter in the PCMCIA-HOWTO by David Hinds. <sect2>Bootloaders <p> <sect3>LILO <p> From <htmlurl url="" name=""> <Martin J. Evans> I have taken this recommendation: The first point to note is that <tt>init</tt> will take any arguments of the form <tt>name=value</tt> as environment variable assignments if they are not recognized as something else. This means you can set environment variables from the LILO boot prompt before your rc scripts run. I set the <tt>LOCATION</tt> environment variable depending on where I am when I boot Linux. e.g. <code>LILO: linux LOCATION=home</code> Or <code>LILO: linux LOCATION=work</code> Or simply <code>LILO: linux</code> where failing to set <tt>LOCATION</tt> means the same as <tt>LOCATION=home</tt> (i.e. my default). Instead of typing <tt>LOCATION=place</tt> each time you boot you can add an entry to your <file>/etc/lilo.conf</file> file and use the append instruction. e.g. <code> # Linux bootable partition for booting Linux at home # image = /vmlinuz root = /dev/hda3 label = linux read-only # Linux bootable partition config ends # # Linux bootable partition for booting Linux at work # image = /vmlinuz root = /dev/hda3 label = work read-only append=&dquot;LOCATION=work&dquot; # Linux bootable partition config ends </code> With the example above you can use &dquot;linux&dquot; for booting at home and &dquot;work&dquot; for booting at work. Armed with the facility above, you can now edit the relevant rc scripts to test ENVIRONMENT before running <tt>ifconfig</tt>, setting up <tt>route</tt> etc. <sect3>Other Bootloaders <p> There are several other bootloaders which are often overlooked. Besides LILO, have a look at loadlin, CHooseOS (CHOS) (not GPL), GRand Unified Bootloader (GRUB), System Commander and take a look at <htmlurl url="" name="">. The NT boot loader or OS/2 boot loader may even be used. <sect2>X-Windows <p> From Steve <> I got a configuration for X windows with an external monitor: Note that I have introduced a neat trick! For my nice 17&dquot; monitor I start X with no options and get the default 16-bit 1152x864 display - but when using the LCD screen I specify a 15-bit display (<tt>startx -- -bpp 15</tt>) and get the correct 800x600 resolution automatically. This saves having to have two XConfig files. <sect2>More Info <p> <htmlurl url="" name="Using a Laptop in Different Environments"> by <htmlurl url="" name="Gerd Bavendiek"> . This article appeared in the August, 1997 issue of the <htmlurl url="" name="Linux Gazette">. This is an excellent, short technical article describing an easy way to setup your Linux notebook to boot into different network and printing configurations, especially useful for those who use their machines at home as well as other locations such as in the office, at school, or at a customer site. <sect1>Data Transport Between Different Machines <p> I don't have experience with this topic yet. So just a survey about some means of data transport and maintaining data consistency between different machines. <sect2>Hardware <p> <enum> <item> external harddisks</item> <item> ZIP drive</item> </enum> Wade Hampton wrote: &dquot;You may use MS-DOS formatted ZIP and floppy discs for data transfer. You may be able to also use LS120. If you have SCSI, you could use JAZ, MO or possibly DVD-RAM (any SCSI disc that you could write to). I have the internal ZIP for my Toshiba 700CT. It works great (I use <tt>automount</tt> to mount it). I use VFAT on the ZIP disks so I can move them to Windows boxes, Linux boxes, NT, give them to coworkers, etc. One problem, I must SHUTDOWN to swap the internal CD with the ZIP.&dquot; <sect2>Software <p> <sect3>Source Code Control System (SCCS) <p> Currently I had no time to check a SCCS system, such as RVS or CVS for this purpose. <sect3>CODA Filesystem <p> The Coda File System is a descendant of the Andrew File System. Like AFS, Coda offers location-transparent access to a shared Unix file name-space that is mapped on to a collection of dedicated file servers. But Coda represents a substantial improvement over AFS because it offers considerably higher availability in the face of server and network failures. The improvement in availability is achieved using the complementary techniques of server replication and disconnected operation. Disconnected operation proven especially valuable in supporting portable computers <htmlurl url="" name=""> . <sect3>WWWsync <p> This is a program written in Perl that will update your web pages by ftp from your local pages. This was originally written for updating Demon home-pages, but will work with other providers which provide direct FTP access to your web pages. I didn't check this for laptop purposes yet. You may get the program at <htmlurl url="" name=""> . <sect1>Security in Different Environments <p> <sect2>Introduction <p> I am not a computer security expert. Please read the Security-HOWTO for more information. I just collected some information below. Note, these means are just small steps to additional security, though I recommend that you use them. <sect2>Means of Security <p> <enum> <item> Kennsington Lock: AFAIK proprietary lock solution with different laptops <htmlurl url="" name=" "> </item> <item> SmartCards: by DESKO <htmlurl url="" name=" "> are not available for Linux yet. The only available laptop with a SmartCard builtin is the Siemens Scenic Mobile 800.</item> <item> User passwords: can be easily bypassed if the intruder gets physical access to your machine</item> <item> BIOS passwords: are also easily crackable, though sometimes harder than with desktops</item> <item> Name plates: to reduce the possibility of theft, you may want to have a nameplate made and affixed to the cover of the laptop. A nice one will cost you about $12, and can be made by any good trophy shop. They'll glue it on for you too. You could use double-sided tape instead, but glue is more permanent. You may even make an engravement into the laptop cover.</item> <item> Boot loader: a boot loader may be used to put your name and phone number (or whatever text you choose) into the boot sequence before the operating system is loaded. This provides a label that can't be removed by editing files or even doing a simple format of the harddisk.</item> <item> Antivirus policy: I have seen an <tt>antivir</tt> RPM somewhere. Check the BIOS for an option to disable writing at the boot sector.</item> <item> Database of stolen laptops: Just in case, there is at least one database of stolen laptops in the WWW, which is free of charge, but I have lost the URL.</item> <item> Laptop as a security risk itself: Since a laptop can easily be used to intrude a network, it seems a good policy to ask the system administrator for permission before connecting a laptop to a network. <item> Secure Protocol: When connecting to a remote server always use a secure protocol.</item> </enum> <sect1>Dealing with Down Times (Cron Jobs) <p> A cron-like program that doesn't go by time: <tt>anacron</tt> (like &dquot;anac(h)ronistic&dquot;) is a periodic command scheduler. It executes commands at intervals specified in days. Unlike <tt>cron</tt>, it does not assume that the system is running continuously. It can therefore be used to control the execution of daily, weekly and monthly jobs (or anything with a period of n days), on systems that don't run 24 hours a day. When installed and configured properly, <tt>anacron</tt> will make sure that the commands are run at the specified intervals as closely as machine-uptime permits. <p> <tt>hc-cron</tt> This program is a modified version of Paul Vixie's <> widely used <tt>cron</tt> daemon. Like the original program it runs specified jobs at periodic intervals. However, the original <tt>crond</tt> relies on the computer running continuously, otherwise jobs will be missed. This problem is addressed by <tt>hc-cron</tt>, that is indended for use on <it>home-computers</it> that are typically turned off several times a day; <tt>hc-cron</tt> will remember the time when it was shut down and catch up jobs that have occurred during down time when it is started again. Felix Braun <> is the author of the programm, it is available at <htmlurl url=" /pub/Linux/system/daemons/cron" name=" /pub/Linux/system/daemons/cron"> . <sect>Other Resources <p> Kenneth E. Harker maintains a quite valuable database at <htmlurl url=" " name=""> . Please have a look at his site to get current information about laptop related mailing lists, newsgroups, magazines and newsletters, WWW sites and a big database about many different laptop pages. To join the <it>Linux-Laptop-Mailing-List</it> write a mail to <> with <tt>subscribe linux-laptop</tt> in the subject. You will get a confirmation message than, which you have to reply accordingly. There is now a <it>debian-laptop mailing list</it>. Any questions or discussions concerning running the Debian/GNU Linux operating system(s) on laptops are welcome. Send mail to <> with a subject of <tt>subscribe</tt>. Or visit the<htmlurl url="" name=""> site and use the online form. <sect>Repairing the Hardware <p> There are several different reasons that could make it necessary to open the case of a laptop. <enum> <item> repairing broken hardware</item> <item> get some hardware info, which isn't available otherwise</item> <item> remove the speakers (speakerrektomie, as described in Visual-Bell-mini-HOWTO)</item> <item> install overdrive for CPU</item> <item> change BIOS battery</item> <item> upgrade harddisk</item> <item> upgrade memory</item> </enum> Repairing a laptop can be quite expensive if you don't have a manufacturer's warranty. Sometimes professional support is bad. But opening a laptop case can be difficult. Often the procedures to upgrade the memory and the harddisk are described in the manual. For further details, you should try to get the maintainance/technical manual. Just be extremely careful and make notes as to where each screw goes. You must get most of them back in the right hole or you could ruin the machine by damaging the system board. Also after you get all the screws to an assembly out (some will be hidden) the parts are usually held together with plastic clips molded in, so you still must exercise care to separate them. Sometimes you need certain tools, for instance TORX screw drivers or a solder kit. Good luck. I found two books about PC hardware which contained a dedicated chapter about laptops: <itemize> <item> Scott Mueller: Upgrading and Repairing PCs. QUE Corporation. <item> Marc Misani: The Complete Hardware Upgrade and Maintainance Guide. </itemize> Both books don't know about Linux and both are quite short about laptops. The book by Marc Minasi provides a little more information about laptops. WARNING: Usually laptop manufacturers declare the warranty to be void if the case was opened by people other than their own staff. <sect>Solutions with Laptops <p> <sect1>Introduction <p> The power and capabilities of laptops are sometimes limited as described above. But in turn, they have a feature which desktops don't have, their mobility. I try to give a survey about applications which make sense in connection with laptops. Since I couldn't try all of them, there is currently little documentation. If you can provide further material, please contact me. <sect1>Mobile Network Analyzer <p> I'm not an expert in this field, so I just mention the tools I know. Please check also for other applications. Besides the usual tools <tt>tcpdump</tt>, <tt>netcat</tt>, there are two applications I know, which may be used to analyze network traffic: The <it>Multi Router Traffic Grapher (MRTG)</it> is a tool to monitor the traffic load on network-links. MRTG generates HTML pages containing GIF images which provide a LIVE visual representation of this traffic. Check <htmlurl url="" name=""> for an example. MRTG is based on Perl and C and works under UNIX and Windows NT. The <it>CMU-SNMP package</it>, is designed to configure and analyze the SNMP protocol <htmlurl url="" name=""> . <sect1>Mobile Router <p> Though designed to work from a single floppy, the <it>Linux Router Project (LRP) </it>, seems useful in combination with a laptop, too. <sect1>Hacking and Cracking Networks <p> When thinking about the powers of laptops, hacking and cracking networks comes easy into mind. Though I don't want to handle this topic here, but instead recommend the Security-HOWTO. <sect1>Lectures <p> If you are giving lectures, readings or presentations in different places, a laptop might suit your needs. You can combine it with an overhead display, a beamer or a second monitor. For a second monitor or a beamer make sure it is supported by your laptop. BTW though Microsoft's PowerPoint is often used for such things, there are also Linux solutions. See the software maps at KDE (K-Office) <htmlurl url="" name=""> and GNOME <htmlurl url="" name=""> . Or the commercial packages Applixware <htmlurl url="" name=""> and Staroffice <htmlurl url=" "name="">. <it>MagicPoint</it> or <tt>mgp</tt>, is an X11-based presentation tool. The home page is <htmlurl url="" name=" "> or <htmlurl url="" name=""> or <htmlurl url="" name=""> . <sect1>Mobile Data Collecting <p> <sect2>Related HOWTOs <p> <enum> <item> Coffee-mini-HOWTO <item> AX-25-HOWTO <item> HAM-HOWTO <item> Serial-HOWTO <item> Serial-Programming-HOWTO </enum> <sect2>Applications <p> A Linux laptop can be used to collect data outside an office, e.g. geodesy data, sales data, network checks, patient data in a hospital and others. There is support for wireless data connections via cellular phone modems and amateur radio. I am not sure whether PCMCIA radio cards are supported, see Aironet Wireless Communications <htmlurl url="" name="">. There are also laptops available with cases build for a rugged environment (even waterproof laptops). <sect1>Mobile Office <p> With KDE <htmlurl url="" name=""> (K-Office), GNOME, <htmlurl url="" name=""> and the commercial products WordPerfect, Staroffice and Applixware <htmlurl url="" name=""> Linux has more and more business software applications. With the corresponding hardware, e.g. a portable printer and a cellular phone which connects to your laptop, you will have a very nice mobile office. <sect1>Connection to Digital Camera <p> AFAIK there are currently three methods to connect a digital camera to a laptop: the infrared port (IrDA), serial port and maybe USB. There are also some auxiliary programs for conversion of pictures, etc. <sect1>Connection to QuickCam (Video) <p> AFAIK there are currently two methods to connect a video camera to a laptop: a ZV port and maybe USB, but I don't know how this works with Linux. I have heard rumors about using a sound card for video data transfer to a Linux box, see <htmlurl url="˜apenwarr/" name="˜apenwarr/"> . I have heard rumors about a Linux-QuickCam-mini-HOWTO, but couldn't find a reliable URL yet. Check the <tt>sane</tt> package which is build for scanner support, this should contain support for still-grabbers as well. <sect1>Connection to Television Set <p> If you have a ZV port in the laptop, it should be easy to connect it to a TV set, using either NSCA or PAL, but I don't know whether either works with Linux. <sect1>Connection to Cellular Phone <p> AFAIK there are two methods to connect a cellular phone to a laptop: via the infrared port (IrDA) or via the serial port. See the Linux/IrDA project for the current status of IrDA connections. AFAIK only the Ericsson SH888, the Nokia 8110 provide infrared support. <sect1>Connection to Global Positioning System (GPS) <p> From the Hardware-HOWTO I know there is Trimble Mobile GPS available. You may also connect a GPS via a serial port. Most GPS receivers have a data port and can connect to a PC with a special serial cable. <sect1>Connection via Amateur Radio (HAM) <p> AFAIK laptops are used in HAM contests. Please see HAM-HOWTO. <sect1>Satellite Watching <p> Together with an antenna and software like <tt>seesat</tt> or <tt>sattrack</tt> you can use a laptop to locate a satellite for visual observation. You could also use <tt>xephem</tt> on a laptop when stargazing. <sect>Other Operating Systems <p> <sect1>DOS/Windows9x/NT <p> <sect2>Introduction <p> Unfortunately, there are a few reasons which might make it necessary to put DOS/Windows and Linux together on one laptop. Often the support for the flash ROM of PCMCIA cards and modems is not available for Linux, or you have to retrieve hardware information, which is not visible with Linux, due to a lack of support by some hardware manufacturers. I'm not sure wether this tasks can be achieved under an emulation like DOS-EMU or WINE. If you want Linux with X, Netscape, etc., and Windows95, things will be tight in a 1GB harddisk. Though I do so with a 810MB disk. <sect2>DOS Tools to Repartition a Hard Disk <p> Often you get a preinstalled version of Windows on your laptop. If you just want to shrink the Windows partition, you need a tool to resize the partition. Or you can remove the partition first, repartition, then reinstall. Most of the following information I found at the page of Michael Egan <> at <htmlurl url="" name=""> . A well known and reliable, but commercial product is <it>Partition Magic</it> <htmlurl url="" name=""> from Power Quest. Many people have used <it>FIPS 15c</it> (which may support FAT-32) <htmlurl url="" name=""> for repartitioning FAT partition sizes.) Also, another version from a different source is FIPS 2.0 (claims to support FAT-32) <htmlurl url="˜aschaefe/fips/" name="˜aschaefe/fips/"> for repartitioning FAT partition sizes.) One more &dquot;newer&dquot; utility for repartitioning and resizing FAT partitions is <it>Ranish Partition Manager/Utility</it> (FAT-32 support is claimed for this as well, Linux support is taken into account.) <htmlurl url="˜ranish/part/" name="˜ranish/part/"> . Something was recently published on the <> mailing list about a partition recovery program. I have not used this, nor examined it, nor read much about it (except for the HTML page.) It may be useful to some of you if you have problems with FIPS, Ranish Partition Manager/Utility or Partition Magic destroying your partition information. You can find information on this partition-fixer named &dquot;fixdisktable&dquot; at <htmlurl url="" name=" ">. It is quite a ways down in that page. Or look for it via ftp in <htmlurl url="" name=""> and locate the latest &dquot;fixdisktable&dquot; in that ftp directory. (Source and binary dist should be available.) <sect2>Caveats <p> Before repartitioning your harddisk take care about the disk layout. Especially look for hidden disk space or certain partitions used for <it>suspend to disk</it> or <it>hibernation</it> mode. Some laptops come with a partition which contains some BIOS programs (e.g. COMPAQ Armada 1592DT). Search the manual carefully for tools like <tt>PHDISK.EXE</tt>, Suspend to Disk, Diagnostic TOOLS. <sect2>Multi Boot <p> Please see the Different Environments chapter, for information about booting different operating systems from the same harddisk. <sect2>Partition Sharing <p> You may share your swap space between Linux and Windows. Please see &dquot;Dealing with Limited Resources&dquot; section. Also with Linux you can mount any kind of Windows partition. The other way round there should be also some tools, but I don't have an URL yet. Also you can mount DOS drives of the type <tt>msdos</tt>, <tt>vfat</tt> and even compressed drives (Drivespace, etc.). For long file names use <tt>vfat</tt> and if you like autoconversion ( a nice feature for text files), you may do so by using the <tt>conv=auto</tt> option. I have used this in my <file>/etc/fstab</file>, but be aware this might cause some strange behaviour sometimes, look at the kernel docs for further details. <code> /dev/hda8 /dos/d vfat user,exec,nosuid,nodev,conv=auto 0 2 </code> <sect1>BSD Unix <p> <enum> <item> PicoBSD is a one floppy version of FreeBSD 3.0-current, which in its different variations allows you to have secure dialup access, small diskless router or even a dial-in server. And all this on only one standard 1.44MB floppy. It runs on a minimum 386SX CPU with 8MB of RAM (no HDD required!). You probably may also use it to install BSD on a laptop as described with micro Linuxes above. You get PicoBSD at <htmlurl url="˜picobsd/" name="˜picobsd/"> <item> <htmlurl url="" name="PAO: FreeBSD Mobile Computing Package"> FreeBSD is a version of the UNIX operating system that runs on PC hardware. It uses a different set of support for PCMCIA devices, APM, and other mobility related issues. <item> <htmlurl url="" name="The CMU Monarch Project"> Implementations of Mobile-IPv4 and Mobile-IPv6 for FreeBSD <item> <htmlurl url="˜sanpei/note-list.html" name="XF86Config Archive">. A database of XF86Config files used by Linux and FreeBSD users. If you need an XF86Config file for your notebook or laptop, check out this site. (Some documents available in Japanese only.) <item> AFAIK there is no IrDA support yet. </enum> <sect>ToDo <p> <enum> <item> mention the corresponding kernel options in the Linux Compatibility Check sections</item> <item> write more Hardware sections</item> </enum> <sect>Revision History <p> v0.1 13 January 1999, first draft <p> v0.2 15 January 1999, minor changes <p> v0.3 28 January 1999, APM chapter started, minor changes <p> v0.4 8 February, APM chapter rewritten, removed some lint <p> v0.5 17 February 1999, added small USB chapter, added Dealing with Limited Resources chapter, added Solutions with Laptops chapter, minor editorial changes, released draft to the public <p> v1.0 19 February 1999, added Sound and Keyboard chapter, minor changes, release to the LDP <p> v1.1 28 February 1999, spelling, grammar, style checked and many additional information added by W. Wade Hampton, added CD Drive, Harddisk and Kernel chapters, many minor changes <p> v1.2 5 March 1999, added Debian-Laptop-Mailing-List, added information about <tt>apmcd</tt> and <tt>suspendd</tt> to APM chapter, changed some URLs, minor changes <p> v1.3 8 March 1999, minor changes <p> <sect>Credits <p> I would like to thank the many people who assisted with corrections and suggestions. Their contributions have made this work far better than I could ever have done alone. Especially I would like to thank: <itemize> <item> First of all Kenneth E. Harker <htmlurl url="" name="">, from his page at <htmlurl url="" name=""> I have included much material into this HOWTO, but didn't always quote him verbatim.</item> <item> The other HOWTO authors.</item> <item> The members of the Linux/IrDA Project.</item> <item> The members of the Linux Laptop Mailing List.</item> <item> The visitors and contributors of my Linux Laptop Pages.</item> <item> David Hinds maintainer of the PCMCIA-CS package.</item> <item> Frank Schneider SPATZ1@T-ONLINE.DE</item> <item> Stefan Martig</item> <item> Michele Andreoli maintainer of muLinux</item> <item> Klaus Franken</item> <item> W. Wade, Hampton, did much of spell, grammar and style checking and added many valuable information</item> <item> Anderson MacKay, gave many different detailed recommendations</item> <item>Shaleh</item> <item>Bob Toxen</item> <item>Peter Sprenger</item> <item>Felix Braun <item>Steve Rader <item>Richard Worwood <item> Sorry, but probably I have forgotten to mention everybody who helped.</item> </itemize> <sect>Appendix A - Survey about Micro Linuxes <p> Because of their small or non-existent footprint, micro-Linuxes are especially suited to run on laptops -- particularly if you use a company-provided laptop running Windows9x/NT. Or for installation purposes using another non Linux machine. There are several <it>micro</it> Linux distributions out there that boot from one or two floppies and run off a ramdisk. See <htmlurl url="" name=" "> or <htmlurl url="" name=" "> for details. You may find a FAQ and a mailing list about boot-floppies at <htmlurl url="˜sr1/boot-floppies/faq.html" name="˜sr1/boot-floppies/faq.html ">. Also a BootDisk-HOWTO is available. Thanks to Matthew D. Franz maintainer of <it>Trinux</it> for this tips and collecting most of the following URLs. <enum> <item> MuLinux <htmlurl url="˜andreoli/mulinux.html" name="˜andreoli/mulinux.html"> by Michele Andreoli</item> <item> tomsrtbt <htmlurl url="˜toehser/rb/" name="˜toehser/rb/"> &dquot;The most Linux on one floppy. (distribution or panic disk).&dquot; by Tom Oehser</item> <item> Trinux <htmlurl url="" name=" "> &dquot;A Linux Security Toolkit&dquot; by Matthew D. Franz</item> <item> LRP &dquot;Linux Router Project&dquot; <htmlurl url="" name=""></item> <item> hal91 <htmlurl url="˜okolaas/hal91.html" name="˜okolaas/hal91.html "></item> <item> floppyfw <htmlurl url="" name=""> by Thomas Lundquist</item> <item> minilinux <htmlurl url=" are/mini-linux/" name=" are/mini-linux/"> (seems no more valid) or <htmlurl url="" name=""> </item> <item> monkey <htmlurl url="" name=" "> </item> <item> DLX <htmlurl url="" name=""> by Erich Boem</item> <item> C-RAMDISK <htmlurl url="" name=""> </item> <item> BABEL <htmlurl url="" name=""> &dquot;A mini-distribution to run games&dquot;</item> <item> Xdenu <htmlurl url="" name=""> </item> <item> LOAF <htmlurl url="" name=""> </item> <item> pocket-linux <htmlurl url="" name=""></item> <item> FLUF <htmlurl url="˜kolo/fluf.htm" name="˜kolo/fluf.htm "></item> <item> YARD <htmlurl url="˜fawcett/yard/" name="˜fawcett/yard/"> </item> <item> TLinux <htmlurl url="" name=""> </item> <item> ODL <htmlurl url="" name=""></item> <item> SmallLinux by Steven Gibson <htmlurl url ="" name=""> Three disk micro-distribution of Linux and utilities. Based on kernel 1.2.11. Root disk is ext2 format and has <tt>fdisk</tt> and <tt>mkfs.ext2</tt> so that a harddisk install can be done. Useful to boot up on old machines with less than 4MB of RAM.</item> <item> cLIeNUX by Rick Hohensee client-use-oriented Linux distribution <htmlurl url=" /pub/colorg" name=" /pub/colorg"> </item> <item> linux-lite by Paul Gortmaker for very small systems with less than 2MB RAM and 10MB harddisk space (1.x.x kernel) <htmlurl url="" name=" "></item> <item> See also the packages at MetaLab formerly known as SunSite <htmlurl url="!INDEX.html" name="!INDEX.html "> and the Boot-Disk-HOWTO</item> <item> You may also consider some of the boot floppies provided by various distributions falling into this category, e.g. the boot/rescue floppy of Debian/GNU Linux. </item> <item> If you like to build your own flavour of a boot floppy you may do so manually, as described in the BootDisk-HOWTO or using some helper tools, for instance <tt>mkrboot</tt> (provided at least as a Debian/GNU Linux package) or <tt>pcinitrd</tt>, which is part of the PCMCIA-CS package by David Hinds. <item> Also you might try to build your Linux system on a ZIP drive. This is described in the ZIP-Install-mini-HOWTO. </enum> <sect>Appendix B - Dealing with Limited Resources or Tuning the System <p> <sect1>Related HOWTOs <p> <enum> <item> LBX-HOWTO <item> Small-Memory-HOWTO </enum> <sect1>Introduction <p> As mentioned in the introduction laptops sometimes have less resources if you compare them to desktops. To deal with limited space, memory, CPU speed and battery power, I have written this chapter. <sect1>Small Space <p> <sect2>Introduction <p> There are different types of techniques to gain more disk space, such as sharing of space, freeing unused or redundant space, filesystem tuning and compression. Note: some of these techniques use memory instead of space. As you will see, there are many small steps necessary to free some space. <sect2>Techniques <p> <enum> <item> Stripping: Though many distributions come with stripped binaries today it is useful to check this. For details see <tt>man strip</tt>. To find every unstripped file you can use the <tt>file</tt> command or more convenient the tool <tt>findstrip</tt>. Attention: don't strip libraries, sometimes the wrong symbols are removed due to a bad programming technique.</item> <item> Perforation: <tt>zum(1)</tt>reads a file list on stdin and attempts to perforate these files. Perforation means, that series of null bytes are replaced by <tt>lseek</tt>, thus giving the file system a chance of not allocating real disk space for those bytes. Example: <tt>find . -type f | xargs zum</tt> </item> <item> Remove Odd Files and Duplicates: Check your system for core files, emacs recovery files <#FILE#> vi recovery files <FILE>.swp, RPM recovery files <FILE>.rpmorig and <tt>patch</tt> recovery files. Find duplicates, you may try <tt>finddup</tt>. Choose a system to name your backup, temporary and test files, e.g. with a signature at the end. <item>Clean Temporary Files: , e.g. <file>/tmp</file>, there is even a tool <tt>tmpwatch</tt>. <item>Shorten the Log Files: usually the files in <file>/var/log</file>. </item> <item> Remove Files: Remove files which are not &dquot;necessary&dquot; under all circumstances such as man pages, documentation <file>/usr/doc</file> and sources e.g. <file>/usr/src</file> .</item> <item> Filesystem: Choose a filesystem which treats disk space economically e.g. <tt>rsfs</tt>. Tune your filesystem e.g. <tt>tune2fs</tt>. Choose an appropriate partition and block size. </item> <item> Reduce Kernel Size: Either by using only the necessary kernel features and/or making a compressed kernel image <tt>bzImage</tt>. </item> <item> Compression: I didn't check this but AFAIK you may compress your filesystem with <tt>gzip</tt> and decompress it on the fly. Alternatively you may choose to compress only certain files. You can even execute compressed files with <tt>zexec</tt></item> <item> Compressed Filesystems: <p> - For e2fs filesystems there is a compression version available <tt>e2compr</tt>. <p> - DMSDOS which enables your machine to access Windows95 compressed drives (drivespace, doublestacker). If you don't need DOS/Windows95 compatibility, i.e. if you want to compress Linux-only data, this is really discouraged by the author of the program. </item> <item> Partition Sharing: You may share swap-space (see Swap-Space-HOWTO) or data partitions between different OS (see <tt>mount</tt>). For mounting MS-DOS Windows95 compressed drives (doublespace, drivespace) you may use <tt>dmsdos</tt> <htmlurl url="" name="">.</item> <item> Libraries: Take another (older) library, for instance <tt>libc5</tt> , this library seems to be smaller than <tt>libc6</tt> aka <tt>glibc2</tt> . <item> Kernel: If your needs are fitted with an older kernel version, you can save some space. <item> GUI: Avoid as much Graphical User Interface (GUI) as possible. <item>Tiny Distributions: There are some distributions available which fit from one 3.5&dquot; floppy to 10MB disk space and fit for small memories, too. See appendix A and below. <item>External Storage Devices (Hard Disks, ZIP Drives, NFS, SAMBA): Since many notebooks may be limited in their expandability, using the parallel port is an attractive option. There are external harddisks and ZIP Drives available. Usually they are also connectable via PCMCIA. Another way is using the resources of another machine through NFS or SAMBA etc. </enum> <sect1>Harddisk Speed <p> Use the tool <tt>hdparm</tt> to set up better harddisk performance. Though I have seen laptop disk enabled with <it>striping</it>, I can't see a reason to do so, because IMHO aka RAID0 striping needs at least to different disks to increase performance. <sect1>Small Memory <p> <sect2>Related HOWTOs <p> <enum> <item> Small-Memory-mini-HOWTO by Todd Burgess < > <htmlurl url="˜tburgess" name="˜tburgess"> <item> Modules-mini-HOWTO <item> Kerneld-mini-HOWTO </enum> <sect2>Techniques <p> Check the memory usage with <tt>free</tt> and <tt>top</tt>. <htmlurl url="" name="Mergemem Project ">. Many programs contain <it>memory areas of the same content</it> that remain undetected by the operating system. Typically, these areas contain data that have been generated on startup and remain unchanged for longer periods. With <tt>mergemem</tt> such areas are detected and shared. The sharing is performed on the operating system level and is invisible to the user level programs. <tt>mergemem</tt> is particularily useful if you run many instances of interpreters and emulators (like Java or Prolog) that keep their code in private data areas. But also other programs can take advantage albeit to a lesser degree. You may also reduce the <it>kernel size</it> as much as possible by removing any feature which is not necessary for your needs and by modularizing the kernel as much as possible. Also you may shutdown every service or <it>daemon</it> which is not needed, e.g. <tt>lpd</tt>, <tt>mountd</tt>, <tt>nfsd</tt> and close some <it>virtual consoles</it>. Please see Small-Memory-mini-HOWTO for details. And of coarse use <it>swap space</it>, when possible. If possible you use the resources of another machine, for instance with X, VNC or even <tt>telnet</tt>. For more information on Virtual Network Computing (VNC), see <htmlurl url="" name="http://"> . <sect1>Low CPU Speed <p> You may want to overdrive the CPU speed but this can damage your hardware and I don't have experience with it. For some examples look at Adorable Toshiba Libretto - Overclocking <htmlurl url="˜adorable/libretto.html" name="˜adorable/libretto.html">. <sect1>Power Saving Techniques <p> <enum> <item> If you don't need infrared support, disable it in the BIOS or shutdown the IrDA device driver. There are also some IrDA features of the kernel which are useful for saving power. <item> PCMCIA services consume much power, so shut them down if you don't need them. <item> I'm not sure to which extend the <it>backlight</it> consumes power. WARNING: AFAIK this device can only bear a limited number of uptime circles. So avoid using screensavers AFAIK this device can only bear a limited number of uptime circles. So avoid using screensavers too much. <item> For some examples to build batteries with increased uptime up to 8 hours look at Adorable Toshiba Libretto <htmlurl url="˜adorable/libretto.html" name="˜adorable/libretto.html">. <item> For information about APM look at the APM chapter above. <item> <htmlurl url="˜bbense/toys/" name="A hacked rclock ">. Booker C. Bense has hacked the <it>rclock</it> program to include a simple battery power meter on the clock face. <item> <htmlurl url="˜daisuke/Linux/xbatstat.html" name="xbatstat">. A battery level status checker for Linux and X. <item> <htmlurl url="" name="hdparm"> <it>hdparm</it> is a Linux IDE disk utility that lets you set spin-down timeouts and other disk parameters. It works also for some SCSI features. <item> <htmlurl url="" name="Mobile Update Daemon "> This is a drop-in replacement for the standard <tt>update</tt> daemon, <tt>mobile-update</tt> minimizes disk spin ups and reduces disk uptime. It flushes buffers only when other disk activity is present. To ensure a consistent file system call <tt>sync</tt> manually. Otherwise files may be lost on power failure. <tt>mobile-update</tt> does not use APM. So it works also on older systems. <item> <htmlurl url="" name="Toshiba Linux Utilities "> This is a set of Linux utilities for controlling the fan, supervisor passwords, and hot key functions of Toshiba Pentium notebooks. There is a KDE package <it>Klibreta</it>, too. <item> At Kenneth E. Harker's page there is a recommendation for LCDproc <htmlurl url="" name="LCDProc"> . &dquot;LCDproc is a small piece of software that will enable your Linux box to display live system information on a 20x4 line backlit LCD display. This program shows, among other things, battery status on notebooks.&dquot; I tried this package and found that it connects only to the external Matrix-Orbital 20x4 LCD display <htmlurl url="" name="">, which is a LCD display connected to a serial port. I can't see any use for a laptop yet. <item> <htmlurl url="˜eschenk/diald.html" name="Diald: Dial Daemon "> . The Diald daemon provides on demand Internet connectivity using the SLIP or PPP protocols. Diald can automatically dial in to a remote host when needed or bring down dial-up connections that are inactive. <item> KDE <htmlurl url="" name=""> provides <it>KAPM</it>, <it>Kbatmon</it> and <it>Kcmlaptop</it>. Written by Paul Campbell <it>kcmlaptop</it> is a set of KDE control panels that implements laptop computer support functions, it includes a dockable battery status monitor for laptops - in short a little icon in the KDE status bar that shows how much battery time you have left. It also will warn you when power is getting low and allows you to configure power saving options. Similar packages you may find at the GNOME project <htmlurl url="" name=""> . See the software maps at both sites. <item> Please see Battery Powered Linux Mini-HOWTO by Hanno Mueller, <htmlurl url="˜hanno/" name="˜hanno/"> for more information. </enum> <sect1>Kernel <p> <sect2>Related HOWTOs <p> <itemize> <item> Kernel-HOWTO <item> BootPrompt-HOWTO </itemize> <p> Many kernel features are related to laptops. For instance APM, IrDA, PCMCIA and some options for certain laptops, e.g. IBM ThinkPads. In some distributions they not configured. And the kernel is usually bigger than necessary. So it's seems a good idea to customize the kernel. Though this task might seem difficult for the beginner it is highly recommended. Since this involves dangerous operations you need to be careful. But, if you can install a better kernel successfully, you've earned your intermediate Linux sysadmin merit badge. - Since this topic is already covered in other documents I want handle this here. <sect1>Tiny Applications and Distributions <p> A small collection yet, but I'm looking for more information. <enum> <item> BOA - HTTP server. <item> Pygmy - HTTP server. <item> MGR - a graphical windows system, which uses much less resources than X. <item> LBX - Low Bandwidth X. <item> blackbox - X11 window manager 204K. <item> linux-lite - distribution based on a 1.x.x kernel for systems with only 2MB memory and 10MB harddisk. URL see above. <item> smallLinux - <htmlurl url ="" name=""> . Three disk micro-distribution of Linux and utilities. Based on kernel 1.2.11. Root disk is ext2 format and has <tt>fdisk</tt> and <tt>mkfs.ext2</tt> so that a harddisk install can be done. Useful to boot up on old machines with less than 4MB of RAM. <item> cLIeNUX - client-use-oriented Linux distribution. <item> minix - not a Linux but a UNIX useful for very small systems, such as 286 CPU and 640K RAM <htmlurl url="˜ast/minix.html" name="˜ast/minix.html"> . There is even X support named mini-x by David I. Bell <htmlurl url="" name=""> . <item> <tt>screen</tt> - tiny but powerful console manager. <item> <tt>ash</tt> - tiny shell. <item> tinyirc - a small IRC client. </enum> </article>