Linux on Mobile Computers
Just imagine the ability to pick up your Linux workstation and take it with you wherever you want to go. You can do it today. Linux can run smoothly on notebook hardware, taking full advantage of all the goodies that define mobile computing. Just as with desktop systems, however, there can also be challenges to overcome. Fortunately, extensive support for notebooks running Linux is becoming available as interest in seeing Linux on notebook computers continues to grow.
This article is not intended to be an in-depth aid to installation or configuration of Linux notebook systems. Such an article would be nearly impossible to write for desktop systems, and notebooks are no different. Rather, this article introduces both the present Linux desktop user and the Linux newcomer to the support that Linux offers for notebook hardware. Several on-line resources exist for more specific information beyond what is presented in this article, and they are mentioned below. The Linux Laptop Home Page collects pointers to all the information presented in this article and more, and is available at both http://www.cs.utexas.edu/users/kharker/linux-laptop/ (Figure 1) and http://www.redhat.com/linux-info/laptop/ (Figure 2).
Notebook computers can be quite different from desktop systems. One of the most important differences, when it comes to running Linux, is the process of integrating different hardware components. Desktop systems can be built by picking and choosing components that are known to work well with Linux. You can accessorize or replace unsupported hardware with the best cards and adaptors for your needs. Notebooks and laptops, however, are all-or-nothing packages. Aside from PCMCIA cards, there's very little you can do to customize your hardware configuration. There's also little you can do when it comes to controller chipsets or proprietary technologies—an unfortunate fact of life. Don't let this intimidate you, though; the vast majority of hardware on the market works quite well with Linux, and most of the rest works reasonably well with Linux.
Most notebooks have a similar feature set. At the time of this writing, only notebooks with Intel x86 family and compatible CPUs are capable of running Linux. The port to the PowerPC architecture may eventually support Linux. [Both the Linux/SPARC and Linux/Alpha ports have been run on laptops—ED]
Most notebooks feature keyboards with 85 keys, give or take a few, that are usually slightly smaller than those on desktop keyboards. Almost all notebooks come with PCMCIA drives capable of accepting two Type II or one Type III card. Most come with built-in 3.5" floppy drives and/or 5.25" CD-ROM drives. Displays vary widely in size, color depth, video memory, speed, and resolution. Many machines now come with integrated sound cards. Power management features are universal, but vary in implementation and effectiveness. Integrated pointer devices tend to have two buttons and come in three styles: trackballs, nub-shaped joysticks, and touchpads. Almost all notebooks feature a serial and parallel port, and offer some expandability or docking feature. Linux support exists for all these notebook features.
Installation of Linux on notebook computers should not be very much different from installing Linux on a desktop system. Most distributions let you choose from floppy, CD-ROM, hard disk, NFS, and even FTP installation sources. For the most part, choosing a suitable installation method for laptops is subject to the same criteria as for desktop systems.
There are a few exceptions, however. Some notebooks use external floppy disk drives, and there is really no standard interface for them. Most will allow you to boot and begin the installation process, but some do not support DMA transfer. Without DMA transfer capability, you may be able to boot and install from floppy, but the drive will not be useful for mounting other floppies.
Some distributions have boot disks that let you use a PCMCIA Ethernet card for NFS installation, assuming your card and PCMCIA controller are among those more commonly used. As with desktop systems, some early CD-ROM drives in notebooks used proprietary interfaces that are not supported by the Linux community. However, by carefully choosing industry-standard hardware, installing Linux on a notebook is no more or less of a task than it is on desktop systems.
PCMCIA is an acronym that stands for Personal Computer Memory Card International Association. Since this is somewhat awkward to pronounce, PCMCIA cards are also frequently referred to as PC Cards. Physically, PC Cards are about the same width and height as credit cards and only a few millimeters thick. They provide one of the most versatile ways of customizing your notebook computer, and they are not limited to memory cards.
Readily-available PCMCIA cards implement RAM, small hard disks, SCSI adaptors, fax modems, Ethernet, sound, additional I/O ports, and more. Nearly all the cards on the market today are “Type II” cards. A few larger cards, such as those that implement hard disks, are “Type III” cards, and are about twice as thick. Most PC notebooks come with a PCMCIA drive that can handle two Type II cards or a single Type III card. To use a PCMCIA card, your machine needs a PCMCIA drive and some form of “card and socket services” software. The real trick to using PCMCIA cards in Linux lies in the software.
Most notebooks that come with MS-DOS and MS-Windows installed also include the vendor's card-and-socket-services software. This layer of software facilitates communication between the operating system and the drive itself—recognizing when cards are inserted or removed and determining which device driver is associated with which card. In the Linux universe, this software is called Card Services for Linux, and is actively maintained by David Hinds. It is included in most of the popular distributions, including Slackware, Red Hat, Caldera, Yggdrasil, and many others. It is also available at ftp://hyper.stanford.edu/pub/pcmcia/ as well as the Sunsite and tsx-11 Linux archives. The latest version at the time of this writing is 2.8.x. The PCMCIA HOWTO is available on the World Wide Web at hyper.stanford.edu/pub/pcmcia/doc/PCMCIA-HOWTO.html and can also be found on the Linux Documentation Project home page.
Card Services for Linux supports all but a very few custom PCMCIA drives, which are documented in the HOWTO. The support for individual cards is a little less complete. PCMCIA cards are no different from any desktop expansion card in the sense that the card needs a device driver to interface the hardware to the operating system. And like desktop expansion cards, not all PCMCIA cards have device drivers written for Linux.
Fortunately, essentially all PCMCIA fax modems and PCMCIA serial port adaptors operate on the same interface and are therefore supported. At the time of this writing, over three dozen brands of PCMCIA Ethernet cards are supported, as are numerous FLASH/SRAM cards and SCSI cards. You can find a list of supported cards at David Hinds' Linux PCMCIA Information Page at hyper.stanford.edu/~dhinds/pcmcia/pcmcia.html. David Hinds also maintains a mailing list for announcements about updates to the Card Services package and device drivers. Information on subscribing to this service is also available on this page.
The Card Services package also comes with all the current device drivers and several utilities. The most important of these is Cardinfo, a small X11 application that reports on the present state of your card sockets: what is in them, if they are active, what IRQ and I/O ports they occupy and which device (i.e. /dev/cua0) they are using. This is a very useful utility for finding and resolving IRQ or I/O port conflicts.
The latest versions of most Linux distributions include Card Services, but if your distribution doesn't include it, you can install it yourself. To do so, you will need to use kernel 1.2.8/1.3.30 or higher, compiled with support for loadable kernel modules. You must also have the entire Linux source tree to compile the package. Installing Card Services on an existing Linux system is explained in detail in the PCMCIA HOWTO and in the readmes that come in the package. This includes detailed information to help you identify and work around any IRQ or I/O port conflicts. When running, the core PCMCIA module takes up about 48K of RAM.
Card Services for Linux supports hot-swapping cards, and loads and unloads the proper card-specific device driver modules as you insert and remove PCMCIA cards. The Card Services module can also work with the Linux Advanced Power Management driver to help conserve battery life when your PCMCIA drive is inactive.
For those who are interested in hacking, David Hinds also provides some hints and suggestions for writing and debugging PCMCIA card device drivers in his HOWTO and in the PCMCIA Programmer's Guide.
Practical Task Scheduling Deployment
One of the best things about the UNIX environment (aside from being stable and efficient) is the vast array of software tools available to help you do your job. Traditionally, a UNIX tool does only one thing, but does that one thing very well. For example, grep is very easy to use and can search vast amounts of data quickly. The find tool can find a particular file or files based on all kinds of criteria. It's pretty easy to string these tools together to build even more powerful tools, such as a tool that finds all of the .log files in the /home directory and searches each one for a particular entry. This erector-set mentality allows UNIX system administrators to seem to always have the right tool for the job.
Cron traditionally has been considered another such a tool for job scheduling, but is it enough? This webinar considers that very question. The first part builds on a previous Geek Guide, Beyond Cron, and briefly describes how to know when it might be time to consider upgrading your job scheduling infrastructure. The second part presents an actual planning and implementation framework.
Join Linux Journal's Mike Diehl and Pat Cameron of Help Systems.
Free to Linux Journal readers.View Now!
|The Firebird Project's Firebird Relational Database||Jul 29, 2016|
|Stunnel Security for Oracle||Jul 28, 2016|
|SUSE LLC's SUSE Manager||Jul 21, 2016|
|My +1 Sword of Productivity||Jul 20, 2016|
|Non-Linux FOSS: Caffeine!||Jul 19, 2016|
|Murat Yener and Onur Dundar's Expert Android Studio (Wrox)||Jul 18, 2016|
- The Firebird Project's Firebird Relational Database
- Stunnel Security for Oracle
- My +1 Sword of Productivity
- SUSE LLC's SUSE Manager
- Non-Linux FOSS: Caffeine!
- Managing Linux Using Puppet
- Murat Yener and Onur Dundar's Expert Android Studio (Wrox)
- Parsing an RSS News Feed with a Bash Script
- Google's SwiftShader Released
- Doing for User Space What We Did for Kernel Space
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide