Best of Technical Support

Our experts answer your technical questions.
X Marks the Spot

My system worked fine for a few months, but now I'm facing some problems with it. When using X, the system suddenly freezes. Neither the keyboard nor the mouse responds. I can't telnet to my computer—nothing works. Log files tell nothing—just as if nothing happened—but I have to boot my computer and hope fsck can fix everything. This happens about once a week and I don't have the slightest idea why. The system is Red Hat 6 out-of-the-box with no updates. Tried another video adapter, but that didn't change anything. Hardware: AMD-233, 64MB, ATI 3d Rage Pro, 3c509, Seagate 32. —Tony Söderudd,

It's hard to tell what the problem is. One possible reason is a bug in X; try upgrading to the latest stable XFree86 (3.3.5 at the time I write this). Another possibility is some kind of hardware/resource conflict, although since you say the problem happens only once a week on average, it's not too likely. The last option is simply bad hardware, like an overheating CPU (bad fan?) or flaky memory. I believe that is the most likely alternative and the freeze is actually completely unrelated to X. See —Marc Merlin,

A Communications Problem

For the last couple of years, my computer has been a small server on the Internet. Its connection is via modem. I had no problems the first year or so. On April 16, 1999, my /var/adm/messages file filled up with garbage. After a couple of weeks, I determined the phone company came to the wrong residence and “played” with my phone lines while my modem was connected. Ever since that time, my modem will randomly hang up without dropping carrier. Linux still thinks it is connected to the Internet, i.e., the route, ifconfig... still show a connection even though there isn't one. This doesn't happen every time the modem disconnects. Sometimes this will happen a couple of times a day; sometimes only once a month. Once it does happen, there is no way to fix it, other than physically turning the modem off and back on. I've tried replacing all hardware: modem, modem cable, serial port(s), phone wiring, phone jack. I've also tried compiling a new kernel and pppd. Nothing has helped. What in the world is happening and how do I fix it? —Eric Trimmer,

There is a relatively simple solution, but you may need to upgrade your kernel and PPP package to support it, depending on the age of your actual installation. Use the lcp-echo-interval and lcp-echo-failure options to tell pppd to terminate when it doesn't receive a certain number of ping request responses. pppd will then terminate and cycle the connection when your physical layer goes down, whether or not your modem is correctly telling Linux it has lost its link. —Chad Robinson,

Those Pesky .tgz Files

The instructions Software Forge Inc. provided for installing LinuxCAD are not really applicable to OpenLinux 2.2. What is the best way to install software in a .tar or .tar.gz file on an operating system that uses RPM? —Wayde C. Gutman,

You can actually install a tar file just fine on an RPM-based system. It is, however, better to have an RPM, since it keeps track of the files installed. I believe you should be able to use alien to convert your tar file into an RPM: —Marc Merlin,

The tar.gz format is somewhat similar to .ZIP under other operating systems. Usually, you'll just unpack the tar file, following instructions found in the included README or equivalent file.

Use tar tvzf filename to list the contents of a tar.gz file, and tar xvzf filename to extract it. tar is one of the most important UNIX commands; check the introductory UNIX guides or check info tar and man tar to get detailed information. —Alessandro Rubini,

To Load or Not to Load

I have tried to use function request_module in my code to load dynamic kernel modules. The request_module function itself is not a problem, but the function kerneld_send, which is called by request_module. Every time I try to insert (insmod) my module, which is supposed to request the other module, I get the following error: “helloworld.o: unresolved symbol kerneld_send”. Why can't request_module find the kerneld_send function? I use Red Hat 5.0, kernel 2.0.36RTL1.1. —Kristiina Valtanen,

At insmod time, the module is linked to the running kernel, using the public symbol table exported by the kernel (shown in /proc/ksyms). The function request_module (defined in linux/module.h) is actually an in-line function, and it gets expanded in-line at compile time. However, kerneld_send is not in-line and must be located at link time. Since kerneld_send is not exported, your module can't be loaded. The function is not exported, because no module normally asks for kenreld functionality. Unneeded internals are not exported. You can export the function by hacking the file kernel/ksyms.c and rebooting a new kernel. —Alessandro Rubini,