Saturday, April 18, 2009

Tux and... Tuz?

In a previous post I wrote something about our little friend Tux, the symbol of Linux.

On most computers running Linux he'll show up while the kernel is starting up the main services, once for every processor in your system. This little picture in compiled into the kernel and, if you have the sources on your system (like on almost all Slackware installations), you can find him at /usr/src/linux/drivers/video/logo in his various forms (black & white, color, with several architecture-logos, etc.)
The most well-known version is in the logo_linux_clut224.ppm file:


Who likes to use the latest version of the kernel, will have noticed that as of 2.6.29, Tux has been replaced by... Tuz:


Tuz is a little Tasmanian Devil trying to disguise as a penguin :-)

Linus Torvalds had already announced this chance in his blog and as most understood, this is a temporary change, only in the 2.6.29.x kernels.

But for those who can't wait and really do not like Tuz, it is possible to compile your own kernel with Tux on your screen again.

First you'll have to get hold of the original logo_linux_clut224.ppm with the image from Tux. Get it from a system still running the 2.6.28.x kernel or older, or find it on the internet. Save this file in /usr/src/linux/drivers/video/logo/ and then follow these standard steps to compile your kernel:
  • # cd /usr/src/linux

  • # make mrproper

  • Copy the configuration file of your current kernel (usually in /boot) as .config here

  • # make menuconfig

  • In the configuration menu, choose "General setup" and change the "Local version" to something like "-tux", so that you can recognize your custom kernel later. Exit the menu saving your change.

  • # make (this will take a while, depending on your processing power...)

  • # make modules_install

  • # cp arch/i386/boot/bzImage /boot/vmlinuz-tux

  • # cp System.map /boot/System.map-tux

  • # cp .config /boot/config-tux

  • If you used an initrd with your normal kernel, you'll need to create one for this custom kernel as well

  • Add your new kernel to your lilo.conf, run lilo and reboot!


If you feel like it you can also experiment with other pictures... :-)

Labels: , ,

Lego sculpture of Jesus

It's been a week since Easter, but here is a little article I found about a sculpture of Jesus, build in a church in Vasteras, Sweden. It was made using 30.000 pieces:


The article can be found here.

Labels: ,

Adventures with SlackPkg - Part I

As a big fan of Slackware, I try to follow the -current branch of this distribution on two of my machines at home.
Doing this is not a good idea on a production machine, as things might stop working. The -current branch is mainly for testing newer versions of packages. The developers of Slackware are usually grateful when receiving feedback if something goes wrong, so that it can be fixed before the new stable release.

I use SlackPkg, a wonderful tool that since long has been included with Slackware as an extra, but since the release of 12.2 is part of the standard installation.
SlackPkg can check for updates to the -current or stable branch and then upgrade or add the available packages and patches.

This week (April 15th) a new version of the 'pkgtools' package was released, fixing some small bugs. While trying to upgrade the package with SlackPkg, it complained that the md5sum was not matching.
After researching some of the code, I found out that in the 'checkpkg' function in /usr/libexec/slackpkg/core-functions.sh the 'MD5ORIGINAL' variable receives the md5sum of both the package to be installed and the source package (source/a/pkgtools/pkgtools-12.34567890-noarch-2.tgz).

A temporary work-around was to disable md5sum checking in SlackPkg, changing CHECKPKG=on to CHECKPKG=off in /etc/slackpkg/slackpkg.conf

I posted the problem at LinuxQuestions and the same day Alan Hicks responded with a patch that basically filters out the source-packages when getting the md5sum.

The trick is in the included 'grep -v'. In /usr/libexec/slackpkg/core-functions.sh the line:
MD5ORIGINAL=$(grep "/${NAMEPKG}$" ${WORKDIR}/CHECKSUMS.md5| cut -f1 -d \ )
was changed to:
MD5ORIGINAL=$(grep "/${NAMEPKG}$" ${WORKDIR}/CHECKSUMS.md5| grep -v '/source/'| cut -f1 -d \ )

It seems to be a rare occurrence of having an installation package and source package with exactly the same name.

The patch lets SlackPkg install the package, but it is still not perfect, as it tries to install it twice.
But I'll leave this to PiterPunk to fix, as it is no serious problem. :-)

Labels: ,