Subject: Welcome to Linux (Slackware 15.0)!

From: [email-masked]
Date: Tue, 11 Jan 2022 14:18:36 -0600

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/lib/pkgtools/packages and /var/lib/pkgtools/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 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
For many modern drivers (such as those using Kernel Mode Setting),
X -configure no longer generates a working xorg.conf. For those drivers
you could start by copying /etc/X11/xorg.conf-vesa to /etc/X11/xorg.conf
and then edit this line:
    Driver      "vesa"
Change "vesa" to the name of the X driver for your chipset.

   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).

   eliloconfig:  If you are using the elilo boot loader to start your
system that uses UEFI BIOS, then eliloconfig is used to copy the kernel
(and the initrd if one is found) to the EFI System Partition, as well as
to add a menu entry for Slackware to the EFI Boot Menu. After upgrading
to a new kernel, use "geninitrd" to create an updated initrd, and then
use eliloconfig to copy the kernel and initrd to the EFI System Partition.
If you've already added a menu entry for Slackware you do not need to do
it again, and indeed probably should not to avoid extra wear on the nvram
used to store EFI data.

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/ (local config files) or /lib/modprobe.d/ (config files
that ship with the system). If the module for the driver you need is
blacklisted, copy the appropriate file from /lib/modprobe.d/ to
/etc/modprobe.d/ and then comment out the line that blacklists the module
by putting # at the beginning. Files found in /etc/modprobe.d/ will
override those found in /lib/modprobe.d/ and will not be overwritten by
upgrades. 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
/etc/rc.d/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 rpcbind and nfs-utils
packages. Then, edit your /etc/exports to allow NFS access. (see 'man
exports' for examples). Finally, set rc.rpc and rc.nfsd executable:
  chmod 755 /etc/rc.d/rc.rpc
  chmod 755 /etc/rc.d/rc.nfsd
To start the NFS server, either reboot or execute the two rc files.

   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 D-Bus, udisks2, 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:

  chmod 755 /etc/rc.d/rc.cups

  To start CUPS without a reboot, run the file like this:

  sh /etc/rc.d/rc.cups start

  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) need to be members of the "lp" group.

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, make a copy
of the config file, and then edit that:

  cp /lib/modprobe.d/psmouse.conf /etc/modprobe.d/psmouse.conf
  vi /etc/modprobe.d/psmouse.conf

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.12/.

If you will be using wireless (or even a wired interface), you might
want to let NetworkManager handle your network connections. This is
a choice during the initial installation, but may also be selected
later by rerunning netconfig, or by setting the startup script
to executable (chmod 755 /etc/rc.d/rc.networkmanager). When Network
Manager is used to handle connections, a nice interface is provided
to scan for wireless access points and make changes to the network
configuration. This interface runs automatically with KDE or Xfce.
In fluxbox, the nm-applet program will need to be launched. Other
window managers lack a system tray to display nm-applet, so for those
you might want to look at wicd in /extra, which also provides a nice
GUI tool for connecting to wireless (or wired) networks. For window
managers that do not provide a tray for running programs, start
"wicd-client" to make changes. With NetworkManager or wicd, it's
a good idea to remove any existing network configuration in
/etc/rc.d/rc.inet1.conf first. This can be done by running netconfig
and setting the machine to use loopback. Then, if you're using
NetworkManager run it a second time and select NetworkManager.

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. At this point the majority of these have been unmaintained for
years and are largely obsolete, but in spite of this there are still
good hints to be found. In general a search engine will be your best
bet for finding additional information. Or, visit the Slackware forum
on Linux Questions and you'll find a helpful community who can answer
your questions (or perhaps even I'll answer you there):

https://www.linuxquestions.org/questions/slackware-14/

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
[email-masked]