Linux Frequently Asked Questions with Answers (Part 5 of 6)

Linux Frequently Asked Questions with Answers (Part 5 of 6)

Post by kiesl.. » Mon, 29 Mar 1999 04:00:00

7.4 What version of Linux and what machine name am I using?

uname -a

7.5 How can I enable or disable core dumps?

By using the ulimit command in bash, the limit command in tcsh, or the
rlimit command in ksh. See the appropriate manual page for details.

This setting affects all programs run from the shell (directly or
indirectly), not the whole system.

If you wish to enable or disable core dumping for all processes by
default, you can change the default setting in linux/sched.h--see the
definition of INIT_TASK, and look also in linux/resource.h.

7.6 How do I upgrade/recompile my kernel?

See the Kernel HOWTO or the README files which come with the kernel
release on, in /pub/Software/Linux/Kernel/ and
mirrors. (See "Where can I get Linux material by FTP?") You
may already have a version of the kernel source code installed on your
system, but if it is part of a standard distribution it is likely to
be somewhat out of date (this is not a problem if you only want a
custom configured kernel, but it probably is if you need to upgrade.)

With newer kernels you can (and should) make all of the following
targets. Don't forget that you can specify multiple targets with one
make clean dep install modules modules_install

Also remember to update the module dependencies.
depmod -a

This command can be run automatically at boot time. On Debian/GNU
Linux systems, the command is part of the /etc/init.d/modutils script,
and can be linked appropriately in the /etc/rc(x).d/ directories. For
more information on depmod, see the manual page.

Make sure you are using the most recent version of the modutils
utilities, as well as all other supporting packages. Refer to the file
Documentation/Changes in the kernel source tree for specifics, and be
sure to consult the README file in the modutils package.

Remember that to make the new kernel boot you must run the "lilo"
command after copying the kernel into your root partition--the
Makefile in some kernels have a special zlilo target for this; try:
make zlilo

On current systems, however, you can simply copy the zImage or bzImage
file (in arch/i386/boot/ to the /boot/ directory on the root file
system, or to a floppy using the dd command. Refer also to the
question, How do I get LILO to boot the kernel image?

Kernel version numbers with an odd minor version (ie, 1.1.x, 1.3.x)
are the testing releases; stable production kernels have even minor
versions (1.0.x, 1.2.x). If you want to try the testing kernels you
should probably subscribe to the linux-kernel mailing list. (See "
What mailing lists are there?.")

Also refer to the questions, I upgraded the kernel and now my
PCMCIA card doesn't work., and How do I get LILO to boot the
kernel image?

7.7 Can I have more than 3 serial ports by sharing interrupts?

Yes, but you won't be able to use simultaneously two ordinary ports
which share an interrupt (without some trickery). This is a limitation
of the ISA Bus architecture.

See the Serial HOWTO for information about possible solutions and
workarounds for this problem.

7.8 How do I make a bootable floppy?

Make a file system on it with bin, etc, lib and dev
directories--everything you need. Install a kernel on it and arrange
to have LILO boot it from the floppy (see the LILO documentation, in

If you build the kernel (or tell LILO to tell the kernel) to have a
RAM disk the same size as the floppy the RAM disk will be loaded at
boot time and mounted as root in place of the floppy.

See the Bootdisk HOWTO.

7.9 How do I remap my keyboard to UK, French, etc.?

For recent kernels, get /pub/Linux/system/Keyboards/kbd-0.90.tar.gz
from Make sure you get the appropriate version; you
have to use the right keyboard mapping package for your kernel

For older kernels you have to edit the top-level kernel Makefile, in

You may find more helpful information in The Linux Keyboard and
Console HOWTO, by Andries Brouwer, at

7.10 How do I get NUM LOCK to default to on?

Use the setleds program, for example (in /etc/rc.local or one of the
/etc/rc.d/* files):
for t in 1 2 3 4 5 6 7 8
 setleds +num < /dev/tty$t > /dev/null

Setleds is part of the kbd package ("How do I remap my keyboard
to UK, French, etc.?").

Alternatively, patch your kernel. You need to arrange for KBD_DEFLEDS
to be defined to (1 << VC_NUMLOCK) when compiling

7.11 How do I set (or reset) my initial terminal colors?

The following shell script should work for VGA consoles:
for n in 1 2 4 5 6 7 8; do
     setterm -fore yellow -bold on -back blue -store > /dev/tty$n

Substitute your favorite colors, and use /dev/ttyS$n for serial

To make sure they are reset when people log out (if they've been

Replace the references to "getty" (or "mingetty" or "uugetty" or
whatever) in /etc/inittab with references to "/sbin/mygetty."
setterm -fore yellow -bold on -back blue -store > $1
exec /sbin/mingetty $@

[Jim Dennis]

7.12 How can I have more than 128Mb of swap?

Use several swap partitions or swap files--Linux supports up to 16
swap areas, each of up to 128Mb.

Very old kernels only supported swap partition sizes up to 16Mb.

Linux on machines with 8KB paging, like Alpha and Sparc64, support a
swap partition up to 512MB. The 128MB limitation comes from
PAGE_SIZE*BITSPERBYTE on machines with 4KB paging, but is 512KB on
machines with 8KB paging. The limit is due to the use of a single page
allocation map.

The file mm/swapfile.c has all of the gory details.

[Peter Moulder, Gordon Weast]

8. Miscellaneous information and questions answered.

8.1 How do I program XYZ under Linux?

Read the manuals, or a good book on Unix. Manual pages (type "man
man") are usually a good source of reference information on exactly
how to use a particular command or function.

There is also a lot of GNU Info documentation, which is often more
useful as a tutorial. Run Emacs and type C-h i, or type info info if
you don't have or don't like Emacs. Note that the Emacs libc node may
not exactly describe the latest Linux libc, or GNU glibc2. But the GNU
project and LDP are always looking for volunteers to upgrade their
library documentation.

Anyway, between the existing Texinfo documentation, and the manual
pages in sections 2 and 3, should provide enough information to get

As with all free software, the best tutorial is the source code

The latest release of the Linux manual pages, a collection of useful
GNU Info documentation, and various other information related to
programming Linux, can be found on in

8.2 What's all this about ELF?

See the ELF HOWTO by Daniel Barlow--note, this is not the file
move-to-elf, which is a blow-by-blow account of how to upgrade to ELF

Linux has two different formats for executables, object files, and
object code libraries, known as, "ELF." (The old format is called
`a.out'.) They have advantages, including better support for shared
libraries and dynamic linking.

Both a.out and ELF binaries can coexist on a system. However, they use
different shared C libraries, both of which have to be installed.

If you want to find out whether your system can run ELF binaries, look
in /lib for a file named, "" If it's there, you probably
have ELF libraries. If you want to know whether your installation
actually is ELF you can pick a representative program, like ls, and
run file on it:
-chiark:~> file /bin/ls
/bin/ls: Linux/i386 impure executable (OMAGIC) - stripped

valour:~> file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, stripped

There is a patch to get 1.2.x to compile using the ELF compilers, and
produce ELF core dumps, at in /pub/packages/GCC/. You
do not need the patch merely to run ELF binaries. 1.3.x and later do
not need the patch at all.

8.3 What is a .gz file ? And a .tgz ? And ... ?

.gz (and .z) files are compressed using GNU gzip. You need to use
gunzip (which is a symlink to the gzip command which comes with most
Linux installations) to unpack the file.

.taz, .tar.Z, and .tz are tar files (made with tar) compressed using

.tgz (or .tpz) is a tar file compressed with gzip.

.lsm is a Linux Software Map entry, in the form of a short text file.
Details about the LSM and the LSM itself are available in the docs
subdirectory on

.deb is a Debian Binary Package - the binary package format used by
the Debian GNU/Linux distribution. It is manipulated using dpkg and
dpkg-deb (available on Debian systems and from

.rpm is a Red Hat RPM package, which is used in the Red Hat
distribution. They can be found on

.bz2 is a file compressed by the more recent bzip program.

The "file" command can often tell you what a file is.

If you find that gzip complains when you try to uncompress a gzip'ed
file you probably downloaded it in ASCII mode by mistake. You must
download most things in binary mode--remember to type binary as a
command in FTP before using, "get," to get the file.

8.4 What does VFS stand for?

Virtual File System. It's the abstraction layer between the user and
real file systems like ext2, Minix and MS-DOS. Among other things, its
job is to flush the read buffer when it detects a disk change on the
floppy disk drive.
VFS: Disk change detected on device 2/0

8.5 What is devfs and what does it do?

The devfs implements a new way of naming block devices (disks) in late
2.1.x and 2.2.x kernels. Instead of limiting device names to the block
device files in the /dev directory, devfs allows block devices to be
named and accessed by virtual names, by non-root users, and from more
than one mount point.

The devfs home page and FAQ are located at

8.6 What is a BogoMip?

"BogoMips" is a contraction of "Bogus MIPS." MIPS stands for
(depending who you listen to) Millions of Instructions per Second, or
Meaningless Indication of Processor Speed.

The number printed at boot time is the result of a kernel timing
calibration, used for very short delay loops by some device drivers.

As a very rough guide, the BogoMips rating for your machine will be
  386SX              clock * 0.14
  386DX              clock * 0.18
  486Cyrix/IBM       clock * 0.33
  486SX/DX/DX2       clock * 0.50
  586                clock * 0.39

If the number is wildly lower, you may have the Turbo button or CPU
speed set incorrectly, or have some kind of caching problem (as
described in "When I add more memory, the system slows to a

For values people have seen with other, rarer, chips, see the BogoMips
Mini-HOWTO, on in

8.7 What is the Linux Journal and where can I get it?

The Linux Journal is a monthly magazine (printed on paper) that is
available on news stands and via subscription worldwide. Email for details. Their URL is

8.8 What online/free periodicals exist for Linux?

There are a number of recent additions to the list of periodicals
devoted to Linux.
  * Linux Gazette.
  * Linux Weekly News.
  * Slashdot. Sort of like a Web version
    of Variety, but it is oriented toward free software. Always
    timely, always entertaining, often startling and thought
    provoking. The maintainer of this FAQ confesses to having slowly,
    by degrees, become a fan of Cmdr. Taco.
  * Freshmeat.

[Jim Dennis, Robert Kiesling]

8.9 How many people use Linux?

Linux is freely available, and no one is required to register with any
central authority, so it is difficult to know. Several businesses
survive solely on selling and supporting Linux. Linux news groups are
some of the most heavily read on Usenet. Accurate numbers are hard to
come by, but the number is likely in the millions.

However, people can register as Linux users at the Linux Counter
project, which has been in existence since 1993. In August, 1998, the
project counted more than 70,000 users.

Visit the Web site at and fill in the
registration form. If you don't want to use the Web, send e-mail to with the subject line, "I use LInux at home,"
or "I use LInux at work."

The current count is posted monthly to comp.os.linux.misc, and is
always available from the Web site.

[Harald Tveit Alvestrand]

8.10 How should I pronounce Linux?

This is a matter of religious debate, of course!

If you want to hear Linus himself say how he pronounces it, download or from (in
/pub/Linux/PEOPLE/Linus/SillySounds/). If you have a sound card or the
PC-speaker audio driver you can hear them by typing
cat >/dev/audio

The difference isn't in the pronunciation of Linux but in the language
Linus uses to say, "hello."

For the benefit of those who don't have the equipment or inclination:
Linus pronounces Linux approximately as Leenus, where the "ee" is
pronounced as in "feet," but rather shorter, and the "u" is like a
much shorter version of the French "eu" sound in "peur"
(pronouncing it as the "u" in "put" is probably passable).

9. Frequently encountered error messages.

9.1 Modprobe can't locate module, "XXX," and similar messages.

These types of messages mostly occur at boot time or shutdown. If
modprobe, insmod, or rmmod complain about not being able to find a
module, add the following to the /etc/modules.conf or
/etc/modutils/aliases file, whichever is present on your system.
alias <module-name> off

And use the name of the module that appears in the error message.

[J.H.M. Dassen]

9.2 Unknown terminal type linux and similar.

In early kernels the default console terminal type has changed from
"console" to "linux." You must edit /etc/termcap to change the
line reading:


(there may be an additional dumb in there--if so it should be

To get the editor to work you may need say

(for bash and ksh), or
setenv TERM console

for csh or tcsh.

Some programs use /usr/lib/terminfo instead of /etc/termcap. For these
programs you should upgrade your terminfo, which is part of ncurses.

9.3 lp1 on fire

This is a joke/traditional error message indicating that some sort of
error is being reported by your printer, but that the error status
isn't a valid one. It may be that you have some kind of I/O or IRQ
conflict-- check your cards' settings. Some people report that they
get this message when their printer is switched off. Hopefully it
isn't really on fire ...

In newer kernels, this message reads, "lp1 reported invalid error
status (on fire, eh?)"

9.4 INET: Warning: old style ioctl... called!

You are trying to use the old network configuration utilities. The new
ones can be found on in
/pub/linux/Networking/PROGRAMS/NetTools/ (source only, I'm afraid).

Note that they cannot be used just like the old-style programs. See
the NET-2 HOWTO for instructions on how to set up the old-style
networking programs correctly. Even better, see the NET-3 HOWTO and
upgrade your networking software.

9.5 ld: unrecognized option '-m486'

You have an old version of ld. Install a newer binutils package--this
will contain an updated ld. Look on in
/pub/linux/packages/GCC/ for binutils-

9.6 GCC says Internal compiler error.

If the fault is repeatable (i.e., it always happens at the same place
in the same file--even after rebooting and trying again, using a
stable kernel) you have discovered a bug in GCC. See the GCC Info
documentation (type Control-h i in Emacs, and select GCC from the
menu) for details on how to report the error--make sure you have the
latest version, though.

Note that this is probably not a Linux-specific problem. Unless you
are compiling a program many other Linux users also compile, you
should not post your bug report to any of the comp.os.linux groups.

If the problem is not repeatable, you may be experiencing memory
corruption--see make says Error 139.

9.7 make says Error 139

Your compiler driver (gcc) dumped core. You probably have a corrupted,
buggy, or old version of GCC--get the latest release. Alternatively,
you may be running out of swap space--see My machine runs very
slowly when I run GCC / X / ....

If this doesn't fix the problem, you are probably having problems with
memory or disk corruption. Check that the clock rate, wait states, and
refresh timing for your SIMMS and cache are correct (hardware manuals
are sometimes wrong, too). If so, you may have some marginal SIMMS, or
a faulty motherboard or hard disk or controller.

Linux is a very good memory tester--much better than MS-DOS based
memory test programs.

Reportedly, some clone x87 math coprocessors can cause problems. Try
compiling a kernel with math emulation ( How do I
upgrade/recompile my kernel?.) You may need to use the "no387"
kernel command line flag on the LILO prompt to force the kernel to use
math emulation, or it may be able to work and still use the '387, with
the math emulation compiled in but mainly unused.

More information about this problem is available on the Web at

9.8 shell-init: permission denied when I log in.

Your root directory and all the directories up to your home directory
must be readable and executable by everybody. See the manual page for
chmod or a book on Unix for how to fix the problem.

9.9 No utmp entry. You must exec ... when I log in.

Your /var/run/utmp is screwed up. You should have

> /var/run/utmp

in your /etc/rc.local or /etc/rc.d/*. See ("I have screwed up
my system and can't log in to fix it.") Note that the utmp may also
be found in /var/adm/ or /etc/ on some older systems.

9.10 Warning--bdflush not running.

Modern kernels use a better strategy for writing cached disk blocks.
In addition to the kernel changes, this involves replacing the old
update program which used to write everything every 30 seconds with a
more subtle daemon (actually a pair), known as bdflush.

Get bdflush-n.n.tar.gz from the same place as the kernel source code (
How do I upgrade/recompile my kernel?) and compile and install
it. Bdflush should be started before the usual boot-time file system
checks. It will work fine with older kernels as well, so there's no
need to keep the old update around.

9.11 Warning: obsolete routing request made.

This is nothing to worry about. The message means that your version
route is a little out of date, compared to the kernel. You can make
the message go away by getting a new version of route from the same
place as the kernel source code. ( How do I upgrade/recompile my

9.12 EXT2-fs: warning: mounting unchecked file system.

You need to run e2fsck (or fsck -t ext2 if you have the fsck front end
program) with the -a option to get it to clear the `dirty' flag, and
then cleanly unmount the partition during each shutdown.

The easiest way to do this is to get the latest fsck, umount, and
shutdown commands, available in Rik Faith's util-linux package (`
Where can I get Linux material by FTP?") You have to make sure
that your /etc/rc*/ scripts use them correctly.

NB: don't try to check a file system that's mounted read/write--this
includes the root partition if you don't see
VFS: mounted root ... read-only

at boot time. You must arrange to mount the root file system read/only
to start with, check it if necessary, and then remount it read/write.
Read the documentation that comes with util-linux to find out how to
do this.

Note that you need to specify the -n option to mount so it won't try
to update /etc/mtab, since the root file system is still read-only,
and this will otherwise cause it to fail.

9.13 EXT2-fs warning: maximal count reached.

This message is issued by the kernel when it mounts a file system
that's marked as clean, but whose "number of mounts since check"
counter has reached the predefined value. The solution is to get the
latest version of the ext2fs utilities (e2fsprogs-0.5b.tar.gz at the
time of writing) from the usual sites. (` Where can I get Linux
material by FTP?")

The maximal number of mounts value can be examined and changed using
the tune2fs program from this package.

9.14 EXT2-fs warning: checktime reached.

Kernels from 1.0 onwards support checking a file system based on the
elapsed time since the last check as well as by the number of mounts.
Get the latest version of the ext2fs utilities. "( EXT2-fs
warning: maximal count reached.")

9.15 df says Cannot read table of mounted file systems.

There is probably something wrong with your /etc/mtab or /etc/fstab
files. If you have a reasonably new version of mount, /etc/mtab should