Best of Technical Support

Various

Issue #96, April 2002

Our experts answer your technical questions.

RPM Won't Let Me Upgrade

On a Red Hat system with RPM 4.0.3-1.03, it seems the options --nodeps and --force don't prevent the system from checking dependencies. Therefore, I am not able to update certain packages. For example,

rpm --nodeps --force -Uvh db3-3.2.9-4.i386.rpm

gives the error:

failed dependencies:
libdb-3.1.so is needed by pam-0.72-26
libdb-3.1.so is needed by sendmail-8.11.0-8
# rpm --nodeps --force -Uvh pam-0.75-14.i386.rpm
error: failed dependencies:
        libdb-3.2.so   is needed by pam-0.75-14
My older versions of RPM used to work.

—Yi Zhao, yzhao2@yahoo.com

I usually get rid of this kind of message by upgrading everything in a single RPM call:

rpm -Uvh -force --nodeps pam-0.75-14.i386.rpm
sendmail-XXX db3-3.2.9-4.i386.rpm

—Mario M. Bittencourt Neto, mneto@buriti.com.br

Checking Both /etc/hosts and DNS

When I try to resolve a name that is not in DNS but is in my /etc/hosts file, nslookup refuses to look at /etc/hosts. I want to look at both /etc/hosts (first) and then dns. My /etc/nsswitch.conf file has this:

"hosts: files [NOTFOUND=continue] dns"

I have a mixed environment of UNIX platforms, and my other UNIX boxes (HP-UX and Sun) work with this configuration. Can you tell me what I am missing with my Linux setup?

—Jim Booker, jim.booker@verizon.com

nslookup will not look at /etc/hosts; this is normal behavior. The host command will look at both, however. The HP-UX and Sun nslookup command may have been modified to function differently.

—Marc Merlin, marc_bts@valinux.com

USB Keyboard Stopped Working

I have a Compaq Presario 5000 series PC, on which I've installed a number of different systems, including Red Hat 7.1, from which I'm writing this question. When I attempt to install Red Hat 7.2, I am having a problem getting the installation procedure to accept keyboard input. I have a USB Compaq Internet PC keyboard. Has there been a regression in the installation procedure that causes problems with USB keyboards? If so, is there a workaround?

—Brian W. Masinick, masinick@yahoo.com

Try configuring your BIOS to provide “Legacy Keyboard Support”.

—Christopher Wingert, cwingert@qualcomm.com

I see you are using Red Hat, but for those having the same trouble using Mandrake, I have seen reports of Mandrake 8.1 having a file /etc/sysinit/usb that requires the entry KEYBOARD_AT_START=NO in order for Linux to work and function correctly with a USB keyboard.

—Felipe E. Barousse Boué, fbarousse@piensa.com

SuSE Won't Boot, Red Hat Won't Display

I installed a copy of SuSE, which uses LILO, on my Dell Dimension L866r, and when I boot, I just get a bunch of 0s and 1s flowing over my screen. I installed Red Hat 7.2 and it installed GRUB, which worked. Unfortunately, 7.2 (like all Red Hats from 4.x onward) can't handle my Nokia Multigraph 447x monitor. I sent an e-mail to them, but they didn't respond.

—Jim Macdonald, jimm@mediaone.net

I think the simplest thing to do would be to use Red Hat 7.2 and set up the monitor modes manually. The mode information for your monitor is located at www.ibiblio.org/pub/linux/distributions/redmondlinux/redmond/build38/live/usr/share/hwdata/Monitors.

—Christopher Wingert, cwingert@qualcomm.com

Chances are that LILO is having a BIOS geometry problem. Do you have your BIOS set to some sort of geometry translation? Usually this is called large disk support, or LBA mode. This will bring the number of cylinders down to a lower number (hopefully below 1,024 cylinders) and allow LILO to see the whole disk. If this isn't possible, make sure that the partition on which your kernel gets installed (/ or /boot depending on the distribution) is all contained below 1,024 cylinders. This error also may mean that LILO interpreted your disk geometry incorrectly. You may have to tell LILO what your real geometry is, or you may need to give LILO the “linear” option. Look at section 2.2 at www.linuxdoc.org/HOWTO/mini/LILO-2.html for more information.

—David Brown, david@caldera.com

The page www.geocities.com/SiliconValley/Peaks/3233/linux.html has a link to an /etc/X11/XF86Config file running with a Nokia Multigraph 447X as yours.

—Felipe E. Barousse Boué, fbarousse@piensa.com

You Can't Log in Now; Get a Life

I have a couple of questions. First, how would you create a backup user for root with the same privileges as root? Second, is there a way to allow users to log in only within a specific time frame? An example of this would be to allow a user to log in between the hours of 6 A.M. and 6 P.M., but not to allow logins outside of this window.

—Jerry Fulkerson, hrlinkin@aol.com

To add a second root account, edit /etc/passwd and /etc/shadow (using vipw and vipw -s). In both files, duplicate the line with root and change the name to backuproot.

—Marc Merlin, marc_bts@valinux.com

Regarding control of login time, there are several ways of doing it. Using the Pluggable Authentication Modules (PAM) system's pam_time module is one of them, for instance. The file /etc/security/time.conf could have the line:

login;*;joe;Al0600-1800

This means the user joe is allowed to use the service called login, from any terminal (*), all days (Al) only during 06:00 and 18:00 hours. Be aware that this requires the entry:

login   account required   pam_time.so

on the PAM configuration file, which is usually at /etc/pam.conf or alternatively, the file named login to be within /etc/pam.d/ and containing:

account required pam_time.so

A good PAM reference can be found at www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html#toc4.

—Felipe E. Barousse Boué, fbarousse@piensa.com

I Have No DHCP and I Must Network

Currently, I use Red Hat 7.0 on PCs in my computer programming lab. These computers use DHCP to connect to the building network and the Internet. Recently I attempted to upgrade these machines to a stock version of Red Hat 7.2. I have been unable to get computers to connect via DHCP. I have tried to configure the card and networking using the various GUI tools but have had no success.

—Bill Hummel, hummelb@readingsd.org

Looks to me that you are having trouble connecting because of two possible issues. First, you have not configured the DHCP client to connect to the network. I just did it on a Red Hat 7.2 machine by having the minimally configured file /etc/sysconfig/network-scripts/ifcfg-eth0 for network interface eth0 as:

DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"

This will provide enough information for the system to boot up, and when starting networking facilities, to look for an IP address provided by a DCHP server. Second, you probably set a firewall or network filter that is not allowing DHCP to work properly. Did you request a “high” security level when installing? Just one time, get rid of the ipchains setup that Red Hat 7.2 sets up by commenting all lines in /etc/sysconfig/ipchains and then try step one.

—Felipe E. Barousse Boué, fbarousse@piensa.com

What Does ./ Mean?

When (and why) is it necessary to put ./ in the beginning of a command line?

—Murray Zangen, murray@nj.com

The ./ means current working directory. You need to put ./ in front only when you want to run a program in the directory you are in, and that directory is not in the PATH shell variable ($PATH).

—Usman Ansari, uansari@yahoo.com

The reason the current directory is not in the path is due to security concerns. If an adversary installed a Trojan ls command in the /tmp directory and you cd-ed into /tmp and typed ls, you would run the adversary's program. If you really don't like having to type ./, place the current directory at the *end* of your PATH shell variable, this will make your file system surfing safer.

—Christopher Wingert, cwingert@qualcomm.com

Opening a File with filep_open

I have created a configuration file stored in the directory /etc. I have been trying to open this file from a C program without success:

struct file     *filp;
char *Filename = "/etc/pg.conf\0";
filp = filp_open(Filename,00,O_RDONLY);
if (IS_ERR(filp)||(filp==NULL))
        return;

Could someone advise me how to fix this?

—Senthil, senthil@singnet.com.sg

I believe that you do not have the parameters correct to filp_open(). Try

filp = filp_open( Filename, O_RDONLY, 0 );

—Christopher Wingert, cwingert@qualcomm.com

Setting up a Video Conference

Anyone done anything with web cameras under Linux? I have a need to do some video conferencing with some people in the US.

—Arnold Robbins, arnold@skeeve.com

Many Parallel/USB web cameras are supported by Linux. You should pick a camera that you are interested in and search the web to make sure that camera is supported under Linux. Check out www.openh323.org/h323_clients.html for video conferencing support.

—Christopher Wingert, cwingert@qualcomm.com

I guess the best for you would be to visit www.linux-usb.org (look for the Working devices list) and www.freesoft.org/software/NetMeeting. This HOWTO is about communicating between Microsoft Netmeeting and Linux. Lastly, video and conferencing in Linux are evolving rapidly and are subjects in constant improvement. These links may be good initial references for you to begin with, as they were for some people who just deployed a large Linux-based videoconferencing system.

—Felipe E. Barousse Boué, fbarousse@piensa.com

Philips has a site for Linux-compatible cameras using USB: www.smcc.demon.nl/webcam. For conferencing, check out www-nrg.ee.lbl.gov/vic/#overview and www.gnomemeeting.org.

—Paul Christensen, pchristensen@penguincomputing.com