Slackware has always been a developer’s or advanced user’s product. It has simplicity and speed. However, it lacks some of the tools the commercial applications have for administration. So you’ll need an intermediate level of skill for this, particularly working with shell scripts to customize your boot configuration.
I haven’t used Slackware since the early days when you downloaded and installed everything from the floppy disk. I was hoping things would be less tedious installing over my Windows 2000 Dell Inspiron 8100 notebook with a 1.2 Ghz Pentium III-M. It would also prove challenging considering that it had PCMCIA cards and wireless networking with which to contend.
The important part of the Slackware distribution consists of two CDs containing the installation software. You can obtain the distribution via BitTorrent. Since I don’t normally use Python on my systems, and the standard BitTorrent clients are Python-based, I used the Java-based Snark. This worked admirably in downloading the ISO images. I didn’t bother with the other two disks since I didn’t want the manual or source.
CD 1, like most distributions these days is bootable. You need to choose the boot image most applicable to you. Generally, you can get through using bare.i. It worked for my installation. Should you have a SCSI card, you will probably want scsi.i as your boot image. You can experiment with the other available images if either of these don’t work for you. CD 1 also contains floppy disk images and instructions if you need to bootstrap using a floppy.
Once you have booted, login as root, with CD 1 inserted in the CD drive. The first of the installation trials await. Unlike some commercial versions that have graphical interfaces for partitioning your drives, the user directly uses Linux fdisk. This will destroy existing data on your drives so be careful. You also need to know a bit about drives and their naming under Linux so you can choose the drive(s) to partition.
Help in partitioning and installing packages is very sparse during the installation so you generally need to know what you are doing and the functionality of packages you choose to install. I would recommend that you separate at least your /usr/local, and /home partitions from the root (/) partition. This partitioning allows you to re-install or repair the main Slackware distribution without damaging your custom packages or your user data. Should the number of partitions you require be greater than four, then you will need to use an extended partition and create logical partitions under that. I usually make a primary partition the root partition (/).
You will also need to create a swap partition. Normally about twice your physical memory should be sufficient for swap. Some people recommend even less. For my system with 384 Mb of physical memory, even with Gnome, Galeon with seven tabbed pages, OpenOffice with this document, an LDAP server, sendmail and three terminal sessions running, I am only consuming 50 Mb of swap and have 220 Mb of free physical memory.
Commit your partitions and remember which partition you have assigned to a specific purpose. It helps to write this down in an administration log book in case you need to revisit installation sometime down the track. Also remember to make the root partition bootable if you have followed my advice in making it a primary partition.
Now you can run setup, a menu-driven, text-based installation program. You will need to format the partitions before continuing to the package installations. The swap partition will be created first. You will then need to select the other partitions, define their mount points and their format. Many may choose to use ext3 formatted partitions, which has journalling but whose format is based on ext2. I chose ReiserFS as this has advantages of usage when you have many small files, as you might have when developing software and it is fairly stable and been in field use for a few years now. Once this is complete, you are ready to choose the packages to install.
The installation of packages fairly straight forward except for determining the packages you need in a custom installation. The default lineup should suit most people. However, as Slackware is intended for the intermediate user, you probably will want to tailor the installation. I chose not to install Apache, mod_ssl or Samba. My reasons for doing this was to allow custom-built installations later. I wanted Apache 2.0 and some special modules to tie in with my J2EE framework. I also omitted Samba as again I wanted some custom services. I included both KDE and Gnome although Gnome was going to be the default X Window Manager.
Slackware still comes with the older Berkeley databases and the latest OpenLDAP requires BDB 4.x. It was a surprise to see OpenLDAP omitted from Slackware as a lot of infrastructure, including the new Samba PDC capabilities will rely on this service for unified directory services.
Once you have settled on an installation, commit it and leave it run. You’ll need to come back at some point to insert the second CD to install KDE and the remainder.
The final step is to define your configuration, including the networking and then install the kernel image. The kernel image will usually be the same one with which you booted the installation. Select it from the CD and then you are ready to reboot your newly created Slackware system. The only problem with the configuration is that it does not allow for multiple network interfaces or selecting the network card. My Inspiron has both the wireless LAN card as well as an inbuilt LAN card. Luckily, the system nominated the wireless LAN card as eth0.
I ignored creating an emergency boot disk since I have the distribution CDs to boot from and I wasn’t using a custom kernel image.
I rebooted my system and immediately hit problems because the boot process hung when it started probing the memory at 0×0800. I went back to the distribution boot CD, logged in and mounted the partition with /etc on it. I edited /etc/pcmcia/config.opts and removed the probe for that area, contained in a line with:
include port 0×100-0x4ff, port 0×800-0x8ff, port 0xc00-0xcff
That fixed the problem and when I rebooted Slackware came up without a problem. The wireless network card, a Cabletron was picked up and the module installed without a problem. I immediately had connection to the base station and the rest of the network.
After reboot, you’ll probably want to take customized configuration in hand. The Slackware configuration is simple to work with. It is BSD-like, using rc scripts to manage service start ups. There are examples in /etc/rc.d to help with building your own scripts. I would recommend looking at rc.sendmail and rc.sshd as example templates for installing your own services. For ntpd, I used rc.sendmail as a starting point. /etc/rc.d/rc.6, /etc/rc.d/rc.M, /etc/rc.d/rc.S, and /etc/rc.d/rc.K will be necessary master boot scripts you need to modify for your custom services, covering startup modes and shutdown modes.
I actually find these easier to manage than Red Hat’s chkconfig. In order to add more network interfaces, you’ll need to edit /etc/rc.d/rc.inet1.conf. The configuration is self-explanatory.
That is all that is necessary to configure your boot scripts. So an understanding of shell scripts and some vi skills are all that you need to customize your services.
You may also want to run alsaconf to configure dependent modules for your sound card. Slackware 9.1 is built for the alsa sound service that is the official sound layer for kernel 2.6.x.
The standard configuration is open with little network security. I would recommend editing your /etc/hosts.allow and /etc/hosts.deny to tailor external access to ports and services. I would also disable the ftp service that is installed by default. In these times when SSH is available for nearly all systems, you can use sftp to transfer files. You can use nmap -A my.ip.address to check services and access on your exposed interface.
You can also install iptable rules as the Slackware kernels are built with the iptables module. I have an /etc/rc.d/rc.firewall script and this is already catered for in the /etc/rc.d/rc.inet2 script. There are plenty of examples for configuring your system to disable spoofed packets, drop ICMP packets and so forth.
The Slackware system boot is very fast. For my system, it takes 10 seconds to boot to the login prompt. When it was a Windows 2000 system, this would be about a minute to boot to a login prompt.
Gnome and applications
Traditionally, I have worked with KDE since I had previous familiarity with CDE in Solaris and Unixware. However, there were plenty of reviews saying that Gnome had evolved to a very useable system with good font rendering. I was willing to give it a try. X configuration for the wireless, optical 3-button wheel mouse was easy and the wheel scroller works perfectly in Gnome applications. The NVidia card configuration was more difficult as you needed to grab the manufacturer’s package, install it and compile the interface. Further, you needed to replace the existing configuration with the new X configuration supplied by the manufacturer and edit that for things to work smoothly. However, I’m very happy with the 1400×1050 resolution.
The graphical environment finishes initialising in about 20 seconds. With Windows 2000, it took about 4 minutes for everything to finish initialising. To this day, I’m not quite sure what was starting up. So in comparison, Windows 2000 took 10 times longer to get to the point where I could actually use it productively.
I’ve tried Opera in Gnome. Although there are some nice features in Opera, the font rendering was ugly, mouse clicks for selections were occassionally faulty and the browser crashed from time to time. I switched to Galeon and have had little problems so far.
I don’t like any of the standard e-mail clients and this was one of the stumbling blocks in moving to Linux for business. However, I discovered Sylpheed which has many of the features in Microsoft Outlook including filtering, e-mail signing and signature generation. It like all Linux applications, runs much faster than its Windows counterpart and also takes less time to start up. There are a few traps with building Sylpheed from the source so we might offer up tips or the modified build scripts if people are having problems. It is worth the effort though to get Sylpheed built.
OpenOffice 1.1 has worked without issue and the font rendering is smooth and fast. At this stage I’ve got no complaints with it or Gnome.
Xine mostly works without issue although like most multi-purpose media players does crash from time to time. It is more stable than the gxine overlay application. With my video card, gxine crashes if I switch to full screen mode. Xine does not suffer from the same problem. The only other issue I found with Xine was that it used the previous Xine library (rc0a) and it wasn’t supplied with libdvdcss so you can’t make use of menus and navigation in DVDs. The omission of the latter is probably due to possible legal issues for U.S. distributors of Slackware. I rebuilt the Xine libraries and applications from the developer sources and found that Xine has run properly with all the major codecs including the RealPlayer 9 codec. Also, I can now access the DVD menus. Again, unlike Windows 2000, DVDs play flawlessly and without any skipping or frame dropping, even while I am doing something like editing this document in the foreground.
Slackware 9.1 is a fully operational distribution. It is intended for the intermediate to expert Linux user. It provides power and simplicity for these users. It is quite possibly the fastest booting complete Linux distribution and yet provides almost flawless detection of most hardware configurations. Apart from the things I’ve mentioned, I haven’t found any thing that didn’t work properly from the install.