In another episode of fixing things for the Cameras as Computing Systems class I’m taking, I made a PKGBUILD that apparently correctly builds and installs chdk-ptp on Archlinux systems. Chdk-ptp is a tethered-control application for Canon cameras running CHDK, that hooks a variety of custom extensions to the ptp protocol. Their build system is a little lackluster, is missing things like an install rule, and requires a helper script be installed to do some path munging before running the binary, but the documentation is good enough to sort it out, and the program itself seems to work. My package depends on iup-all-bin from the AUR which also provides the cd dependency (not marked in its
provides array, though there isn’t an official package to conflict with). I tried to use the built-from-source AUR packages for cd (Seriously, who thought that was a good name for a piece of software?) and iup, but iup was giving me a hassle and the chdk-ptp documentation suggests the binary distribution will be less trouble anyway.
The PKGBUILD format has changed a bit since I was last making my own- I like most of the changes in terms of clarity and modularity, but it does require a bit of re-learning. It also means I have a couple of pet packages that probably need attention.
The build is a little janky so despite it passing through namcap with only one expected warning, I don’t want to put it in the AUR until I’ve tested it enough to be reasonably sure it works as intended. I expect I will get around to that eventually.
Posted in Computers, DIY, Electronics, General, Objects, School
Tagged Arch, ArchLinux, Camera, Canon, CHDK, Linux, package
As a quick “look at me being a good citizen,” a “class projects sometimes do have positive externalities,” and so that I have a convenient pointer/local copy, I just touched up the script for building a GCC 4.5 toolchain suitable for CHDK work on the CHDK wiki to fix some minor bitrot. [local copy]
The major problem was that GCC 4.5’s texinfo documentation won’t build under texinfo >5, as documented on the openwrt wiki, and this causes the build to fail. There are also many preventable warnings building under recent gcc, most of which are fixed by switching to gcc 4.5.4. Unfortunately, the existing page was named Gcc452, but the minor-version bump makes that technically a lie, since it now builds gcc 4.5.4. I don’t want my first edit on their wiki to be signifigant renovation, so the lie persists with a note.
The camera handling for my last post reminded me to check to see if progress had been made on the CHDK port to for the Canon SD770 (the little point-and-shoot I have). There was a promising effort about a year ago, but the developer disappeared without releasing the partly functioning code, and it was quickly abandoned. Apparently someone else stepped up in November; there is now a (roughly) fully functional boot image available for the SD770.
CHDK features provide at least partial fixes for all my major complaints about the 770; the exposure override settings allow the flash to be kept under manual control through power cycles, even when the other features are on automatic, the exposure behavior can be more precisely controlled to hide noise issues in low light, and all the CHDK toys are now on hand, so I’m not missing any expected features.
Right now I just have a spare small card set up, but the process is non-destructive and simple, especially on cards <4Gb, so I’ll probably set up the pair of 1GB cards I usually use with it shortly. Anyone with a Canon camera should go set up a card with the appropriate CHDK image, it really does improve the camera.
EDIT: There are a couple bugs, the only serious one being that the camera crashes when using auto white balance with the version of CHDK in the linked thread loaded. I don’t have time to get into another environment to fix it.