Linux Installation and X-Windows
Welcome all novice Linuxers. If you are a seasoned hacker—someone who can code a device driver with the left hand, install a 200-node network with the right, all while reciting the pinouts of a parallel port-then skip this article. Novice to Novice aims directly at the PC expert who knows nothing about Linux or Unix, yet is curious about the uproar. As I am a complete Unix beginner myself, hopefully my naive, embarrassing mistakes will help many readers bypass much suffering and ridicule. This series will follow as I try to reach goals appropriate, I think, for the PC user who wants to learn Linux, yet doesn't want to modify his/her existing setup. Getting Linux to run on a DOS disk using UMSDOS is the obvious first goal. That, and getting X-Windows to run, are the topics of this article.
For the record, my system is a 486DX-66 with SVGA, dual floppies, Logitech rodent, 14,400 baud modem, and a 350 meg hard drive, of which the bulk is filled with games. I have managed to clean off 150 megs for Linux, which the various manuals and ads suggest is more than enough room. Both MS-DOS 6.2 and Windows 3.11 are installed (and frequently yelled at).
Despite Unix being one of the longest-lived operating systems, it still carries a mystique, one that has kept its popularity from growing amongst the general public. Unix seems to exist only in the darkest realms of academia, engineering, and high-tech graphics. As a MS-DOS user for too many years, I decided to finally learn Unix, and with that decision, I faced some choices: local schools offered evening courses for a few hundred dollars a pop; I could buy “personal” versions of most of the big Unix products for still only a few hundred dollars; or I could get—what was this?—some free version of Unix called Linux.
Being a miser, I chose Linux. My friend, David Coons, who is some sort of computer guru for Disney's Imagineering, heartily recommended Morse Telecommunication's Slackware Professional 2.1. He had bought a variety of releases and liked this one. He happily explained why, but since the language he used consisted primarily of acronyms, I just pursed my lips knowingly and nodded my head at the right pauses. My criterion was far simpler: I figured anything with a picture of “Bob” on it to be worthwhile. That this version would allow me to run Linux without repartitioning my hard drive sold me. UMSDOS seemed like a godsend.
I called ACC Bookstore, where I ordered the Slackware set as well as the massive DrX Linux book. The order-taker reassured me that Linux-particularly Slackware-was a great way to learn Unix and not that difficult to figure out, at least on the basic level.
Novice Note: When you buy Linux, see what type of information comes in the enclosed manual. Slackware Professional comes with a 600-page book that duplicates all the vital information in DrX Linux and is better organized. If I had known, I wouldn't have ordered DrX Linux, since the non-duplicated material includes things like “The Kernel Hackers Guide” and the “Japanese Language Extension HOW-TO”. It will be a long while before I understand Linux well enough to start hacking the kernel, and by then, the manual will be outdated. For now, you may want to save your money.
After ordering Linux, I went out and bought a CD-ROM player. I had debated for months about whether to buy a quad-speed (since I already have an original 8-bit SoundBlaster) or to buy the Creative Labs Discovery Package which would upgrade my soundcard to 16-bits but give me a less desirable double-speed CD-ROM. Again, the miser won out and I got the Discovery kit. Not a bad deal, I rationalized, since the rumors were that high-density CDs would start to appear in a year or two, and I would rather be obsolete as cheaply as possible. Also, Linux appears to have solid support for Creative Labs' products. While installing the multimedia kit, I switched my floppy drives so that the 3.5" became my A: and the 5.25" became B:. David had highly recommended doing this.
I got the CD drive, got Linux, got the manuals, and started screaming. All the manuals suggested repartitioning using FIPS and were of no help regarding UMSDOS-just vague references. Even Doom is listed in the Slackware index but nothing about UMSDOS. I didn't want to repartition! A call to David and he reassured me that the options would be obvious on what to do when I ran setup, after first creating the boot and root disks. Not to panic. Okay, thanks!
Ordinarily, I wouldn't have minded repartitioning. The program to do so, FIPS, a non-data-destructive FDISK, is a brilliant and obvious (are you listening, Microsoft?) utility, but I worried that I might FIPS too much or too little disk space and possibly even kill my MS-DOS programs. UMSDOS is what I wanted, a no-commitment option.
Taking a deep breath and chanting the “Doom” mantra, I began. Following the installation instructions (I hate to RTFM), the first step was to prepare boot and root disks. Since I had a SoundBlaster system, I assumed the SBPCD boot image would be the obvious choice. For the root disk, I opted for UMSDS144, which was the mythological UMSDOS system for 1.44 disks.
With these disks created, I booted with the boot disk. It didn't recognize my CD player. Hmmmm. Of course! The Discovery Kit used a Sony CDU-33a drive. I re-made the boot disk this time choosing the CDU31a option. Yes! Rebooting with this new disk showed Linux recognizing my drive.
I ignored the option to set boot parameters, put in the root disk and stalled at the first hurdle. Did I want a swapfile on my hard drive? I have eight megs of RAM and the manuals said with that amount of RAM not too worry, so I just press <Enter> and got a Login prompt. A feeling of lordly omnipotence washed over me as I smugly logged in as root and ran setup.
A menu came up and the panic started again. Tags, swapspace-what's with all the choices? I finally figured out that the important first step for beginners is (T)arget. This will set up a C:\LINUX subdirectory on your hard drive and prompt you through the other necessary procedures. You will need to select a source; in my case a CD-ROM drive and specifically, the Sony CDU-33a.
Next, you get to choose which disk sets to install. I decided on all of them except the F series (FAQs and HOW-TOs). Finally, you select a method of installation, whether everything goes to hard drive (“SLAKWARE”-where you make all the decisions as to which files to install) or three choices of TAG sets which preselect which files to install: SLACKPRO (all files on the hard disk, with upgrade capability); SLAKPRO2 (some files are links to CD but without easy upgrade capability); or SLAKPRO3 (many links, again without easy upgrade capability). Links are references on your hard disk to the actual files on CD; this conserves hard disk space but gives up access speed.
For my first installation attempt, I chose the “slakware” option, so that everything would go to the hard drive. In the middle of set “X” the drive ran out of space. Rebooting DOS and using X-Tree (which ran out of memory), I deleted the contents of C:\LINUX for another try. I debated whether to upgrade my drive to a full gigabyte. The mortgage was due, and as you already know, I'm a miser, so I didn't.
My second installation was “slakpro3”, which put the fewest files directly on the hard drive. This option would make later upgrading difficult but is a good exploratory choice. It used only 15 meg, produced about 3000 files, and didn't do much. Commands like adduser didn't work. I'm not even sure the the shell was active. Back to DOS for Linux deletion again.
The third installation I tried was to have all the files on the hard drive (“slackpro”), because I didn't know that this was larger than my previous “slakware” installation. After an hour, sixteen thousand files, and 150 meg, my drive again ran out of space. Okay, maybe I don't need 2 million fonts for TeX, some of the programming tools, or network stuff. Back to DOS, again. My guess is that 200 meg would handle this type of installation.
Novice Note: The “A” and “Q” disk sets both deal with installing the kernel, whether you want IDE without SCSI, IDE with SCSI, etc. You may want to do two rounds of installations: first, you would just deal with sets “A” and “Q” to find exactly which kernel you want. My choices narrowed down to CDU31ao (without SCSI support) or CDU31a (with SCSI support); I installed CDU31a. Your second round of installation would then cover all the other disk sets.
Fourth time, again using the “slackpro” option and ONLY installing the A, AP, D, Q (for the correct kernel), and X data sets, used 50 meg and created about 5000 files, but the instructions regarding LOADLIN didn't work. Apparently LOADLIN doesn't get copied over to the hard drive at any point. I found the LOADLIN.ZIP in the KERNELS subdirectory on the Slackware disk, unzipped it into C:\LINUX, and modified the given LINUX.BAT to launch it:
rem C:\LINUX.BAT echo off cls echo Put the Slackware CD in the drive! pause rem First, ensure any unwritten disk buffers are flushed: smartdrv /C rem Start the LOADLIN process: c:\linux\loadlin c:\linux\vmlinuz root=/dev/hda rw
IT WORKS!!! IT WORKS!!! IT WORKS!!! No more boot and root disks! The lack of LOADLIN was likely the problem with “slakpro3” not working correctly, but I won't try that out now that this setup works. I “adduser”ed an account for myself with no problems, the procedure being very easy, and logged in on that account via Alt-F2. This is “way cool”, having two active accounts going simultaneously.
Novice Note: Capitalization counts! I went nearly crazy trying to run a configuration program. The subdirectories were all spelled correctly but some of the letters had to be in capitals. I recommend installing the Mouseless Commander. (I believe it is in the AP dataset. It is now called the Midnight Commander, since it can now be used with a mouse, but Slackware still refers to it as the Mouseless Commander in some places.) It's a great Norton Commander clone and, for this X-tree user, a comfort and an easy way to view files.
Well, it took four tries and at least as many hours, but the Linux base is on the MS-DOS partition and appears to run smoothly. I had no problems with either DOS or Windows after installing Linux; it appeared as just another subdirectory, albeit with a ton of files.
Now to install X-Windows. I called David for just a couple of clues. “You're on your own. I didn't install X.” I politely hung up as he explained how he was writing an amazing device driver with his left hand and installing a 200-node network with his right.
With the benefit of hindsight, I highly recommend that before you attempt to install X, you have on hand information about your monitor-specifically bandwidth, horizontal synchronization, and vertical refresh rate. The data should be in your monitor manual. If not, the Linux guides suggest looking in the files called “modeDB.txt” or “Monitors” located in /usr/X11R6/lib/X11/doc. Best to have the actual monitor guide. Also you should know what type of video card you have. If you have MS-DOS 6.0 or later, the MSD program will give you that information. In Linux, a program called SuperProbe will also tell you.
Installation is relatively easy, but is only half the job. Again, all this applies to Slackware Professional.
Change to the /usr/X11R6/lib/ConfigXF subdirectory (watch for capitalization!) and run ConfigXF. The program will first ask for information about your mouse, if you have one. I have a Logitech mouse so I selected the Microsoft option. The guides suggest this, saying that only if you have an older Logitech mouse should you choose the Logitech option. After this, I agreed with the given defaults and having /dev/mouse as the path.
Onward to video cards. From the massive list, I chose the Cirrus GD-5426. Next came a monitor list, and I opted for generic VESA SVGA. After this, it asks you questions regarding virtual desktop size and other things. Since I didn't understand half of the questions, I just accepted the defaults. Eventually, you get to a screen where you can save the set up, tune the set up, quit, and other choices. For me the option to tune the set up just didn't work, producing a variety of errors.
What did work is this: saving the set up to the default choice. Edit /usr/X11R6/lib/X11/XF86Config, looking for the section called “Monitor”. You'll note that Bandwidth, HorizSync, and VertRefresh are marked with “EDIT THIS!!!” It took me too many times to realize that when the X-installation program said you should edit the XF86Config file that you really had to edit it. Now the crucial part: replace the information in the file with the information from your monitor manual.
Novice Note: Take a few minutes and learn to use the text editor vi. Not only is this editor ubiquitous and small, but many other programs use similar commands. For instance, the :q that will quit vi will also get you out of the man program.
For example, I entered the following for my CTX CMS-1561 Multiscan monitor:
Bandwidth 100 HorizSync 30-60 VertRefresh 50-90
In addition to these changes, I also added lines that appeared in the Linux manuals but not in the XF86Config file. They probably aren't needed, but what the heck. Under “Keyboard” I added:
AutoRepeat 500 5
Under section “Screen”, subsection “Display” I added:
Depth 8
Save the file. Start X-Windows with startx (or xstart) and, with luck, it will run. If it doesn't, get the Linux manual, skip the automatic installation altogether, and carefully do it yourself, checking that the information in the Config files match your set-up.
Whew! Linux works. X-Windows works. What next? Well, I could install the XAP disk set to give me programs to use when I am in X. Doom could finally come out of hiding. Or I could install TeX and see what those Klingon fonts look like. Or I could tackle SLIP and see if I can get working access to the Internet. Or I could even reassert my latent geekdom and write a “Hello world!” program in GNU C/C++. Linux has so much to explore-but then, that's the fun. Watch out David and all you other Unix gods-we're coming up the ladder!
Dean Oisboid (73717.2343@compuserve.com), owner of Garlic Software, is a database consultant, Unix beginner, and avowed Doom addict.