Slackware -current reloaded...

From time to time I like to wipe my old installation of the development version of Slackware and then reload Slackware -current. In part this is a learning tool for myself and in part it is designed to sweep away the cruft that can accumulate from my extensive experimentation and day to day usage of what is almost a rolling release of Slackware. This page contains some notes to remind myself of the small tweaks that are needed on my freshly built Threadripper system to get a truly solid installation. If you have a minute it would perhaps be worth your while, Gentle Reader, to have a look at the build page as well? It is my hope that this page furnishes not only useful as notes for myself but perhaps also some useful notes or methadology for others who are undertaking a similar task. Let me know by using the email link at the base of this page...

Preparation...

Not a great deal of preparation is required although there is a reasonable investment of time required to get this all just right. I will usually allocate a rainy weekend for this but catching up on the bits and pieces will always spin out over the ensuing week. Perhaps I am getting slower as I get older! A few points to note for preparation:

BIOS settings...

With my Threadripper build I use an MSI Meg X399 Creation motherboard, a fantastic board that has given me absolutely no issues at all. There are a small number of vital changes that are required in the BIOS and I list them here in case I update or flash the BIOS as well as reinstall Slackware -current:

  1. Set an XMP profile: I did not purchase incredibly fast RAM for this system but without using an XMP profile the access speed is pretty sad. So I select XMP Profile 2 which gives 2933MHz, this contrasts with XMP 2800MHz from XMP Profile 1. Perhaps one day I will do this manually but not for the moment.
  2. Set for Virtual Machine: One of the ideas behind the hardware specs of this machine was to be able to run several VMs at the same time and this needs to be set in the BIOS. Took some searching but searching for and enabling SVM did the trick: 'Enable/Disable CPU Virtualization'.
  3. Prefer Legacy over UEFI: I really should come to terms with UEFI but this motherboard still allows for legacy booting so I shame-facedly select 'Legacy + UEFI' from the Boot Mode Select screen. The day still has not come when Legacy booting does not exist although installing Slackware on a UEFI system is pretty straightforward these days.

I note as well that this BIOS: E7B92AMS.130 has a build date of 03/25/2019 thus it is a little aged with an update on the MSI web site. Mind you the board came with the vital BIOS update: 'Support 2nd Gen AMD Ryzen Threadripper Processors' already installed. Perhaps, Gentle Reader, one day soon I will update this as well...

Installation media...

I routinely create an installation iso of the most recent Slackware -current using alienBob's amazing mirror script: mirror-slackware-current.sh. On the MSI Meg X399 Creation board I have found that it is necessary to create a hybrid iso, using isohybrid, to boot properly and there is a setting within alienBob's script that allows for this. This iso is copied easily from the commandline to a small USB stick with:

dd if=slackware64-current-install-dvd.iso of=/dev/sdc bs=512 status=progress

This is not the full Slackware tree and in fact only weighs in at 3.1 GB but it is more than suitable for a full installation (or in this case reinstallation) of Slackware -current. I have a backed up copy of the full -current tree anyway which I normally install from. And speaking of backups:

Backup...

I have incremental backups to restore from but I now make a final, reasonably primitive backup to the external 4TB HDD I purchased a while back specifically for this purpose:

rsync -avz /home/andrew /run/media/andrew/Backup/backup.`date "+%d.%m.%Y"`
rsync -avz /etc /run/media/andrew/Backup/backup.`date "+%d.%m.%Y"`
rsync -avz /usr/share/games/ut2004 /run/media/andrew/Backup/backup.`date "+%d.%m.%Y"`

A close examination of the paths that I am backing up will reveal that although I am backing up the vital $HOME directory as well as /etc I have not neglected the more than vital backup of my Unreal Tournament settings and installed files! Fortunately Gentle Reader the syntax does not reveal the hidden shame of my backed up D2x-rebirth files; maybe one day I will play a slightly more modern game...

Installation...

There is no great magic to the installation of Slackware -current from USB and it is always a warm feeling to see that old but incredibly dependable installer at work! The sequence for me is always:

  1. Make a full installation from the installation USB with the exception of the KDE International packages which I note are not even selected by the installer defaults. I take the time here to generate an intrd string for the kernel and suitably edit lilo.conf to match. When the dust has settled I will compile the latest stable Linux kernel which then becomes my daily, working kernel.
  2. Install the multilib libraries using alienBob's generously provided guide. I still have some 32bit applications to run and compile although that may change over the next few years for sure. A major sticking point with my current setup is my Brother laser printer which only comes with 32bit drivers. I will be more vigilant when selecting another printer!
  3. Install suitable NVidia drivers for my graphics card using the binary blob rather than the the slackbuilds on SBo. No particular reason for this, I am simply used to using the blob and despite improvements the nouveau driver still does not cut it on my system.
  4. Copy all of my backed up dot files, documents, browser bookmarks etc from the external HDD to their suitable locations on the new installation. Also copy the Slackware -current tree to its new home ready to pick up the latest updates!

And that is all of the basic installation done but the real work is in the configuration required to get a Slackware system running just exactly as I want it.

Configuration...

Perhaps the true heart of this page lies in this section where I have added in the configuration necessary on my Threadripper system to get things humming along nicely. Only five points to consider, (when I rewrote this page in April 2020 I noticed that I could eliminate three previous problems) but they have all caused me some time, effort and research to sort out:

Shutdown cleanup...

I have a very simple shutdown command which cleans out /tmp, the following needs to be created as /etc/rc.d/rc.local_shutdown and made executable:

#!/bin/sh
#
# Empty tmp on shutdown:
/usr/bin/find /tmp -mindepth 1 -maxdepth 1 -exec /bin/rm -rf {} +;

This has worked nicely on my system for some years after some experimentation with the many alternatives available. Many thanks to the forgotten Slackware user on Linux Questions who first steered me towards this one line magic.

Using sakura with Thunar...

Like many Slackware users I am a little fussy with the Terminal emulator that I use and I confess that the default XFCE Terminal does not cut it. To allow sakura to be used from within Thunar with the 'Open Terminal here...' the command exo-preferred-applications allows the path to sakura to be added in to the Terminal Emulators tab and then all is well.

Sakura hijacks my preferred choice of navigation keys with irssi where I use Alt + Left & Right Arrow keys to navigate windows. So the following change must be made to the defaults in ~/.config/sakura/sakura.conf:

prev_tab_key=bracketleft
next_tab_key=bracketright

And now both Sakura and irssi are happy, mind you efforts spent with irssi these days are becoming wasted efforts as IRC seems to be slowly fading away. 'All those moments, will be lost in time like tears in rain...'

Printing...

I have a nice WiFi Brother HL-2270DW laser printer which does require some decidedly 'hands on' wrangling to get performing well. So a few steps involved:

  1. First the rpm versions of the 'LPR driver' and the 'cupswrapper driver' packages will need to be downloaded from the Brother website and converted to tgz packages by using rpm2tgz. No direct link here because of the usual EULA rubbish required by Brother.
  2. Make a required link:
    ln -s /etc/rc.d/rc.cups /etc/init.d/cups
    This allows the Brother install scripts to stop and start the CUPS daemon; speaking of which remember to start the cups daemon!
  3. Install the tgz packages using installpkg
  4. Patch this file: /usr/local/Brother/Printer/HL2270DW/lpd/filterHL2270DW as follows:
    diff -Naur a/filterHL2270DW b/filterHL2270DW
    --- a/filterHL2270DW	2010-05-24 13:10:01.000000000 +1000
    +++ b/filterHL2270DW	2016-10-14 20:00:09.486908817 +1100
    @@ -35,7 +35,10 @@
     cat > $INPUT_TEMP1
     
     FILE_TYPE=`file $INPUT_TEMP1 | sed -e 's/^.*:[ ]*//' -e 's/[ ].*//'`
    -
    +# a.k. Hack until the "file" command gets fixed
    +if [ `head -1 $INPUT_TEMP1 | grep "%!PS"` ] ; then
    +    FILE_TYPE="PostScript"
    +fi
     #if [ "$FILE_TYPE" = "PostScript" -o "$FILE_TYPE" = "PDF" ] ; then
    	PSCONV_OP="$PAPER_INF $RCFILE"
    	BRCONV_OP="-pi $PAPER_INF -rc $RCFILE"
    
    Thanks to Andrew Smith for this information which prevents some garbage prints!
  5. After setting up the printer in cups there will be an error message: "Unable to locate printer "BRW008092AE60AB" which is solved by:
    1. Assigning the printer a static address (192.168.0.11 in my case)
    2. Stopping cups with the commmand /etc/rc.d/rc.cups stop
    3. Altering the DeviceURI section of /etc/cups/printers.conf to read DeviceURI socket://192.168.0.11
    4. Issuing the command /etc/rc.d/rc.cups restart to restart cups
    And the printer roars into life!

So perhaps a little painful to get going but once this work is done I know I will have absolutely no further problems with this otherwise very nice printer.

90 second bootup pause...

After a kernel update an incredibly annoying 90 second pause appeared in every bootup that turned out to be the kernel making a pointless search for the USB-C connector on my nice GeForce GTX 1660 Ti. The price you pay sometimes for getting reasonably modern hardware I guess! The fix remains to create a file /etc/modprobe.d/blacklist_i2c-nvidia-gpu.conf and add the following to it:

blacklist i2c_nvidia_gpu

I am not completely clear if this issue has been finally sorted but the fix remains in place on my own system and I am immensely happy with the bootup speed!

Application installation...

And that leaves me only to install all of my old applications which for the most part I have slackbuild scripts backed up on external drive. So it takes a solid half day or so to reinstall basic applications for mail, multimedia, office applications etc but this is a great time or me to decide what I really need as well as updating applications that have new releases upstream. So this is the happy time as I slowly refill both SSDs in a systematic and much more organised manner. Highlights include:

There is definitely a little more fine tuning to go and also a fair few more applications to install but that pretty much covers the basics of a Slackware -current reinstall on my system. But now it is time to reload my Slackware -current tree as I see yet once again the Changelog has just now been updated :).