Installing SuSE Linux 7.1 on a Pentium 4 Computer

Installing Linux on a Dell 330, which uses a Pentium 4 chip, revealed a myriad of new problems. First, the kernel and installation RPM files in SuSE 7.0 were unable to identify the Pentium 4 chip. The SuSE installation refused to start, because it could not identify the CPU. A solution to this fatal problem with their product was eventually found, buried in an obscure file on SuSE's web site. They are apparently aware of the problem (if not particularly concerned about it) and provide a downloadable bootdisk that is supposed to recognize the Pentium 4. Although this new bootdisk did make it possible to install Linux, there was no obvious way to install a bootable kernel from the CDROM during installation, so when the installation was complete, the kernel that did get installed would not boot. Thus it was decided to upgrade to SuSE 7.1.

Unfortunately, SuSE 7.1 was not much better. SuSE's installation program now automatically goes into Yast2, which is the graphical version, instead of offering a choice between Yast1 (the text version) and Yast2 as before. Unfortunately, Yast2 had some weird incompatibility with my Matrox G450 video card, and sent it into some bizarre video mode that was outside the sync range of my monitor. Since the maximum resolution of this monitor is 1800x1440, well above the resolution normally used by Yast2, this was clearly buggy behavior. Luckily, the monitor was sophisticated enough to shut down automatically before being damaged. It was necessary to switch to an older video card in order to start an installation. (However, on another, identical computer, Yast2 worked if the horizontal screen size was first shrunk using the monitor controls.)

However, this was only the first problem. Yast2 was perfectly happy to install components that were incompatible with each other or with the hardware, rendering the system unbootable, while giving no warning messages. SuSE installs three kernels: a 2.2.18, a 2.4.0, and a "SuSE" kernel. After 3 reinstallations, I finally got system that was bootable with the 2.2.18 kernel; however, the only outcome I ever obtained with the other two kernels was a series of kernel panics. (Note: I didn't run 'mk_initrd' so maybe this would have helped). This also happened on a different Pentium 4 computer.

So the next step was to install a 2.4.2 kernel from ftp.kernel.org. Installation of this kernel was thwarted at first by a bug in in.telnetd that denies access to users for whom it cannot do a reverse DNS lookup -- e.g., all remote access dialup clients. Eventually I found a note on SuSE's website acknowledging this problem and downloaded a replacement version of telnet.

Building a kernel at the console revealed another bug: "make xconfig" did not work unless the command "xhost +localhost" was executed. Presumably there must be some file somewhere that allows X to use the local display. Rather than search the 111,000 system files on the disk to find it, I just put "xhost +localhost" in my .xinitrc file.

The next problem was that no kernel in the 2.4 tree would boot on this machine. Successive kernels would hang at APIC, then at SMP, and finally when a kernel was installed in which these were turned off, it would hang after reading /etc/init.d/boot.local, after printing the apparently innocuous message "Creating /var/log/boot.msg". This problem could not be solved even after trying numerous kernel configurations. Eventually it was found that the problem could be eliminated by editing the file /etc/init.d/boot and changing the line
    /sbin/klogd -s -o -n -f /var/log/boot.msg 
to
    /sbin/klogd -o -n -f /var/log/boot.msg 
This finally allowed the 2.4.2 kernel to boot. Also, for some reason klogd had to be stopped and restarted after booting to prevent it from pushing the system load to 1.0. (This happened on one machine, but not on another).

This was not the end of the problems, however. Apache httpd would not start because the default configuration provided by SuSE tried to load a non-existent module (mod_php4.c) and then gave up after not finding it. Once this module was identified by checking the apache logs and removed from the /etc/httpd/httpd.config file, httpd started up with no problems.

Next, the X default desktop installed by SuSE (KDE) was extremely ugly, with multicolored, unappealing icons and unpleasant color schemes. KDE is also extremely slow, taking almost half a minute to initialize itself on a 1.5 GHz Pentium 4. The rxvt that was installed apparently had no support for scroll bars and ignored the settings in .Xdefaults. Considerable tweaking (e.g., switching to FVWM and compiling and reinstalling a different version of rxvt) was needed to get the system to look tolerable.

After reinstalling the Matrox G450 card, neither X Windows, sax (the SuSE X configuration utility), nor AcceleratedX v6.0 would start. Luckily, Xi Graphics had an update on their Web site that could handle the G450 card.

Then, of course, there were the usual problems that recur every time one upgrades the system: the backspace key didn't work, the system couldn't write to the xconsole, etc., ad nauseam. Practically the only bright spot was that the system clock didn't need to be reset by as much after a reboot. After a reboot, the clock was only 16 hours off instead of several months as before. Apparently this is caused by /usr being on a separate partition from the /boot partition.

Copying stuff over to the new computer was also not trivial. 'Tar' on a computer running a 2.2.16 kernel ran for 3 hours and then terminated abnormally when size of the tar file exceeded 2GB. It was necessary to use ncftp or mc to copy the files. One advantage of the newer kernels is a larger maximum file size.

Other problems

  1. The default mail configuration installed by SuSE was broken. Edited /etc/sendmail.cf and changed the line starting with DMYAST_ASK to DMmy_domain_name.org
  2. Set SYSLOGD_PARAMS="-r" in /etc/rc.config to enable remote logging.
  3. Changed /etc/syslog.conf to write to /dev/xconsole instead of /dev/console, made it writable, and changed its ownership to the user running X so X could actually write to it.
  4. X appears to hang when first started. The window manager (fvwm95) waits indefinitely, and does not finish decorating the window borders until the mouse is moved.
  5. The boot manager now has a graphical menu with a "penguin" instead of a text interface. The penguin has a very cheesy appearance and could not be removed by changing /boot/boot.b to point to boot-text.b (This problem is not yet fixed).
  6. All the Linux appletalk servers gave the following message every 10 seconds
        atalkd[271]: rtmp_packet bad phase 1 version 
    This message started when Apple G4's were added to the network. Thus far, there is no clue about what if anything this might mean, or what could be done about it if the computer generating this error could be found. (This problem is not yet fixed).
  7. Syslog hangs if there is something it does not like in its config file, without giving any error messages. I guess I never noticed this before. (This problem is not yet fixed).
  8. Anonymous ftp didn't work. Uncommented the following line in /etc/pam.d/ftp:
       #auth    sufficient     /lib/security/pam_ftp.so 
    and changed the path for ftp in /etc/passwd to the correct path. After this, anonymous ftp worked but gave spurious errors about "bare line feeds" every time users type "dir" or "ls". Normal users did not see this problem. Used this as an opportunity to try to install srp 1.7.2. This installed okay on a machine running SuSE 7.0 but the pam modules would not compile on the machine running 7.1. It also was necessary to edit base/lib/getdef.c to add ENV_ROOTPATH and USER???? to get rid of the error messages that occur when running srp's 'passwd' program. As for the pam modules, I eventually gave up trying to edit srp's config.h files and ftp'd the pam modules from the old machine. Unfortunately, it turned out that either the new version of srp still has a few bugs, or some step is missing from the documentation. After editing the /etc/pam.d/passwd file and running 'tconf' as the manual instructs, it was found that passwords were not in fact being updated correctly. It became impossible to telnet to the machine, to login, or change the password (luckily, I was still logged in on another window). Solution: deleted all srp-related files and switched to wu.ftpd instead of in.ftpd (in inetd.conf). This solved the "bare line feed" problem. Edited welcome.msg to remove all those silly wu-ftpd login messages. The welcome.msg file for wu.ftpd is now in /usr/local/ftp/msgs/welcome.msg while the corresponding file for in.ftpd is in /etc/ftpwelcome.
  9. The LaTeX-related program dvips creates PostScript files with 'A4' paper size instead of 'letter'. Solution: edit /etc/texmf/config.ps and change the paper size settings so the 'letter' settings appear before the A4 settings. The first '@' in this file is used as the default.
  10. After installing openssh 2.5.2, on one computer the following message was printed at startup:
        Disabling protocol version 2. Could not load host key 
    Solution: removed /usr/local/etc/ssh* and /usr/local/etc/primes, edited the startup script /sbin/init.d/sshd to indicate the absolute paths in usr/local/sbin where openssh installed files, and removed all /etc/ssh* .
  11. Programs that use ncurses don't redraw the screen after terminating. (This is not yet fixed).
  12. Exiting and restarting X kills syslogd. (This is not yet fixed). Also, xconsole no longer works after exiting and restarting X. Sometimes typing "kill -1 syslogd" helps, and sometimes it doesn't. Also, if the system clock is reset after booting up but before starting X, xconsole doesn't work. Correct functioning of this program seems to depend on the phase of the moon.
  13. Telnet is blocked for unknown reason for remote users using ppp. Remote IP numbers provided by the ISP on one phone number work, while others get the message "telnetd: getnameinfo". On machines using SuSE 7.0, it works. Ssh also works on both systems. Solution: ftp://ftp.suse.com/pub/suse/i386/update/7.1/a1/nkitb.rpm and ftp://ftp.suse.com/pub/suse/i386/update/7.1/n1/nkitserv.rpm (use rpm -i --force).
  14. Unable to write files larger than 129MB on SCSI Jaz disk. Solution: Termination was set incorrectly on SCSI chain.
  15. Corel Draw will not execute, causes AcceleratedX to hang, forcing reboot (This is not yet fixed). Solution: tried to install a program called "sketch". This in turn required installing the Python imaging library. After some editing of the install scripts e.g., changing the paths and changing -ltcl8.0 to -ltcl8.3 and -ltk8.0 to -ltk8.3 on the "make" command line and running the commands:
            $ cp PIL.pth /usr//lib/python1.5/site-packages
            $ mkdir /usr/lib/python1.5/site-packages/PIL
            $ cp _imaging.so PIL/* /usr/lib/python1.5/site-packages/PIL 
    sketch also appeared to install without any error messages, but when executed it died with the error:
          dalek:/home/tjnelson$ sketch
          Traceback (innermost last):
          File "/usr/local/bin/sketch", line 34, in ?
            Sketch.main.main()
          File "/usr/local/lib/sketch-0.6.10/Sketch/Base/main.py", line 144, in main
            from Sketch.UI.skapp import SketchApplication
          File "/usr/local/lib/sketch-0.6.10/Sketch/UI/skapp.py", line 27, in ?
            from Tkinter import Tk, TclError
          ImportError: No module named Tkinter 
    Tkinter is apparently a GUI toolkit for Tk. Installed tkinter from the original Linux distribution medium. Sketch seems to be a very well done replacement for CorelDraw.
  16. After installing tkinter, suddenly it was no longer possible to print. Suseconfig (which runs automatically whenever a program is installed from the CD) had overwritten /etc/texmf/config.ps and set the default paper type to A4 again. Restored config.ps from backup.
  17. After about a month, printing suddenly stopped working. Stopping and restarting lpd in /etc/rc.d, rebooting, or restarting lpd manually had no effect. Running 'lpc' gave the message
              lpc: connect: no such file or directory 
    The files in /var/spool/lpd, and the lock files for lpd were all correct. No useful documentation for lpc could be found in the man pages, the HOWTOs, or on the Internet. Solution: This message either means that lpd is not running, or that it cannot make a connection to the printer for some reason. Check the following:
    1. Make sure lpd is running. (ps -auxSe | grep lpd)
    2. Make sure lpd is executable by lp (chown lp.lp /usr/bin/lpd)
    3. Make sure permissions are set correctly in /var/spool/lpd.
    4. Make sure it can connect over the network to the printer (run ping, netstat, or tcpdump; check for stale lock files or other junk in /var/spool/lpd/*; check for FIFOs in / that it might be trying to use).
    5. Try power-cycling the printer. Sometimes printers get wedged after receiving junk from the Internet.
    6. Try replacing /usr/bin/lpc and /usr/bin/lpd with different versions from another computer.
    7. Make sure all files, devices, and paths specified in /etc/printcap exist and are accessible by lpd.
    8. As a last resort, try rebooting. Occasionally a port will get jammed for some unknown reason. If so, even if the daemon is running, it can't connect to the port.
  18. MIT's PGP software doesn't compile, complains about libUI not being found. Tried GnuPG, which compiled and installed satisfactorily. However, the manual was full of politically-correct expressions and abuses of English. It was too hard to encrypt a file while I was barfing, so I deleted GnuPG.

Back