invalid or missing IEEE 1284 Device ID

Jun  9 16:33:20 beethoven udev-configure-printer: add /devices/pci0000:00/0000:00:02.1/usb1/1-2/1-2:1.0/usb/lp0
Jun  9 16:33:20 beethoven udev-configure-printer: parent devpath is /devices/pci0000:00/0000:00:02.1/usb1/1-2
Jun  9 16:33:20 beethoven udev-configure-printer: invalid or missing IEEE 1284 Device ID
$ lsusb -v -s 1:2

Bus 001 Device 002: ID 04f9:0142 Brother Industries, Ltd MFC-8420
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x04f9 Brother Industries, Ltd
  idProduct          0x0142 MFC-8420
  bcdDevice            1.00
  iManufacturer           0 
  iProduct                0 
  iSerial                 3 
  bNumConfigurations      1

Because of some space character in the printer response, the driver emits that bogus “invalid or missing” thingey and it makes it impossible to configure the printer. The kludgearound that worked until today was to lie to CUPS and tell it we had a parallel printer sitting in /dev/usb/lp0. For reasons that I cannot diagnose, that has stopped working. I have verified that I have the latest and greatest drivers from Brother, but to no avail. It has been clear since I first got it working that the setup was really, really dodgey:

#! /bin/bash

test -c /dev/usb/lp0 && exit 0
sudo bash -c 'rmmod usblp ; modprobe usblp'
sleep 1
lpstat

but it has worked for me since last summer. Now it doesn’t. Now what? :frowning:

Oh, the printers.conf file that used to work:

<DefaultPrinter oh_brother>
Info Brother MFC-8420
Location here
MakeModel Brother MFC-8420 for CUPS
DeviceURI parallel:/dev/usb/lp0
State Idle
StateTime 1307638243
Type 8388612
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>