Linux Help

Hi everyone welcome to my linux help page. Most of the answers you find here have been replies on the Linux India mailing list by me.
A list of items discussed will be added shortly.

>> With Linux(unix) you STILL HAVE A CHANCE if KEYBOARD locks or a App hangs << Re: [LI] Wine update
From: C Hanish Menon <>


> Window$ Media Player is Bill Gate$ revenge on Linux. It loads, but if I try
> to open a file, the program crashes Linux so badly that nothing short of a
> power off and cold reboot is needed, followed by a long process of
> ("filesystems not cleanly unmounted .. check forced") getting back into Linux.

If a program accesses the keyboard in raw mode, then if it hangs due to some
problem, it might lead to a situation where you can no longer use the keyboard
TILL that APPLICATION is KILLED. So if you are on a network, try accessing or
TELNETING into your m/c from over the network and KILL the OFFENDING
application, it should in most of the cases BRING BACK SENSE into your m/c.


If your MOUSE is still active you can configure specail action for the mouse
buttons. Check out the GPM documentation.

*********** from GPM's man page      *************
The capability to  invoke
commands  using  the mouse is a handy one for programmers,
because it allows to issue a clean shutdown when the  key­
board is locked and no network is available to restore the
system to a sane state.


Re: [LI] Error starting Control Panel. >> .kdelnk and .desktop files <<
From: C Hanish Menon <>


> When I start the 'Control Panel' in my RHL 6.1 (PCQ), I get the
> following error....
> -----------------------------------------
> The config file has no "Type=..." line
> -----------------------------------------

Check out the file corresponding to this menu or desktop item in

 like say

In this file you will find a line called

change this to


NOTE: Well this is a temporary hack I found to work. But I haven't varified the
format of these *.kdelnk and *.desktop files.

Re: [LI] Question regarding the Linux file system i/o
From: C Hanish Menon <>


On Sat, 27 Nov 1999, Satya wrote:
> 2. Is there a recommend limit on the number of files in a single directory?
> When does the performance of the file system degrades?

Based on the way the Directories are handles in ext2 there shouldn't be any
limit on the number of entries in a directory.  However if the number of files
is very large the time taken to get info regarding a file (as required during
a open call) may be large for 2 reasons.

 a) The number of DiskBlocks required to be accessed to get the directory
entry for the file.

 b) The search algo used for getting the required directory entry.  ( I
haven't varified). Many fs use simple linear search which is good for many
cases but not for directories with a large number of files.

Well the buffering/caching  if used for directory entries would help reduce the
time taken. (I haven't varified).

> 3. Has any body doen experiment on - database query v/s file system i/o
> (seek - basically)? Which one is recommended - though my gut feeling says it
> is database (I am using Oracle 8)

Even thou one can get better performance for specific purposes by writing
direct routines to access Diskblocks or so, Given the advantage of portability
and the different Data access requirements of a app a Database would be
good PRACTICAL alternative.

[LI] Possible SOLUTION to LINKING small KDE application ERROR. And HOWTO Install KDevelop 1.0 Beta4.1
From: C Hanish Menon <>


As there was a lot of traffic on the list regarding Compilation problems with
KDE Apps on Redhat 6.x systems. So I thought why not try one of the 2nd level
beasts of the KDE i.e KDevelop itself.

 **** KDEVELOP ******

So I downloaded the the Kdevelop 1.0 Beta4.1 source along with the C C++
Reference. The remaining things like the kdelib-devel and qt docs are already
on your RedHat 6.1 system.

To start with one as to note that Redhat 6.1 comes with QT libraries 1.44 (For
compatability with the old KDE apps using the QT 1.xx libraries) and the newer
QT 2.0.1. ( One who uses C++ based libraries might note that in many situations
the binary compatability cann't be maintained with C++ based libraries. In C
if proper care is taken while design the data structures in the library one
can achieve binary compatability to certain extent more easily. Well no
flaming here about c and c++ just a note).

QT 1.44 is in /usr/lib/qt-1.44/
QT 2.0.1 is in /usr/lib/qt-2.0.1/

( The sequence I specify here is not the proper way of doing the install , one
should  start by reading the INSTALL or README file and then by trying the
./configure --help and passing suitable options to configure script.)

I unzipped the tar.gz and started the ./configure

a) It failed saying QT >=1.42 or < 2.0 needed.  This is because even though QT
1.44 is on the m/c , by default the QTDIR environment variable is set to
QT2.0.1 library path. Which is proper as only the older apps requrie QT1.44

Well you have three solutions here

a.1) You can use  ./configure --with-qt-dir=/usr/lib/qt-1.44 (found using

a.2) Change QTDIR to point to qt1.44. ( I won't suggest this as this will
affect globaly and you are intrested in only getting this particular app to
compile and work).

a.3) The autoconf based systems run small code snippets to identify the
components of the system. So if you want you can change these code snippets if
required. The simplest way to do this is to update the configure script
suitably,It will have the code snippet. (However if you want to do it the
proper way you may have to update the acinclude.m4 and then do a make
dist-clean this should update the things properly without you haveing to woryy
about aclocal, autoconf, etc. if I am not wrong), For example In this case you
can if you want change it so that the QT lib < 2.0 limit is removed, However
here I wouldn't suggest this as a lot of things have changes between the QT1.x
and QT2.x libraries. But when installing OTHER SOURCES modifiying the
configure script or the acinclude.m4 is a possible alternative to get things
going. config.log is a good place to check for what caused the error that made
configure script quit in the middle.

b)   Once you have done one of the above steps you can rerun ./configure. This
time it will succeed. However You may note in the messages given by configure
that it says   Qt documentation No, kdelibs documentation  No,etc. These are
things which won't affect the compilation of kdevelop so either you can fix
them now itself which I will explain below  or else you can go ahead and finish
the compile and install, and later when running the kdevelop , using the
kdevelop setup option one can rectify it.

NOTE: QT documentation is in /usr/doc/[qt-devel-2.0.1 or qt1x-devel-1.44] I
would suggest using the qt-devel-2.0.1 documentation here as You will be
interested in using the latest library.

 Similarly KDElibs documentation is in /usr/doc/kdelibs-devel-1.1.2.


b.1) if you check the o/p of ./configure --help you will find entries like
--with-qtdoc-dir=DIR     where the Qt documentation is installed
--with-kdelibsdoc-dir=DIR   where the kdelibs documentation is installed
--with-kdocindex-dir=DIR    where the kdoc index files are
--enable-docbase        enable Debian docbase support
--enable-kdoc2        enable kdoc2 support

b.2) so also pass --with-qtdoc-dir=/usr/doc/qtxx-devel-xxxxx(which ever you
want here) and --with-kdelibsdoc-dir=/usr/doc/kdelibs-devel-1.1.2 to configure.

Thus the actual parameters to configure are :

./configure --with-qt-dir=/usr/lib/qt-1.44 --with-qtdoc-dir=/usr/doc/qt-devel-2.0.1 --with-kdelibsdoc-dir=/usr/doc/kdelibs-devel-1.1.2

Note: if you want to install the files to your own set of directories and not
the default (/usr) in redhat 6.1 then you can use the --prefix or
--prefixxxxxxx options available with configure script.

************ system fails at linking a small KDE application! *************


When trying the a.3) step above (i.e modifying the code snippet in configure so
that the QT < 2 limit is removed). I noticed one interesting fact. The
configure script started giving me this "system fails at linking a small KDE
application! ". ERROR. which many people in the list had got with other KDE

I am short of time now. However from this behaviour and by looking into the
config.log what I found was that the code snippet used to check the presence of
kde in your system uses the QT1.x library syntax and variables where as the
library its trying to link with is the 2.0.1 library. And also as in ALL
PROBABILITY the KDE APP you are trying to compile also requries the qt 1.x
library so I would SUGGEST THIS:

If you get this error then its most probably because configure has decided to
use the 2.0.1 library that came with the RedHat 6.1 and not the QT 1.44 library
thats requried by the Source code of the KDE APP you are trying to compile. So

a)  check if you can use the "--with-qt-dir" option or equivalent with the
configure script  so that you specify it to use the 1.44 libraries.

or else

b) try setting the QTDIR enviornment variable to 1.44 TEMPorarily for
compiling the KDE APP source code.

Re: [LI] Possible SOLUTION to LINKING small KDE application ERROR. And HOWTO Install KDevelop 1.0 Beta4.1
From: C Hanish Menon <>


On Mon, 29 Nov 1999, HanishKVC wrote:
> Thus the actual parameters to configure are :
>  ./configure --with-qt-dir=/usr/lib/qt-1.44 --with-qtdoc-dir=/usr/doc/qt-devel-2.0.1 --with-kdelibsdoc-dir=/usr/doc/kdelibs-devel-1.1.2

Well sadly enough the KDevelop1 BETA4.1 still has some BUG with the
--with-qtdoc-dir and --with-kdelibsdoc-dir options to configure. So even if you
specify this it won't use it. So the other solution which I had specified has to
be used. i.e

After starting kdevelop goto OPTIONS->KDEVELOP SETUP menu and manualy
correct the QTDoc and kdelibs Doc setting to the correct path as was passed to
configure script.

Re: [LI] Bare Bones Linux >> Bootdisk howto and ldd <<
From: C Hanish Menon <>


On Mon, 29 Nov 1999, sKhader wrote:
> On my system I would like to install Linux manually.
> I mean just get some tar balls, manually creating the
> filesystem. Then installing the necessary files, then
> adding the kernel, then installing the x-server, the web server
> the development utilities, ftp server, telnet server.

Check out the


It should be a good enough starting point, giving you a overview of how things
work in linux,  the MINIMAL filesystem etc.

Also "ldd" is a good tool to identify the libraries needed by a application.
WHich may be required when deciding what and all you need to have.

HanishKVC  5 Dec. 1999