News Archive

Date

Merry Christmas

I don't have much news to post as I'm out of town for the holidays, but I just wanted to wish everyone a safe and merry Christmas (especially those of you that are traveling). Enjoy the holidays!

New Website Progress

It's taking longer than originally planned, but I'm happy to report that LegRoom v3 development is nearing completion. I'm still not quite ready to post a link to the development site (I still need to theme it, among other things), but since my last post about it in early November I've accomplished the following major tasks:

  • Decided on a content management system (CMS)
  • Ported static content (mostly anything that's not news posts and comments) to the new site
  • Ported dynamic content (everything else, which includes news and comments) to the new site

Porting the static content took a while, as I needed to clean up a lot of the HTML and PHP in the process, but the real killer was the dynamic content. I had to write a rather long and complex PHP script to do the job, and while the results are not perfect (article formatting may not be correct, etc.), I'm pretty happy with the results.

The primary remaining issue at this point is the new LegRoom v3 theme. I also have various kinks to work out, but most of that can wait until the new site is operational. Optimistically I'm hoping that can be done before New Year's, but at worst I'm hoping by mid-January.

Stay tuned for a sneak peak.

Learn 10 Good UNIX Usage Habits

I'm a bit late posting this (I believe it's already made it to Slashdot), but Michael Stutz recently published a good article on the IBM developerWorks site entitled, "Learn 10 good UNIX usage habits." From the introduction:

When you use a system often, you tend to fall into set usage patterns. Sometimes, you do not start the habit of doing things in the best possible way. Sometimes, you even pick up bad practices that lead to clutter and clumsiness. One of the best ways to correct such inadequacies is to conscientiously pick up good habits that counteract them. This article suggests 10 UNIX command-line habits worth picking up -- good habits that help you break many common usage foibles and make you more productive at the command line in the process. Each habit is described in more detail following the list of good habits.

It contains some very useful tips. I recommend that anyone using a CLI environment, regardless of your experience level, give it a read.

Full link:

http://www-128.ibm.com/developerworks/aix/library/au-badunixhabits.html

LILO and Console Splash Screens

Note:  This page is likely very outdated.  I've left it here primarily for archival purposes.  Please refer to the following to links for current information and support:
http://forums.gentoo.org/viewtopic-t-49036.html
http://forums.gentoo.org/viewtopic-t-52290.html

Purpose:

Recent versions of the top-tier Linux distributions (SuSE, Red Hat, etc.) include splash screens at the LILO prompt, and sometimes even on the console when booting the system.  While this is really no more than eye candy, it does have the "Ohh" factor that can attract other people to Linux, which is a Good Thing.

This HOWTO will detail how to enable these splash screens on other distributions, as well as how to change, customize, etc. the splash screen if your preferred distribution already includes one.  This will focus on Gentoo (since that's all I have to work with), but I'll attempt to make it as generic as possible.  Let's get started.

Update:  While this HOWTO was originally intended to be a guide for setting this up on all distributions, it currently covers Gentoo exclusively.  Many of the steps automated by the Gentoo ebuild are quite low-level (patching your kernel, modifying your bootloader, etc.), and as such it will take some time for me to figure out how to reproduce these steps manually.

Prerequisites:

  • kernel patch - included with Gentoo ebuild
  • splash screens - example artwork is included with the Gentoo ebuild; additional artwork may be obtained here

Installation and Configuration:

Installation under Gentoo is very easy, thanks to the bootsplash ebuild.  Follow the steps below to install it.  Note: These instructions are specific to bootsplash-0.4-r1.  The procedure may differ for later versions.

emerge /usr/portage/media-gfx/bootsplash-0.4-r1
ebuild /var/db/pkg/media-gfx/bootsplash-0.4-r1/bootsplash-0.4-r1.ebuild config

The ebuild command above will patch your kernel for splash screen support during boot, so the next step is to enable this in your kernel and recompile it.  Enable the following options:

Block Devices --> <*> Loopback device support
                  <*> RAM disk support
                  [*] initrd support

Console Drivers --> [*] Video mode selection support
                    Frame-buffer support --> [*] Support for frame buffer devices
                                             [*] VESA VGA graphics console
                                             [*] Use splash screen instead of boot logo

Be sure to compile and install your new kernel.

Next, you'll need to install your splash screens.  Decide which resolution you want, and substitute that in for the commands below.  By the way, it's not necessary to use the symlinks (you can call the files directly), but it does make it easier when trying to use additional splash screens.

cd /usr/share/bootsplash/
rm consolesplash* bootsplash*
ln -s gentoo-console-1024x768.cfg consolesplash.cfg
ln -s gentoo-console-1024x768.jpg consolesplash.jpg
ln -s gentoo-boot-1024x768.cfg bootsplash.cfg
ln -s gentoo-boot-1024x768.jpg bootsplash.jpg
splash -s -f bootsplash.cfg >/boot/splash_initrd
rc-update add bootsplash default

Note that there are two different splash screens, one called bootsplash and one called consolesplash.  bootsplash is displayed during the boot process, appearing once the kernel begins to load (after LILO), and until lasts until the Login: prompt.  consolesplash, as you can guess, appears at the login prompt, and remains present on any virtual terminals.  I should point out here that bootsplash is enabled and controlled by your boot loader (LILO), while consoleplash is enabled by the /etc/init.d/bootsplash init script (yes, the consolesplash init script is called bootsplash - just ignore this bad naming convention).

Why have two separate screens?  Well, in addition to the obvious reason (two separate pictures), you can also control the size and shap of the text independantly.  For example, during boot you may prefer to have a tall and narrow text area so that you can easily view the boot messages as they scroll by.  Once you login, though, you may prefer to work in a shorter but wider environment, allowing you to view more text on each line.  The default splash screens are configure like this, and details for changing them are provided below.

Now that you have your splash screens installed, the only remaining task is to configure LILO to display it during boot.  This involves two steps.  First, you have to set LILO to boot in high-resolution mode.  Second, you'll need to set it to display the image.

Decide which resolution you want to use and consult the following table for the VGA number you'll need:

   640x480  800x600  1024x768  1280x1024
256 769 771 773 775
32K 784 787 790 793
64K 785 788 791 794
16M 786 789 792 795

If you're not sure which resolution and color depth you want, I recommend 791 for 1024x768x16.  I've had the best luck with this setting.

To enable everything, add the following lines to the default stanza of your lilo.conf:

vga = 791
initrd = /boot/splash_initrd

Substitute your resolution number for 791, and don't forget to run lilo afterwards to install it.

At this point everything should be installed and configured.  Reboot, and you should be greeted by Larry the cow (yes, the default splash screen can be changed).

Configuration:

Now that you have everything setup, you'll probably want to change the splash screens.  This is pretty easy to do, but you must follow two important guidelines:

  • The images must be the same size as your console resolution
  • The images must be the same color depth as your console

You can grab additional images here.  Each of these images are 1024x768 and 16 bit.

Remember, whatever images you use must conform to the above specifications.  Once you've ensured they do, the rest of the process is relatively easy.

To change your bootsplash screen, copy the new image to /usr/share/bootsplash/, delete the bootsplash.jpg symlink pointing to the old splash screen, then recreate it pointing to your new image.  Unless your image is very similar to the old one, you'll also need to reconfigure it.  Copy the file bootsplash.cfg is linked to so you'll have a template, then open your new .cfg file in an editor.

There are 3 settings you can modify in this file: the border coordinates, the text foreground color, and the text background color.  The coordinates (in pixels) define what part of the screen will display text, and the text color settings should be self-explanatory.  Here's my bootsplash.cfg file:

/usr/share/bootsplash.cfg:
version=2
tx=20
ty=10
tw=990
th=655
fgcolor=15
bgcolor=0

Remember, the coordinates are in pixes, so this says to start the text area at (20,10) and end at (990,655).  tx and tw define, from right to left, the start and end points along the x-axis, and ty and th define from top to bottom the start and end points along the y-axis.  Don't confuse this with the mathematical coordinate system, in which the y-axis origin starts at the bottom.  This configuration also specifies to make my text white with a black bacground.

Note that it's very difficult to guess what the correct coordinates should be, so you may have to resort to trial and error by taking your best guess, rebooting to see how it looks, then trying again.

Once you're happy with the configuration, make the bootsplash.cfg is pointing to your new .cfg file, then install it as your did before:

splash -s -f bootsplash.cfg >/boot/splash_initrd
lilo

This created the new initrd file, and updates LILO to use it.

Modifying your consolesplash image is easier.  As before, copy the new image to /usr/share/bootsplash/, and update the consolesplash.jpg accordingly.  You'll also want to copy the file consolesplash.cfg is pointing to so you'll have another configuration template, then update consolesplash.cfg to point to your new .cfg file.  As above, you'll also need to make sure the .cfg file is properly configured for your new image, then save any changes.

Your new consolesplash screen should automatically be loaded by the bootsplash init script on the next reboot.  Edit /etc/init.d/bootsplash and make sure /usr/bin/splash line is pointing to /usr/share/consoleplash.cfg.  As long as consolesplash.cfg and consolesplash.jpg are linked to the correct files, you should be good to go.

Reboot and be amazed by your handiwork.

If you notice any errors in this document, or if you have trouble getting something working correctly, send me an e-mail.  It took me several tries to get everything setup correctly, so don't get discouraged if it doesn't work right away.  Good luck!