Scanner Access really is Now Easy.

Mar 13, 2006 / 0 comments

I finally replaced my aging SCSI scanner over the weekend. It was making really odd noises while scanning, and had somehow upset my SCSI chain such that the BIOS could load GRUB ok, but GRUB then couldn't load the kernel. I have better things to do with my time than sacrifice goats, so I went looking for a cheap 'n cheerful replacement.

Oddly enough PC World provided an acceptable option. They have a system whereby you can reserve an item on the web for pickup from your local store, and get a reduction off the in store price. I have no idea why they don't just reduce in store prices anyway. I ended up with a Canon LiDE 60 for £44.82, slightly less than ebuyer charge before P&P and with the added advantage that I could go and pick it up on Saturday.

I had, of course, done some research beforehand to ensure this was a supported scanner, however it turned out I'd misread. I thought the version of SANE in Debian was a little old; turned out the versions for sane-frontends and sane-backends differ and I'd looked at the former instead of the latter. Plus I thought I was going to need to pull a CVS or snapshot copy to get the support I needed. So I unwrapped the scanner, plugged it into a spare USB port and checked lsusb showed it up. Then, just to see what would happen, I tried scanimage -L and was rewarded with device `genesys:libusb:004:009' is a Canon LiDE 60 flatbed scanner. Rock. scanimage just worked and produced a nice PNM of my Electric Six CD inlay.

I don't think installation could have got any easier than that. Admittedly I already had SANE installed as I'd had a previous scanner, but if I hadn't the only addition would have been aptitude install sane-utils.

All the people.

Mar 8, 2006 / 0 comments

More Amstrad E3 joy.

Mar 1, 2006 / 0 comments

Rock. I've now got the LCD on my E3 working; blurry picture at (I couldn't convince the camera to both focus well and shoot the flash in a way that made the text visible). I've updated my Amstrad E3 page with a few of the recent 2.6 developments as well. I'm quite chuffed with myself; while Mark did the original work of getting it booting with serial and USB I've managed to write the NAND driver, the LCD driver and sort out the keypad keymap.

There's still quite a lot left though:

  • Get u-boot onto the actual device rather than having to load it over the serial port on each reboot.
  • Add NAND support to u-boot.
  • Get the modem setup.
  • Sound
  • Handset - both mic/speaker and off-hook detection.
  • Mailboard (the pull out keyboard)
  • Camera

And then I can worry about the application layer. :)

No FOSDEM for me.

Feb 28, 2006 / 0 comments

Bah. All these people back from FOSDEM posting about having had a great time. And Dominic got engaged!

I'd have liked to have gone to FOSDEM this year, but it clashed with Christmas and someone had to stay in the country to mind things (Dominic and Simon both went, so I drew the short straw). Plus I decided not to go to Debconf this year; although I've enjoyed the past 2 years I couldn't really justify the cost of flights. And I'll no doubt need time off around the wedding, but I made the decision not to do Debconf before we got engaged, so that wasn't quite so big a factor.

However I now find myself lacking in geek events this year. I'm sure there'll be the usual Linux Expo stuff, but I've been considering the UKUUG Linux conference, which people have said good things about in the past. Is there anything else in the UK I should be considering?

I did get some hacking done this weekend however. Mark Underwood got 2.6.15 booting on the Amstrad E3 videophone to the point of USB and serial working. So I spent a while trying to figure out where Amstrad had hidden the NAND flash and managed to write a driver for it. I'm all chuffed with myself; my E3 now has a JFFS2 root filesytem. I also mapped out the keys on the keypad and tried to get the LCD working, but although I can get it to light up (the easy part) it doesn't actually seem to want to output anything. Bah. You can find all the bits you need at - both Mark's original stuff and my patch on top of that are there. Oh, and the list at is a useful place too.

(And yes, I know Christmas is in December, but I have a yearly Christmas meal with the people I lived with in my final year of university, but it can take so long to find a weekend we're all free that it's often nowhere near Christmas by the time it happens - February is pretty good going for us!)

Power corrupts

Feb 21, 2006 / 0 comments

I bought a Belkin F6H500ukUNV from eBuyer (quickfind code 77131). At under £25 including P&P it seemed like a good deal and I've been meaning to get round to having a UPS to allow clean shutdown of my local machine during power problems.

Belkin ship Linux and FreeBSD programs to talk to the UPS (though only over the serial interface - it has USB too). It doesn't like xterm it seems; prints Error opening terminal: xterm.. Seems fine with a terminal type of linux. It also puts all its files (config, help, binaries) in /etc/belkin. And it's binary only so I can't fix any of this brokenness.

However, the lovely Network UPS Tools exists. Except Belkin have a number of UPS types, all incompatible with each other. After figuring out that I really, really needed to use the Belkin provided cable and not just a generic serial extender cable (grrrr. Why? If it's got a 9 pin D labelled RS232 why not make it a sensible port?) I got the Belkin software working and straced it to see what it did. A bit of looking at the nut source found several drivers that appeared to use the commands Belkin were sending (Q1, I & F). I tried powermust first, with the following /etc/nut/ups.conf:

	driver = powermust
	port = /dev/ttyM2

(I have a 4 port serial card, so /dev/ttyM2 is just a normal serial port, really.)

And tada. It works. I can now get output like:

[noodles@pot ~]$ upsc belkin@localhost
battery.charge: 100.0
battery.voltage: 13.8
battery.voltage.nominal: 12.0 powermust
driver.parameter.port: /dev/ttyM2
driver.version: 2.0.3
driver.version.internal: 1.1
input.voltage: 227.0
input.voltage.fault: 227.0
input.voltage.maximum: 234.0
input.voltage.minimum: 221.0
output.frequency: 50.0
output.voltage: 227.0 230.0
ups.delay.shutdown: 2
ups.delay.start: 3
ups.load: 0.0
ups.mfr: Mustek
ups.model: PowerMust
ups.serial: unknown
ups.status: OL

I don't know about doing shutdown yet, but ups.status correctly goes to OB (on battery) if I pull the power, which is probably the most important thing. :)

At some point I'd like to move over to the USB interface; I have better things to do with my serial ports. Belkin don't appear to have done the sane USB HID power thing; instead it's some odd hid device that doesn't even have a Belkin manufacturer ID:

Bus 003 Device 015: ID 0001:0000 Fry's Electronics 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x0001 Fry's Electronics
  idProduct          0x0000 
  bcdDevice            1.00
  iManufacturer           1 MEC
  iProduct                2 MEC0002
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           34
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Devices
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength     624
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
Device Status:     0x0000
  (Bus Powered)

The NUT energizerups driver appears to talk USB and use the Q1/F commands, so I think I'll try that later. Or it's back to usbsnoop and a Windows box I guess.

subscribe via RSS