Thursday, August 16, 2012

dm-live updated to Slackware -current (v14 release pending)

Slackware 14's release is almost finished. PV marked the latest set of changes as RC2. I looked at my startup environment to see what changes were necessary to prepare to match the next release. Almost all of the packages were updated and module-init-tools was removed in favor of kmod. The busybox toolset that is used for a lot of commands was upgraded, with a few minor additions (lsof, setserial, udhcpc6). Here is the version info:
BusyBox v1.20.1 (2012-07-17 17:49:41 CDT) multi-call binary.
Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
Here is my list of packages, omitting the kernel, kernel modules, and kernel firmware:
  • slackware/a/aaa_base-14.0-i486-4.txz
  • slackware/a/aaa_elflibs-14.0-i486-3.txz
  • slackware/a/aaa_terminfo-5.8-i486-1.txz
  • slackware/a/bash-4.2.037-i486-1.txz
  • slackware/a/bzip2-1.0.6-i486-1.txz
  • slackware/a/coreutils-8.18-i486-1.txz
  • slackware/a/cpio-2.11-i486-1.txz
  • slackware/a/cryptsetup-1.4.3-i486-1.txz
  • slackware/a/devs-2.3.1-noarch-25.txz
  • slackware/a/dialog-1.1_20100428-i486-2.txz
  • slackware/a/e2fsprogs-1.42.4-i486-1.txz
  • slackware/a/elvis-2.2_0-i486-2.txz
  • slackware/a/etc-13.013-i486-2.txz
  • slackware/a/findutils-4.4.2-i486-1.txz
  • slackware/a/glibc-solibs-2.15-i486-4.txz
  • slackware/a/grep-2.13-i486-2.txz
  • slackware/a/gzip-1.5-i486-1.txz
  • slackware/a/kmod-9-i486-3.txz
  • slackware/a/lvm2-2.02.96-i486-4.txz
  • slackware/a/mdadm-3.2.5-i486-1.txz
  • slackware/a/mkinitrd-1.4.7-i486-4.txz
  • slackware/a/pkgtools-14.0-noarch-1.tgz
  • slackware/a/procps-3.2.8-i486-3.txz
  • slackware/a/sed-4.2.1-i486-1.txz
  • slackware/a/tar-1.26-i486-1.tgz
  • slackware/a/udev-182-i486-3.txz
  • slackware/a/util-linux-2.21.2-i486-5.txz
  • slackware/a/which-2.20-i486-1.txz
  • slackware/a/xfsprogs-3.1.8-i486-1.txz
  • slackware/a/xz-5.0.4-i486-1.tgz
  • slackware/l/readline-5.2-i486-4.txz
  • slackware/n/gnupg-1.4.12-i486-1.txz
  • slackware/n/libgcrypt-1.5.0-i486-1.txz
  • slackware/n/libgpg-error-1.10-i486-1.txz
Only these packages from the startup environment based on version 13.37 were not upgraded:
  • slackware/a/aaa_terminfo-5.8-i486-1.txz
  • slackware/a/bzip2-1.0.6-i486-1.txz
  • slackware/a/cpio-2.11-i486-1.txz
  • slackware/a/devs-2.3.1-noarch-25.txz
  • slackware/a/dialog-1.1_20100428-i486-2.txz
  • slackware/a/elvis-2.2_0-i486-2.txz
  • slackware/a/findutils-4.4.2-i486-1.txz
  • slackware/a/procps-3.2.8-i486-3.txz
  • slackware/a/sed-4.2.1-i486-1.txz
  • slackware/a/tar-1.26-i486-1.tgz
  • slackware/a/which-2.20-i486-1.txz
  • slackware/l/readline-5.2-i486-4.txz
The 34 listed packages use approximately 89 MB of RAM when expanded. The gzipped kernel modules use 43 MB and the kernel firmware uses 12 MB for a total of approximately 144 MB. For practical purposes, a machine with 256 MB is the least amount that could be used to successfully load the startup environment. A couple of small optimizations could reduce the required space slightly (1. compress /usr/share/locale, remove redundant copy of busybox in mkinitrd - or remove the package).

I have been using this as part of my working day-to-day setup for over a year now. It's a good rescue and all purpose startup environment. That includes booting to an encrypted root filesystem, booting to root filesystem on external USB, or the combination: encrypted root filesystem on external USB device. USB flash memory devices are now hitting the 32 GB level at affordable prices. I've noticed some performance issues on the larger flash disks that are not present on external magnetic USB drives. Another problem have been several glitches introduced with changes to the Linux kernel itself in the past year. The glitches manifest differently on different hardware. I am using kernel version 3.2.26 on an Intel Atom CPU powered netbook, and that combination has had the fewest glitches. I will probably update to PV's 3.2.27 kernel soon and try to use lzma compressed modules to see if any slight gains in free space can be made. That said, the gains are extremely marginal on today's hardware because I don't use computers with less than 256MB anymore. Also, the gains are transient because the environment is discarded when the startup environment gives control to the actual root filesystem.

Update: 2012-08-18: PV's kernel for 3.2.27 has a significantly larger firmware footprint than what I had been using. It jumps to 45M from 12M. I did some simple comparisons to look for differences. I found a direct overlap of 8M and the rest different. These are the biggest directories in the firmware packaged by PV:

6.5M ./ti-connectivity
4.8M ./bnx2x
2.2M ./libertas
1.6M ./brcm
2.2M ./ueagle-atm
1.5M ./bnx2