More Notes on GNU/Linux Installation for Lazy People and Mechanical Engineers By San Le, slffea AT yahoo.com Version 4.0, last updated: June 23rd, 2005 for Slackware 10.1 Version 3.1, last updated: April 14th, 2005 for Slackware 7.1 Version 3.1, last updated: February 16, 2005 for Slackware 7.1 Version 3.0, last updated: August 10, 2001 for Slackware 7.1 Version 2.0, last updated: February 12, 2000 for Slackware 4.0 Version 1.0, last updated: July 29, 1999 for Slackware 3.4 For the most current version of this guide: http://www.geocities.com/Athens/2099/linux.html Copyright and Warranty Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 San Le. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being the Introduction, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". If you plan to distribute it, please go to my webpage to get the latest version. Instead of including a copy of the "GNU Free Documentation License", I will sim­ ply provide this link: http://www.gnu.org/copyleft/fdl.html Introduction In September of 1997, I bought a PC for home use. Because I came from an engi­ neering background with lots of UNIX experience, I wanted to replace Windows 95 with some type of UNIX emulator. In addition to UNIX, with GNU/Linux I got free compilers, graphics libraries, and other utilities which made my system even more impressive than the Silicon Graphics workstation I had at my last job. And, except for the cost of 4 CDs($12.53 from Cheap*Bytes)everything was free(I have since bought a boxed package of Slackware-7.1 for $40.00). My present goal is to write scientific programs like I did at work and add the graphics for visualization. The contents of this document represent the notes I took to install both GNU/Linux and the tools for software development. Before you read further, you should be aware of a few facts. I'm a traditional user of GNU/Linux before the days of easy installation when everyone was expected to build their own custom kernel. The instructions below are for peo­ ple who are like me. If you are new to GNU/Linux, it would be worthwhile for you to simply buy Redhat and avoid the nuisance of kernel rebuilding. If I were smart, I'd do the same. Further, I do not include the steps of simply getting a minimum version of GNU/Linux up and running since every book and installation guide already does it(See the Documentation and Bibliography section below), and it actually isn't very hard. This omission means there is very little said about running Setup and GNU/Linux's fdisk. Therefore, the reader should be someone who has done a minimum installation and wants to know about the things which follow. The reader should also have engineering level experience with UNIX. My notes refer to the following system: BIOS Intel 1.00.09.DTO upgraded from 1.00.04.DTO. CD Drive Hi - Val CD-RW 52x24x52 ATAPI CDROM drive Model H522452, Serial E141419 CD Drive2 Toshiba 24x Graphics Card ATI Rage II+ 8192 KB (replaced Matrox Millennium II 4 MB) Hard Drives 1 6.4 Gig Western Digital EIDE, 1 120.0 Gig Western Digital IDE-ATA Keyboard Microsoft Natural PS/2 GNU/Linux Official Slackware 7.1 Shrink-wrap from Slackware Inc. Modem 56K U.S. Robotics Sportster Fax Modem Internal X2 and upgraded to V.90 Monitor Shamrock 17'' .26 dpi Mother Board PD440FX Mouse Logitech 3 Button PS/2 Network Card D-Link 10/100 Fast Ethernet NIC DFE-530 TX+ PCI Adapter(Added on May 2001) Network Hub Netgear 4 Port 10 Base-T Ethernet Hub Model EN 104 TP Processor 233 MHz Pentium II Printer HP Laserjet 1200 SE with Postscript RAM 64 MB EDO Sound Card Sound Blaster Pro Compatible PnP with OPL3 Yamaha Speakers 2 4Q Starter Series SP-690 Most GNU/Linux documents give a very complete discussion on one particular aspect of configuration. For example, some of them cover all the different brands of one type of hardware(e.g. sound cards), and the reader is expected to find the portion which is relevant to his or her system. While this maximizes the number of people who can be helped, it also means reading a great amount of extraneous information. To make it easier on myself, I filtered out everything which does not pertain to setting up my system as given by the above list. So I've essentially done the opposite of what those documents do: I discuss many aspects of configuration for one specific combination of hardware. You are probably wondering whether my guide will be useless to you if you don't have the exact same hardware that I have. Probably not, but that is something you will have to decide for yourself. There are definitely things which you should be careful about such as configuring Xfree so that it doesn't destroy your monitor. You should also have a list of the IRQs, I/O ports, and DMA chan­ nels for your computer, since they will almost definitely be different from mine. Don't worry though. There is a lot of information which is applicable to all users(e.g. setting up fstab). At worst, this guide will still give you a sense of the things you need to do and the type of data about your system that you will have to provide. Because these notes were written for myself, the UNIX commands I use are pre­ sented without any explanation of what they mean or do. Some examples are the vi editor, commands such as less, more, cd, tar, make, chmod, gunzip and man as well as the pipe, |, and redirect >. You should also be aware that this guide makes several citations of HOWTOs, READMEs, books, GNU/Linux web pages, and whatever else provided information. I often refer to them by the full directory path from which they are located, and hopefully, they will be in the same places for you. Look at the Documentation and Bibliography section at the end for more about my sources. The only problem I can anticipate is that you did not get GNU/Linux from a CDrom which is where I usually read the HOWTOs. Finally, a word or warning. I did 4 installations before configuring GNU/Linux to my satisfaction. Along the way, I saved files such as fstab, xorg.conf, .config, and others on disk after I got them right. Although I sometimes refer to these disks, I do not think it should cause too much confusion. Hopefully, you will be able to use it as an indicator of the things which you should save on disk as well. So here we go... 1.0.0 System Resource Report from Windows 95 The first thing to do is get a printout of the System Resource Report from Windows 95 which gives the I/O Port, IRQ, and DMA usage summary of the computer. Open the Start/Settings/Control Panel menu, select the System icon, then open the Device Manager. Press the Print... button, and for the Report type choose All devices and system summary. Another way to get data is to run msd.exe from DOS. This program is located in the DOS directory. For more on msd.exe, look on page 775 of Mastering DOS 6: Special Edition. 2.0.0 BIOS and Plug and Play Originally, the BIOS was configured for Plug and Play. I turned this off by running the BIOS Setup program before OS boot-up and selecting Use BIOS Setup from the menu Advanced/Plug and Play Configuration/Configura­ tion Mode. It initially was set to Use PnP OS. Turning off PnP enables me to use the sound card without having to boot GNU/Linux from DOS using loadlin. Turning PnP off had no effect on anything in Windows 95. This is also recommended in the /usr/doc/Linux-HOWTOs/Serial-HOWTO: Try to disable the PnP features in the BIOS on your computer and modem. 3.0.0 Creating Installation Bootdisk and Rootdisk 3.1.0 Although I had boot and root installation disks from a previous installation, I still created new ones for the new kernel. Making a bootkernel disk consists of writing the boot image to a formatted floppy disk with RAWRITE.EXE under DOS. For more information, read the document /cdrom/bootdsks.144/README.TXT or /usr/doc/Linux-HOWTOs/Installation-HOWTO. For example, to create the bare.i bootdisk, put a formatted disk in your floppy drive and issue the following command in DOS: e: This is the name of my CDrom drive in DOS cd bootdsks.144 rawrite bare.i a: The reason I have chosen bare.i and not fat32.i is because when I ran fdisk in DOS and looked under display partition information, it said the system was FAT16. For rootdsks: cd e: cd rootdsks rawrite color.gz a: 3.2.0 Creating a GNU/Linux boot and root disk under GNU/Linux. The information below is taken from /usr/doc/Linux-HOWTOs/Installa­ tion-HOWTO: You can use the dd(1) commands on a UNIX system to do the same job. (For this, you will need a UNIX workstation with a floppy drive, of course.) For example, on a Sun workstation with the floppy drive on device /dev/rfd0, you can use the command: dd if=bare of=/dev/rfd0 obs=18k You must provide the appropriate output block size argument (the `obs' argument) on some workstations (e.g., Suns) or this will fail. If you have problems the man page for dd(1) may be be instructive. Be sure that you're using brand-new, error-free floppies. The floppies must have no bad blocks on them. Note that you do not need Linux ext2 filesystem formatted disks. I use this variation of the above command: cd /cdrom/bootdsks.144/ dd if=bare.i of=/dev/fd0 and for the root disk: cd /cdrom/rootdsks/ dd if=color.gz of=/dev/fd0 bs=1k Also, if you want a rescue disk, do: cd /cdrom/rootdsks/ dd if=rescue.gz of=/dev/fd0 3.3.0 The file /usr/doc/Linux-HOWTOs/Installation-HOWTO tells you to: Note that these two floppies will no longer be readable by MS-DOS (they are ``Linux format'' floppies, in some sense). They are not readable under GNU/Linux either. If you attempt to mount these disks under the Linux ext2 filesystem, you will get: mount: wrong fs type, bad option, bad superblock on /dev/fd0, or too many mounted file systems 4.0.0 Partitioning and FDISK 4.1.0 When running fdisk on the harddrives: 4.1.1 For first harddrive, use fdisk /dev/hda. 4.1.2 For the second harddrive, use fdisk /dev/hdb. 4.2.0 There is a lot of very good information and exam­ ple partitioning schemes in the /usr/doc/Linux-HOWTOs/Disk-HOWTO. For example, it says these directories should remain attached to root: /bin /boot /dev /etc /lib /mnt /proc /root /sbin and these should be on their own partition: /home /tmp /usr /var /var/tmp Look specifically at section 4 File system features of the /usr/doc/Linux-HOWTOs/Disk-HOWTO for a thorough discussion of the size, speed, reliability, and content recommendations for each direc­ tory. To get a systemwide summary of how much memory was required by each directory of my current installation, I did a: cd / du I saved this information in the file partition on the disk LINUX FILES TO SAVE II. Using the above, this is what I have decided on the partitioning for /dev/hda: 1574 /dosc/ 851 / 128 /swap/ 868 /extended 538 /tmp 201 /var 3000 /usr/ and for /dev/hdb: 34105 /home/ 34105 /home2/ 34105 /home3/ 14900 /home4/ 4.2.1 There is a good discussion of what each of the above directories are for in Unleashed: Slackware Linux on page 135 and UNIX System V Release 4: The Complete Reference pages 106-112. 4.2.2 Based on the information from fdisk for /dev/hda(Also, look at Harddrive Specs for Western Digital Hard Drive below): Disk /dev/hda: 255 heads, 63 sectors, 784 cylinders Units = cylinders of 16065 * 512 bytes = 8225280 bytes I made an initial guess for the setup: Device Boot Start End Blocks Id System /dev/hda1 * 1 196 1574338+ 6 FAT16 /dev/hda2 197 321 1004062+ 83 Linux /dev/hda3 322 384 506047+ 5 Extended /dev/hda4 385 784 3213000 83 Linux /dev/hda5 322 337 128488+ 82 Linux swap /dev/hda6 338 357 160618+ 83 Linux /dev/hda7 358 384 216846 83 Linux Setting up the partitions requires knowledge of how the drive will be used. In the discussion of /etc/fstab below, I show how and where the the partitions above will be mounted and how they are used. For now, I will note that after doing a full installa­ tion, df gives: Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 1004024 578588 425436 58% / /dev/hda4 3212896 2100856 1112040 66% /usr /dev/hda6 160604 33396 127208 21% /tmp /dev/hda7 216832 62480 154352 29% /var /dev/hdb1 34104912 1495168 32609744 5% /home Normally, I the above would indicate that the partitioning was good. Unfortunately, I discovered when trying to do burning with my CD-RW that the /tmp directory(mounted on /dev/hda6) with 160 MB is too small, and I need at least 290 MB to burn about 600 MB of data. You can read more about this below in Section 19.3.4. So I came up with a new partitioning scheme to make /tmp have at least 500 MB. The result is: Device Boot Start End Blocks Id System /dev/hda1 * 1 196 1574338+ 6 FAT16 /dev/hda2 197 302 851445 83 Linux /dev/hda3 303 410 867510 5 Extended /dev/hda4 411 784 3004155 83 Linux /dev/hda5 303 318 128488+ 82 Linux swap /dev/hda6 319 385 538146 83 Linux /dev/hda7 386 410 200781 83 Linux As you can see, /dev/hda6 and therefore /tmp now has 538 MB. Based on the information in fdisk for /dev/hdb: Disk /dev/hdb: 255 heads, 63 sectors, 2482 cylinders Units = cylinders of 16065 * 512 bytes I get the following setup: Device Boot Start End Blocks Id System /dev/hdb1 1 4246 34105963+ 83 Linux /dev/hdb2 4247 8492 34105995 83 Linux /dev/hdb3 8493 12738 34105995 83 Linux /dev/hdb4 12739 14593 14900287+ 83 Linux 4.3.0 Special Note: I have begun using the fourth partition on /dev/hdb as a back-up bootable partition. Essentially, I installed a complete version of GNU/Linux there so that if there is a failure in /dev/hda, I can boot into this partition by using my boot disk and typing at the boot prompt: mount root=/dev/hdb4 This has many advantages beyond having a redundant GNU/Linux to boot into. When the /dev/hdb drive became corrupt(which later you will see contains all personal files), I needed to transfer the data from it to a new drive. Because I am only able to have 2 drives connected at a time, I had to take out the main system drive /dev/hda, put the new drive as the master drive, boot into the back-up partition of the corrupt drive as given above, and do the file transfer. This worked very well. 5.0.0 Setup 5.1.0 These are the things you should choose when run­ ning Setup: 5.1.1 The cdrom is mounted on hdd 5.1.2 The mouse is a PS/2 mouse 5.1.3 The modem is on Comm Port 2 5.2.0 If you plan to install Windows 95 again, you should do it before running Setup. Windows 95 will overwrite LILO on the MBR so that it will boot automatically when restarting. 6.0.0 Building the Kernel. Since Slackware 10.1, I am currently skipping the building of a new ker­ nel. Although the kernel used by the installation disk is bigger than I would like, I will use it for now since it is able to run most of the hardware on my system. If you proceed to read the rest of section six(which I am keeping in this document for now), you will see that one of the main purposes of recompiling the kernel is to get hardware such as the sound card, mouse, network card, and printer to work. All these things are working now after doing configuration through the KDE control panel. So I will treat the rest of section 6 as a temporary place holder in case I decide it is necessary to rebuild the kernel again and you can skip to section 7. +-----------------------------------------------------------------------+ |The rest of section 6 may be skipped. It is kept here as a place| |holder in case I decide to rebuild the kernel in the future. | +-----------------------------------------------------------------------+ Note that all the steps below must be executed in the order in which they are presented. 6.1.0 It used to be necessary to change the file: /usr/src/linux/include/linux/busmouse.h by setting the MOUSE_IRQ on line 30 to the appropriate value, even if you have a PS/2 mouse. This is no longer necessary. 6.2.0 Sound 6.2.1 In the directory, /usr/src/linux/drivers/sound/, there is a README file which you may want to read. The information pertinent to my soundcard applied to the Yamaha OPL3 card. The file /usr/src/linux/drivers/sound/Readme.cards had the following to say about that card: Enable the generic OPL2/OPL3 FM synthesizer support if your card has a FM chip made by Yamaha. Don't enable it if your card has a software (TRS) based FM emulator. "Generic OPL2/OPL3 FM synthesizer support", - Answer 'y' if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). Answering 'y' is usually a safe and rec­ ommended choice. However some cards may have software (TSR) FM emulation. Enabling FM support with these cards may cause trouble. However I don't currently know such cards. 6.2.2 Because my card was Plug and Play(pnp), I needed the ISA PnP tools. My Slackware distribution already has them installed. The executables isapnp and pnpdump were both in the /sbin/ directory. You should have it too. So generate the Plug and Play configuration file with: pnpdump > /etc/isapnp.conf In the above command, pnpdump scans for the pnp devices such as my sound card and then dumps the information to /etc/isapnp.conf. I then edit /etc/isapnp.conf which has the following lines: (READPORT 0x0203) (ISOLATE PRESERVE) (IDENTIFY *) (VERBOSITY 2) (CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING (CONFIGURE YMH0030/2156265473 (LD 0 The lines below have to be uncommented out: (IO 0 (BASE 0x0220)) (IO 1 (BASE 0x0530)) (IO 2 (BASE 0x0388)) (IO 3 (BASE 0x0330)) (IO 4 (BASE 0x0370)) (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 0)) (DMA 1 (CHANNEL 1)) (ACT Y) )) (IO 0 (BASE 0x0201)) (ACT Y) )) (IO 0 (SIZE 16) (BASE 0x0220)) (IO 1 (SIZE 8) (BASE 0x0530)) (IO 2 (SIZE 8) (BASE 0x0388)) (IO 3 (SIZE 2) (BASE 0x0330)) (IO 4 (SIZE 2) (BASE 0x0370)) (INT 0 (IRQ 5 (MODE +E))) (DMA 0 (CHANNEL 0)) (DMA 1 (CHANNEL 1)) (NAME "YMH0030/2156265473[0]{OPL3-SA3 Snd System }") (ACT Y) )) (CONFIGURE YMH0030/2156265473 (LD 1 (IO 0 (SIZE 1) (BASE 0x0201)) (NAME "YMH0030/2156265473[1]{OPL3-SA3 Snd System }") (ACT Y) )) up to this point. (WAITFORKEY) 6.2.3 From the purchase order of the system I bought, they said the sound card is built on top of the mother­ board. When I look in the cdrom for the Intel PD440FX mother­ board, I see the following information relating to the sound card(look in the /cdrom/readme.txt file): The sound card is a Sound Blaster Pro with the following set-up: OPL3-SA3 Sound Blaster Base I/O Adr 220h (These numbers match the I/O Port and IRQ IRQ 5 Usage Summary that I printed out from Windows95) DMA Channel 1 WSS WSS Base Adr 530h IRQ 5 DMA Channel 0 MPU, Ctrl, Adlib, Game MPU base I/O 330h (These numbers match the I/O Port and IRQ Ctrl I/O 370h Usage Summary that I printed out from Windows95) Adlib 388h Game Port 201h Here's more information from the /cdrom/readme.txt file: /I:xx:5,7,9,10,11 'Interrupt for Windows Sound System /D:xx,yy:0,1,3 'DMA channel for Windows Sound System /W:xxx:530,604,E80,F40 'Base I/O address for Windows Sound System /F:xxx:388,398,3A8,3B8 'Base I/O for OPL3 /M:xxx:330,320,310,300 'Base I/O address for MPU401 /C:xxx:F86,390,620,910,A10 'Base I/O address for control registers /N:xxx 'Name of the device driver /A:xx:5,7,9,10 'Interrupt for MPU401 (0 for SA2/SA3) /S:xxx:0 disable,220,240,260 'Base I/O address for Sound Blaster What I care about is the Interrupt for MPU401 (0 for SA2/SA3) statement which made me select 0 for the xconfig sound card set­ ting: SB MPU401 IRQ(Jazz16, SM Wave and ES1688) Use -1 with SB16 All the above information was confirmed by the System Resource Report that I got from Windows95. The most important information is the IRQ Summary, the IO Port Summary, and the DMA Usage Sum­ mary. 6.2.4 If the BIOS is set to Plug and Play, you will have to boot from DOS using loadlin before the sound card will be recognized. To avoid this, turn PnP off(See BIOS and Plug and Play above). 6.2.5 After building the kernel, if everything has been done properly, doing a: cat /dev/sndstat will produce data for your sound card (Note: It is good to do this before building the kernel since the base installation may already have detected some of the sound card settings. If it has, then you should use these settings to configure your card). For my sound card, I get: OSS/Free:3.8s2++-971130 Load type: Driver loaded as a module Kernel: Linux san 2.2.6 #1 SMP Sat Aug 21 21:46:27 PDT 1999 i686 Config options: 0 Installed drivers: Card config: Audio devices: 0: MS Sound System (CS4231) (DUPLEX) Synth devices: 0: Yamaha OPL3 Midi devices: 0: MPU-401 0.0 Midi interface #1 Timers: 0: System clock 1: MS Sound System (CS4231) Mixers: 0: OPL3-SAx and AD1848 (through MSS) 1: MS Sound System (CS4231) I also need to do this to initialize my card. Before, the card was initialized by having the line: /sbin/insmod sound trace_init=1 in the /etc/rc.d/rc.local file, but now that line causes the cur­ rent kernel to have unresolved module errors. The file /usr/src/linux/drivers/sound/Readme.linux has some valu­ able information on common error messages pertaining to when you do a cat /dev/sndstat. 6.2.6 Playing Cdrom Music Before users other than root can play the CD's from Workman, you should change the permissions of /dev/cdrom by adding the line: chmod 666 /dev/cdrom chmod 666 /dev/cdrom2 in the file /etc/rc.d/rc.M below the line: # Ensure basic filesystem permissions sanity. 6.2.7 Soft Links to CD drives Note that softlinks need to be made between /dev/cdrom and /dev/hdc as well as /dev/cdrom2 and /dev/hdd. You should check this by doing: ls -l /dev/cdrom the output should be: lrwxrwxrwx 1 root root 8 2005-05-31 08:27 /dev/cdrom -> /dev/hdc It is unlikely that /dev/cdrom2 exist, so you can make the soft­ link with: cd /dev/ ln -sf /dev/hdd cdrom2 6.2.8 modules.conf file in /etc As you will see below, I'm compiling the sound as a kernel mod­ ule. I had to add some lines to the modules.conf file so that the appropriate modules are loaded. From /usr/src/linux/Documen­ tation/sound/OPL3-SA2: Lastly, if you're using modules and want to set up automatic module loading with kmod, the kernel module loader, here is the section I currently use in my modules.conf file: # Sound alias char-major-14 opl3sa2 pre-install opl3sa2 modprobe "-k" "ad1848" post-install opl3sa2 modprobe "-k" "opl3" options opl3sa2 io=0x220 mss_io=0x530 mpu_io=0x330 irq=7 dma=0 dma2=3 options opl3 io=0x388 The only thing I changed from the above was to set irq=5. It should be noted that for Slackware-7.1, instead of conf.modules, the file has been changed to modules.conf. Use whatever file which comes with your distribution. Also, for the CD-RW, I have added: # Hi-Val CD RW options ide-cd ignore=hdc # tell the ide-cd module to ignore hdc alias scd0 sr_mod # load sr_mod upon access of scd0 #pre-install ide-scsi modprobe imm # uncomment for some ZIP drives only pre-install sg modprobe ide-scsi # load ide-scsi before sg pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod #pre-install ide-scsi modprobe ide-cd # load ide-cd before ide-scsi 6.3.0 The Steps of Configuration 6.3.1 There is a README file in the directory /usr/src/linux/ which also has lots of information. Here is some of its advice: If you already have the Linux sources installed but are upgrading to a new kernel, you must remove the old sources. Use the command cd /usr/include rm -rf asm linux scsi ln -s /usr/src/linux/include/asm-i386 asm ln -s /usr/src/linux/include/linux linux ln -s /usr/src/linux/include/scsi scsi 6.3.2 The next step is to do a: rm -r /lib/modules/2* to get rid of all the old modules. Otherwise, you will get an unresolved module error during boot-up. The modules are recre­ ated during the make modules_install step. Note that there is a file called /lib/modules/2.0.30/modules.dep which will be removed after doing the above. Only after booting the new Linux kernel at least once will it be recreated. Next, remove the configuration files from the last time a kernel was built. cd /usr/src/linux make mrproper Note that the above step will erase the .config file. 6.4.0 Now, you have to do a make xconfig or make menu­ config to specify the contents of the kernel. Here are my current selections: answer defaults 1. Code maturity level options Prompt for development and/or incomplete code/drivers y n (By saying no here, all options pertaining to developmental code and drivers will not be available(N/A) for selection. Normally, I would say no, but I added a Network card in 2001, and it required the latest driver, so I now say yes.) 2. Processor type and features a. Processor type (PPro/6x86MX) (PPro/6x86MX) b. Maximum Physical Memory (1GB) (1GB) c. MTRR (Memory Type Range Register) support y n d. Symmetric multi-processing support y y 3. Loadable module support a. Enable loadable module support y y b. Set version information on all symbols n n c. Kernel module loader (e.g. autoload of modules) y n 4. General setup a. Networking support y y b. PCI support y y c. PCI access mode Any Any d. PCI quirks y y e. Backward-compatible /proc/pci y y f. MCA support n n g. SGI Visual Workstation support n n h. System V IPC y y i. BSD Process Accounting n n j. Sysctl support y y k. Kernel support for a.out binaries y y l. Kernel support for ELF binaries y y m. Kernel support for MISC binaries y y n. Parallel port support m n o. PC-style hardware (NEW) m n q. Support foreign hardware (NEW) n n r. Advanced Power Management BIOS support n n 5. Plug and Play support a. Plug and Play support y y b. Auto-probe for parallel devices n n 6. Block devices a. Normal floppy disk support m y b. Enhanced IDE/MFM/RLL disk/cdrom/tape support y y (This must be built into the kernel) c. Use old disk-only driver on primary interface n n d. Include IDE/ATA-2 DISK support y y (This must be built into the kernel or else you will get a kernel panic) e. Include IDE/ATAPI CDROM support m y f. Include IDE/ATAPI TAPE support n n g. Include IDE/ATAPI FLOPPY support n n h. SCSI emulation support n n i. CMD640 chipset bugfix/support y y j. CMD640 enhanced support n n k. RZ1000 chipset bugfix/support y y l. Generic PCI IDE chipset support y y m. Generic PCI bus-master DMA support y y n. Boot off-board chipsets first support n n o. Use DMA by default when available y y p. Other IDE chipset support n n (Note: most of these also require special kernel boot parameters) q. Generic 4 drives/port support y y r. ALI M14xx support N/A N/A s. DTC-2278 support N/A N/A t. Holtek HT6560B support N/A N/A u. QDI QD6580 support N/A N/A v. UMC-8672 support N/A N/A --- Additional Block Devices w. Loopback device support n n x. Network block device support n n y. Multiple devices driver support n n z. Linear (append) mode N/A N/A a1. RAID-0 (striping) mode N/A N/A a2. RAID-1 (mirroring) mode N/A N/A a3. RAID-4/RAID-5 mode N/A N/A a4. Boot support (linear, striped) N/A N/A a5. RAM disk support n n a6. Initial RAM disk (initrd) support N/A N/A a7. XT hard disk support n n a8. Parallel port IDE device support n n --- Parallel IDE high-level drivers a9. Parallel port IDE disks N/A N/A a10. Parallel port ATAPI CD-ROMs N/A N/A a11. Parallel port ATAPI disks N/A N/A a12. Parallel port ATAPI tapes N/A N/A a13. Parallel port generic ATAPI devices N/A N/A --- Parallel IDE protocol modules a14. ATEN EH-100 protocol N/A N/A a15. MicroSolutions backpack protocol N/A N/A a16. DataStor Commuter protocol N/A N/A a17. DataStor EP-2000 protocol N/A N/A a18. FIT TD-2000 protocol N/A N/A a19. FIT TD-3000 protocol N/A N/A a20. Shuttle EPAT/EPEZ protocol N/A N/A a21. Shuttle EPIA protocol N/A N/A a22. Freecom IQ ASIC-2 protocol N/A N/A a23. FreeCom power protocol N/A N/A a24. KingByte KBIC-951A/971A protocols N/A N/A a25. KT PHd protocol N/A N/A a26. OnSpec 90c20 protocol N/A N/A a27 OnSpec 90c26 protocol N/A N/A 7. Networking options a. Packet socket y y b. Kernel/User netlink socket n n c. Routing messages N/A N/A d. Netlink device emulation N/A N/A e. Network firewalls n n f. Socket Filtering n n g. Unix domain sockets y y h. TCP/IP networking y y i. IP: multicasting n n j. IP: advanced router n n k. IP: kernel level autoconfiguration n n l. IP: firewalling N/A N/A m. IP: firewall packet netlink device N/A N/A n. IP: always defragment (required for masquerading) N/A N/A o. IP: transparent proxy support N/A N/A p. IP: masquerading N/A N/A --- Protocol-specific masquerading support will be built as modules. q. IP: ICMP masquerading N/A N/A --- Protocol-specific masquerading support will be built as modules. r. IP: optimize as router not host n n s. IP: tunneling n n t. IP: GRE tunnels over IP n n u. IP: broadcast GRE over IP N/A N/A v. IP: multicast routing N/A N/A w. IP: aliasing support n n x. IP: TCP syncookie support (not enabled per default) n n --- (it is safe to leave these untouched) y. IP: Reverse ARP n n z. IP: Allow large windows y y (not recommended if <16Mb of memory) a1. The IPv6 protocol (EXP.) n n a2. The IPX protocol n n a3. Appletalk DDP n n a4. CCITT X.25 Packet Layer (EXP.) n n a5. LAPB Data Link Driver (EXP.) n n a6. Bridging (EXP.) n n a7. 802.2 LLC (EXP.) n n a8. Acorn Econet/AUN protocols (EXP.) n n a9. WAN router n n a10. Fast switching (read help!) n n a11. Forwarding between high speed interfaces n n a12. CPU is too slow to handle full bandwidth n n a13. QoS and/or fair queueing n n 8. Telephony support a. Linux telephony support n n 9. SCSI support a. SCSI support (no makes rest of choices moot) n y 10. I20 device support a. I20 device support (no makes rest of choices moot) n n 11. Network device support a. Network device support y y b. ARCnet devices ARCnet services n n c. Dummy net driver support m m d. < > Bonding driver support (NEW) n n e. < > EQL (serial line load balancing) support n n f. < > General Instruments Surfboard 1000 n n g. Ethernet (10 or 100Mbit) y y g1. 3COM cards n n g2. AMD LANCE and PCnet (AT1500 and NE2100) support n n g3. Western Digital/SMC cards n n g4. Racal-Interlan (Micom) NI cards n n g5. RealTek 8129/8139 (not 8019/8029!) support (NEW) m n (I decided this was the necessary driver based on the fact that the driver disk that came with the card included rtl8139.c as their support for Linux, which implies that this is the driver they think would work best. It should be noted that it is considered an experimental driver.) g6. Other ISA cards n n g7. EISA, VLB, PCI and on board controllers y y g8. AMD PCnet32 (VLB and PCI) support n n g9. Ansel Communications EISA 3200 support(EXP.)(NEW) n n g10. Apricot Xen-II on board Ethernet n n g11. CS89x0 support n n g12. DM9102 PCI Fast Ethernet Adapter support (EXP.) n n g13. Generic DECchip & DIGITAL EtherWORKS PCI/EISA n n g14. DECchip Tulip (dc21x4x) PCI support n n g15. Old DECchip Tulip (dc21x4x) PCI support n n g16. Digi Intl. RightSwitch SE-X support n n g17. Pocket and portable adaptors n n g18. EtherExpressPro/100 support m y g19. Mylex EISA LNE390A/B support (EXP.)(NEW) n n Novell/Eagle/Microdyne NE3210 EISA support (EXP.)(NEW) n n g20. PCI NE2000 support m y g21. TI ThunderLAN support n n g22. VIA Rhine support n n g23. SiS 900/7016 PCI Fast Ethernet Adapter support n n g24. Racal-Interlan EISA ES3210 support (EXP.)(NEW) n n g25. SMC EtherPower II (EXP.)(NEW) n n g26. Zenith Z-Note support (EXP.) (NEW) n n g27. Pocket and portable adaptors n n h. Ethernet (1000 Mbit) n n i. FDDI driver support n n j. PLIP (parallel port) support (NEW) n n k. PPP (point-to-point) support m n l. SLIP (serial line) support m n l1. CSLIP compressed headers (NEW) y n l2. Keepalive and linefill (NEW) n n l3. Six bit SLIP encapsulation (NEW) n n m. Wireless LAN (non-hamradio) n n n. Token ring devices n n o. Fibre Channel driver support n n p. Wan interfaces n n q. SBNI12-xx support n n 12. Amateur Radio support a. Amateur Radio support (no makes rest of choices moot) n n a. Support non-SCSI/IDE/ATAPI CDROM drives 13. IrDA (infrared) support a. IrDA subsystem support n n 14. ISDN subsystem a. ISDN support (no makes rest of choices moot) n n 15. Old CD-ROM drivers (not SCSI, not IDE) n n a. Support non-SCSI/IDE/ATAPI CDROM drives (no makes rest of choices moot) 16. Character devices a. Virtual terminal y y b. Support for console on virtual terminal y y c. Standard/generic (dumb) serial support y y d. Support for console on serial port n n e. Extended dumb serial driver options n n f. Non-standard serial port support n n g. Unix98 PTY support y y h. (256) Maximum number of Unix98 PTYs in use (0-2048) i. Parallel printer support m n j. Support IEEE1284 status readback (NEW) n n k. Mouse Support (not serial mice) y y Mice k1. ATIXL busmouse support n n k2. Logitech busmouse support n n k3. Microsoft busmouse support n n k4. PS/2 mouse (aka "auxiliary device") support y y k5. C&T 82C710 mouse port support (as on TI Travelmate) n y k6. PC110 digitizer pad support n n l. Joysticks support n n m. QIC-02 tape support n n n. Watchdog Timer Support n n o. /dev/nvram support n n p. Enhanced Real Time Clock Support n n q. Video For Linux n n r. Double Talk PC internal speech card support n n s. Ftape (QIC-80/Travan) support n n 18. Filesystems a. Quota support y n b. Kernel automounter support y y c. Amiga FFS filesystem support n n d. Apple Macintosh filesystem support (experimental) m n e. DOS FAT fs support m n f. MSDOS fs support m n g. UMSDOS: Unix-like filesystem on top of m n standard MSDOS filesyste h. VFAT (Windows-95) fs support m n i. ISO 9660 CDROM filesystem support m y j. Microsoft Joliet CDROM extensions n n k. Minix fs support n n l. NTFS filesystem support (read only) n n m. OS/2 HPFS filesystem support (read only) m n n. /proc filesystem support y y o. /dev/pts filesystem for Unix98 PTYs y y p. ROM filesystem support n n q. Second extended fs support y y r. System V and Coherent filesystem support n n s. UFS filesystem support n n t. UFS filesystem write support (experimental) n n u. SGI EFS filesystem support (read only) (exp.) n n v. Network File Systems (defaults) w. Partition Types (defaults which were all no) x. Native Language Support (defaults which were all no) 22. Console drivers (defaults) 23. Sound (Look at the information above under Sound. It has very important data on how to configure the card. It seems the options under i, j, and l are not necessarily that important. I've tried a few different values and there wasn't any noticeable difference.) a. Sound card support m m b. Support for C-Media PCI audio chips (Exp.)(NEW) n n c. Ensoniq AudioPCI (ES1370) n n d. Creative Ensoniq AudioPCI 97 (ES1371) n n e. ESS Maestro (NEW) n n f. ESS Solo1 (Experimental) (NEW) n n g. Intel ICH (810, 820, 440MX...) (NEW) n n h. S3 SonicVibes n n i. Trident 4DWave DX/NX or SiS 7018 PCI n n Audio Core or ALi 5451 j. Support for Turtle Beach MultiSound Classic, Tahiti, n n Monterey k. Support for Turtle Beach MultiSound Pinnacle, Fiji n n l. OSS sound modules m n m. ProAudioSpectrum 16 support n n n. 100% Sound Blaster compatibles n n (SB16/32/64, ESS, Jazz16) support o. Gravis Ultrasound support n n p. MPU-401 support (NOT for SB16) m n q. PSS (AD1848, ADSP-2115, ESC614) support n n r. Microsoft Sound System support n n s. Ensoniq SoundScape support n n t. MediaTrix AudioTrix Pro support n n u. VIA 82C686 Audio Codec (NEW) n n v. Support for OPTi MAD16 and/or Mozart based cards (NEW) n n w. Full support for Turtle Beach WaveFront n n x. (Tropez Plus, Tropez, Maui) synth/soundcards (NEW) y. Support for Crystal CS4232 based (PnP) cards n n z. Support for Yamaha OPL3-SA2, SA3, m n and SAx based PnP cards a1. Limited support for Turtle Beach Wave Front n n a2. (Maui, Tropez) synthesizers (NEW a3. Support for Aztech Sound Galaxy (non-PnP) cards n n a4. Support for AD1816(A) based cards (EXP.) (NEW) n n a5. Yamaha OPL3-SA1 audio controller (NEW) m n a6. SoftOSS software wave table engine n n a7. FM synthesizer (YM3812/OPL-3) support m n a8. Loopback MIDI device support n n a9. 6850 UART support n n a10. NM256AV/NM256ZX audio support (NEW) n n a11. Yamaha PCI legacy mode support (NEW) n n a12. a1. Additional low level sound drivers n n (no makes rest of choices moot) 25. Kernel hacking a. Magic SysRq key n n 6.5.0 Save and exit the config program. I recommend that you save the file /usr/src/linux/.config just in case the kernel you built works well. You can use this file again if you ever have to rebuild the kernel. For instance, after doing make mrproper, I use an old configuration file. Then I can: cp /root/root_user/recover/.config /usr/src/linux/.config Even after copying, I still run: make xconfig When you exit xconfig, choose "Save and Exit"(also, if make menucon­ fig was used, "Save and Exit" under this configuration method as well). You will very likely have problems with "make zImage" if you don't, such as getting "Error 1" messages along with statements claiming certain files and directories could not be found. Note also that .config changes slightly based on whether you choose xconfig or menuconfig and that there are also other files generated depending on the method of configuration. Another interesting point is that the same configuration file saved under the two different methods will produce slightly different ker­ nels. For instance, the two config files below had the same configu­ ration, but were built using different methods: .config7(from menuconfig) -> vmlinuz = 328914 K x.config7(from xconfig) -> vmlinuz = 328913 K 6.6.0 Now type: cd /usr/src/linux make dep make clean make install (prior to Slackware-7.1, I used make zImage but now this causes the error Fatal: Kernel /vmlinuz is too big when I run /sbin/lilo. Doing a make install appears to be the same as make bzImage, with the additional step that it copies vmlinuz to /vmlinuz and runs /sbin/lilo as well.) make modules make modules_install After this is done, do a: ls -l /usr/src/linux/arch/i386/boot/bzImage ls -l /vmlinuz These two steps are just to get an idea of how big the new kernel is relative to the old kernel. 6.7.0 Copy the new kernel image to the / directory: cp /usr/src/linux/arch/i386/boot/zImage /vmlinuz if you did a make zImage or a make bzImage. You will also need to run lilo again: cd / /sbin/lilo Make sure you do the above step. Your system will not boot Linux without it. You may wish to edit /etc/lilo.conf to specify an entry for your old kernel image (after copying the old image to something like vmlinux.old) in case the new one does not work. See the LILO docs in /usr/doc/lilo and also the /usr/doc/Linux-HOWTOs/Kernel-HOWTO for more information. To add the option of booting from an old kernel image, add to /etc/lilo.conf the lines: # Linux backup kernel config begins image = /vmlinuz.old root = /dev/hda2 label = linux-backup read-only # Non-UMSDOS filesystems should be mounted read-only for checking # Linux backup kernel config ends 6.8.0 If you have to install the modules manually even though you are using kerneld, this can be done with: /sbin/modprobe fat.o /sbin/modprobe isofs.o /sbin/modprobe vfat.o /sbin/modprobe msdos.o /sbin/lsmod (this will list the modules seen by kerneld) ps -ax (this will tell you if kerneld is running) 6.8.0 It is advisable that you do a: cp /boot/System.map System.old cp /usr/src/linux/System.map /boot/ 6.10.0 If you have already installed loadlin, make sure you copy a boot image, vmlinuz, to the DOS directory which has load­ lin.exe(For more on loadlin, see Archive 3 below.). In my case, it is the directory /dosc/loadlin/: cp /vmlinuz /dosc/loadlin/zimage 6.11.0 This is given in the file /usr/doc/Linux-HOW­ TOs/Kerneld: I recommend that you add some lines to your startup-scripts to do some necessary setup whenever you boot Linux. Add the following lines to your /etc/rc.d/rc.S file (if you are run­ ning Slackware), or to /etc/rc.d/rc.sysinit (if you are run­ ning SysVinit, i.e. Debian, Redhat, Caldera): # Start kerneld - this should happen very early in the # boot process, certainly BEFORE you run fsck on filesystems # that might need to have disk drivers autoloaded if [ -x /sbin/kerneld ] then /sbin/kerneld fi # Your standard fsck commands go here # And you mount command to mount the root fs read-write # Update kernel-module dependencies file # Your root-fs MUST be mounted read-write by now if [ -x /sbin/depmod ] then /sbin/depmod -a fi I had to add the second part in the file /etc/rc.d/rc.S as well as uncomment out the first part. As stated in rc.S: # NOTE: This is commented out by default, since running kerneld has # caused some experimental kernels to hang during boot. Also, the Welcome to Linux (Slackware 4.0)! email to root from Patrick J. Volkerding says that: You'll also need to uncomment the line in /etc/rc.d/rc.S that starts the rc.serial script. So uncomment out the line: . /etc/rc.d/rc.serial in rc.S. 6.12.0 You can check the kernel you are currently run­ ning by: uname -a or cat /proc/version 6.13.0 In the /usr/src/linux-2.0.30/ directory, there will now be a binary called vmlinux. This is used for debugging. In the README in /usr/src/linux-2.0.30/, it says: To extract the namelist and match it against the EIP from a kernel crash, do: nm vmlinux | sort | less Again, remember to save the file /usr/src/linux-2.0.30/.config in case you want to build this kernel again. 7.0.0 Boot Problems Kernel Panic This is sometimes due to compiling the second extended file system (which is the standard linux filesystem) as a module rather than including it in the ker­ nel. Remember, you cannot make the file sys­ tem of the root partition a module. Run out of input data This is probably due to not running /sbin/lilo system halted 8.0.0 Mounting Hardware 8.1.0 To get the desired devices to be recognized or mounted with the correct permissions during boot-up, set up the /etc/fstab file as follows: # /etc/fstab /dev/fd0 /fd0ext auto user,noauto,rw 0 0 /dev/fd0 /fd0dos auto user,noauto,rw 0 0 /dev/hda1 /dosc vfat defaults 1 0 /dev/hda5 swap swap defaults 0 0 /dev/hda2 / reiserfs defaults 1 1 /dev/hda4 /usr reiserfs defaults 1 2 /dev/hda6 /tmp reiserfs defaults 1 2 /dev/hda7 /var reiserfs defaults 1 2 /dev/hdb1 /home reiserfs defaults 1 2 /dev/cdrom /cdrom iso9660 user,noauto,ro 0 0 /dev/cdrom2 /cdrom2 iso9660 user,noauto,ro 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0 Alternatively, I can also set it to look like: # /etc/fstab /dev/fd0 /fd0ext auto user,noauto,rw 0 0 /dev/fd0 /fd0dos auto user,noauto,rw 0 0 /dev/hda1 /dosc vfat noauto,uid=1000,gid=100,umask=000 0 0 /dev/hda5 swap swap defaults 0 0 /dev/hda2 / reiserfs defaults 1 1 /dev/hda4 /usr reiserfs defaults 1 2 /dev/hda6 /tmp reiserfs defaults 1 2 /dev/hda7 /var reiserfs defaults 1 2 /dev/hdb1 /home reiserfs defaults 1 2 /dev/cdrom /cdrom iso9660 user,noauto,ro 0 0 /dev/cdrom2 /cdrom2 iso9660 user,noauto,ro 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 proc /proc proc defaults 0 0 The lines pertaining to /fd0dos, /fd0ext, /cdrom, /cdrom2, and /dosc are all modified or added so that they have user read and write per­ missions. The difference between the two versions is that the first retains the root ownership for the files in /dosc while the second gives ownership to user 1000(slffea) and group 100(users). Also, because I don't always use /dosc, it will not be automatically mounted in the second /etc/fstab. I will mount it manually like the /cdrom and the floppy disk. 8.2.0 If you still have problems with permissions for /fd0ext, you can try: chown slffea /fd0ext chgrp users /fd0ext 8.3.0 You must reboot the system before fstab will take effect. Otherwise, you will have to mount the hardware without fstab(see below). Because the /dev/hda1/, /dev/cdrom/, and /dev/fd0/ are noauto(not automatically mounted), I must mount(or unmount) them using the fol­ lowing commands. Because of how I've set up fstab though, the mount­ ing process is simpler(i.e., /dev/hdd is already established as being mounted on /cdrom.). mount /dosc mounts /dosc umount /dosc unmounts /dosc mount /cdrom mounts the CDrom umount /cdrom unmounts the CDrom mount /fd0dos mounts the 3 1/2 '' floppy for the dos filesys­ tem umount /fd0dos unmounts the 3 1/2 '' floppy for the dos filesys­ tem mount /fd0ext mounts the 3 1/2 '' floppy for the linux filesystem umount /fd0ext unmounts the 3 1/2 '' floppy for the linux filesystem Without fstab, the traditional way to mount hardware as root is: mount /dev/ha1 /dosc mounts /dosc uumount /dosc unmounts /dosc mount /dev/hdd /cdrom mounts the CDrom umount /cdrom unmounts the CDrom mount /dev/fd0 /fd0dos mounts the 3 1/2 '' floppy for the dos filesys­ tem umount /dev/fd0 /fd0dos unmounts the 3 1/2 '' floppy for the dos filesys­ tem mount /dev/fd0 /fd0ext mounts the 3 1/2 '' floppy for the linux filesystem umount /dev/fd0 /fd0ext unmounts the 3 1/2 '' floppy for the linux filesystem If you want to specify the filesystem type, use: mount -t ext2 /dev/fd0 /fd0ext mounts the 3 1/2 '' floppy for the linux filesystem mount -t msdos /dev/fd0 /fd0dos unmounts the 3 1/2 '' floppy for the DOS filesys­ tem You may want to specify some options with /dosc such as: mount -t vfat /dev/hda1 /dosc -o uid=1000,gid=100,umask=000 which mounts with the same user permissions as the second fstab exam­ ple. 8.4.0 As root, you have to make the directories /fd0dos/ and /fd0ext/: cd / mkdir fd0dos mkdir fd0ext It is tempting not to have the separate directories /fd0dos/ and /fd0ext/ and to simply mount both filesystem types on something like /mnt. This is not feasible though, and will give the error: mount: wrong fs type, bad option, bad superblock on /dev/fd0, or too many mounted file systems The source of trouble is too many mounted file systems. 9.0.0 Creating Filesystems and Formatting 9.1.0 Formatting 3.25'' Disk This information is taken from the file /usr/doc/Linux-HOWTOs/DOS-to- Linux-HOWTO under 4.1 Managing Devices. 9.1.1 To format a disk in the 3.25'' drive for the Linux ext2 file format, as root, use: mkfs -t ext2 -c /dev/fd0 This is a better filesystem since it allows you to retain the UNIX filenames. 9.1.2 For dos, use: mount /dev/fd0 /fd0dos umount /fd0dos mformat a: 9.2.0 Creating ext2 Filesystem on Harddrive This information is given in /usr/doc/Linux-HOWTOs/DOS-to-Linux-HOWTO under 4.1 Managing Devices and Unleashed: Slackware Linux on page page 48. 9.2.1 If you have just run fdisk to create parti­ tions, it is recommended that you reboot the system to remove inconsistencies between the tables in memory and those on disk. This probably isn't necessary if you are starting with a com­ pletely new harddrive, only when you are redoing an old one. Then you may create the ext2 filesystem for Linux on the hard­ drive using: mkfs -v -t ext2 -c /dev/hda2 or mke2fs -v -c -b 1024 -i 4096 /dev/hdb3 (Replace "a2" with the appropriate partition.) 9.2.2 Now you have to tell fstab where this new filesystem should be mounted. You may want to add the following line in /etc/fstab: /dev/hda2 /home2 ext2 defaults 1 1 indicating that /dev/hda2 should be mounted on /home2. I had originally set /etc/fstab to automatically mount /home2( and /home3/), but since they were used for storage, I decided only to mount them when I was backing up data. This is to prevent a GNU/Linux crash(Yes, it sometimes happens) from corrupting all my data. 9.2.3 You also have to create this directory: mkdir /home2 9.2.4 Now you can either restart the system and allow fstab to mount /dev/hda2 or you can do it yourself as supe­ ruser with: mount /dev/hda2 /home2 9.2.5 If you do a df, you should see this new filesystem added to the others. My current system looks like( after 6 1/2 years): Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda2 1004024 578516 425508 58% / /dev/hda4 3212896 2100840 1112056 66% /usr /dev/hdb3 34104944 32852 34072092 1% /tmp /dev/hda7 216832 62128 154704 29% /var /dev/hdb1 34104912 1944396 32160516 6% /home /dev/hdb2 34104944 1248136 32856808 4% /home2 /dev/hda6 160604 33348 127256 21% /mnt 10.0.0 Configuring X Windows 10.1.0 For Slackware-10.1, X Windows is configured automatically and tools such as XF86Setup or xf86config no longer exist. This is probably due to the fact that the X server no longer comes from XFree86 but X.org. The file /etc/XF86Config is now replaced by the file /etc/X11/xorg.conf. Because X is running well, I am disinclined to alter the file very much except for commenting in the line: VideoRam 8192 where the Video Ram value is changed from 4096 to 8192 K. Also com­ mented in are the lines: Option "AutoRepeat" "500 5" and Option "XkbModel" "microsoft" To get the screen to blank after 10 minutes, as well as other screen saving actions, I have commented in the lines: Option "blank time" "10" # 10 minutes and Option "standby time" "20" Option "suspend time" "30" Option "off time" "60" I have saved this file on the disk LINUX FILES TO SAVE II. If I have to replace it, I can do: cp /fd0ext/X/xorg.conf /etc/X11/xorg.conf 10.2.0 In choosing the window manger, go to the direc­ tory /usr/lib/X11/xinit/ and cp xinitrc.(manager type) to xinitrc. Read the README in this directory for more details. For example: cd /usr/lib/X11/xinit/ rm xinitrc ln -s xinitrc.fvwm2 xinitrc will make your window manager fvwm2. Since I want the configuration of fvwm2 to be system wide, I went to the directory: /usr/lib/X11/fvwm2 and edited the file system.fvwm2rc. Unfortunately, Slackware got rid of the option of using the fvwm95, so I modified system.fvwm2rc so that it works like fvwm95. 10.2.1 I have saved a system.fvwm2rc file on the disk LINUX FILES TO SAVE II, in the X directory. Also in this directory are the files .Xdefaults and .Xmodmap. Make sure to add the lines: xterm*background: black xterm*foreground: white xterm*scrollBar: true xterm*font: fixed color_xterm*background: black color_xterm*foreground: white color_xterm*scrollBar: true color_xterm*font: fixed to the .Xdefaults file if you want to change the background color of the xterms. 10.2.2 There are many differences between a sys­ tem.fvwm2rc and .fvwm95rc file that you cannot simply copy .fvwm95rc to system.fvwm2rc. Trying to get fvwm2 to emulate fvwm95 was very difficult so I have decided to list the results of doing: diff system.fvwm2rc system.fvwm2rc.save where system.fvwm2rc.save is a copy of the file system.fvwm2rc before I modified it. Here are the results: 2c2,3 < # Default system.fvwm95rc for Slackware Linux --- > # Default system.fvwm2rc for Slackware Linux, adapted from the version > # for fvwm95 (i.e. beware of non-functional commented-out options) 12d12 < #MenuFont -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-* 26c26 < DefaultColors Black #c3c3c3 #c3c3c3 grey51 --- > #DefaultColors Black #c3c3c3 #c3c3c3 grey51 50c50,51 < #Style "*" ClickToFocus --- > # Let's comment this out and be more UNIX-like :) > # Style "*" ClickToFocus 53d53 < Style "*" MouseFocus 83,92d82 < # < # Module path and paths to the icons < # ModulePath is a colon-separated list, just like regular unix PATH < # < #ModulePath /usr/X11R6/lib/X11/fvwm95/ < #PixmapPath /usr/include/X11/pixmaps/:/usr/X11R6/icons/ < #IconPath /usr/include/X11/bitmaps/:/usr/local/icons/ < < #========================================================================# < 145c135 < #Style "xcalc" Icon Rcalc.xpm --- > #Style "xcalc" Icon rcalc.xpm 166,175c156,164 < AddToFunc "InitFunction" "I" Exec xsetroot -solid cyan4 & < #+ "I" Module FvwmBanner < + "I" Module FvwmButtons < + "I" Module FvwmTaskBar < #+ "I" Module FvwmPager 0 3 < < AddToFunc "RestartFunction" "I" Module FvwmButtons < + "I" Module FvwmTaskBar < #+ "I" Module FvwmPager 0 3 < --- > AddToFunc "InitFunction" > #+ "I" Module FvwmButtons > + "I" Module FvwmButtons MiniButtons > + "I" Module FvwmPager 0 0 > > AddToFunc "RestartFunction" > #+ "I" Module FvwmButtons > + "I" Module FvwmButtons MiniButtons > + "I" Module FvwmPager 0 0 227d215 < #AddToMenu "StartMenu" 243c231 < + "Exit Fvwm95 %mini-stop.xpm%" Popup Quit-Verify --- > + "Exit Fvwm2 %mini-stop.xpm%" Popup Quit-Verify 450,451c440 < #+ "Workman%mini-cdlabel.xpm%" Exec workman & < + "KSCD%mini-cdlabel.xpm%" Exec kscd & --- > + "Workman%mini-cdlabel.xpm%" Exec workman & 494,495c483 < + "TkDesk%mini-desktop.xpm%" Exec tkdesk & < + "Xfilemanager%mini-filemgr.xpm%" Exec xfilemanager & --- > #+ "TkDesk%mini-desktop.xpm%" Exec tkdesk & 504c492 < + "Quit fvwm95%mini-exclam.xpm%" Quit --- > + "Quit fvwm2%mini-exclam.xpm%"Quit 506c494 < + "Restart Fvwm95%mini-turn.xpm%" Restart fvwm95 --- > + "Restart Fvwm2%mini-turn.xpm%" Restart fvwm2 508c496 < + "Start fvwm2%mini-windows.xpm%" Restart fvwm2 --- > + "Start fvwm95%mini-exp.xpm%" Restart fvwm95 513d500 < + "Start kde%mini-cat.xpm%" Restart kde 518,520c505,507 < DestroyMenu "Module-Popup" < AddToMenu "Module-Popup" < #+ "Audio" Module FvwmAudio --- > #DestroyMenu "Module-Popup" > #AddToMenu "Module-Popup" > ##+ "Audio" Module FvwmAudio 522,532c509,541 < + "Button Bar%mini-ball.xpm%" Module FvwmButtons < + "Button Bar (Mini)%mini-ball.xpm%" Module FvwmButtons MiniButtons < #+ "Clean-Up%mini-pencil.xpm%" Module FvwmClean < #+ "Configure%mini-hammer.xpm%" Module FvwmConfig < + "Debug%mini-bug2.xpm%" Module FvwmDebug < + "Task bar%mini-exp.xpm%" Module FvwmTaskBar < + "Identify%mini-question.xpm%" Module FvwmIdent < + "Save Desktop%mini-desktop.xpm%" Module FvwmSaveDesk < + "Pager%mini-pager.xpm%" Module FvwmPager 0 3 < + "Window List%mini-windows.xpm%" Module FvwmWinList < + "Talk%mini-exclam.xpm%" Module FvwmTalk --- > #+ "Button Bar%mini-ball.xpm%" Module FvwmButtons > #+ "Button Bar (Mini)%mini-ball.xpm%" Module FvwmButtons MiniButtons > ##+ "Clean-Up%mini-pencil.xpm%" Module FvwmClean > ##+ "Configure%mini-hammer.xpm%"Module FvwmConfig > #+ "Debug%mini-bug2.xpm%" Module FvwmDebug > ##+ "Task bar%mini-exp.xpm%" Module FvwmTaskBar > #+ "Identify%mini-question.xpm%" Module FvwmIdent > #+ "Save Desktop%mini-desktop.xpm%" Module FvwmSaveDesk > #+ "Pager%mini-pager.xpm%" Module FvwmPager 0 0 > #+ "Window List%mini-windows.xpm%" Module FvwmWinList > #+ "Talk%mini-exclam.xpm%" Module FvwmTalk > > AddToMenu Module-Popup "FvwmModules" Title > + "Identify" Module FvwmIdent > + "Talk" Module FvwmTalk > + "" Nop > + "Button-Bar" Module FvwmButtons > + "Pager" Module FvwmPager 0 0 > + "Pager (2 desks)" Module FvwmPager 0 1 > + "WinList"Module FvwmWinList > + "" Nop > + "Banner" Module FvwmBanner > + "ScrollBar" Module FvwmScroll 50 50 > + "Background" Module FvwmBacker > + "AutoRaise" Module FvwmAuto 200 Raise Nop > + "Stop AutoRaise" KillModule FvwmAuto > + "" Nop > + "IconBox"Module FvwmIconBox > + "IconMan"Module FvwmIconMan > + "" Nop > + "Form - Rlogin" Module FvwmForm Rlogin > + "Form - MyFvwmTalk" Module FvwmForm MyFvwmTalk > + "Form - QuitVerify" Module FvwmForm QuitVerify 538d546 < #AddToMenu "Utilities" 539a548,549 > + "" Nop > + "Xterm%mini-term.xpm%" Exec xterm -sb -sl 500 -j -ls -fn 7x14 -fb 7x14bold & 558c568 < + "Exit Fvwm95%mini-stop.xpm%" Popup Quit-Verify --- > + "Exit Fvwm2%mini-stop.xpm%" Popup Quit-Verify 563,564c573,574 < DestroyMenu "Window" < AddToMenu "Window" "Window Ops" Title --- > DestroyMenu "Window Ops" > AddToMenu "Window Ops" Title 628d637 < # Any button in the third (rightmost) title-bar button closes 632,635c641,643 < Mouse 0 1 A Function "window_ops_func" < Mouse 1 2 A Delete < Mouse 0 4 A Maximize 100 100 < Mouse 0 6 A Iconify --- > Mouse 0 1 A Function "window_ops_func" > Mouse 0 2 A Maximize 100 100 > Mouse 0 4 A Iconify 637d644 < # 728c735 < *FvwmPagerGeometry -1-1 --- > *FvwmPagerGeometry -3-27 737c744 < *FvwmButtonsGeometry -5-34 --- > *FvwmButtonsGeometry -5-5 742d748 < *FvwmButtons Saver mini-display.xpm Exec "Screensaver" xlock -nolock -nice 0 -mode star & 745,749c751,754 < #*FvwmButtons (2x1) load NULL Swallow "xload" Exec nice -16 xload -nolabel -bg grey60 -update 5 -geometry -1500-1500 < #*FvwmButtons Mozilla netscape.xpm Exec "Mozilla" mozilla & < *FvwmButtons Mozilla mozilla.xpm Exec "Mozilla" mozilla & < *FvwmButtons xterm mini-term.xpm Exec "Color xterm" xterm -ls -sb -fn 7x14 -title "Color xterm" & < *FvwmButtons xfm Xfm.xpm Exec "Xfm" xfm -title "File Manager" & --- > *FvwmButtons (2x1) load NULL Swallow "xload" Exec nice -16 xload -nolabel -bg grey60 -update 5 -geometry -1500-1500 > *FvwmButtons Netscape nscape.xpm Exec "Netscape" netscape & > *FvwmButtons xterm rterm.xpm Exec "xterm" xterm -ls -sb -fn 7x14 & > *FvwmButtons xfm Xfm.xpm Exec "Xfm" xfm & 753,755c758,760 < #*FvwmButtons ghostview gv.xpm Exec "ghostview" ghostview & < #*FvwmButtons netscape netscape.xpm Exec "Netscape" netscape -geometry 920x650+90+5 < *FvwmButtons kill mini-bomb.xpm Destroy --- > #*FvwmButtons gv gv.xpm Exec "gv" gv & > #*FvwmButtons netscape nscape.xpm Exec "Netscape" netscape -geometry 920x650+90+5 > *FvwmButtons kill rbomb.xpm Destroy 766c771 < *MiniButtonsGeometry -5+5 --- > *MiniButtonsGeometry -5-5 771,772c776,777 < *MiniButtons - mini-term.xpm Exec "XTerm" xterm -ls -sb -fn 7x14 & < *MiniButtons - mini-filemgr.xpm Exec "Xfm" xfm -title "File Manager" & --- > *MiniButtons - mini-term.xpm Exec "XTerm" xterm -ls -sb -fn 7x14 & > *MiniButtons - mini-filemgr.xpm Exec "Xfm" xfm & 774c779 < #*MiniButtons - mini-gv.xpm Exec "ghostview" ghostview & --- > #*MiniButtons - mini-gv.xpm Exec "gv" gv & 803,804c808 < #*FvwmTaskBarTipsBack bisque < *FvwmTaskBarTipsBack #c3c3c3 --- > *FvwmTaskBarTipsBack bisque 815c819 < #*FvwmTaskBarStartIcon mini-penguin.xpm --- > *FvwmTaskBarStartIcon mini-penguin.xpm 817d820 < *FvwmTaskBarStartIcon tux.xpm 819c822 < #*FvwmTaskBarMailProg xterm -e mail --- > *FvwmTaskBarMailProg xterm -e mail 10.2.3 Mozilla The only thing to note about the above for Mozilla is that if you are running the fvwm2 window manager, then in the /usr/lib/X11/fvwm2/system.fvwm2rc initialization file, add this line the sticky buttons: *FvwmButtons Mozilla mozilla.xpm Exec "Mozilla" mozilla & Which goes below the lines: # Define the buttons to use..... 10.3.0 I got images out of 2 directories which contain small image files which I have to the buttons. The first: /usr/include/X11/pixmaps contains images in *.xpm format. The second: /opt/kde/share/icons/crystalsvg/32x32/apps has *.png images which need to be converted to *.xpm images to be usable by fvwm2. I did this with the mozilla.png and tux.png. 10.4.0 You can check the messages you get when you begin X windows by typing in: startx > xerr.log 2>&1 11.0.0 Modem 11.1.0 The /usr/doc/Linux-HOWTOs/Diald-HOWTO and the /usr/doc/Linux-HOWTOs/Serial-HOWTO have a lot of good information on configuring the modem. To get the serial port to take advantage of your 56K modem, add the spd_vhi flag after the ${SETSERIAL} in /etc/rc.d/rc.serial: ${SETSERIAL} -W /dev/cua1 spd_vhi In addition, comment out all the lines which fall under AUTOMATIC CONFIGURATION and manually configure your serial ports in the MANUAL CONFIGURATION section. The only line I commented out was: ${SETSERIAL} /dev/cua0 uart 16450 port 0x3F8 irq 4 ${STD_FLAGS} ${SETSERIAL} /dev/cua1 uart 16450 port 0x2F8 irq 3 ${STD_FLAGS} 11.2.0 Minicom The program I am using to make a dial-up connection is Minicom. Before you can use Minicom from a personal account, first, as root, do a: minicom -s This will give menus to configure Minicom. For Serial port setup, under E - Baud/Par/Bits, choose G: 57600. Then Save setup as dfl and Exit. When you are trying to sz a file, it is very important that the down­ load directory is set to your own and not to root. So after running Minicom in your personal account, do a and then press Z. This will give you another menu with several options. Pick "o" under "Other Functions" for "cOnfigure Minicom", and after the configura­ tion menu comes up, choose "Filenames and paths" and change the down­ load directory to /home/slffea/. Then save this configuration. 11.3.0 Configuring PPP The information below is taken from a guide written by Mark Hays. I have saved this on the disk LINUX FILES TO SAVE III as modem.txt. 11.3.1 The file /usr/sbin/ppp-on should have the lines(with MYLOGIN, MYPASSWORD, and MYPHONE replaced with the appropriate settings): # These are the parameters. Change as needed. BAUDRATE=115200 # Serial port speed HOST=isp.com # Host to connect to from CCIT ACCOUNT='MYLOGIN' # The account name for logon (as in 'George Burns') PASSWORD='MYPASSWORD' # The password for this account (and 'Gracie Allen') PROMPT='}' # Part of your shell prompt MTU=1500 # Maximum Transmission Unit -- tune for max throughput MRU=1500 # Maximum Receive Unit -- tune for max throughput # # Other parameters -- shouldn't need to change MODEMDEV=/dev/modem # Modem device TELEPHONE=MYPHONE # The telephone number for the connection NETMASK=255.255.255.0 # The proper netmask if needed 11.3.2 The other files /usr/sbin/ppp-off and /usr/sbin/ppp-on-dialer probably do not have to be modified. 11.3.3 The file /etc/ppp/options may not need very much modification either. 11.3.4 On the host machine, you need the slirp binary appropriate for the machine of your ISP. Do a search for SLIRP and install it on your ISP account. You also need the script "slirplogin" in the main directory of your account: #!/bin/sh ######################################################################## # slirplogin: # # This script sets up a couple of things and runs slirp for you # mesg n >/dev/null 2>&1 stty -echo >/dev/null 2>&1 exec slirp $* echo "Cannot start Slirp" # EOF slirplogin 11.3.5 Finally, put these lines in the /etc/resolv.conf file: search isp.com nameserver 123.123.123.123 and make sure the permissions on the above files are: -rwxr-xr-x 1 root root 1358 Jul 7 14:20 ppp-on-dialer -rwxr-xr-x 1 root root 2223 Jul 7 14:23 ppp-on -rwxr-xr-x 1 root root 1081 Jul 7 14:21 ppp-off -rwxr-xr-x 1 root root 1081 Jul 7 14:21 slirplogin -rwsr-sr-x 1 root bin 144980 Jun 18 2000 pppd drwxrwxr-x 3 root uucp 4096 Mar 6 23:49 lock/ To get the permissions for /usr/sbin/pppd: cd /usr/sbin/ chmod 6755 pppd and the permissions on the files /dev/modem and /dev/ttyS1 are: lrwxrwxrwx 1 root root 5 Aug 20 00:29 modem -> ttyS1 crw-rw-rw- 1 root tty 4, 65 Feb 7 23:58 ttyS1 You may have to create the modem link: cd /dev/ ln -s ttyS1 modem Some of the files discussed above should be copied from the disks LINUX FILES TO SAVE II. If there is a problem such as the system not recognizing /dev/cua1, it can be due to incorrect building of the kernel. Additional information can be found in /usr/doc/Linux-HOW­ TOs/PPP-HOWTO. 12.0.0 Networking 12.1.0 Ethernet Card After selecting the correct driver for my Ethernet card, I commented out the line: #/sbin/modprobe rtl8139 in /etc/rc.d/rc.modules. Now, when I do dmesg, I get: rtl8139.c:v1.07 5/6/99 Donald Becker http://cesdis.gsfc.nasa.gov/linux/drivers/rtl8139.html eth0: RealTek RTL8139 Fast Ethernet at 0xfc00, IRQ 10, 00:50:ba:d6:44:13. Which is the correct IRQ for my card. When I do a ifconfig, I get: eth0 Link encap:Ethernet HWaddr 00:50:BA:D6:44:13 inet addr:192.168.1.8 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 Interrupt:10 Base address:0xfc00 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:3924 Metric:1 RX packets:875 errors:0 dropped:0 overruns:0 frame:0 TX packets:875 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 ppp0 Link encap:Point-to-Point Protocol inet addr:198.211.51.14 P-t-P:163.179.10.80 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:1136 errors:0 dropped:0 overruns:0 frame:0 TX packets:818 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 12.2.0 I also had to run netconfig to set a static IP address for this particular computer on my LAN. At the command prompt, type: netconfig Here are the choices I made to configure my network: Enter hostname: san Enter domain name for san: san What type of network connection best describes your machine?: static IP Enter your IP address for the local machine: 192.168.1.8 Enter your netmask: 255.255.255.0 (default) Enter the address for the gateway on your network: (because I am using a modem) Will you be accessing a nameserver?: (I am using the nameservers provided by netcom) Name Server for domain san (aaa.bbb.ccc.ddd): 192.168.1.8 Note that I will have to add the nameservers associated with my ISP to resolv.conf because it has been overwritten by netconfig. 12.2.1 The IP address 192.168.XXX.XXX is unique in that it is reserved for a LAN(I think). There also seems to be some security issues associated with this domain since I am unable to connect to it unless the connecting computer also has an IP address of the form 192.168.XXX.XXX. Further, the connect­ ing computer has to have the third field the same as well. So based on the above setting, an acceptable IP address for the con­ necting computer would be 192.168.1.XXX. 12.2.2 I successfully connected a Windows 2000 machine by setting the IP address for the Network card to this setting. To do it under Knoppix, the configuration process involved the following. From the menu at the bottom right, choose: KNOPPIX/Network\Internet/Network card configuration/ This will prompt you for the following data: Use DHCP broadcast?: No Please enter IP Address for eth0: 192.168.1.1 Please enter Network Mask for eth0: 255.255.255.0 Please enter Broadcast Address for eth0: 192.168.1.1 Please enter Default Gateway: 192.168.1.8 Please enter Nameserver(s): 192.168.1.8 When, on this connecting computer, you do an: ifconfig you will get: eth0 Link encap:Ethernet HWaddr 00:02:E3:1D:84:03 inet addr:192.168.1.1 Bcast:192.168.1.1 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:68 errors:0 dropped:0 overruns:0 frame:0 TX packets:99 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:5672 (5.5 KiB) TX bytes:68695 (67.0 KiB) Interrupt:11 Base address:0xa000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:18 errors:0 dropped:0 overruns:0 frame:0 TX packets:18 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:900 (900.0 b) TX bytes:900 (900.0 b) 12.3.0 ssh 12.3.1 On Slackware 10.1, the ssh server is run by default. To prevent attempts to hack into my computer, I made the following modifications to /etc/hosts.allow and /etc/hosts.deny. In /etc/hosts.deny, I add the line: ALL: ALL and in /etc/hosts.allow, I added: ALL: 192.168.1.6 ALL: 192.168.1.7 ALL: 192.168.1.8 which are the only local machines allowed to login to my Linux machine. You can read more about this in the /usr/doc/Linux-HOW­ TOs/Security-HOWTO. And to see if there was an attempt to hack your machine, look in the file /var/log/syslog. 12.3.2 If you want to completely shut down the sshd daemon, you can, as root, do: cd /etc/rc.d/ ./rc.sshd stop and to start it up again: cd /etc/rc.d/ ./rc.sshd restart To permanently turn it off, you can do: cd /etc/rc.d/ chmod -x rc.sshd Note that even if you do not have ssh services running, you still are able to ssh to another machine. 12.3.3 To turn on ssh services in KNOPPIX, you should go to: KNOPPIX/Services/Start SSH Server/ KNOPPIX may then ask you set user information for the user knop­ pix which will be the user you login as. If you prefer another user, you can also create one with: System/KUser (User Manager)/ 13.0.0 Printing The new printing system is now based on CUPS. So I don't think you have to configure /etc/printcap or /modules.conf anymore unless you use the old lp system. This is no longer installed by default in Slackware so it is advisable to use CUPS. If you try to simply run lp or lpr, you will probably get: lpr: error - scheduler not responding! Also, CUPS will generate it's own /etc/printcap. 13.1.0 First, you have to make sure that the initializa­ tion script for CUPS is running. To do this, you should: cd /etc/rc.d/ ls -l rc.cups The file rc.cups should be an executable and with the permissions: -rwxr-xr-x 1 root root 3942 2005-01-04 18:13 rc.cups If they aren't set to this, you have to do: chmod +x rc.cups 13.2.0 The only way I was able to configure CUPS was through the KDE Window Manager and as root. CUPS may ask you for a password when you first start it, and this is different from your root/administrator password. In theory, you should be able to set this password by doing: lppasswd -g sys -a root but this resulted in several errors such as it couldn't find the password file. Because of this, I decided to log in as root and do everything through KDE. 13.3.0 Now, you will want to start up a web browser and set the address to: http://localhost:631/ and click on the Do Administration Tasks. Now you will be prompted for a password, and I used root with the standard root password. I'm not sure why this worked, considering that I hadn't set the password through lppasswd. It may have been because I changed the owner of lppasswd from lp to root by doing: chown root /usr/bin/lppasswd but I'm not sure. It may also be that because I was already logged in as root. Anyway, now you should just follow the steps under Add Printer and this was enough to get the printer running. Also, you need to make sure that localhost is a valid IP address on your sys­ tem. You should check /etc/hosts to make sure it has the line: 127.0.0.1 localhost 13.4.0 Though it may not be necessary, I added some lines for the printer to /etc/modules.conf. The lines below were taken from /usr/src/linux/Documentation/parport.txt: # Printer alias parport_lowlevel parport_pc options parport_pc io=0x378,0x278 irq=7,auto 13.5.0 A list of available fonts is given in /usr/share/groff/font/devps/. I will say at this point that I found this new system to be incredibly frustrating. This need for an additional password seems needlessly com­ plex, especially with all the problems I had trying to set it. There may be some security reasons for why things are done this way, but for the average printer setup, I imagine it will drive a lot of people away from using GNU/Linux. The need to configure through a browser may be a big problem as well. For many users on google, this was the case. It took me 5 hours to get the printer to work, and this is unacceptable. I also hate the way old configuration methods are abandoned which nearly negates all prior knowledge, and this is a reason I think Microsoft will continue to dominate the desktop. It may be easier to configure CUPS through Red­ hat, so you may want to consider going with them. 14.0.0 Installing Software 14.1.0 In general, extract the application tarfiles according to the following rules: 14.1.1 Put non-X Window packages and software devel­ opment tools in /usr/local/. 14.1.2 Put X Window packages in /usr/lib/X11/. 14.2.0 After creating an executable, put it in /usr/local/bin/ if you want all users to have access to it. Read UNIX System V Release 4: The Complete Reference pages 110-112 for a good discussion of the contents of the different UNIX directories. 15.0.0 To see boot up messages: dmesg There is also the file /var/log/messages which gives you additional sys­ tem information for your current login session. 16.0.0 Installing Mesa(the OpenGL graphics library): 16.1.0 For recent versions of GNU/Linux(like Slack­ ware-7.1), Mesa comes pre-installed. All you need to do is add the following softlink: cd /usr/include/ ln -s /usr/X11R6/include/GL/ GL if it doesn't already exist. If you are running Redhat, you need to add the glut libraries from the RPMs on the installation disk(For RedHat 8.0, it is on the 3rd disk, for RedHat 9.0, it is on the 2nd disk): cd /mnt/cdrom/RedHat/RPMS rpm -Uhv glut-3.7-12.i386.rpm rpm -Uhv glut-devel-3.7-12.i386.rpm There are several places where you can get Mesa. You can get it off the web at: http://sourceforge.net/project/showfiles.php?group_id=3&release_id=40500 16.2.0 After getting the tarfiles, copy them to the directory /usr/local/ and do: tar xzvfp MesaLib*.gz tar xzvfp MesaDemos*.gz 16.3.0 Compiling Mesa Programs 16.3.1 From the /Mesa-3.4.2/README: To compile the library, first type 'make' alone to see the list of system configurations currently supported. If you see your configuration on the list, type 'make '. Most popular Unix/X workstations are currently supported. For my machine, I use: make linux 16.3.2 Header Files and Libraries From the /Mesa-3.4.2/docs/INSTALL: Header and library files: After you've compiled Mesa and tried the demos I recommend the following procedure for "installing" Mesa. Copy the Mesa include/GL directory to /usr/local/include: mkdir /usr/local/include/GL cp -r include/GL/* /usr/local/include/GL/ Copy the Mesa library files to /usr/local/lib: cp -d lib/* /usr/local/lib (actually, use "cp -d" on Linux to preserve symbolic links) 16.3.3 Install Widgets-Mesa Library You also need to install the Widgets-Mesa Library. First: cd /usr/local/Mesa-3.4.2/widgets-mesa/ The file /usr/local/Mesa-3.4.2/widgets-mesa/INSTALL tells you to: ./configure make make demo.gl make demo.mesa make demo.ws make demo.tea make install 16.4.0 Glut If you get Mesa-2.5 or lower, you will be able to use both Aux and Glut. Mesa-3.4.2 and the tarfile glut36.tgz, which I got from: http://reality.sgi.com/mjk_asd/glut3/glut-3.6.tar.gz has Glut demos only. I recommend you only use Glut which is far superior to Aux. You can use Glut-3.6, which has some great demos, as your source of OpenGL, or you can continue using Mesa. Since Mesa has all the necessary libraries to compile programs in Glut, I recom­ mend that you take the very good demo programs you get after extract­ ing glut36.tgz in the desired directory(like /usr/local/): cd /usr/local/ tar xzvfp glut36.tgz and compiling them with Mesa-3.4.2. This will save you a lot of space since making all the demo binaries in Glut-3.6 requires 250 Megs of disk space. The glut36.tgz file is itself 1725 K. Below are the steps for doing the full installation. 16.4.1 Follow these steps as given by /usr/local/glut-3.6/linux/README. You must do this while logged in as root. It is not enough to simply do an "SU". From /usr/local/glut-3.6/linux/README: Change into $GLUT_HOME/. and make a backup copy of the Glut.cf file. Then, take the copy from this archive and move it into $GLUT_HOME. cd /usr/local/glut-3.6 cp Glut.cf Glut.cf.old cp /usr/local/glut-3.6/linux/Glut.cf /usr/local/glut-3.6/Glut.cf 16.4.2 Run the script to build all the make­ files: mkmkfiles.imake 16.4.3 Change into $GLUT_HOME/lib/glut/. and make a backup copy of the Makefile. Now, take the Makefile out of the archive and replace the old one. cd /usr/local/glut-3.6/lib/glut cp Makefile Makefile.old cp /usr/local/glut-3.6/linux/Makefile /usr/local/glut-3.6/lib/glut/Makefile 16.4.4 WHILE STILL IN THE $GLUT_HOME/lib/glut/. DIRECTOR, RUN(Note that the README also talks about poten­ tial problems and how to solve them in this section) : make 16.4.5 Make two symbolic links: ln -s libglut.so.3.6 libglut.so.3 ln -s libglut.so.3.6 libglut.so 16.4.6 Now, back up to $GLUT_HOME/. and: cd /usr/local/glut-3.6 make 16.4.7 Add the line from archive file 'path' to your .profile, or better to your systemwide (/etc/profile). Then logout out and back in again (to refresh your path.) I added these lines: #Software Development #Glut GLUT_HOME=/usr/local/glut-3.6 export LD_LIBRARY_PATH=$GLUT_HOME/lib/glut/:$LD_LIBRARY_PATH export GLUT_HOME to my ~/.profile rather than the systemwide /etc/profile. If you want to make it possible for other users to develop software with these libraries, then you should add it to /etc/profile/. You can put this line at the bottom of the file. You may have to reset the machine after this before it will take effect. Now it will be possible to run the demo programs. 16.5.0 Makefiles for Glut and Aux 16.5.1 In a Makefile, you must include a line like: bounce: gcc -I/usr/local/include -O2 -funroll-loops -ansi -pedantic\ -ffast-math -I/usr/X11R6/include -DSHM\ -L/usr/local/lib -lglut -lGLU -lGL -lm -L/usr/X11/lib\ -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE when the code is built around the Glut library, and: gears: gcc -I/Mesa-3.0/include -O2 -funroll-loops -ansi -pedantic -ffast-math\ -I/usr/X11R6/include -DSHM gears.c -L../lib -lMesaaux -lMesatk\ -lMesaGLU -lMesaGL -lm -L/usr/X11/lib -L/usr/X11R6/lib -lX11\ -lXext -lXmu -lXt -lXi -lSM -lICE -o gears when the code is built around the Aux library. 16.5.2 Alternatively you can create the following macros in the Makefiles: For Glut: LIB1 = -I/usr/local/include -O2 -funroll-loops -ansi -pedantic \ -ffast-math -I/usr/X11R6/include -DSHM LIB2 = -L/usr/local/lib -lglut -lGLU -lGL -lm -L/usr/X11/lib \ -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lSM -lICE For Aux: LIB1 = -I/Mesa-3.0/include -O2 -funroll-loops -ansi -pedantic -ffast-math \ -I/usr/X11R6/include -DSHM LIB2 = -L../lib -lMesaaux -lMesatk\ -lMesaGLU -lMesaGL -lm -L/usr/X11/lib -L/usr/X11R6/lib -lX11\ -lXext -lXmu -lXt -lXi -lSM -lICE and compile based on: sine: gcc -o sine $(LIB1) pcsine.c $(LIB2) 16.5.3 It was assumed in the above that the tarfiles were extracted from the / directory. If you were to place it in another, such as /usr/local/, then wherever you see a /Mesa-3.0/, replace this with /usr/local/Mesa-3.0. 16.5.4 If there is linking involved, you can use: att: swim.o \ atlantis.o \ shark.o \ whale.o \ dolphin.o \ atlantis.h $(CC) -o att $(LIB1) swim.o \ atlantis.o \ shark.o \ whale.o \ dolphin.o $(LIB2) swim.o: swim.c $(CC) -c swim.c shark.o: shark.c $(CC) -c shark.c whale.o: whale.c $(CC) -c whale.c dolphin.o: dolphin.c $(CC) -c dolphin.c atlantis.o: atlantis.c $(CC) -c atlantis.c The above example comes from my attempt to compile the separate modules which make up the demo program in /usr/local/glut-3.6/progs/demos/atlantis/ using the Mesa instal­ lation rather than Glut. 16.6.0 OpenInventor 16.6.1 Qt Download the OpenInventor like toolkit for GNU/Linux called Pryan from: ftp://ftp.troll.no/contest/ and extract the tarfile in /usr/local/: tar xzvfp inventor.tgz This will create the directory /usr/local/Pryan/. The /usr/local/Pryan/README states that before you can use Pryan, you have to install Qt, an X Windows development package. I down­ loaded it from: http://www.troll.no/dl/qt-1.40.tar.html and extracted the tarfile in /usr/local: tar xzvfp qt1_4.tgz This creates the directory /qt-1.4/. From /usr/local/qt-1.40/INSTALL, you should now rename this directory qt: mv qt-1.40 qt Modify /root/.profile in the root account as indicated in step 2 of /usr/local/qt-1.40/INSTALL. I simply copied all the shell commands below the statement: In .profile (in case your shell if bash, ksh, zsh or sh): to /root/.profile. To activate this shell, do a: source /root/.profile Then in /usr/local/qt, type: make linux-g++-shared-debug make From the /usr/local/Pryan/README: 2. you need to compile the QGLWidget library in OpenGL directory of Qt's distribution, which, from the /usr/local/qt/extensions/opengl/README/, is done by: cd /usr/local/qt/extensions/opengl/src/ make To make the OpenGL examples, go to each of the three directories box/ gear/ and sharedbox/ located in /usr/local/qt/exten­ sions/opengl/examples/ and type "make" in each one. There are several other examples in the directory /usr/local/qt/examples/ which you may want to try out. Qt may even be a more versatile package than the Lesstif X Window Devel­ opment Tools in 16.0. 16.6.2 Installing OpenInventor Emulator Pryan Follow the instructions for installation in the /usr/local/Pryan/README. After extracting the tarfile: tar xzvfp pryan.tgz in /usr/local/Pryan/Config, change gmake to make. Then put the $(GLLIB) after $(QTLIB) in the macro definition for LFLAGS. So it should look like: LFLAGS = -L/usr/X11R6/lib $(MOTLIB) $(QTLIB) $(GLLIB) $(GLLIBS) -lXext -lX11 -lm This is because the glX functions are defined by Mesa's glx.c files so you need "-lMesaGL -lMesaGLU" to follow "-L/usr/local/qt/lib". Now you can type: make 16.6.3 Installing OpenInventor Emulator Apprentice Apprentice can be downloaded from: http://users.deltanet.com/~powerg/Apprentice/ Extract the tarfile, go to the newly created directory Appren­ tice/, and then do a: tar xzvfp apprent.tgz cd Apprentice/ make linux-nomotif You will then have to go to the directory Apprentice/exam­ ples/ivview/ where the file called Apprentice tells you to do a: xrdb -o Apprentice Apprentice ivview ../../Cone.iv This will allow you to use the iv viewer program, ivview, in this directory. 17.0.0 X Window Development Tools(which create windows and buttons) 17.1.0 You must do everything here logged in as root. Download the Lesstif package from: ftp://linux.gt.ed.net/pub/linux/libs/lesstif/ then copy it to the desired directory(like /usr/local/) and extract the tarfile: tar xzvfp lesstif-current.tar.gz 17.1.1 This will create the directory, /usr/local/lesstif-current/. The file /usr/local/lesstif-cur­ rent/INSTALL will instruct you to do the following: cd /usr/local/lesstif-current/ configure make make install 17.1.2 Edit /etc/ld.so.conf and add the following line so that the necessary shared libraries will be available: /usr/local/lesstif-current/lib Remember to change /usr/local/ to the directory where you installed the package. Then run: ldconfig -v 17.1.3 The example programs are located in: /usr/local/lesstif-current/test/Xm/ in their respective directories. I tried to install Lesstif from the Cheap*Bytes Archive 1 CDrom located at: /cdrom/hungry/lesstif/lesstif-current.tar.gz but there were some compilation errors. The version which I download is the latest distribution of Lesstif. 17.2.0 An alternative to Lesstif is Tcl/Tk. It already came installed on Linux, so all I had to do was work with the demos given in: /usr/lib/tk8.0/demos/ 18.0.0 Standard Generalized Markup Language(SGML) 18.1.0 After getting the SGML tools from: http://pobox.com/~cg/sgmltools or http://www.pobox.com/~cg/sgmltools extract the tarfiles in the desired directory(like /usr/local/): cd /usr/local/ tar xzvfp sgml.tgz tar xzvfp sgml2.gz This will create the directories /usr/local/sgml-tools-1.0.7/ and /usr/local/SGML-Tools/. 18.2.0 Next, from the file /usr/local/sgml- tools-1.0.7/INSTALL, do a: cd /usr/local/sgml-tools-1.0.7/ configure make make install Once installed, it will be usable by everyone. 18.3.0 The instructions on using the package are in the file /usr/local/sgml-tools-1.0.7/doc/guide.txt under section 4 For­ matting SGML Documents. 19.0.0 Writing to CDs 19.1.0 To use the CD-RW, I had to use the ide-scsi mod­ ule which has to be loaded during boot up. I configured LILO to do this by adding in /etc/lilo.conf the line: append="hdc=ide-scsi" in the section for booting the linux kernel. This is discussed in the email sent by Patrick Volkerding after installation: The ide-scsi module is loaded by default for Linux 2.4, but you'll also need to pass an option to the kernel telling it to use SCSI emulation for a specific device, otherwise the ATAPI driver will be used. Let's say your CD-RW drive is /dev/hdc, then you'd want to pass the "hdc=ide-scsi" option to the kernel. You can do this with an append com­ mand in /etc/lilo.conf: append="hdc=ide-scsi" After editing lilo.conf, you must run lilo to reinstall it. You can also pass the hdc=ide- scsi option on a bootdisk command line. After doing the above, subsequent boot ups should list ide-scsi as a module when you do lsmod. 19.2.0 The next thing to do is to make a softlink between /dev/cdrom and /dev/scd0 which is how the SCSI will now appear. The email above continues on to say: Once you do this, your CD-RW device will appear as a SCSI device (/dev/scd0) rather than an IDE device (/dev/hdc). If this is the only CD-ROM type device in the machine (there's no DVD drive, for instance), then you'll probably also want to change your /dev/cdrom symbolic link to point to the new SCSI device instead of the old IDE device: cd /dev rm cdrom ln -sf scd0 cdrom I myself did: cd /dev rm cdrom ln -sf /dev/scd0 cdrom 19.3.0 The main programs to use when burning CDs are nautilus and nautilus-cd-burner. The latter can be launched from the former which you can do through the command line. These programs are completely GUI driven. 19.3.1 Nautilus After startingNautilus with: nautilus & a window will appear containing the files in your home directory will appear. Nautilus runs like a file manager in Windows where you can drag files from one window into another. Go to the menu File/Open Location.../ and type in: burn:/// and this will launch the CD Creator window. You can drag files or directories from any window into this window, and it will be part of the files burned into the CD-R. If you want to open up another directory, you can also use the menu under File/Open Location.../ and type in the directory you want to open. I have found this to be more reliable than simply clicking on an icon in the window. 19.3.2 Once you have copied all the files you want, select the CD Creator window and menu option File/Write to CD/ which will open another window. The first thing to note is a message at the top saying how large the data to be written will be. Most CD-R disk allow 700 MB and so this data probably should be less than 680 MB. Below are several options such as naming the CD, set the write speed, and the target to write to. Other choices to make are check boxes for Erase CD, Eject CD when done, and Reuse these files for another CD. Most are self-explanatory, but I will make special note of the Target to write to and Reuse these files for another CD options. For the latter, checking this box will retain the data after writing in case you want to make another CD. I usually check this box in case something goes wrong. For the Target to write to, I choose File image rather than CDWRITER -IDE5224 because I haven't config­ ured the CD-RW to allow non-superusers to write to the CD. Once you have selected the above, press the Write files to CD button. Two windows will now open. The first gives you the option of naming the CD image whose default name is image.iso and the directory you want to save it in. Even though the default folder is Home, this is really your personal user home directory so you can simply press the OK but­ ton. You can also Browse for other folders. The second window is the Writing CD window which tells you the status of the writing. Once this is completed, you should have the file image.iso in the directory you selected. 19.3.3 Writing image to CD Now I change to superuser and write to the cd using cdrecord. First, you have to scan for CD-RW devices which the command: #cdrecord -scanbus The output for me is: Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling Linux sg driver version: 3.1.25 Using libscg version 'schily-0.8'. scsibus0: 0,0,0 0) 'CDWRITER' 'IDE5224 ' 'S027' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * Now I give the command: #cdrecord -v -eject speed=24 dev=0,0,0 image.iso where the speed=24 matches the speed of the CD-RW and dev=0,0,0 corresponds to the devices listed from the output of cdrecord -scanbus. The output of the above is: root@san:/home/fem# cdrecord -v -eject speed=24 dev=0,0,0 image.iso cdrecord: No write mode specified. cdrecord: Asuming -tao mode. cdrecord: Future versions of cdrecord may have different drive dependent defaults. cdrecord: Continuing in 5 seconds... Cdrecord-Clone 2.01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling TOC Type: 1 = CD-ROM scsidev: '0,0,0' scsibus: 0 target: 0 lun: 0 Linux sg driver version: 3.1.25 Using libscg version 'schily-0.8'. SCSI buffer size: 64512 atapi: 1 Device type : Removable CD-ROM Version : 0 Response Format: 1 Vendor_info : 'CDWRITER' Identifikation : 'IDE5224 ' Revision : 'S027' Device seems to be: Generic mmc CD-RW. Current: 0x0009 Profile: 0x000A Profile: 0x0009 (current) Profile: 0x0008 Profile: 0x0002 (current) Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr). Driver flags : MMC-3 SWABAUDIO BURNFREE Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R Drive buf size : 1951488 = 1905 KB FIFO size : 4194304 = 4096 KB Track 01: data 620 MB Total size: 712 MB (70:35.72) = 317679 sectors Lout start: 712 MB (70:37/54) = 317679 sectors Current Secsize: 2048 ATIP info from disk: Indicated writing power: 6 Is not unrestricted Is not erasable Disk sub type: Medium Type C, low Beta category (C-) (6) ATIP start of lead in: -11231 (97:32/19) ATIP start of lead out: 359846 (79:59/71) Disk type: Short strategy type (Phthalocyanine or similar) Manuf. index: 27 Manufacturer: Prodisc Technology Inc. Blocks total: 359846 Blocks current: 359846 Blocks remaining: 42167 Starting to write CD/DVD at speed 24 in real TAO mode for single session. Last chance to quit, starting real write 0 seconds. Operation starts. Waiting for reader process to fill input buffer ... input buffer ready. BURN-Free is OFF. Performing OPC... Starting new track at sector: 0 Track 01: 620 of 620 MB written (fifo 100%) [buf 98%] 24.7x. Track 01: Total bytes read/written: 650602496/650602496 (317677 sectors). Writing time: 197.559s Average write speed 22.3x. Min drive buffer fill was 87% Fixating... Fixating time: 19.711s cdrecord: fifo had 10248 puts and 10248 gets. cdrecord: fifo was 0 times empty and 5199 times full, min fill was 93%. Note that you do not have to mount the /cdrom first. 19.3.4 Additional Information When I tried to create another image which contained 609.3 MB, I got errors like: ** (nautilus-cd-burner:1173): WARNING **: Can't copy file (open dest '/tmp/iso-fem.7n3dWm/subdir.87pDVF/App_A.tex.gz' failed) error:: No space left on device This is due to the fact that my /tmp direc­ tory only had 160 MB and I needed 288 MB. I overcame this problem by mounting /tmp on /dev/hdb4 which is one of my backup parti­ tions on /dev/hdb4 and has 34 GB of space.(Note that I had not yet filled up this partition, so I didn't worry about files being deleted after the copying was done.) When CD Creator was finished making the image, the /dev/hdb4 went back down to 32.9 MB of data. Here is what I got when I did df during and after creating the image respec­ tively: /dev/hdb3 34104944 287148 33817796 1% /tmp /dev/hdb3 34104944 32852 34072092 1% /tmp There are some interesting numbers related to the amount of data I have recorded. For instance, even though the CD Creator says that all the files to be recorded amount to 609.9 MB, the image.iso file is 660 MB (660379648 Bytes), and the output from cdrecord says 629 MB. Also, after burning the CD and doing df for the cdrom, I get: /dev/scd0 644902 644902 0 100% /cdrom 20.0.0 Real Audio Player The real audio file is located on the disk GNU/Linux Plug and Play and is called raplayer.tgz. To get at it, do: cp /fd0dos/raplayer.tgz ~/ tar xzvfp ~/raplayer.tgz And read ~/raplayer8.0/README.FIRST. When I started RealPlayer 8.0, I get the error: Cannot open the audio device. Another application may be using it.. I solved this by doing the following: 20.1.0 Change the permissions for the file /dev/dsp to 666: chmod 666 /dev/dsp 20.2.0 Under the menu View/Preferences, click on the tab Performance and choose the button for Enable support for old OSS drivers (Linux only) for the Audio Driver Options. I had it previ­ ously set to ESound Support(Linux only, ESD must be running) but that no longer works. 21.0.0 Apache Web Server 21.1.0 The Apache webserver(1.2.4) is already running on the Slackware Distribution, but I was unable to find its directory tree so I downloaded the latest Apache(version 1.3.4 as of this writ­ ing) from: http://www.apache.org which I installed in /usr/local/etc using: cd /usr/local/etc cp /fd0dos/apache.tgz . tar xzvfp apache.tgz This will create a directory /usr/local/etc/apache_1.3.4/. I wanted the server to be in /usr/local/etc/httpd/ so I did a: mv apache_1.3.4/ httpd 21.2.0 In the file /usr/local/etc/apache_1.3.4/INSTALL/, there are instructions for installation. I chose the simplest: ./configure --prefix=/usr/local/etc/httpd make make install 21.3.0 Because I am using this webserver purely for testing CGI web pages, the only domain I use is Localhost so I had to make one modification of the configuration file /usr/local/etc/httpd/conf/httpd.conf setting: ServerName 127.0.0.1 21.4.0 Then I tested whether the installation worked with: /usr/local/etc/httpd/bin/apachectl start /usr/local/etc/httpd/bin/apachectl stop 21.5.0 My machine was already configured to start up the old version of Apache. To prevent it from running during startup, I commented out the lines: # Start Web server: #if [ -x /etc/rc.d/rc.httpd ]; then # . /etc/rc.d/rc.httpd #fi in the file /etc/rc.d/rc.M. Now when I run httpd, I do a: /usr/local/etc/httpd/src/httpd -f /usr/local/etc/httpd/conf/httpd.conf so that it runs the above version. Now start up Netscape and set the URL to: http://localhost/ I also did a: ps -ax to see if httpd was running. When you want to kill apache, the file http://localhost/manual/install.html tells you to: kill -TERM `cat /var/run/httpd.pid` 21.6.0 CGI To use CGI you must change the file permissions in /var/lib/apache/cgi-bin/ for group and other by adding read and exe­ cutable with: chmod 755 * 21.7.0 Perl The perl binary is located in /usr/bin/, so you should make a soft link to it from wherever the perl script expects to find it. For instance, at the top of my perl scripts is the line: #!/usr/local/bin/perl -w which shows that it expects to find perl in the /usr/local/bin/ directory. So I made a soft link called perl in this directory to the real perl: cd /usr/local/bin/ ln -s /usr/bin/perl5.00503 perl where perl5.00403 is the actual executable. Page 480 to 487 of Running Linux has a very good discussion of configur­ ing httpd. 22.0.0 Initialization Files .cshrc, .login, .bash_login, .profile 22.1.0 When invoking an xterm, I can get a personal ini­ tialization file to execute by naming it .profile. .cshrc or .login will not work. This is because I am using a bash shell. Here are the rules as given by "man bash": Login shells: On login (subject to the -noprofile option): if /etc/profile exists, source it. if ~/.bash_profile exists, source it, else if ~/.bash_login exists, source it, else if ~/.profile exists, source it. 22.2.0 Setting the Path for The Current Directory Slackware sets the path in /etc/profile so that an executable in the current directory will run by simply typing in the executable's name. This will work for all users other than root. If your distribution does not already do this, you can modify your .profile and add: export PATH=$PATH:. 23.0.0 Keyboard 23.1.0 If you want to change the keymap to Dvorak, then do the following as given in the /usr/doc/Linux-HOWTOs/Keyboard-and- Console-HOWTO: 5.2. How to tell Linux what code to generate when a key is pressed On the console, or, more precisely, when not in (MEDIUM)RAW mode, use % loadkeys dvorak.map (before startx) and under X use % xmodmap dvorak.map (after startx) This file has other information that you may want to go through. Look in the /usr/lib/kbd/keytables/ directory to see different types of keymaps. 23.2.0 I've had trouble using xmodmap to switch to Dvo­ rak from the /usr/lib/kbd/keytables. Someone suggested doing: xmodmap -pke > qwerty.map cp qwerty.map dvorak.map and swapping the keys one by one in dvorak.map until you get Dvorak. The dvorak.map file I made with this method has the following differ­ ences with the qwerty.map: keycode 20 = bracketleft braceleft keycode 21 = bracketright braceright keycode 24 = apostrophe quotedbl keycode 25 = comma less keycode 26 = period greater keycode 27 = p P keycode 28 = y Y keycode 29 = f F keycode 30 = g G keycode 31 = c C keycode 32 = r R keycode 33 = l L keycode 34 = slash question keycode 35 = equal plus keycode 39 = o O keycode 40 = e E keycode 41 = u U keycode 42 = i I keycode 43 = d D keycode 44 = h H keycode 45 = t T keycode 46 = n N keycode 47 = s S keycode 48 = minus underscore keycode 52 = semicolon colon keycode 53 = q Q keycode 54 = j J keycode 55 = k K keycode 56 = x X keycode 57 = b B keycode 59 = w W keycode 60 = v V keycode 61 = z Z I added the following lines to my .profile: alias km='xmodmap dvorak.map' alias tm='xmodmap qwerty.map' so that it will now execute xmodmap dvorak.map when I type km. Simi­ larly, typing tm will switch me back. 23.3.0 If you only want to change to DVORAK while in vi, you can get the two files: http://www.vim.org/src/keyboard.dvorak2qwerty and http://www.vim.org/src/keyboard.qwerty2dvorak Now, you can switch back and forth in vi, by doing: :source keyboard.qwerty2dvorak to use DVORAK and: :source keyboard.qwerty2dvorak to use QWERTY. 24.0.0 PCI 24.1.0 In the file /usr/src/linux/include/linux/pci.h, there are the following lines beginning on line 563: #define PCI_DEVICE_ID_INTEL_82371SB_0 0x7000 #define PCI_DEVICE_ID_INTEL_82371SB_1 0x7010 #define PCI_DEVICE_ID_INTEL_82371SB_2 0x7020 which indicate that the chips on my motherboard are supported. 24.2.0 When I do a: cat /proc/pci to see what pci devices were detected, I get: PCI devices found: Bus 0, device 11, function 0: VGA compatible controller: Matrox Unknown device (rev 0). Vendor id=102b. Device id=51b. Medium devsel. Fast back-to-back capable. IRQ 11. Master Capable. Latency=32. Prefetchable 32 bit memory at 0xfb000000. Non-prefetchable 32 bit memory at 0xffbec000. Non-prefetchable 32 bit memory at 0xff000000. Bus 0, device 7, function 2: USB Controller: Intel 82371SB Natoma/Triton II PIIX3 (rev 1). Medium devsel. Fast back-to-back capable. IRQ 10. Master Capable. Latency=32. I/O at 0xff80. Bus 0, device 7, function 1: IDE interface: Intel 82371SB Natoma/Triton II PIIX3 (rev 0). Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. I/O at 0xffa0. Bus 0, device 7, function 0: ISA bridge: Intel 82371SB Natoma/Triton II PIIX3 (rev 1). Medium devsel. Fast back-to-back capable. Master Capable. No bursts. Bus 0, device 0, function 0: Host bridge: Intel 82441FX Natoma (rev 2). Medium devsel. Fast back-to-back capable. Master Capable. Latency=32. 25.0.0 Creating a Bootdisk 25.1.0 After mounting the cdrom, read /cdrom/ker­ nels/README.NOW for information on creating a bootdisk. This is dif­ ferent from creating an installation bootdisk. 25.1.1 From the file /cdrom/kernels/README.NOW: 1. Using a kernel in this directory to make a simple boot­ disk: Just cat the kernel to a floppy, like this: cat scsinet.b/zImage > /dev/fd0 25.1.2 Here is a second option, as stated by README.NOW: Then, with a formatted disk in your boot drive, type: makedisk kernel_name disk_size ** ********* This can be 1440, or 1200. *********** mitsumi, scsi, or whatever you want to use. Include the path to the kernel if it's in one of the subdirectories, such as: mitsumi.b/zImage 25.1.3 The third and fourth option are(from /usr/doc/Linux-HOWTOs/Bootdisk-HOWTO): dd if=zImage of=/dev/fd0 and cp zImage /dev/fd0 where, for my system, the zImage comes from the /cdrom/ker­ nels/bare.i/ directory. Again, the reason I have not chosen /cdrom/kernels/fat32.i/ is because the system is FAT16. 25.1.4 A more thorough explanation of the above com­ mands comes from: http://sunsite.unc.edu/LDP/LDP/gs/node4.html#SECTION004112000000000000000 In section 2 Obtaining and Installing GNU/Linux of the above: If you have an operational Linux system; for example, if you upgrade and want to create the disk images with Linux, you change to the directory with the disk images and issue the command: dd if=zImage of=dev/fd0 bs=512 conv=sync; sync Substitute the disk image name for diskimage and the correct floppy device (almost always /dev/fd0), and repeat for each disk that you need. The dd arguments are: if for input file; of for output file, and here we want to use the floppy device; bs for block size, in this case 512 bytes; conv=sync ensures that the output file is exactly the same size as the input file. The trailing ``sync'' insures that we flush the buffers to disk immediately. 25.1.5 I normally use the method of simply copying a kernel, which I built, onto a disk formatted for the ext2 filesystem(option four): mount /fd0ext cp /vmlinuz /fd0ext 26.0.0 World Wide Web(WWW) Pages of Note There is a Mesa WWW page: http://www.mesa3d.org/download.html There is a Glut WWW page for Glut 3.6: http://reality.sgi.com/mjk_asd/glut3/glut3.html You can get Glut from: http://sunsite.unc.edu/pub/packages/development/graphics/glut/ You can get an OpenInventor like toolkit called Pryan from: ftp://ftp.troll.no/contest/ You can get an OpenInventor like toolkit called Apprentice from: http://users.deltanet.com/~powerg/Apprentice/ You can get the Qt package which is necessary for Pryan from: http://www.troll.no/dl/qt-1.40.tar.html You can get SGML tools from: http://pobox.com/~cg/sgmltools This is where you can get SLIRP: http://sunsite.unc.edu/pub/Linux/system/Network/serial This is the page for Yamaha which will give you the Windows95 driver: http://www.yamaha.com/ycaservice/frame2.htm This is the page for Real Audio which will give you the Real Audio Player: http://www.realaudio.com This is the page for the PD440FX Intel Motherboard: http://support.intel.com/support/motherboards/desktop/PD440FX/ where I got software to upgrade the BIOS. This is where I got Netscape: http://home.netscape.com/download/download_1_1_141_1_4.06.html 27.0.0 FTP Sites This is the ftp site for Red Hat which will give you the PnP tools: ftp.redhat.com/pub/pnp/utils/isapnptools-1.11.tgz This is the ftp site for Glut 3.5: ftp://sunsite.unc.edu/pub/packages/development/graphics/glut/ 28.0.0 Saved on Disk 28.1.0 Disk LINUX FILES TO SAVE I Xgood Xgood5 lost+found/ xmatro~1.tgz* Xgood2 Xgood6 xf86co~1.tgz* .config Xgood3 Xgood7 xfiggood xorg.conf Xgood4 Xgood8 xfree.txt 28.2.0 Disk LINUX FILES TO SAVE II .profile install options.old ppp-on* printcap afters.tgz* installps partition ppp-on-dialer* rc.serial* change.nf X/ ppp-off* ppp-on-dialer.save* resolv.conf fstab options ppp-off.save* pppstats* xinitrc* lilo.conf The X/ directory above contains the following files: .Xdefaults* .Xdefaults1* .Xmodmap.save* xorg.conf .Xdefaults.swp* .Xmodmap* .fvwm95rc* Xgood7 system.fvwm2rc 28.3.0 Disk Linux Plug and Play isacon2 isapnpbi.tgz pnp4kern.tgz sound.tgz isapnp.con message pnpkern.tgz raplayer.tgz isacon1 isapnp11.tgz pnp021.tgz 29.0.0 Cheap*Bytes can be reached at: Address: P.O. Box 2714 Lodi, CA 95241 U.S.A Fax: 209-367-8518 Homepage: http://www.cheapbytes.com E-mail: sales@cheapbytes.com 30.0.0 Harddrive Specs for Western Digital Hard Drive From the web page: http://www.westerndigital.com/support/FAQ/drvparms.html#caviar the two drives I own are: AC36400, 6.4GB EIDE UDMA AC33100, 3.1GB EIDE not UDMA Part Numbers (North America) Model Capacity Ultra DMA/33 Support 3100RTL 3.1 GB No 4000RTL 4.0 GB Yes 5100RTL 5.1 GB Yes 6400RTL 6.4 GB Yes 8400RTL 8.4 GB Yes PERFORMANCE SPECIFICATIONS Model 3.1 GB 4.0 GB 5.1 GB 6.4 GB 8.4 GB Buffer to Host - Ultra DMA/33 N/A 33.3 MB/s 33.3 MB/s 33.3 MB/s 33.3 MB/s 31.0.0 Basic I/O Information and Interrupts 31.1.0 Here are some files in /proc/ that you should use to help configure the system: 31.1.1 cat /proc/ioports This gives you a listing of the I/O port usage. 31.1.2 cat /proc/interrupts This gives you a listing of the interrupts for each device. 31.1.3 cat /dev/sndstat This gives you a listing of what sound devices are rec­ ognized. 31.1.4 cat /proc/pci This gives you a listing of all the PCI devices which are recognized. 32.0.0 DOS and Windows 95 The file /usr/doc/Linux-HOWTOs/Linux+Win95 has some good information on things to check within Windows. 32.1.0 To see the version of Windows 95 that you are running, in a DOS shell do: ver /r When I did this, I got: Microsoft Windows 95 [4.00.1111] Revision A DOS is in HMA (C) 1981-1996 Microsoft Corporation. 32.2.0 To determine what filesystem DOS is running on, run fdisk in DOS and select display partition information. This told me I am using FAT16. 32.3.0 You can uncompress DOS zip files under GNU/Linux with unzip: unzip (file).zip 32.4.0 To set the font size, open the Control Panel and choose the Display icon. Then select Settings, Font Size, and Small Fonts and set the Custom Fonts to 110%. 33.0.0 Miscellaneous 33.1.0 To see which version of a certain application you have installed, try adding a -v after typing the executable's name. Adding -v usually just means you are using the verbose option. For instance, to find out which version of gcc you are running, do a(from /usr/doc/Linux-HOWTOs/GCC-HOWTO): gcc -v When I did this, I got: Reading specs from /usr/lib/gcc-lib/i486-unknown-linux-gnulibc1/2.7.2.3/specs gcc version 2.7.2.3 33.2.0 Inside the directory /var/log/packages are files which contain very important information on many of the packages you have installed. If you need to know the relevant directories for an application, look here first. 33.3.0 To add words to your personal dictionary for the spell spellchecker, you can either add the words to the file /home/slffea/.ispell_englsh or you can run spell and type "I" for insert when the word comes up. Doing the latter will also add the word to /home/slffea/.ispell_englsh. 33.4.0 The message you get when you open a shell comes from the program /usr/games/fortunes. You can read all of them in the /usr/share/games/fortunes/ directory. 33.5.0 To submit a HOWTO, read the file /usr/doc/Linux- HOWTOs/HOWTO-INDEX. 33.6.0 The email of Linus Benedict Torvalds is tor­ valds@transmeta.com. 33.7.0 The monitor settings are: Settings Linux Linux2 Windows 95 Fq Fh KHz 56.32 56.32 59.90 Fq Fv Hz 69.80 69.80 74.9 Mode Name VESA VESA VESA Resolution 1024 x 768 1024 x 768 1024 x 768 Horizontal Size 137 201 131 Vertical Size 74 128 127 33.8.0 The font setting in Windows 95 is small fonts 110% for 1024 x 768. 33.9.0 If you want a dos executable to be run from any­ where, copy it into c:os. This is the equivalent of the /bin direc­ tory in Unix. 34.0.0 Documentation and Bibliography Here are all the sources from which this document was created. 34.1.0 Docs on CD 34.1.1 On the Cheap*Bytes Slackware 3.4 CDrom: /cdrom/bootdsks.144/README.TXT /usr/doc/Linux-HOWTOs/Bootdisk-HOWTO /usr/doc/Linux-HOWTOs/Diald-HOWTO /usr/doc/Linux-HOWTOs/Disk-HOWTO /usr/doc/Linux-HOWTOs/DOS-to-Linux-HOWTO /usr/doc/Linux-HOWTOs/Installation-HOWTO /usr/doc/Linux-HOWTOs/Keyboard-and-Console-HOWTO /usr/doc/Linux-HOWTOs/Kernel-HOWTO /usr/doc/Linux-HOWTOs/Linux+Win95 /usr/doc/Linux-HOWTOs/PPP-HOWTO. /cdrom/dosc/Serial-HOWTO /cdrom/kernels/VMS-to-Linux-HOWTO.NOW /usr/doc/Linux-HOWTOs/XFree86-HOWTO /cdrom/kernels/README.NOW In general, all the HOWTOs in the directory: /usr/doc/Linux-HOWTOs/ are very useful. 34.1.2 On the Intel PD440FX CDrom: /cdrom/readme.txt 34.2.0 A lot of documentation in general is in /usr/doc/. 34.2.1 There are also several good sources of informa­ tion in: /usr/src/linux/Documentation/ 34.3.0 The man pages are located in /usr/man/. /var/man/ also has a similar group of files. 34.4.0 Again, I would like to recommend the directory /var/log/packages/ as a good place to start looking for information pertaining to a particular application. The files located here will tell you all the directories and files which service the package. 34.5.0 Here are some books I've used: (1) Coffin, Stephen, UNIX System V Release 4: The Complete Reference, Osborne McGraw-Hill, New York, 1991. (2) Hekman, Jessica Perry, Linux in a Nutshell: A Quick Desktop Reference, O'Reilly & Associates Inc., Cambridge, 1997. (3) Parker, Timothy Ph.D et al., Unleashed: Slackware Linux 1997, third edition, Sams Publishing, Indianapolis, 1997. (4) Robbins, Judd, Mastering DOS 6: Special Edition, SYBEX, San Francisco, 1993. (5) Tackett, Jack Jr. et al, Special Edition: Using Linux, QUE Corporation., Indianapolis, 1995. (6) Welsh, Matt and Lar Kaufman, Running Linux, O'Reilly & Associates Inc., Cambridge, 1996. 34.6.0 From the Internet Web Pages http://sunsite.unc.edu/LDP/LDP/gs/node4.html#SECTION004112000000000000000 http://sunsite.unc.edu/LDP/HOWTO/mini/Linux+Win95.html And of course: http://www.google.com http://groups.google.com There is probably no greater resource than google groups for looking up specific error messages. Hopefully, you are able to get online access during the installation process. Usenet Groups comp.os.linux.setup 34.7.0 Reading Lists On the Cheap*Bytes Slackware 3.4 CDrom, there are reading lists in the files: /usr/doc/Linux-HOWTOs/Reading-List-HOWTO For UNIX books, look at the file: /usr/doc/faq/unix/[misc.books.technical]_A_Concise_Guide_to_UNIX_Books.gz. 35.0.0 And just to drag this out a little longer, let me say that all the page setting in this document was done with troff, the greatest page setting utility I have ever used. If you have the ASCII version of this document with a bunch of funny looking codes, then you can process them through troff to see a nicely formatted version. 35.1.0 To convert the postscript version of this file into postscript for printing, use: groff -ms -t -e installps | cat > install.ps gv install.ps & lpr install.ps 35.2.0 To convert the nroff version of this file into an ASCII version, use: tbl installnf | eqn -Tascii | nroff -ms | cat > install.nf less install.nf