Back at CMU

I am back in Pittsburgh after a 13 week internship with IBM, working at their T.J.Watson Research Lab in Hawthorne, New York. I spent 12 of those weeks living in a dorm room at Pace University Law School in White Plains, then 1 week living with a friend at 4 Park Ave. in Manhattan. Suffice it to say that I had an productive, lucrative, and enjoyable summer.


Practice Begins!

This morning was the first day back on the water for Carnegie Mellon Crew. It was strangely enjoyable, despite being out of the boat since May. I will be watching the sun rise for the forseeable future.

Reading free space on ramdisks

I’m having a problem running an application in a ramdisk-only busybox-based Linux domain (a BOINC client in a user domain on Xen, if you must know). The BOINC client, with the best of intentions I’m sure, tries to see how much free disk space is available so it doesn’t fill up the disks. Well, in this system there aren’t any disks. “df” prints only the column headings when you run it, and “mount” doesn’t seem to know where ‘/’ is mounted.

# df
Filesystem 1k-blocks Used Available Use% Mounted on
# mount
/proc on /proc type proc (rw,nodiratime)
none on /sys type sysfs (rw)

I decided to create a ramdisk image (which is stored inside the initrd for the user domain, pay attention now 😉 ) which I try to mount once the ramdisk domain is up and running. I used “dd” to create the image file in a normal (with-disk) Linux environment, and then I formatted it ext2. That didn’t work, as you can see here:

# mount -t ext2 -o loop rd.img ./mnt/
mount: Mounting /BOINC-runnable/ramdisk/rd.img on /BOINC-runnable/ramdisk/mnt failed: Block device required

I still haven’t solved this problem. I’ll post more when I solve it.

Software Suspend 2 (swsusp2) for IBM T42p

I had no trouble getting swsusp2 working on my IBM T42p. I am running kernel 2.6.13-rc5. In addition to patching and recompiling the kernel, you will have to download the hibernate script. It worked like a champ from within X (using WindowMaker) on the first try. The resume process is a little strange; the kernel mostly loads the way it always does, and only then does it see the image and resume. But hey, it works. 🙂