Installing Slackware Linux is a pretty straightforward proposition – I’ve done it on numerous computers, but preserving my data during a distribution change required some additional steps. The purpose of this series is to describe those steps. I switched from OpenSUSE 10.3 to Slackware 13.0, the latest version. First, some background on the computer and its mission.
Several years ago I bought a ThinkPad T30 on eBay. This computer came with Microsoft Windows XP-Professional registered to “Valued Customer”.
I used GNU Parted to shrink the Windows partition, then installed Slackware Linux/GNU. The primary mission of the machine (Type 2367-3U9) is to process climate prediction models for climateprediction.net
At the time, Slackware was still running a 2.4 kernel as the default. I had so much trouble that I contacted Climate Prediction’s user support for help. They suggested that I try Red Hat or SuSE instead. I decided on SuSE.
The T30 did not come with a builtin wireless card. Several times I arrived downtown where there was wireless Internet only to discover that I had forgotton to pack a PCMCIA wireless card. Then I found a mini-pci wireless card that would stay with the computer. This card had started life as an Orinoco Silver card and had been eeprom-flashed to mimic a Gold Card. The Northern Colorado Linux Users Group had told me that a Gold Card was known to work with Linux. OpenSUSE recognized the card immediately. Windows-XP worked with it after I installed the software driver.
Years went by and I completed several climate prediction work units, each one takes months. Then the LCD display burned out after I had finished 85% of the latest work unit.
I found another T30 on eBay, machine type 2366-81U. This computer came with a different mini pci wireless card. I migrated my dual-boot hard drive to the new computer. OpenSUSE recognized the new wireless card immediately. Windows-XP barfed on it.
Recently I discovered that OpenSUSE 10.3 would no longer be supported. Novell prefers that you do not continue to run old versions. In the meantime, Slackware had switched to a 2.6 kernel and I was anxious to try the new 13.0 version.
Why Slackware?
Mention Slackware to any Linux person and you are likely to get one of two reactions. Oh, Slackware, yes, I used that [number of years] ago. Or, Slackware, don’t leave home without it. A recent review of version 13.0 says that this ‘under the radar’ distro maintains a very loyal following. The reviewer recommends Slackware only for advanced Linux users. I beg to differ, based on my experience with it. No one would ever confuse me with an advanced user. I was 54 when someone showed me how to turn a computer on. It was an Everex 286-12. Twelve meaning turbo. So much faster (compared to what?)
The most charitable thing you could call me is an advanced intermediate user. I think I’ve made every stupid mistake that could ever be made. And yet, I’ve stuck with Slackware for years. You should be comfortable at the shell prompt and you should enjoy editing configuration files with a text editor. I am and I do. This does not make me an advanced user. Right here I feel that I should acknowledge the debt I have to Shilo Bacca of Stockton, CA and others like Alien Bob on Linux Questions Slackware Forum. They have helped this intermediate user run Slack.
Our series focus is moving user data from OpenSUSE to Slackware on a computer whose primary mission is to run Climate Prediction work units. Climate prediction is the most ambitious climate science computer simulation model ever attempted. I planned for the migration by running the current work unit in OpenSUSE i.e. the old hard drive in the new computer – until it was finished. This was the perfect time to freeze the content of the BOINC/ directory. Once the work unit was done I made a tar file of the entire BOINC/ directory and moved it to a thumb drive. Then I prepared the new hard drive for the Slackware 13.0 installation. The first step is to decide on a partition scheme. I opted to go for a dual-boot setup where I could decide on Slackware or Windows. Again I used GNUParted to shrink the existing C:\> drive. Then I booted to the Slackware installation CD. Slack’s installation routine continues to be text based as always. I made new partitions for root, home and linux swap.
I don’t need to describe the actual installation in much detail. I deselected disk set [E] Emacs as I’m not that much of a religious person. I made sure that the [Y] disk set was selected since I like GNU Fortune. The best advice seems to be to install all software packages without prompting. That way you don’t get into dependency heck the way you might with an RPM-based distro like Fedora or SUSE.
Soon after all packages are installed you are asked what time zone you are in and whether your computer clock is set to local time or UTC. The scheme I follow is to set my clock to local time if I have a dual boot with Microsoft, otherwise I set the clock to UTC.
How to Tell Time
First, here’s how not to tell time. I had Ubuntu Breezy Badger on a computer one time when I was on dialup Internet. I would start Ubuntu and get an error message every time since an NTP server could not be found. Of course the time server couldn’t be found – there was no Internet connection. That’s one of the reasons I decided Ubuntu wasn’t for me.
Here’s what I do – courtesy of Vector Linux user forum. As root
touch /usr/sbin/setmytime
chmod +x /usr/sbin/setmytime
#! /bin/sh
ntpdate us.pool.ntp.org && hwclock --systohc
# end /usr/sbin/setmytime
Next, I edit /etc/fstab so that regular users can mount CD Roms, floppy disks, and travel drives. As root I make a directory for travel drives;
mkdir /media/travel
and I use mcedit or vi to edit fstab. I change owner to user in the lines which set up mount points for CD drives, floppies, and travel drives. This may not be strictly necessary as I use the up arrow to add a regular user to audio, video, plugdev, etc. groups in addition to their being in the users group. Once I save /etc/fstab and exit mcedit (for example) I can mount a travel drive. One additional package I want to install is slackupdate from darklinux Slackware 13.0 has changed to a .txz format from the previous .tgz for packages. In order for slackupdate to work properly you need to install Slackupdate as a package. This gives you version [0.7.1] in /usr/bin. Once you have that package in place you need to overwrite /usr/bin/slackupdate.sh with version [0.7.3] which works with the new package compression scheme.
My next step is to install the software which lives in /usr/local. There are two. One is insult. Insult is an old UNIX program originally written in Perl. It returns an insult derived from words in Shakespeare plays. You get an adjective, an adverb, and a noun. One from column A, one from B and one from C all selected at random. I found this as an OS/2 program with C source. I ran the EMX OS/2 port of the GCC C compiler to make an OS/2 executable. When I started using Linux more often I tried to compile this OS/2 C source on Linux. It worked as soon as I removed carriage returns and line feeds. So I unzip the C source in /usr/local/src and as root
gcc -o insult insult.c
then move insult ../bin
If insult compiles I know that gcc is working. Also, insult reminds me that computers do not generate random numbers – they generate psuedo random numbers. The early work on PRNG, psuedo random number generators, was done at the University of Illinois at Urbana – Champaign Center for Supercomputing and that material is still available in the archive. insult also reminds me of the limitations of the random function in the standard C library. The standard function is described as a linear congruence generator with a period which is inadequate for serious purposes. You wouldn’t generate winning state lottery numbers with the standard C library random function – and yet using the Mersenne Twister, a lagged fibonacci generator, in the insult C source would definitely be overkill.
The second program which lives in /usr/local is scimark2. This program comes from NIST – the National Institute of Standards and Technology i.e. the feds. Should you call this a benchmarking program? A BenchmarkingHOWTO I read said not to. Both OpenBSD and FreeBSD have scimark2 stubs in their /usr/ports/benchmarking directories so you pays your money and you takes your choice. Scimark2 was released as Java source with C source as a backup just in case the Java source wouldn’t compile. I tried this first on OS/2 but I never figured out what was wrong with OS/2’s classpath environment variable so I abandoned Java efforts and made an OS/2 executible with the EMX / GCC compiler against C source. I also used Borland’s free command line C/C++ compiler to make a Windows 32 bit executible. Today, in Linux I install C source to /usr/local/src and run make. Again, this moves to ../bin
Once these programs are in place I like to run updatedb as root. This updates the slocate database. Some people think this is a security risk. I’m glad to know that but your database is going to get updated anyway unless you change the tasks in /etc/cron.daily.
At this time I also run last. Several distributions had this turned off on the grounds that it was a potential security threat. If last is turned off it is really easy to turn it on
touch /var/log/wtmp
There is a book called “Hardening Linux” which says that last can actually help you detect intruders. Slackware has last turned on as the default.
Posted by the GNUinator

Turning to Slackware – Turn 3 // Jan 12, 2010 at 6:32 pm
[...] is installment three of my series on Slackware version 13.0. In chapter one I described how I installed Slackware 13.0 on a computer whose primary mission is to run Climate [...]
Turning to Slackware – Turn 2 // Jan 14, 2010 at 12:51 pm
[...] ← Turning to Slackware – Turn 1 Turning to Slackware – Turn 3 [...]