Slackware Linux Essentials: Tutorial 06

Chapter 6 X Configuration
Table of Contents
6.1 xorgconfig
6.2 xorgsetup
6.3 xinitrc
6.4 xwmconfig
6.5 xdm

Starting with Slackware-10.0, the X Window environment in Slackware is provided by Xorg. X is responsible for providing a graphical user interface. It is independent from the operating system, unlike Windows or the MacOS.

The X Window System is implemented through many programs that run in userland. The two main components are the server and the window manager. The server provides the lowlevel functions for interacting with your video hardware, thus it is system specific. The window manager sits on top of the server and provides the user interface. The advantage to this is you can have many different graphical interfaces by simply changing the window manager you use.

Configuring X can be a complex task. The reason for this is the vast numbers of video cards available for the PC architecture, most of which use different programming interfaces. Luckily, most cards today support basic video standards known as VESA, and if your card is among them you'll be able to start X using the startx command right out of the box.

If this doesn't work with your card, or if you'd like to take advantage of the high-performance features of your video card such as hardware acceleration or 3-D hardware rendering, then you'll need to reconfigure X.

To configure X, you'll need to make an /etc/X11/xorg.conf file. This file contains lots of details about your video hardware, mouse, and monitor. It's a very complex configuration file, but fortunately there are several programs to help create one for you. We'll mention a few of them here.

6.1 xorgconfig
This is a simple menu driven frontend that's similar in feel to the Slackware installer. It simply tells the X server to take a look at the card, and then set up the best initial configuration file it can make based on the information it gathers. The generated /etc/X11/xorg.conf file should be a good starting point for most systems (and should work without modification).

This is a text-based X configuration program that's designed for the advanced system administrator. Here's a sample walkthrough using xorgconfig. First, start the program:

# xorgconfig


This will present a screenful of information about xorgconfig. To continue, press ENTER. xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit ENTER.

Figure 6-1. xorgconfig Mouse Configuration



Select your mouse from the menu presented. If you don't see your serial mouse listed, pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll see these options described in detail on the screen. Use them if the middle button on your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both buttons simultaneously). Then, enter the name of your mouse device. The default choice, /dev/mouse, should work since the link was configured during Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can set your mouse type to /dev/gpmdata to have X get information about the mouse through gpm. In some cases (with busmice especially) this can work better, but most users shouldn't do this.

xorgconfig will ask you about enabling special key bindings. If you need this say “y”. Most users can say “n” -- enter this if you're not sure.

Figure 6-2. xorgconfig Horizontal Sync



In the next section you enter the sync range for your monitor. To start configuring your monitor, press ENTER. You will see a list of monitor types -- choose one of them. Be careful not to exceed the specifications of your monitor. Doing so could damage your hardware.

Figure 6-3. xorgconfig Vertical Sync



Specify the vertical sync range for your monitor (you should find this in the manual for the monitor). xorgconfig will ask you to enter strings to identify the monitor type in the xorg.conf file. Enter anything you like on these 3 lines (including nothing at all).

Figure 6-4. xorgconfig Video Card



Now you have the opportunity to look at the database of video card types. You'll want to do this, so say “y”, and select a card from the list shown. If you don't see your exact card, try selecting one that uses the same chipset and it will probably work fine.

Next, tell xorgconfig how much RAM you have on your video card. xorgconfig will want you to enter some more descriptive text about your video card. If you like, you can enter descriptions on these three lines.

You'll then be asked which display resolutions you want to use. Again, going with the provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or whatever mode you like) is the default.

At this point, the xorgconfig program will ask if you'd like to save the current configuration file. Answer yes, and the X configuration file is saved, completing the setup process. You can start X now with the startx command.

http://www.slackbook.org/html/x-window-system.html

Slackware Linux Essentials: Tutorial 05

Chapter 5 Network Configuration
Table of Contents
5.1 Introduction: netconfig is your friend.
5.2 Network Hardware Configuration
5.3 TCP/IP Configuration
5.4 PPP
5.5 Wireless
5.6 Network File Systems
5.1 Introduction: netconfig is your friend.

When you initially installed Slackware, the setup program invoked the netconfig program. netconfig attempted to perform the following functions for you:

•It asked you for the name of your computer, and the domain name for your computer.

•It gave a brief explanation of the various types of addressing schemes, told when they should be used, and asked you which IP addressing scheme you wished to use to configure your network card:

◦Static-IP

◦DHCP

◦Loopback




•It then offered to probe for a network card to configure.

netconfig will generally take care of about 80% of the work of configuring your LAN network connection if you will let it. Note that I would strongly suggest that you review your config file for a couple of reasons:

1.You should never trust a setup program to properly configure your computer. If you use a setup program, you should review the configuration yourself.

2.If you are still learning Slackware and Linux system management, viewing a working configuration can be helpful. You'll at least know what the configuration should look like. This will allow you to correct problems due to misconfiguration of the system at a later date.

http://www.slackbook.org/html/network-configuration.html

Slackware Linux Essentials: Tutorial 04

Chapter 4 System Configuration
Table of Contents
4.1 System Overview
4.2 Selecting a Kernel

Before you can configure the more advanced parts of your system, it's a good idea to learn how the system is organized and what commands can be used to search for files and programs. It's also good to know if you need to compile a custom kernel and what the steps for doing that are. This chapter will familiarize you with system organization and configuration files. Then, you can move on to configuring the more advanced parts of the system.

4.1 System Overview
It's important to understand how a Linux system is put together before diving into the various configuration aspects. A Linux system is significantly different from a DOS, Windows, or Macintosh system (with the exception of the Unix-based Mac OS X), but these sections will help you get acquainted with the layout so that you can easily configure your system to meet your needs.

4.1.1 File System Layout
The first noticeable difference between Slackware Linux and a DOS or Windows system is the filesystem. For starters, we do not use drive letters to denote different partitions. Under Linux, there is one main directory. You can relate this to the C: drive under DOS. Each partition on your system is mounted to a directory on the main directory. It's kind of like an ever-expanding hard disk.

We call the main directory the root directory, and it's denoted with a single slash (/). This concept may seem strange, but it actually makes life easy for you when you want to add more space. For example, let's say you run out of space on the drive that has /home on it. Most people install Slackware and make one big root drive. Well, since a partition can be mounted to any directory, you can simply go to the store and pick up a new hard drive and mount it to /home. You've now grafted on some more space to your system. And all without having to move many things around.

Below, you will find descriptions of the major top level directories under Slackware.

bin
Essential user programs are stored here. These represent the bare minimum set of programs required for a user to use the system. Things like the shell and the filesystem commands (ls, cp, and so on) are stored here. The /bin directory usually doesn't receive modification after installation. If it does, it's usually in the form of package upgrades that we provide.

boot
Files that are used by the Linux Loader (LILO). This directory also receives little modification after an installation. The kernel is stored here as of Slackware 8.1. In earlier releases of Slackware, the kernel was simply stored under / , but common practice is to put the kernel and related files here to facilitate dual-booting.

dev
Everything in Linux is treated as a file, even hardware devices like serial ports, hard disks, and scanners. In order to access these devices, a special file called a device node has to be present. All device nodes are stored in the /dev directory. You will find this to be true across many Unix-like operating systems.

etc
This directory holds system configuration files. Everything from the X Window configuration file, the user database, to the system startup scripts. The system administrator will become quite familiar with this directory over time.

home
Linux is a multiuser operating system. Each user on the system is given an account and a unique directory for personal files. This directory is called the user's home directory. The /home directory is provided as the default location for user home directories.

lib
System libraries that are required for basic operation are stored here. The C library, the dynamic loader, the ncurses library, and kernel modules are among the things stored here.

mnt
This directory contains temporary mount points for working on hard disks or removable drives. Here you'll find mount points for your CD-ROM and floppy drives.

opt
Optional software packages. The idea behind /opt is that each software package installs to /opt/software-package, which makes it easy to remove later. Slackware distributes some things in /opt (such as KDE in /opt/kde), but you are free to add anything you want to /opt.

proc
This is a unique directory. It's not really part of the filesystem, but a virtual filesystem that provides access to kernel information. Various pieces of information that the kernel wants you to know are conveyed to you through files in the /proc directory. You can also send information to the kernel through some of these files. Try doing cat /proc/cpuinfo.

root
The system administrator is known as root on the system. root's home directory is kept in /root instead of /home/root. The reason is simple. What if /home was a different partition from / and it could not be mounted? root would naturally want to log in and repair the problem. If his home directory was on the damaged filesystem, it would make it difficult for him to log in.

sbin
Essential programs that are run by root and during the system bootup process are kept here. Normal users will not run programs in this directory.

tmp
The temporary storage location. All users have read and write access to this directory.

usr
This is the big directory on a Linux system. Everything else pretty much goes here, programs, documentation, the kernel source code, and the X Window system. This is the directory to which you will most likely be installing programs.

var
System log files, cache data, and program lock files are stored here. This is the directory for frequently-changing data.

You should now have a good feel for which directories contain what on the filesystem. More detailed information about the filesystem layout is available in the hier(7) man page. The next section will help you find specific files easily, so you don't have to do it by hand.

4.1.2 Finding Files
You now know what each major directory holds, but it still doesn't really help you find things. I mean, you could go looking through directories, but there are quicker ways. There are four main file search commands available in Slackware.

4.1.2.1 which
The first is the which(1) command. which is usually used to locate a program quickly. It just searches your PATH and returns the first instance it finds and the directory path to it. Take this example:

% which bash
/bin/bash


From that you see that bash is in the /bin directory. This is a very limited command for searching, since it only searches your PATH.

4.1.2.2 whereis
The whereis(1) command works similar to which, but can also search for man pages and source files. A whereis search for bash should return this:

% whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz


This command not only told us where the actual program is located, but also where the online documentation is stored. Still, this command is limited. What if you wanted to search for a specific configuration file? You can't use which or whereis for that.

4.1.2.3 find
The find(1) command allows the user to search the filesystem with a rich collection of search predicates. Users may specify a search with filename wildcards, ranges of modification or creation times, or other advanced properties. For example, to search for the default xinitrc file on the system, the following command could be used.

% find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc


find will take a while to run, since it has to traverse the entire root directory tree. And if this command is run as a normal user, there will be permission denied error messages for directories that only root can see. But find found our file, so that's good. If only it could be a bit faster...

4.1.2.4 slocate
The slocate(1) command searches the entire filesystem, just like the find command can do, but it searches a database instead of the actual filesystem. The database is set to automatically update every morning, so you have a somewhat fresh listing of files on your system. You can manually run updatedb(1) to update the slocate database (before running updatedb by hand, you must first su to the root user). Here's an example of slocate in action:

% slocate xinitrc # we don't have to go to the root
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm


We got more than what we were looking for, and quickly too. With these commands, you should be able to find whatever you're looking for on your Linux system.

4.1.3 The /etc/rc.d Directory
The system initialization files are stored in the /etc/rc.d directory. Slackware uses the BSD-style layout for its initialization files as opposed to System V init scripts, which tend to make configuration changes much more difficult without using a program specifically designed for that purpose. In BSD-init scripts, each runlevel is given a single rc file. In System V, each runlevel is given its own directory, each containing numerous init scripts. This provides an organized structure that is easy to maintain.

There are several categories of initialization files. These are system startup, runlevels, network initialization, and System V compatibility. As per tradition, we'll lump everything else into another category.

4.1.3.1 System Startup
The first program to run under Slackware besides the Linux kernel is init(8). This program reads the /etc/inittab(5) file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your desired runlevel. The rc.S file enables your virtual memory, mounts your filesystems, cleans up certain log directories, initializes Plug and Play devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs System V init scripts (if found). Obviously rc.S has a lot on its plate, but here are some scripts in /etc/rc.d that rc.S will call on to complete its work:

rc.S
This is the actual system initialization script.

rc.modules
Loads kernel modules. Things like your network card, PPP support, and other things are loaded here. If this script finds rc.netdevice, it will run that as well.

rc.pcmcia
Probes for and configures any PCMCIA devices that you might have on your system. This is most useful for laptop users, who probably have a PCMCIA modem or network card.

rc.serial
Configures your serial ports by running the appropriate setserial commands.

rc.sysvinit
Looks for System V init scripts for the desired runlevel and runs them. This is discussed in more detail below.

4.1.3.2 Runlevel Initialization Scripts
After system initialization is complete, init moves on to runlevel initialization. A runlevel describes the state that your machine will be running in. Sound redundant? Well, the runlevel tells init if you will be accepting multiuser logins or just a single user, whether or not you want network services, and if you will be using the X Window System or agetty(8) to handle logins. The files below define the different runlevels in Slackware Linux.

rc.0
Halt the system (runlevel 0). By default, this is symlinked to rc.6.

rc.4
Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login manager.

rc.6
Reboot the system (runlevel 6).

rc.K
Startup in single user mode (runlevel 1).

rc.M
Multiuser mode (runlevels 2 and 3), but with the standard text-based login. This is the default runlevel in Slackware.

4.1.3.3 Network Initialization
Runlevels 2, 3, and 4 will start up the network services. The following files are responsible for the network initialization:

rc.inet1
Created by netconfig, this file is responsible for configuring the actual network interface.

rc.inet2
Runs after rc.inet1 and starts up basic network services.

rc.atalk
Starts up AppleTalk services.

rc.httpd
Starts up the Apache web server. Like a few other rc scripts, this one can also be used to stop and restart a service. rc.httpd takes arguments of stop, start, or restart.

rc.news
Starts up the news server.

4.1.3.4 System V Compatibility
System V init compatibility was introduced in Slackware 7.0. Many other Linux distributions make use of this style instead of the BSD style. Basically each runlevel is given a subdirectory for init scripts, whereas BSD style gives one init script to each runlevel.

The rc.sysvinit script will search for any System V init scripts you have in /etc/rc.d and run them, if the runlevel is appropriate. This is useful for certain commercial software packages that install System V init scripts

4.1.3.5 Other Files
The scripts described below are the other system initialization scripts. They are typically run from one of the major scripts above, so all you need to do is edit the contents.

rc.gpm
Starts up general purpose mouse services. Allows you to copy and paste at the Linux console. Occasionally, gpm will cause problems with the mouse when it is used under X windows. If you experience problems with the mouse under X, try taking away the executable permission from this file and stopping the gpm server.

rc.font
Loads the custom screen font for the console.

rc.local
Contains any specific startup commands for your system. This is empty after a fresh install, as it is reserved for local administrators. This script is run after all other initialization has taken place.

To enable a script, all you need to do is add the execute permissions to it with the chmod command. To disable a script, remove the execute permissions from it. For more information about chmod, see Section 9.2.

http://www.slackbook.org/html/system-configuration.html

Slackware Linux Essentials: Tutorial 03

Chapter 3 Installation
Table of Contents
3.1 Getting Slackware
3.2 System Requirements
3.3 Partitioning
3.4 The setup Program

Before you can use Slackware Linux, you'll have to obtain and install it. Getting Slackware is as easy as purchasing it or downloading it for free over the Internet. Installing it is also easy as long as you have some basic knowledge about your computer and are willing to learn a few other things. The installation program itself is very much a step-by-step process. Because of this, you can be up and running very quickly. In fact, Slackware boasts one of the lowest installation times of any full-featured Linux distribution.

3.1 Getting Slackware
3.1.1 The Official Disc and Box Sets
The official Slackware Linux CD set is available from Slackware Linux, Inc. The CD set consists of 4 discs. The first disk contains all the software needed for a basic server install, and the X window system. The second cd is a “live” cd; that is, a bootable cd that installs into RAM and gives you a temporary installation to play around with or do a data or machine rescue. This cd also contains a few packages such as the KDE and GNOME desktop environments. A few other goodies are included on the second cd including many non-vital packages in the “extra” folder. The third and fourth CDs contain the source code to all of Slackware, along with the original edition of this book.

One may also purchase a boxed set that includes the 4 discs and a copy of this book, as well as lots of neat Slackware gear to show off your geek pride. CD subscriptions are available at a reduced rate also.

The preferred method for shopping for Slackware merchandise is online at the Slackware store.

http://store.slackware.com

You can also call or e-mail your order in.

Table 3-1. Slackware Linux, Inc. Contact Information

Method Contact Details
Telephone 1-(925) 674-0783
Website http://store.slackware.com
Email orders@slackware.com
Postal 1164 Claremont Drive, Brentwood, CA 94513

3.1.2 Via the Internet
Slackware Linux is also freely available over the Internet. You may email in your support questions, but higher priority will be given to those who have purchased the official CD set. With that said, we get a lot of e-mails and our time is rather limited. Before e-mailing for support consider reading Chapter 2 first.

The official Slackware Linux Project website is located at:

http://www.slackware.com/

The primary FTP location for Slackware Linux is:

ftp://ftp.slackware.com/pub/slackware/

Bear in mind that our ftp site, while open for general use, does not have unlimited bandwidth. Please consider using a mirror near you to download Slackware. An incomplete list of mirrors can be found on our site at http://www.slackware.com/getslack.

http://www.slackbook.org/html/installation.html