Main menu:


Please consider a small donation:



Or you can donate bitcoin:


Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank


FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.


My Favourites



November 2015
« Oct    

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages


Slackware Live Edition – Beta 2

blueSW-64pxThanks for all the valuable feedback on the first public beta of my Slackware Live Edition. It allowed me to fix quite a few bugs in the Live scripts (thanks again!), add new functionality (requested by you or from my own TODO) and I took the opportunity to fix the packages in my Plasma 5 repository so that its Live Edition should actually work now.

What is Slackware Live Edition?

If you’re new here: Slackware Live Edition is a “live OS” meaning it does not have to be installed to a harddrive and can run straight off a CDROM or DVD medium, or off a USB stick. Slackware Live Edition is meant to showcase the development of Slackware. Therefore it will boot slackware-current and no other OS. It is meant as an ideal opportunity for people who are curious what two years of Slackware development have resulted in. You do not have to erase your current OS, just copy the ISO to a suitable medium, boot from the medium and check it out. The previous article I wrote explains in more detail why I wanted to write my own Live scripts instead of just using one of the available solutions.

What’s with these three ISO’s?

Slackware Live Edition comes in three flavors (for now). There’s a 700 MB slimmed-down XFCE version with XDM as the graphical login manager; then there is the actual complete Slackware-current with KDE4 and using KDM as the graphical login manager (2.6 GB in size); and finally you can download a 3.0 GB ISO image of Slackware-current with Plasma 5 and the SDDM graphical login manager. The Plasma 5 edition has some cool extras like vlc, libreoffice, calibre, qbittorrent ffmpeg, chromium, openjdk, veracrypt… and more from my own repository.


How do I use the ISO?

The ISO can be burnt to a DVD (XFCE version will fit on CDROM even) or copied to USB stick. Since the ISOs are ‘hybrid’ just copying to the USB device using ‘dd’ or ‘cp’ will get you a fully functional bootable medium, albeit without persistence (it’s still technically a read-only CDROM filesystem that you’ve copied to the USB stick). The OS will not be bothered by this, because it thinks it can write to the filesystem. That is the trick of a Live OS – all these write operations are done to a RAM based filesystem. The changes are gone once you reboot.

But when using the ‘‘ script you can create a real Live OS on the USB device with persistence, meaning that the things you change will be preserved across reboots. All your modifications will be stored in the directory “persistency” in the root of the USB device. Therefore you are actually able to use the USB stick as your pocket-OS on the go:

# ./ -i ~/Download/slackware64-live-current.iso -o /dev/sdX

… where /dev/sdX is the device name of your USB stick. Don’t worry about accidentally overwriting the content of your hard drive – the script will first show you details about the sdX device and wants your confirmation that this is actually the device you want to reformat.

When you boot Slackware Live you will be presented with a Syslinux boot menu:

  • Start (SLACKWARE | PLASMA5 | XFCE) Live (depending on which of the three ISOs you boot)
  • Non-US Keyboard selection
  • Non-US Language selection
  • Memory test with memtest86+

The first entry boots you straight into the Live OS, using US keyboard mapping and a “en_US.utf8″ locale. If you have a non-US keyboard layout and/or want your Linux to show itself in a non-US Language, you can use the second and third menu entries to configure one of the languages I selected ( I picked what I thought were the most commonly used). If your language or keyboard is not listed, just hit the <TAB> key and change the values for the “kbd” and “locale” parameters. Likewise for the timezone parameter which by default is associated with your choice of language.

The memtest option was copied from the Slackware installer – it allows you to test your RAM sticks for hardware errors very thoroughly.

More parameters

The syslinux boot menu allows you to modify the boot command line. Press <TAB> to edit the command line. You will see several parameters you can edit but you can also add more. The <F2> key will show a couple of those.

  • 0|1|2|3|4|5|6|S|s|single (Select another runlevel to start with; the default is  4 for graphical login)
  • lang=nl_NL kbd=nl tz=Europe/Amsterdam (Example of language, keyboard and/or timezone customization)
  • nop (No persistence, i.e. boot the virgin installation)
  • nomodeset (Boot with kernel mode setting for graphics — needed with some machines)
  • load=nvidia (Load and configure binary Nvidia drivers that are present in the ISO)
  • rootdelay=10 (Add 10 second delay to allow proper USB initialization)

But there are some others, and some of these have been added after readers of this blog suggested them:

  • hostname=aliens (Change the hostname for the OS; default hostname is “darkstar“)
  • livepw=”somestring” (Change the password for the ‘live’ user)
  • rootpw=”somestring” (Change the password for the ‘root’ user)
  • load=mod1[,mod2[…]] (load one or more squashfs modules that are present in the directory “/liveslack/optional”; by default none of the modules in the “optional” directory are loaded)
  • noload=mod1[,mod2[…]] (prevent loading of one or more squashfs modules that are present in the directory “/liveslack/addons”; by default all of the modules in the “addons” directory are loaded on boot)
  • rescue (After initialization, you will be dropped in a rescue shell where you can perform lowlevel maintenance; the same happens anyway if the OS fails to boot)
  • swap (Allow the Live OS to activate all swap partitions it finds on the local hardware; by default, the hard drive will not be touched at all)

I get errors and booting fails

Booting an OS off a USB medium is tricky. Linux kernel initializes the storage and the usb subsystems in parallel. If you have a fast computer and slow USB medium or you use a USB-1 / USB-2 port, the probability is pretty high that the USB stick is not yet ready when the OS starts its mount attempts. There’s a parameter you can add to the boot command line to give the USB device some extra time to settle – try adding “rootdelay=10″ or even “rootdelay=20″ which will add 10 (or 20) seconds pause to the boot process. The script configures a default delay of 5 seconds which should be sufficient for most computers.

Instead of “rootdelay” you can use the parameter “waitforroot” with identical result.

Slackware Live does not log me on automatically!

Correct. This is a demonstration environment, with the purpose of getting you acquainted with Slackware, remember?

You already saw all these intimidating kernel messages scrolling across the screen while booting the OS, and now you have two choices for login:

  • user ‘root’ with the password ‘root’ (at least that is the default – you can change it using a boot parameter if you want)
  • user ‘live’ with the password ‘live’ (idem about the default value).

I would suggest using the ‘live’ user account to logon to the Live OS, because KDE 4 and Plasma 5 will not appreciate it when you login as root directly. If you need root access, then just run “sudo -i” or “su -” (both commands will request you to enter the password of user ‘live’, not the root password!).

What’s still on the TODO?

There are a couple of items that I did not get to but they should really be looked into to bring this out of Beta:

  • UEFI boot needs to work (must have)
  • Better documentation about how the scripts work (must have)
  • Documentation on all the boot parameters (must have)
  • Slackware installer as part of the ISO, perhaps even Didier’s polyglot installer (nice to have, only in the Plasma5 version)
  • A ‘copy2ram‘ function to run the OS entirely in RAM (nice to have)
  • … tell me more! Or post patches!

Download the ISO images

Show me the source!

Git repository for the scripts can be found here:

A checkout of the repository can be found in and

Hopefully soon, I will write a proper README which takes you through the inner workings of the scripts. If you are curious you can of course check out the sources – they are full of comments. But there are some design decisions at the core which you need to be aware of before you start on these scripts.

Happy hacking! Eric

(Hopefully) final recompilations for KDE 5_15.11

plasma5_startup There was still some work to do about my Plasma 5 package repository. The recent updates in slackware-current broke several packages that were still linking to older (and no longer present) libraries which were part of the icu4c and udev packages.

So finally I had the time to cure this situation. I rebuilt kdelibs, kde-workspace and all the telepathy dependencies, updated all the KDE Telepathy packages, and also compiled a git snapshot for the kio-mtp package after some people complained about the Unicode character in its ‘slack-desc’ file which caused breakage in pkgtools.

Hopefully, everything works again this time. Even Telepathy. Tell me your experiences with Amarok and the Plasmashell which were crashing for some people. And especially Plasmashell crashing leaves you with no desktop at all.

Have fun! Eric

Updated multilib packages for -current

The recent update of packages in slackware-current demanded a similar update in the set of “compat32″ packages for those who are running a 64bit Slackware multilib computer.
On request, I have added two new packages: libaio-compat32 and lzo-compat32. Both packages cover a missing dependency, one for mariadb and the other for cairo. The script will now also create or update these two new packages.

Remember, if you want to check (without actually creating anything) if the script will update any of your compat32 packages or add new ones, just run the script as follows in the directory where you already have your “a-compat32″, “ap-compat32″, …, “xap-compat32″ subdirectories (this example uses a local mirror of 32-bit Slackware-current):

# -n -q -i /local/path/to/mirror/of/slackware-current/slackware/

The output could be something like this:

libaio: new package will be converted
lzo: new package will be converted

Official download locations:

Have fun! Eric

Cleanups from the -current update fallout

blueSW-64pxI think I have managed to fix most of the important breakage in my packages, after Slackware-current updated its icu4c package a couple of days ago.

Recompiled packages are now available for -current:

  • Regular packages: LibreOffice 5.0.3
  • KDE 5_15.11 packages: qt5 (which was bumped to 5.5.1 at the same time), step, akonadi4, akonadi, akonadi-search, akonadi-calendar and kdepimlibs. Here at home, Plasma 5 works again on latest slackware-current.
  • Multilib: fixed convertpkg-compat32 script so that it will properly handle the new eudev; and also updated the “compat32″ package directory with a new eudev-compat32 package.

If there are other packages in my -current repository that require recompilation, please let me know!


Slackware Live Edition

I thought it would be a cool idea to celebrate the “farewell to udev”. With the abandoned ConsoleKit replaced by ConsoleKit2 which is actively maintained by the Slackware-friendly XFCE crew, and Gentoo’s eudev taking the place of udev, we are well equipped to keep systemd out of our distro for a while. Basically eudev contains the udev code as found in the systemd sources, but then stripped from all standards-violating systemd crap and with a sane build system. Hooray, we’re back in business and eudev gained some more traction. Win-win.

How to celebrate the occasion? Easy! By releasing a first public Beta of the Slackware Live Edition.

Screenshots of my latest “Project X” were already revealed in a recent post. Slackware Live Edition is a version of Slackware-current (64-bit only for now)  that can be run from a DVD or a USB stick. It is an ISO image meant to be a showcase of what Slackware is about. You get the default install, no customizations, but with all the power.


Let me repeat the reasons I had for creating the Slackware Live Edition (apart from sheer curiosity):

  1. Provide a Live version of Slackware proper – i.e. show Slackware as it is, but without having to install it. No hiding of kernel messages scrolling across the screen at boot – no custom wallpapers, etcetera. Meant for education and demonstration purposes.
  2. The target should be slackware-current – the bleeding edge. Many people want to know what that looks like but are hesitant to install slackware-current for fear that it breaks stuff and causes productivity loss.
  3. Provide a way to generate a Live ISO with just Slackware packages as the source – fully scripted and deterministic.
  4. Still be able to customize its content – for instance provide stripped-down or minimalist versions of Slackware but also allow for the inclusion of 3rd party packages.
  5. Option to create a bootable USB stick running Slackware Live (which is different from ‘dd’-ing the hybrid ISO to a USB stick!)
  6. Keep It Simple Stupid!

What will you get with this first Beta? I have two ISO images, created by a single script: The full Slackware64-current contained in a 2.6 GB ISO image; and a 700 MB stripped down version with XFCE as the Desktop (fits on a CDROM!). Unfortunately Plasma 5 is currently broken due to the icu4c upgrade in -current, or else I would also have included an ISO with a  Slackware64-current & Plasma5. But that ISO will come once the broken packages have been recompiled.

The ISO images are hybrid, which means you can either burn them to DVD, or use ‘dd’ to copy the ISO to a USB stick. Both methods will give you a live environment which will allow you to make changes and “write them to disk”. The changes will be kept in a RAM disk, so a reboot will “reset” the live OS to its original default state. I.e. there is no persistency.

I want your feedback to get the bugs out of the boot-up stages. Slackware Live Edition is using syslinux as the bootloader and a modified Slackware initrd.img file as created by the “mkinitrd” command (the modifications are in the “init” script). Boot-up is fine both on my ageing laptop and the bleeding-edge desktop computers that I own but I am sure that there will be corner cases.

Based on your feedback I will release a second Beta somewhere soon, and those new ISOs will be accompanied by the scripts I used to create them. One of those scripts, “” will write the ISO content to a USB stick, after partitioning the stick (erasing all data). That USB stick will have persistency! I.e. the things you change while Slackware Live is running are not kept in RAM but written to the USB stick. And that will survive a reboot.

Slackware Live knows two user accounts: “root” and “live”. They have passwords, and by default these are… you guessed: “root” and “live”. Also by default, the ISOs will boot into runlevel 4  i.e. you will get a graphical login. The syslinux bootloader will allow you to pick a non-US language if you want (I made a selection of commonly used languages) and that will also determine the choice of keyboard layout and timezone. I am not yet happy with this boot menn: I want a separate choice of keyboard layout. That will be something to take care of for a future Beta.

Press <F2> for an overview of (most) boot parameters. Pressing <TAB> will expand the currently selected boot choice, allowing you to edit the commandline. Owners of a recent Nvidia graphics card will want to add the word “nvidia” to the commandline, as this will load the latest Nvidia driver (contained in the full Slackware ISO), giving you instant hardware graphics acceleration.

How is the Live filesystem assembled?

I tried to deviate as little as possible from a regular Slackware boot. For the full Slackware ISO the process was as follows:

  • every Slackware package set (a, ap, d, .., y) was installed into a separate chroot directory
  • every chroot directory has been squashed into a separate squashfs module
  • these modules are loop-mounted and combined together using an overlay mount
  • some filesystem initialization is done on the overlay (a locate database is created, slackpkg is configured, user accounts are created, initial environment for the accounts is configured, initrd is generated, etc)
  • all this is stuffed in an ISO file and syslinux is used to make the ISO bootable. The “isohybrid” command is run on the ISO so that you can “dd” the ISO to a USB stick and thus create a bootable USB media
  • on boot of the ISO, the “init” script in the ISO’s initrd does the magic of finding the live media and re-assembling the filesystem overlay before giving control to the real Slackware init process (PID 1)
  • a RAM based filesystem is used as the writable component of the overlay, so that the OS thinks it is working off a writable disk and won’t choke

The XFCE ISO is a severely slimmed-down version of Slackware for which I wrote a custom list of packages to add.

Get the ISOs here:

Mirror locations are welcome! I really hope that the server will not buckle and die when you people start downloading, so please be gentle. The “rsync” command has a “–bwlimit” parameter which lets you limit the download bandwidth.

Please send me an email with your URL if you have a server with lots of bandwidth, or leave a comment below this article.

And tell me about your experiences, your feedback, your ideas! You’ll all be beta testers, and I expect that the biggest pitfalls will be in the initrd’s “init” script. Also, don’t be scared of all the available loopback disks – those are the squashfs modules that are loop-mounted before assembling them into a overlay filesystem.

Have fun! Eric