All the people.

More Amstrad E3 joy.

Rock. I've now got the LCD on my E3 working; blurry picture at https://www.earth.li/~noodles/images/e3-lcd.jpg (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.

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 https://the.earth.li/pub/e3/ - both Mark's original stuff and my patch on top of that are there. Oh, and the list at https://www.earth.li/cgi-bin/mailman/listinfo/e3-hacking 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

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:

[belkin]
	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
driver.name: 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
output.voltage.target.battery: 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.

8 years old

Last Saturday was the annual Earthlings dinner. We get very funny looks from the restaurant staff when we explain that we're celebrating the birthday of a domain. It's a good opportunity to see lots of people I don't see often enough though; sometimes it's hard to keep in touch with people.

Actually, on that subject, there are a whole bunch of people I don't keep in touch with at all well. Mostly those who don't really do email and I don't really do the phone. I probably need to ring people more often; I used to be very good at running up my parents' phone bill. It's a bit hard to know what to say to people I haven't had any contact in years with. "Er, hi, please condense your entire life since we were at school and spoke regularly into a few minutes of conversation". And no one is near Norwich, so it's not like I can easily go and have coffee/beer with them. Meh. I've started having a regular dinner with people back home at Christmas, which helps a bit. And Burly's pretty good at telling me what people are up to.

So, if you know me, and feel we don't see/speak to each other enough, sorry. If you think you see too much of me then tough. :P

subscribe via RSS