I wasn’t going to bring it up, but since the topic of riding my creative coattails was broached…
exhibit “a”
I present to you an image of a whiteboard in my cube, written in early March. Note the use of the word “halificate”.
Speaking of which, lots of good work on Project Utopia over the past couple of weeks. I’ve been hacking mainly in HAL. I did some cleanup of a lot of the internal data structures in the HAL daemon, but I broke hotplugging and David applied his own brand of HAL magic to make it work. I added callouts so that we can do things like updating /etc/fstab with devices as they’re added and removed and I added device class support for printers and network devices. I also patched gnome-cups-manager to listen for HAL events and to execute gnome-cups-add with a specific CUPS URI when a new printer is added. It’s not production quality yet but it’s a step in the right direction.
our kernel guy
There’s a lot of nastiness with these devices, though. Originally my hope with printers was to go beyond even the printer use case and have printers autoconfigure when they’re plugged in (like how Mac OS X does it today). But it feels as though everyone is conspiring against us. To do this, you need to be able to autodetect the printer. Fortunately you can do an ioctl() on the device to get identifying info from the printer, but there isn’t a database with this info to match against. “Ok,” I say to myself, “I’ll just look at the USB IDs, since I know we have a decent database of those.” Turns out, every Epson Stylus printer has the same goddamn ID despite being totally different printers. And our USB listing is pretty sparse for printers.
I can now see why everyone I’ve met who has worked on the printing problem is bitter.
PCMCIA doesn’t seem much better. When you plug a card in, you don’t get any sort of hotplug event for the device itself, just for whatever class device is created when the driver is loaded on demand. This is a bit of an issue for HAL, since we try to associate class devices with physical ones. And without an event to let us know about a new physical device, the class device (ie, a network interface when you plug an ethernet card in) just sits out in limbo. I’ll have to consult the brain trust (David and Robert) on this one.
