Randomized Backdrops 2.0

#!/usr/bin/perl -w

# This little program sets my background image
# randomly in blackbox (and now openbox).
# It's called when I startx.

$isxrunning = `ps -C startx | grep "startx"`;

if ($isxrunning =~ "startx") {
    changebackdrop();
} else {
    exit;
}

sub changebackdrop {
    if (!defined $ARGV[0]) {
        $backdrop_directory = "/home/willyyam/misc/bmps/";
        # Set this to your backdrop files directory.

        opendir(BD, "$backdrop_directory") or die;
        # Normally we'd report errors, but since we will be
        # running this via script and discarding the STDOUT
        # that it generates, that would be a waste of time.

        @backdrops = readdir(BD);
        # Grab the contents of the backdrop directory.

        @spordkcab = reverse(@backdrops);
        pop(@spordkcab);
        pop(@spordkcab);
        # The first two entries readdir() finds are
        # . and  ..  We don't want to hand these
        # entries to bsetbg, so I reverse the array
        # and do away with them.  There is a smooth,
        # tidy way to do this.  I don't care :-)

        $randpic = $spordkcab[ rand @spordkcab];
        $randpic = $backdrop_directory . $randpic;
        `/usr/bin/Esetroot -display :0.0 $randpic`;
        #`/usr/bin/X11/xli -display :0.0 -onroot $randpic > /dev/null &`;

        exit;
    } else {
        # If backdrop is called with an argument, use the argument
        # as the backdrop.
        `/usr/bin/Esetroot -display :0.0 $ARGV[0]`;
        #`/usr/bin/X11/xli -display :0.0 -onroot $ARGV[0] > /dev/null &`;
        exit;
    }
}

# William O'Higgins yam@nerd.cx

Resolved: 2.6.8 and USB

Well, I got things sorted. I got them sorted quite a while ago, but I have just emerged from the cave of my Masters and I resolve to begin catching up on my blogging – I haven’t been hibernating, I just haven’t done any reporting on my activities.

Okay, back to the kernel – I went through the process again, and I still had USB issues, but everything else worked. I got a bit of help from TLUG and discovered that my problems went away if I typed sudo modprobe ehci_hcd and sudo modprobe uhci_hcd, which are the modules for USB 2.0 and USB 1.1 respectively. After a bit more looking, I found that the reason I had some old, unused modules loading was that they were in /etc/modules. So, I extrapolated, put the USB modules in and commented the obsoleted ones out, and Bob’s your uncle, everything works.

Fun with the 2.6.8 Kernel and ALSA

I figured it was high time I updated my desktop machine to a modern kernel. And, as usual there were some hiccoughs, but it seemed to go reasonably well with the following procedure:

cd /usr/src

tar xjfv linux.[version].tar.bz2

rm linux (assuming it is a link to your old kernel)

ln -s /usr/src/linux.[version] linux

cd /usr/src/linux

cp /usr/src/[oldkernel-source-directory]/.config .config

make oldconfig

make menuconfig

cd /usr/src/linux

make-kpkg clean

make-kpkg --append-to-version=.[a_unique_and_clever_name] kernel_image modules_image

cd /usr/src

dpkg -i kernel-image-[version].[a_unique_and_clever_name]_10.00.Custom386.deb

vi /etc/lilo.conf

lilo

What gave me troubles was using ALSA instead of OSS as the sound architecture. It worked, after following instructions to install a few things, if I was root. I don’t always want to be root though, and nothing I tried seemed to work. Finally, I used the brute force approach. I went into /dev and went to town, chmoding everything in sight, including mixer, sequencer, dsp, music and the snd directory, as well as the entire contents of /dev/snd. It works now though, so that’s something.