From root  Tue Aug 25 19:06:38 2009
Return-Path: root
Received: from tree.slackware.lan (localhost [127.0.0.1])
	by tree.slackware.lan (8.13.8/8.13.8) with ESMTP id k7GKeq4j011872
	for <root@tree.slackware.lan>; Tue, 25 Aug 2009 19:06:38 -0500
Received: (from root@localhost)
	by tree.slackware.lan (8.13.8/8.13.8/Submit) id k7GKfq6v011871
	for root; Tue, 25 Aug 2009 19:06:38 -0500
From: root
Message-Id: <200908251906.k7GKfq6v011871@tree.slackware.lan>
Date: Tue, 25 Aug 2009 19:06:38 -0500
To: root
Subject: Register with the Linux counter project
User-Agent: nail 11.25 7/29/05
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


   (Adapted from a question in the Linux-FAQ)

   How Many People Use Linux?

   Linux is freely available, and no one is required to register with
   any central authority, so it is difficult to know.  Several businesses
   survive solely on selling and supporting Linux.  Linux newsgroups are
   some of the most heavily read on Usenet.  Accurate numbers are hard to
   come by, but the number is almost certainly in the millions.

   However, people can register as Linux users at the Linux Counter
   project, which has been in existence since 1993.  In August of 2009
   the project counted more than 142,000 users, but that is certainly
   only a small fraction of all users.  The operator of the Linux Counter
   estimated 29 million users at that time.

   To get counted, visit the Web site at:

   http://counter.li.org

   ...and fill in the registration form.

   If you don't want to use the Web, send E-mail to
   linux-counter@uninett.no with a subject line containing the word
   "Linux", such as:

   I use Linux at home
   I use Linux at work
   I use Linux at school

   The current count is posted monthly to news:comp.os.linux.misc, and
   is always available from the Web site.


From root  Tue Aug 25 19:06:39 2009
Return-Path: root
Received: from tree.slackware.lan (localhost [127.0.0.1])
	by tree.slackware.lan (8.13.8/8.13.8) with ESMTP id k7GKhCck011881
	for <root@tree.slackware.lan>; Tue, 25 Aug 2009 19:06:39 -0500
Received: (from root@localhost)
	by tree.slackware.lan (8.13.8/8.13.8/Submit) id k7GKhCFQ011879
	for root; Tue, 25 Aug 2009 19:06:39 -0500
From: "Patrick J. Volkerding" <volkerdi@slackware.com>
Message-Id: <200908251906.k7GKhCck011881@tree.slackware.lan>
Date: Tue, 25 Aug 2009 19:06:39 -0500
To: root
Subject: Welcome to Linux (Slackware 13.0)!
User-Agent: nail 11.25 7/29/05
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


Welcome!  I'm glad to see you've made it this far! :^)

Here are a few hints to help you navigate through the Linux operating
system a little bit better.

Tools to help configure your system:

   pkgtool:   Remember those screens you saw while each package was 
installing?  You can see all that information (and more) again.  The 
simplest way is to use the 'pkgtool' utility to view the package 
contents.  Another way is to use 'less' or a text editor to read the 
files in /var/log/packages and /var/log/scripts (this is the method I 
use).  The pkgtool script serves as a frontend to the command line 
package tools, so it's a menu based program that will enable you to 
remove, install, or view packages that are currently installed on the 
system.  pkgtool will also allow you to re-run some of the system admin 
scripts that you may have seen during the installation process.

   Slackware's command line package tools:  I use these utilities most 
of the time when I have packages to install, remove, or upgrade.  These 
are the tools:

        installpkg  --  Installs packages
        removepkg   --  Removes installed packages
        upgradepkg  --  Upgrades or downgrades installed packages
        makepkg     --  Used to create your own Slackware Package
        explodepkg  --  Will extract the files from the package without
                        running any install scripts.

   slackpkg:  For those more used to automated package management tools 
you might like to try slackpkg (my favorite due to its simple, 
straightforward approach to keeping a machine up to date).  Slackpkg 
can be found in the slackware/ap directory.  A search of the web will 
turn up more tools as well.  You should approach these cautiously, as 
Slackware is designed around the idea that the system should be a 
complete installation kept updated with any official patches.  This 
avoids the mess of dependencies that some other Linux based GNU systems 
face.  However, many (if not most) of these tools won't know what to do 
about .new config files, or how to handle upgrading a package that has 
changed to a new name.  Some also think that any package with a larger 
build number is "better", when there have been many instances that a 
new upstream release wasn't working properly and we had to roll back to 
an earlier one, and an automated upgrade tool didn't want to 
"downgrade" the package.  This is something upgradepkg will gladly do, 
as it doesn't (as it should not) take the package's version number to 
mean much of anything.  Regarding automatic upgrades, there have also 
been cases where a library upgrade caused unwanted side effects in 
programs that link with it.  In theory, most libraries used on the 
system try to retain backwards compatibility, but in practice this 
isn't always the case.  While any issued patches should be installed to 
keep your system secure, always remember the old adage "don't fix it if 
it ain't broke" when considering other upgrades and additions, 
especially if they come from unofficial sources.  Again, there's a lot 
of good stuff out there, but there's also some that's not so good.  
It's always a good idea to look packages over before you install them.  
This is as simple as using 'less' to view the contents so you can see 
if they overwrite anything, and maybe using 'tar' or 'explodepkg' to 
extract the archive into a temporary directory to take a closer look.

   netconfig:  netconfig is a menu based program that will help to 
configure your network. You will be asked several questions and given 
an opportunity to review your your settings before the changes are 
committed.  More advanced settings are available by editing the
/etc/rc.d/rc.inet1.conf config file directly.

   pppsetup:  pppsetup is a menu based program that will help you to 
connect to your ISP via a PPP connection.  As with netconfig you are 
asked a series of questions and given a chance to review your settings. 
KDE also includes a utility for configuring PPP dialup connections.  
This is found in KDE's Internet menu (kppp).

   xwmconfig:  If you have installed the X window system, you can use 
xwmconfig to choose your default window manager.  Running this as root 
will set the system default while running it as a normal user will only 
set the window manager for that user.  An /etc/X11/xorg.conf config
file is no longer required to run X, but you may still use one if you
wish.  An initial xorg.conf may be generated by running:  X -configure

   liloconfig:  If you are using the LILO boot loader to start your 
system you can use liloconfig to setup and install Lilo to the boot 
drive.  There's a simple installation which tries to automatically set 
up LILO to boot Linux (also Windows if found).  For more advanced 
users, the expert option offers more control over the installation 
process.  If you have a lot of partitions, the selection menu in 
'expert' mode may overflow.  You'll likely then want to go to another 
console and find the partition you want with 'fdisk -l | less', and
then go back and enter it (proving that you are, indeed, an expert).

   You may need to make some changes to the /etc/rc.d/rc.serial script 
if you're using serial ports other than /dev/ttyS0 or /dev/ttyS1 (com1: 
and com2: under DOS), or if these ports use non-standard IRQs.

I suggest using the section about halfway through that lets you set up 
the ports manually.  Here's an example of how I set up the ports on my 
machine for /dev/ttyS0 and /dev/ttyS2:

# These are the standard COM1 through COM4 devices
#
${SETSERIAL} /dev/ttyS0 uart 16450 port 0x3F8 irq 4
# ${SETSERIAL} /dev/ttyS1 uart 16450 port 0x2F8 irq 3
${SETSERIAL} /dev/ttyS2 uart 16450 port 0x3E8 irq 5
# ${SETSERIAL} /dev/ttyS3 uart 16450 port 0x2E8 irq 3

You'll also need to make rc.serial executable (chmod 755 rc.serial) 
before rc.S will start it.


Other configuration files:

   The majority of system configuration files can be found in and below 
the /etc directory.  Most system configuration is done by editing these 
files with a text editor such as 'vi', "nano", or 'joe'.  If you're not
sure which files you need to edit to configure a given package, use
'less' or 'pkgtool' to see what files are installed by the package
paying special attention to any files placed in /etc or that end with
the suffix .new (these are usually moved into place if there's not
already a configuration file with the same name).  After upgrading a
package, if a .new config file is put in place you'll have to decide
whether to delete the .new, move it over the existing config file
(losing any custom configuration information in the old file), or make
a backup copy of your old config file, move the .new one into place,
and merge any required changes into the new config file with a text
editor.


Hardware, network, and kernel issues:

   If you've got hardware such as a CD-ROM drive or Ethernet card that 
doesn't seem to work with Linux, it's possible that the kernel you're 
using doesn't contain the needed support.  In that case, you can do one 
of two things:

  1.  Load the support with kernel modules.  This is probably the
      simplest way to handle the situation.  Just edit
      /etc/rc.d/rc.modules so that it loads the modules you need.
  2.  Recompile your kernel, including the needed driver(s).

  However, recompiling your kernel is an extreme measure that can be
both difficult and dangerous to the stability of your system.  If you
decide to go that route, either be sure you know the potential pitfalls
or seek guidance from someone experienced with kernel configuration,
compilation, and installation.

  Also note that the vast majority of modules will load themselves
with udev if the hardware is present in the system, unless the modules
are not udev-capable yet, or they are blacklisted in a file in
/etc/modprobe.d/.  If the module for the driver you need is blacklisted,
try commenting out the line in the appropriate file under /etc/modprobe.d/.
If that doesn't fix the issue, check with "lsmod" to make sure that the
module is loading correctly.  If not, try loading it in the rc.modules
file.  

  If you're on a standalone LAN without a nameserver, make sure you 
don't have a nameserver line in /etc/resolv.conf, or you may experience 
delays with many network commands as they attempt to query the bogus 
nameserver.  Most people these days will have a nameserver, or be able 
to access one via their router/gateway.  Most DHCP servers will tell 
dhcpcd what it needs to know in order to set up your /etc/resolv.conf 
automatically.

   Want to run NFS?  You'll need to install the portmap and nfs-utils 
packages.  Then, edit your /etc/exports to allow NFS access. (see 'man 
exports' for examples)  Once you've set up /etc/exports, the NFS 
daemons should run automatically at boot.

   The kernel is now set up with the CONFIG_SCSI_MULTI_LUNS option
to scan for new "SCSI" devices automatically.  However, if that fails
to work after inserting a digital media card, or plugging in a new USB
or IEEE1394 (Firewire) device, you may need to run the following
command before it becomes available as a mountable device:

  rescan-scsi-bus -l

  This command scans the LUNs (or Logical Unit Numbers) of all the
SCSI devices attached to the system, including USB and other devices
that look like SCSI to the kernel.

  If you are running HAL, D-Bus, and a graphical desktop such as KDE
or Xfce, newly inserted devices should become automatically available
to users who are members of the appropriate groups (cdrom, plugdev,
and so forth) in the /etc/group file.

Printing on Slackware with CUPS (the Common UNIX Printing System):

  Slackware prints using gs (ghostscript), CUPS (the Common UNIX
Printing System), and printer drivers from gutenprint or hplip.
These drivers are further supported by the foomatic-filters and
cupsddk packages, used to generate and manage PPDs (PostScript
Printer Description files).

  To set up CUPS, make sure that /etc/rc.d/rc.cups is executable so
that CUPS will start at boot.  Then connect to the CUPS configuration
port using a web browser at this URL:

  http://localhost:631/admin

  This local "website" may also be reached using the CUPS configuration
menu choice within a desktop environment such as KDE.

  See the extensive docs in /usr/doc/cups for more details.  If you
don't see your exact printer model when adding a new printer, often
one that's "close" will do the trick.

Users who plan to print (or scan) using hplip need to be members of
the "lp" (and "scanner") groups.


Mouse support:

  Only very ancient mice will need any special treatment in order to 
get basic support, and with GPM cut and paste on the console.  Most 
will work with the "ps2" or "imps2" protocols.  If you should happen to 
have one of the ancient mice that is not a serial, PS/2, or USB mouse 
then you'll probably have to load a kernel module in order to get it to 
work.  At this point in time, a busmouse is rare.  These days, most 
mice are PS/2 (with a 6 pin round plug) or USB, or occasionally serial 
(with a 9 pin trapezoidal plug).  These kinds of mice don't require any 
special setup as the system should detect and activate them 
automatically.  If you think your mouse might need a special driver (if 
it's not working), read the comments in /etc/rc.d/rc.modules to see 
which one is needed, and edit the file to load it at boot time.  It's 
also possible that the /dev/mouse link may need to be changed to point 
to the proper mouse device.  Or, compile a new kernel with built in 
support for your mouse and install that.

  Using the lsmod command, you can see if the psmouse module is loaded.
If so, you're using the psmouse module for a PS/2-like mouse (including
most touchpads).  If you need to adjust the mouse protocol, edit this
file:

  /etc/modprobe.d/psmouse

Sometimes this is needed to make the mouse work correctly with a KVM
switch, or to properly enable tap-to-click with a touchpad.


Network support:

   Of course, you're going to want to get your machine online.  If you 
have a router supporting DHCP you're probably already on by now.  
Otherwise, 'netconfig' will give you a simple network connection.  To 
get your machine on the net, you'll need to install packages from the
N (network) series.  If you aren't sure which ones you'll need, the
easiest thing is to just install them all.  Network services will not
run unless activated by making the startup scripts in /etc/rc.d/
executable, so it doesn't hurt to have them installed.  Your machine
should be configured at least with loopback using the "netconfig"
utility.  If you are using a modem, make sure the serial port your
modem uses is correctly configured, and then use 'pppsetup' to configure
the dialup process.  Additional documentation on pppsetup can be found 
in /usr/doc/pppsetup-*/.  DSL/Cable users who need to use PPPoE (PPP 
over Ethernet) should see the docs in /usr/doc/rp-pppoe-3.8/.

If you will be using wireless, you might want to look at wicd in /extra,
which provides a nice GUI tool for connecting to wireless (or wired)
networks.  If you'll be using that, first set up your network for
loopback using the netconfig tool.

If you need to set up your Linux machine as a router for other systems, 
you'll want to set up the interfaces in /etc/rc.d/rc.inet1.conf, and 
set up NAT support with something like this in /etc/rc.d/rc.firewall, 
and then make rc.firewall executable.

# Delete and flush.  Default table is "filter".
# Others like "nat" must be explicitly stated.
iptables --flush
# Flush all the rules in filter and nat tables
iptables --table nat --flush
# Delete all chains that are not in default filter and nat table
iptables --delete-chain
iptables --table nat --delete-chain
# Set up IP FORWARDing and Masquerading
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT
echo "Enabling ip_forwarding..."
echo 1 > /proc/sys/net/ipv4/ip_forward

It's possible to expand (or reduce ;-) this script for just about any 
firewall needed.  See "man iptables" for lots of information.


F: FAQ series, and the HOWTO documentation collection:

   If you installed the F series, you find detailed documentation on 
many common Linux tasks in /usr/doc/Linux-HOWTOs.  Each of these 
instructional files covers a particular Linux task.  They cover most 
system administration tasks in a lot more detail than this little email 
does.

There is also a collection of Linux related FAQs (lists of Frequently 
Asked Questions with answers) /usr/doc/Linux-FAQs.

Please see the CHANGES_AND_HINTS, RELEASE_NOTES and other files
included with the distribution for any last-minute changes.


Have fun!

---
Patrick Volkerding
volkerdi@slackware.com

