Linux-Misc Digest #504, Volume #27 Sun, 1 Apr 01 15:13:04 EDT
Contents:
Linux Frequently Asked Questions with Answers (Part 3 of 6)
([EMAIL PROTECTED])
----------------------------------------------------------------------------
Crossposted-To: news.answers,comp.answers
Subject: Linux Frequently Asked Questions with Answers (Part 3 of 6)
From: [EMAIL PROTECTED]
Reply-To: [EMAIL PROTECTED]
Date: Sun, 01 Apr 2001 18:17:53 GMT
If LILO doesn't work, and if the machine has MS-DOS or Microsoft
Windows, you may be left with a computer that won't boot. This can
also happen on an upgrade to your Linux distribution. Re-installing
LILO is the last thing that the installation does. So it is vitally
important when installing or upgrading Linux on a dual boot machine,
to have a MS-DOS or Windows rescue disk nearby so you can FDISK -MBR.
Then you can go about using LOADLIN.EXE instead of LILO.
This config.sys file is one possible way to invoke LOADLIN.EXE and
boot MS-DOS or Linux.
[menu]
menuitem=DOS, Dos Boot
menuitem=LINUX, Linux Boot
[LINUX]
shell=c:\redhat\loadlin.exe c:\redhat\autoboot\vmlinuz vga=5 root=/dev
[DOS]
STACKS = 0,0
rem all the other DOS drivers get loaded here.
This creates a menu where you can directly jump to LOADLIN.EXE before
all of the MS-DOS drivers get loaded.
The paths and options are peculiar to one machine and should be
intuitively obvious to the most casual observer. See the LOADLIN.EXE
docs for options. They are the same as LILO, and options are just
passed to the kernel, anyhow.
[Jim Harvey]
4.14. How Can I Boot Linux from OS/2's Boot Manager?
1. Create a partition using OS/2's FDISK.EXE (Not Linux's fdisk).
2. Format the partition under OS/2, either with FAT or HPFS. This is
so that OS/2 knows about the partition being formatted. (This step
is not necessary with OS/2 `warp' 3.0.)
3. Add the partition to the Boot Manager.
4. Boot Linux, and create a file system on the partition using mkfs
-t ext2 or mke2fs. At this point you may, if you like, use Linux's
fdisk to change the code of the new partition to type 83 (Linux
Native)--this may help some automated installation scripts find
the right partition to use.
5. Install Linux on the partition.
6. Install LILO on the Linux partition--NOT on the master boot record
of the hard drive. This installs LILO as a second-stage boot
loader on the Linux partition itself, to start up the kernel
specified in the LILO configuration file. To do this, you should
put
boot = /dev/hda2
(where /dev/hda2 is the partition you want to boot from) in your
/etc/lilo/config or /etc/lilo.config file.
7. Make sure that it is the Boot Manager partition that is marked
active, so that you can use Boot Manager to choose what to boot.
There is a set of HOWTO's on the subject of multi-boot systems at the
LDP Home Page, http://www.linuxdoc.org/.
5. File Systems, Disks, and Drives
5.1. How Can I Get Linux to Work with My Disk?
If your disk is an IDE or EIDE drive, you should read the file
/usr/src/linux/drivers/block/README.ide (part of the Linux kernel
source code). This README contains many helpful hints about IDE
drives. Many modern IDE controllers do translation between `physical'
cylinders/heads/sectors, and `logical' ones.
SCSI disks are accessed by linear block numbers. The BIOS invents some
`logical' cylinder/head/sector fiction to support DOS.
An IBM PC-compatible BIOS will usually not be able to access
partitions which extend beyond 1024 logical cylinders, and will make
booting a Linux kernel from such partitions using LILO problematic at
best.
You can still use such partitions for Linux or other operating systems
that access the controller directly.
It's recommend that you create at least one Linux partition entirely
under the 1024 logical cylinder limit, and boot from that. The other
partitions will then be okay.
Also there seems to be a bit of trouble with the newer Ultra-DMA
drives. I haven't gotten the straight scoop on them--but they are
becoming a very common problem at the SVLUG installfests. When you can
get 8 to 12 Gig drives for $200 to $300 it's no wonder.
[Jim Dennis]
5.2. How Can I Undelete Files?
In general, this is very hard to do on unices because of their
multitasking nature. Undelete functionality for the ext2fs file system
is being worked on, but don't hold your breath.
There are a number of packages available which instead provide new
commands for deleting and copying which move deleted files into a
`wastebasket' directory. The files can be recovered until cleaned out
automatically by background processing.
The Midnight Commander file manager provides an undelete facility that
uses Ext2 file system library functions and an undelete directory for
each file system. Commercial distribution packages of MC may or may
not have this feature enabled, so be sure to look in the source code
distribution for instructions on how to enable the undelete feature.
Alternatively, you can search the raw disk device which holds the file
system in question. This is hard work, and you will need to be logged
in as root to do this. But it can be done. Run grep on the raw device;
e.g.:
grep -b 'bookmarks' /dev/hda
If the data has not been overwritten, you should be able to recover it
with a text editor.
[Dave Cinege, Daniel Novotny]
5.3. How Do I Make Backups?
You can back up a directory hierarchy or complete file system to any
media using GNU tar or cpio, the standard *nix tools for this purpose.
tar seems to be the more commonly used program currently, and includes
command line options to make compressed, incremental, and multi-volume
backups. Complete information is contained in the documentation, which
is in GNU Texinfo format.
The free program, Amanda, receives a lot of mentions on Usenet. Its
home page is http://www.amanda.org/.
Several commercial backup utilities also exist. They are often
included in commercial distributions.
5.4. How Do I Resize a Partition (Non-Destructively)?
Use the FIPS.EXE program, included with most Linux distributions,under
MS-DOS.
GNU parted, a partition editor, is stable enough for non-guru,
mere-mortal use with relative confidence. Source code for the latest
version is at: ftp://ftp.gnu.org/pub/gnu/parted/. There's also a boot
disk image for resizing root partitions and for running parted on
non-Linux machines. The disk image may be easier for beginners.
Building from source could require some extra configuration.
Parted also has tutorial-style, plain-text documentation for Linux and
FAT (MS-DOS) file systems.
Also, some commercial distributions come with their own partitioning
software, like Partition Magic.
5.5. Is There a Defragmenter for Ext2fs, Etc.?
Yes. There is defrag, a Linux file system defragmenter for ext2,
Minix, and old-style ext file systems. It is available at
ftp://metalab.unc.edu/pub/Linux/system/filesystems/defrag-0.70.tar.gz.
Users of the ext2 file system can probably do without defrag, because
ext2 contains extra code to keep fragmentation reduced even in very
full file systems.
5.6. How Do I Format and Create a File System on a Floppy?
To format a 3.5-inch, high density floppy:
$ fdformat /dev/fd0H1440
$ mkfs -t ext2 -m 0 /dev/fd0H1440 1440
For a 5.25 inch floppy, use fd0h1200 and 1200 as appropriate. For the
B: drive use fd1 instead of fd0.
The -m 0 option tells mkfs.ext2 not to reserve any space on the disk
for the superuser--usually the last 10% is reserved for root.
The first command performs a low-level format. The second creates an
empty file system. You can mount the floppy like a hard disk partition
and simply cp and mv files, etc.
Device naming conventions generally are the same as for other unices.
They can be found in Matt Welsh's Installation and Getting Started
guide. Refer to ("Where Can I Get the HOWTO's and Other
Documentation?") A more detailed and technical description is Linux
Allocated Devices by H. Peter Anvin, [EMAIL PROTECTED], which is included
in LaTeX and ASCII form in the kernel source distribution (probably in
/usr/src/kernel/Documentation/), as devices.tex and devices.txt.
5.7. Does Linux Support Virtualized File Systems Like RAID?
The most recent Linux kernels support software RAID, and they will
work with RAID disk controllers.
An automounter for NFS partitions is part of most Linux distributions.
In addition, several virtual file system projects exist. One of them,
the Linux Logical Volume Manager, is located at
http://linux.msede.com/lvm/.
5.8. Does Linux Support File System Encryption?
Yes. One file system, ppdd, is archived at
http://pweb.de.uu.net/flexsys.mtk/.
5.9. I Get Nasty Messages about Inodes, Blocks, and the Like.
You may have a corrupted file system, probably caused by not shutting
Linux down properly before turning off the power or resetting. You
need to use a recent shutdown program to do this--for example, the one
included in the util-linux package, available on sunsite and tsx-11.
If you're lucky, the program fsck (or e2fsck or xfsck as appropriate
if you don't have the automatic fsck front-end) will be able to repair
your file system. If you're unlucky, the file system is trashed, and
you'll have to re-initialize it with mkfs (or mke2fs, mkxfs, etc.),
and restore from a backup.
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.
5.10. My Swap Area Isn't Working.
When you boot (or enable swapping manually) you should see
Adding Swap: NNNNk swap-space
If you don't see any messages at all you are probably missing
swapon -av
(the command to enable swapping) in your /etc/rc.local or /etc/rc.d/*
(the system startup scripts), or have forgotten to make the right
entry in /etc/fstab:
/dev/hda2 none swap sw
for example.
If you see:
Unable to find swap-space signature
you have forgotten to run mkswap. See the manual page for details; it
works much like mkfs.
Running, free in addition to showing free memory, should display:
total used free
Swap: 10188 2960 7228
If typing "cat /proc/swaps" reveals only file or partition names, but
no swap space information, then the swap file or partition needs
re-initialization.
Use fdisk (as root) to determine which partition on a hard drive has
been designated as the swap partition. The partition still needs to be
initialized with mkswap before enabling it with swapon.
[Andy Jefferson, Steve Withers]
5.11. How Do I Add Temporary Swap Space?
In addition to a swap partition, Linux can also use a swap file. Some
programs, like g++, can use huge amounts of virtual memory, requiring
the temporary creation of extra space. To install an extra 64 MB of
swap space, for example, use the following shell commands:
# dd if=/dev/zero of=/swap bs=1024 count=65535
# mkswap /swap
# swapon /swap
The count= argument to dd determines how big the swap file will be. In
this example the swap file's name is /swap, but the name and location
are, generally, arbitrary, depending only on the file system's
available space and your having write permissions in the directory.
When you don't need the swap space any more, remove it with the
following statements:
# swapoff /swap
# rm /swap
Take a look also at the Installation HOWTO and Installation & Getting
Started for detailed instructions.
If that still doesn't provide enough swap space, refer to ("How Can I
Have More Than 128Mb of Swap?")
5.12. How Do I Remove LILO So My System Boots DOS Again?
The lilo program (not the complete LILO package), uses the command
line option -u to uninstall the LILO boot loader. You have to supply
the device name of the device you installed LILO on, for example:
lilo -u /dev/hda
This rewrites the original, pre-LILO master boot record back to the
first hard drive, from the boot record saved in /boot/boot.0300. If
you installed LILO to a partition as a secondary boot loader, for
example, /dev/hda1, lilo re-installs the original boot sector from the
save file /boot/boot.0301. Refer to the lilo manual page for details.
Thanks to Villy Kruse for reminding me to update this answer.
If you have an earlier version of LILO, you will have to use the DOS
(MS-DOS 5.0 or later, or OS/2) FDISK /MBR (which is not documented).
This will restore a standard MS-DOS Master Boot Record. If you have
DR-DOS 6.0, go into FDISK.EXE in the normal way and then select the
Re-write Master Boot Record option.
If you don't have MS-DOS or DR-DOS, you need to have the boot sector
that LILO saved when you first installed it. You did keep that file,
didn't you? It's probably called boot.0301 or some such. Type:
dd if=boot.0301 of=/dev/hda bs=445 count=1
(or /dev/sda if you're using a SCSI disk). This may also wipe out your
partition table, so beware! If you're desperate, you could use
dd if=/dev/zero of=/dev/hda bs=512 count=1
This will erase your partition table and boot sector completely: you
can then reformat the disk using your favorite software. But this will
render the contents of your disk inaccessible--you'll lose it all
unless you're an expert.
Note that the DOS MBR boots whichever (single!) partition is flagged
as "active." You may need to use fdisk to set and clear the active
flags on partitions appropriately.
5.13. Why Can't I Use fdformat Except as Root?
The system call to format a floppy can only be done as root,
regardless of the permissions of /dev/fd0*. If you want any user to be
able to format a floppy, try getting the fdformat2 program. This works
around the problems by being setuid to root.
5.14. The System Checks the Ext2fs Partitions Each Reboot.
Refer to ("EXT2-fs: warning: mounting unchecked file system.)
5.15. My Root File System Is Read-Only!
Remount it. If /etc/fstab is correct, you can simply type:
mount -n -o remount /
If /etc/fstab is wrong, you must give the device name and possibly the
type, too: e.g.
mount -n -o remount -t ext2 /dev/hda2 /
To understand how you got into this state, see, ("EXT2-fs: warning:
mounting unchecked file system.")
5.16. I Have a Huge /proc/kcore! Can I Delete It?
None of the files in /proc are really there--they're all, "pretend,"
files made up by the kernel, to give you information about the system
and don't take up any hard disk space.
/proc/kcore is like an "alias" for the memory in your computer. Its
size is the same as the amount of RAM you have, and if you read it as
a file, the kernel does memory reads.
5.17. The AHA1542C Doesn't Work with Linux.
The option to allow disks with more than 1024 cylinders is only
required as a workaround for a PC-compatible BIOS misfeature and
should be turned `off' under Linux. For older Linux kernels you need
to turn off most of the `advanced BIOS' options--all but the one about
scanning the bus for bootable devices.
5.18. Where Do I Find the Journalling File System?
The journalling file system, named Reiserfs has just been released
from testing. It is said to make Linux even faster than Linux with the
Ext2 file system installed. Complete information is available at
http://devlinux.org/namesys/.
6. Porting, Compiling and Obtaining Programs
6.1. How Do I Compile Programs?
Most Linux software is written in C and compiled with the GNU C
compiler. GCC is a part of every Linux distribution. The latest
compiler version, documentation, and patches are on
ftp://ftp.gnu.org/pub/gnu/.
Programs that are written in C++ must be compiled with the GNU G++
compiler, which is also included in Linux distributions and available
from the same place as GCC.
To build version 2.0.x kernels, you will need GCC version 2.7.2.x,
approximately. Trying to build an early Linux kernel with a different
compiler, like GCC 2.8.x, EGCS, or PGCC, may cause problems because of
GCC related code dependencies. Kernel versions 2.3 and 2.4 should
compile correctly with more recent compilers.
Information on the EGCS compiler is at
http://www.gnu.org/software/gcc/gcc.html.
Note that at this time, the kernel developers are not answering bug
requests for earlier kernels, but instead are concentrating on
developing 2.4.x version kernels and maintaining 2.2.x version
kernels.
[J.H.M. Dassen, Axel Boldt]
6.2. How Do I Install GNU Software?
On a correctly configured system, installing a GNU software package
requires four steps:
* With the source.tar.gz archive in the /usr/src/ directory, or
wherever you maintain your source files, untar and decompress the
package with the command:
tar zxvf package-name.tar.gz
* Run the ./configure script in the untarred source archive's
top-level directory with whatever command line arguments you need.
The options that configure recognizes are usually contained in a
file called INSTALL or README.
* Run make. This will build the source code into an executable
program (or programs) and may take a few minutes or a few hours,
depending on the speed of the computer and the size of the
package.
* Run make install. This will install the compiled binaries,
configuration files, and any libraries in the appropriate
directories.
6.3. Where Do I Get Java?
The Sun Microsystems Java Developer's Kit (JDK) Version 1.2, is at
http://java.sun.com/products/jdk/1.2/download-linux.html.
You can also get the source code, which is licensed by Sun
Microsystems.
Kaffee, an Open-Source version of Java, is at
http://www.transvirtual.com/products/.
The home page of IBM's Jikes Java compiler is
http://www10.software.ibm.com/developerworks/opensource/jikes.
There is a version of Sun's HotJava browser for Linux at
http://www.java.sun.com/products/hotjava/.
Netscape Communicator comes with its own version of the Java Runtime
Environment, so if you need Java only to view Web graphics, you may
already have the runtime version of the Java Virtual Machine and
libraries that you need installed on your system. You can download
Communicator from http://www.netscape.com/.
6.4. How Do I Port XXX to Linux?
In general, *nix programs need very little porting. Simply follow the
installation instructions. If you don't know--and don't know how to
find out--the answers to some of the questions asked during the
installation procedure, you can guess, but this tends to produce buggy
programs. In this case, you're probably better off asking someone else
to do the port. If you have a BSD-ish program, you should try using
-I/usr/include/bsd and -lbsd on the appropriate parts of the
compilation lines.
6.5. What Is ld.so and Where Do I Get It?
ld.so is the dynamic library loader. Each binary using shared
libraries used to have about 3K of start-up code to find and load the
shared libraries. Now that code has been put in a special shared
library, /lib/ld.so, where all binaries can look for it, so that it
wastes less disk space, and can be upgraded more easily. ld.so can be
obtained from http://tsx-11.mit.edu/pub/linux/packages/GCC/ and mirror
sites. The latest version at the time of writing is
ld.so.1.9.5.tar.gz. /lib/ld-linux.so.1 is the same thing for ELF
("What's all this about ELF? ") and comes in the same package as the
a.out loader.
6.6. How Do I Upgrade the Libraries without Trashing My System?
Warning
Note: You should always have a rescue disk set ready when you perform
this procedure, in the likely event that something goes wrong!
This procedure is especially difficult if you're upgrading very old
libraries like libc4. But you should be able to keep libc4 on the same
system with libc5 libraries for the programs that still need them. The
same holds true for upgrading from libc5 to the newer-yet glibc2
libraries.
The problem with upgrading dynamic libraries is that, the moment you
remove the old libraries, the utilities that you need to upgrade to
the new version of the libraries don't work. There are ways around
around this. One is to temporarily place a spare copy of the run time
libraries, which are in /lib/, in /usr/lib/, or /usr/local/lib/, or
another directory that is listed in the /etc/ld.so.conf file.
For example, when upgrading libc5 libraries, the files in /lib/ might
look something like:
libc.so.5
libc.so.5.4.33
libm.so.5
libm.so.5.0.9
These are the C libraries and the math libraries. Copy them to another
directory that is listed in /etc/ld.so.conf, like /usr/lib/:
$ cp -df /lib/libc.so.5* /usr/lib/
$ cp -df /lib/libm.so.5* /usr/lib/
$ ldconfig
Be sure to run ldconfig to upgrade the library configuration.
The files libc.so.5 and libm.so.5 are symbolic links to the actual
library files. When you upgrade, the new links will not be created if
the old links are still there, unless you use the -f flag with cp. The
-d flag to cp will copy the symbolic link itself, and not the file it
points to.
If you need to overwrite the link to the library directly, use the -f
flag with ln.
For example, to copy new libraries over the old ones, try this. Make a
symbolic link to the new libraries first, then copy both the libraries
and the links to /lib/, with the following commands.
$ ln -sf ./libm.so.5.0.48 libm.so.5
$ ln -sf ./libc.so.5.0.48 libc.so.5
$ cp -df libm.so.5* /lib
$ cp -df libc.so.5* /lib
Again, remember to run ldconfig after you copy the libraries.
If you are satisfied that everything is working correctly, you can
remove the temporary copies of the old libraries from /usr/lib/ or
wherever you copied them.
6.7. Can I Use Code or a Compiler Compiled for a 486 on My 386?
Yes, unless it's the kernel.
The -m486 option to GCC, which is used to compile binaries for x486
machines, merely changes certain optimizations. This makes for
slightly larger binaries that run somewhat faster on a 486. They still
work fine on a 386, though, with a small performance hit.
However, from version 1.3.35 the kernel uses 486 or Pentium-specific
instructions if configured for a 486 or Pentium, thus making it
unusable on a 386.
GCC can be configured for a 386 or 486; the only difference is that
configuring it for a 386 makes -m386 the default and configuring for a
486 makes -m486 the default. In either case, these can be overridden
on a per-compilation basis or by editing /usr/lib/gcc-lib/i*-linux/
n.n.n/specs.
There is an alpha version of GCC that knows how to do optimization
well for the 586, but it is quite unreliable, especially at high
optimization settings. The Pentium GCC can be found on
ftp://tsx-11.mit.edu/pub/linux/ALPHA/pentium-gcc/. The ordinary 486
GCC supposedly produces better code for the Pentium using the -m386,
or at least slightly smaller.
6.8. What Does "gcc -O6" Do?
Currently, the same as -O2 (GCC 2.5) or -O3 (GCC 2.6, 2.7). Any number
greater than that does the same thing. The Makefiles of newer kernels
use -O2, and you should probably do the same.
6.9. Where Are linux/*.h and asm/*.h?
The files /usr/include/linux/ and /usr/include/asm/ are often soft
links to the directories where the kernel headers are. They are
usually under /usr/src/kernel*/.
If you don't have the kernel sources, download them. Refer to the
answer: ("How Do I Upgrade/Recompile My Kernel?")
Then, use rm to remove any garbage, and ln to create the links:
$ rm -rf /usr/include/linux /usr/include/asm
$ ln -sf /usr/src/linux/include/linux /usr/include/linux
$ ln -sf /usr/src/linux/include/asm /usr/include/asm
/usr/src/linux/include/asm/ is a symbolic link to an
architecture-specific asm directory. If you have a freshly unpacked
kernel source tree, you must make symlinks. You'll also find that you
may need to do `make config' in a newly-unpacked kernel source tree,
to create linux/autoconf.h.
6.10. I Get Errors when I Try to Compile the Kernel.
See the previous question regarding the header files.
Remember that when you apply a patch to the kernel, you must use the
"-p0" or "-p1" option: otherwise, the patch may be misapplied. See the
patch manual page for details.
"ld: unrecognized option `-qmagic'" means that you should get a newer
linker, from ftp://tsx-11.mit.edu/pub/linux/packages/GCC/, in the file
binutils-2.8.1.0.1.bin.tar.gz.
6.11. How Do I Make a Shared Library?
For ELF,
$ gcc -fPIC -c *.c
$ gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o
For a.out, get tools-n.nn.tar.gz from
tsx-11.mit.edu/pub/linux/packages/GCC/src/. It comes with
documentation that will tell you what to do. Note that a.out shared
libraries are a very tricky business. Consider upgrading your
libraries to ELF shared libraries. See the ELF HOWTO, at
ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/
6.12. My Executables Are (Very) Large.
With an ELF compiler ("What's All This about ELF? glibc?"), the most
common cause of large executables is the lack of an appropriate .so
library link for one of the libraries you're using. There should be a
link like libc.so for every library like libc.so.5.2.18.
With an a.out compiler the most common cause of large executables is
the -g linker (compiler) flag. This produces (as well as debugging
information in the output file) a program which is statically
linked--one which includes a copy of the C library instead of a
dynamically linked copy.
Other things worth investigating are -O and -O2, which enable
optimization (check the GCC documentation), and -s (or the strip
command) which strip the symbol information from the resulting binary
(making debugging totally impossible).
You may wish to use -N on very small executables (less than 8K with
the -N), but you shouldn't do this unless you understand its
performance implications, and definitely never with daemons.
6.13. Does Linux Support Threads or Lightweight Processes?
As well as the Unix multiprocessing model involving heavyweight
processes, which is of course part of the standard Linux kernel, there
are several implementations of lightweight processes or threads.
Recent kernels implement a thread model, kthreads. In addition, there
are the following packages available for Linux.
* GNU glibc2 for Linux has optional support for threads. The archive
is available from the same place as glibc2,
ftp://ftp.gnu.org/pub/gnu/
* In sipb.mit.edu:/pub/pthread/ or
ftp.ibp.fr:/pub/unix/threads/pthreads. Documentation isn't in the
package, but is available on the World Wide Web at
http://www.mit.edu:8001/people/proven/home_page.html. Newer Linux
libc's contain the pthreads source. The GNU Ada compiler on
ftp://metalab.unc.edu/pub/Linux/devel/lang/ada/gnat-3.01-linux+elf
.tar.gz contains binaries made from that source code.
* In ftp://ftp.cs.washington.edu:/pub/qt-001.tar.Z is QuickThreads.
More information can be found in the technical report, available
on the same site is /tr/1993/05/UW-CSE-93-05-06.PS.Z.
* In gummo.doc.ic.ac.uk/rex/ is lwp, a very minimal implementation.
* In ftp://ftp.cs.fsu.edu:/pub/PART/, an Ada implementation. This is
useful mainly because it has a lot of Postscript papers that
you'll find useful in learning more about threads. This is not
directly usable under Linux.
Please contact the authors of the packages in question for details.
6.14. Where Can I Get lint for Linux?
Roughly equivalent functionality is built into GCC. Use the -Wall
option to turn on most of the useful extra warnings. See the GCC
manual for more details (type F1-i in Emacs and select the entry for
GCC).
There is a freely available program called lclint that does much the
same thing as traditional lint. The announcement and source code are
available at on ftp://larch.lcs.mit.edu/pub/Larch/lclint/; on the
World Wide Web, look at http://lclint.cs.virginia.edu/.
6.15. Where Can I Find Kermit for Linux?
Kermit is distributed under a non-GPL copyright that makes its terms
of distribution somewhat different. The sources and some binaries are
available on ftp://kermit.columbia.edu.
The WWW Home Page of the Columbia University Kermit project is
http://www.columbia.edu/kermit/.
6.16. I Want to Use Linux with My Cable Modem.
The www.CablemodemInfo.com and xDSL Web page at
http://www.cablemodeminfo.com/ has a section devoted to Linux.
6.17. Is There an ICQ Program That Runs under Linux?
Several ICQ clients are available on metalab.unc.edu. (See Where can I
get Linux material by FTP? .) ICQ itself does not have a Linux client,
but there is a Java client at http://www.mirabilis.com/download/.
7. Solutions to Common Miscellaneous Problems
7.1. FTP Transfers Seem to Hang.
FTP transfers that die suddenly are due, apparently, to some form of
overrunning buffer. It occurs both with Linux and Microsoft servers.
On Linux systems, The problem seems to occur most commonly with the
distribution's server software.
If you receive ftp: connection refused errors, then the problem is
likely due to a lack of authentication. Refer to "FTP or Telnet Server
Won't Allow Logins.."
One remedy is to be replacing the distribution FTP server with the
Linux port of the OpenBSD FTP server. The home page is:
http://www.eleves.ens.fr:8080/home/madore/programs/
To install the BSD server, follow the installation instructions, and
refer to the manual pages for inetd and inetd.conf. (If you have the
newer xinetd, see below.) Be sure to tell inetd to run the BSD daemon
alone, not as a subprocess of, for example, tcpd. Comment out the line
that begins "ftp" in the /etc/inetd.conf file and replace it with a
line similar to (if you install the new ftpd in /usr/local/sbin/):
# Original entry, commented out.
#ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.ftpd
# Replacement entry:
ftp stream tcp nowait root /usr/local/sbin/ftpd -l
The replacement daemon will become effective after rebooting or
sending (as root) a SIGHUP to inetd, e.g.:
# kill -HUP inetd
To configure xinetd, create an entry in /etc/xinetd.d per the
instructions in the xinetd.conf manual page. Make sure, again, that
the command-line arguments for ftpd are correct, and that you have
installed the /etc/ftpusers and /etc/pam.d/ftp files. Then restart
xinetd with the command: /etc/rc.d/init.d/xinetd restart. The command
should report "OK," and the restart will be noted in the system
message log.
7.2. Free Dumps Core.
In Linux 1.3.57 and later, the format of /proc/meminfo was changed in
a way that the implementation of free doesn't understand. Get the
latest version, from metalab.unc.edu, in
/pub/Linux/system/Status/ps/procps-0.99.tgz.
--
Robert Kiesling
Linux FAQ Maintainer
[EMAIL PROTECTED]
http://www.mainmatter.com/linux-faq/toc.html http://www.mainmatter.com/
---
Tired of spam? Please forward messages to [EMAIL PROTECTED]
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list by posting to comp.os.linux.misc.
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Misc Digest
******************************