Smolt

The stats from smolt are pretty interesting if, like all stats, entirely useless. Some curiousities:

  • i686 still beats x86_64 by a ton
  • A (very) few people change their runlevel
  • Acer is high in the vendor list, I guess they are still killing the netbook market
  • People don’t configure their swap appropriately
  • SMP is now the norm, outside of embedded kit anyway
  • I want a 4+ GHz cpu
  • No one uses omfs 🙁 …I guess I need to submit a profile.

Serial offender

There comes a time in every budding kernel developer’s life that he has to debug a mysterious lockup, and nothing will do but a serial console. Well, for my future recollections, here’s how to set it up:

  1. Get out your handy pl2303-based usb to serial adapter, because chances are good your laptop doesn’t have a serial port
  2. Build your kernel with CONFIG_USB_SERIAL_CONSOLE=y
  3. Add to your kernel command line: console=ttyUSB0,115200 console=tty0
  4. Hook your computer up to the other computer via a null-modem cable (man, these are pricey these days, $30 for something no one still uses?)
  5. Set up minicom to use your serial port, say ttyS0, at 115200 baud, 8N1, and turn off all the modem init strings
  6. Don’t bother futzing with getty, you only need it if you want to also allow logins over serial. For logging, it’s unnecessary


Now, start minicom on computer 2 and reboot your computer under test. If all goes well, you’ll capture a panic on the serial console. If all goes poorly (my case), you’ll have a lockup with no oops. The usual thing to try in this case is adding “nmi_watchdog=1” to the command line, which will use the non-maskable interrupt to break into any frozen code. Also, if you have CONFIG_DETECT_SOFTLOCKUP set, hopefully after 60 seconds or so you’ll get a soft lockup warning.

In my case, I still have a hard lock with no output. Ho hum.

Prebama

So it’s inauguration eve in DC. You can tell because all of the subway ads have some ‘Welcome to DC’ theme, and there are portable toilets spread all throughout the city. However, the most obvious sign of the new administration is all the utter crap you can buy with the First Family’s picture on it: key chains, mugs, postcards, buttons, playing cards, shirts, hats, knit caps, underwear and neckties. Radio Shack is even advertising: “Get your inauguration supplies here!” (you know, in case you need some speaker wire for the weekend). I hope he gets royalties somehow. Angeline and I are planning on braving the crowds tomorrow to hang with the groundlings in the non-ticketed section. We’ll see how that goes.

In hacking news, I have the following patches queued so far for 2.6.29:

Bob Copeland (12):
mac80211: fix a few typos in mac80211 kernel doc
ath9k: remove useless conditional
ath5k: fix keytable type buglet in ath5k_hw_reset_key
ath5k: enable hardware encryption for WEP
ath5k: update keycache to support TKIP handling
ath5k: set mac address in add_interface
ath5k: preserve higher order bits when setting mac address
ath5k: clean up ath5k_hw_set_key
ath5k: enable combined michael mic in key cache
ath5k: fix endianness of bitwise ops when installing mic
ath5k: correct packet length in tx descriptors
ath5k: fix return values from ath5k_tx

Basically, hardware crypto support, nothing else notable. In my unbaked tree, I have the mac80211 suspend/resume support patches (pushed today), some fixes for mixed b/g networking, and some silly LED patches. Most of that is 2.6.30 material.

In other news, glibc finally has endianness functions. I can’t say that I’m crazy about the names, and it has a bit of unnecessary Not Invented Here, but at least it gives an alternative to always using my own or using glib.

F10

So, I’ve been a user of Debian (and lately Ubuntu) since around 2001, with RedHat, Mandrake, and Slackware being in use before then. Debian was like a revelation: ‘apt’ is how package management should be! I still have my server running Debian stable, but I thought I’d try putting Fedora 10 on my laptop this go-round to see how it compares to Ubuntu. All the marketing hype about Ubuntu being mere aggregators of others’ hard work had something to do with that as well. Besides, yum has been around for years now so surely it is as good as apt by now.

Here are my thoughts: I still find yum a little clunky for a few things; maybe that’s just my expertise in apt speaking. LVM was the first thing to go — it wasn’t hard to do from the graphical installer. The much hailed boot graphics stuff only worked with vesafb for me since they dropped the modesetting code for Intel from the kernel. I had to overhaul the installkernel script to properly update grub and not bother with an initrd, since I hate them. Finally, all configuration seems to be HAL driven now, which just means putting more random undocumented crap into huge XML files in /etc to get your touchpad working. Lovely, I’m sure Ubuntu is busy adopting that mess. On the plus side, a nice looking gnome setup with reasonable defaults. On the whole, Fedora 10 is a solid release, though it will still take some time to get it configured to my liking. Perhaps by then I’ll give openSuse a spin.

Old code

The projects section of my webpage got a few tweaks last night. Namely, I resurrected the rigid body simulator back to more-or-less compiling state (what a pile of crap code!) and put it back on the internets. The i-collide library may need a few Makefile tweaks to run on anything newer than RedHat 4. I ran it last night, then I realized GL-over-remote-X wasn’t working on Windows. So much for that. It’s super fast on modern hardware though.

Backups revisited

I spent most of last weekend doing home IT tasks. That involved upgrading my main desktop machine from Pentium III to an Athlon XP. Welcome to 7 years ago! But most of the work was spent reorganizing my data and coming up with a better backup regime.

Now that hard drives are so cheap, and we now rent a storage space, spending $1/GB-month for off-site network backup is just not worth it any more. Also, with my off-site backup, I was only keeping a single full backup, which is not terribly useful if a few weeks elapse before you notice something is missing. So, I have been playing around with incremental backups using rsync and hard links, similar to the way Apple’s time machine supposedly works. Then I stumbled across ‘gibak,’ a set of shell scripts that use the git version control system as the backup tool.

In the end, I went with my own dozen-liner script to use git and metastore, with rsync/cifs to collect the stuff in windowsland for backup in separate repositories. A cron job does a daily commit and push from the checked-out repo in my home directory. So far, the result is pretty nice. If I screw something up, a ‘git reset’ gets me back to any earlier date. It also solves a minor annoyance with keeping files in sync across multiple machines: both can use a clone of the git repo and then syncing is as easy as a push from one and a pull to the other. I can rotate portable hard drives to the storage area to solve the ‘apartment burning down’ scenario, though I’m admittedly vulnerable to the ‘global thermonuclear war’ scenario.

I’ve already used this scheme to rebuild a machine’s home dir and it worked flawlessly. Hopefully the same will hold when I move my laptop from Ubuntu 8.04 to Fedora 10. Anyway, this should keep me satisfied until btrfs is everywhere and I can just use filesystem snapshots.