Stupid Linux Crap!
Well, I decided (for a number of individually not very good reasons that, in my head, seemed to add up) to try and upgrade the OS on the DNA Lounge kiosks.
<LJ-CUT text="Dear Lazyweb... --More--(13%) ">
So, I went from vintage-2003 Red Hat 9 to Ubuntu 7.10. (I'm sure thousands of you think a different OS would have been a better choice for some reason, no matter which OS I picked. So let's just skip that part.) It's mostly working now, but it was a typically-monumental pain in the ass (most of which I attribute to changes in LTSP rather than the distro itself).
Here, then, are the problems I'm having, which you will now solve for me:
- I'm using LTSP, meaning the kiosks themselves are thin clients, and all the action is happening on the one big server machine. The kiosks themselves keep crashing. As in, freezing up, becoming unpingable. I don't know why. Maybe it's X, maybe it's just random. All I know is, I walk away, come back ten minutes later, and I have to hit the reset button. If something were logged at all, I assume it was to a ramdisk, so I don't even know how to go about diagnosing this. Oh, and the screen is always black when I discover them being all dead (not a frozen screen saver, as you'd expect).
I have a bunch of scripts that reset the kiosks to a known good state. One of the things they do is note that the kiosks are in a bad state (e.g., that certain critical programs are no longer running, like the window manager or the dock) and when it appears that things are "bad", logs the guest user out, so that it will automatically log in again and reset things.
The way this used to work was, "kill off all processes owned by user guest01, and guest01's X session will terminate, and go back to gdm." But now what happens is, X just keeps running with no applications at all. This is suboptimal. In this modern gdm/XDCMP world, how do I forcibly log a user out and go back to the greeter? ("Kill the X server" is a bad answer, because that's running on a different machine).
I tried to replace the Ubuntu logo in "Usplash" (the boot-up progress bar thingy) with my own. I failed. I did this:
- Create an 800x600 16-color XPM with magic color pallette ordering.
- convert usplash-dnalounge.xpm usplash-dnalounge.png
- pngtousplash usplash-dnalounge.png usplash-dnalounge.png.c
- gcc -g -c -fPIC -o usplash-dnalounge.o usplash-dnalounge.png.c
- gcc -g -fPIC -shared -o usplash-dnalounge.so usplash-dnalounge.o
- mv usplash-dnalounge.so /usr/lib/usplash/
- Run the startupmanager GUI
- Add "usplash-dnalounge.so"
- Select "usplash-dnalounge.so"
What happens when I reboot is, I get the scrolling-text non-usplash mode. Which I guess means something is missing and it is falling back to that in confusion. Nothing is logged.
On Red Hat 9, I was able to make the old Netscape a.out binaries from the early 1990s fully functional by doing this:
- /etc/modules.conf: alias binfmt-0064 binfmt_aout
- Install aout-libs-1.4-9 RPM from Red Hat 5.2
- Install ld.so-1.9.5-13 RPM from Red Hat 6.2
- Install libc-5.3.12-31 RPM from Red Hat 6.2
The binfmt module is already there, but how do I acquire the corresponding old ld and libc libraries for Ubuntu?
- Update: Ok, this one I figured out: I copied the contents of the ancient Red Hat RPMs onto Ubuntu, adjusted /etc/ld.so.conf.d/libc.conf to find them, ran ldconfig, and it works. Whee.