Code

Random bits of fluff, currently libiriverdb, Areca/CentOS 4 drivers & utilities or VIA VT1211 drivers for CentOS 4.

libiriverdb

iRiver H340 Recently bought myself a brand spanking new Ogg Vorbis-capable iRiver H340.

Works great, but in order to browse by the audio metadata found in Vorbis comments and ID3 tags, etc. a small database needs to be constructed in the root of the iRiver filesystem. Of course, only tools exist for Microsoft Windows to create this database, but the format is not too hard to decode.

The format for the older H100 series has been decoded here, and after analysing what was on my H340, I figured out the subtle differences.

I've written a small C library and accompanying utility to build the database. It currently uses libvorbisfile from the Ogg Vorbis libraries, and libid3tag to parse Ogg and MP3 files respectively, although I've written it so some other choice of libraries could be used instead.

The following models are known to work:

The following models should work, (feedback appreciated):

You can grab the source here:

It can be built using the standard procedure:

libiriverdb-1.5$ ./configure && make && make install

Current status is it works for me on both Linux/Fedora Core 4 and Mac OS X 10.4.2.

Any comments, suggestions and feature requests welcome. The source code has gettext support added, so if you want libiriverdb to appear in your native language, please translate it for me!

Further information

Areca/CentOS 4 drivers & utilities

Areca ARC-1120 The 2.6.9 kernel shipped with CentOS 4 doesn't have any support for the Areca SATA RAID controllers. However, the nice people at Areca do ship a fully GPL'd driver.

Current status is all of these packages are working for me on an SMP AMD Opteron system (x86_64) running an up-to-date CentOS 4.0 installation, booting directly from the RAID volume. I've built the drivers for all conceivable kernels offered by CentOS but I have no way to test if these work, so if you're using these packages on an i586 or i686 system, please drop me a mail and let me know.

By the very nature of CentOS, these packages should also work with RHEL 4, either "as-is" or by rebuilding the src.rpm.

I've now created a yum repository for the drivers and utilities. Use the following URL in either /etc/sysconfig/rhn/sources, /etc/yum.conf or defining a new repository under /etc/yum.repos.d:

http://www.bodgit-n-scarper.com/download/centos4/

Kernel drivers

I've extracted the latest 1.20.00.07 kernel driver source from the kernel and built it for all variants of the latest CentOS 4 kernels. They are available below (signed with my GPG key):

Driver disk

To be able to install onto a RAID volume on an Areca controller, I've created a compressed driver disk image, which you can download, decompress and write to a 3½ floppy disk using dd(1) or rawrite.exe, etc. It contains the 1.20.00.07 driver built for the 2.6.9-5.0.3.EL kernels used on the CentOS 4.0 installer.

To use, it's simply a case of booting from the installation CD/DVD, and at the boot prompt, type:

boot: linux dd

The installer will then prompt you to insert the floppy disk and load the drivers and you should be able to access and partition your RAID volume, etc.

You can get the compressed disk image here:

Management utilities

Areca also provide some management utilities, sadly only in binary form. To keep everything managed on my system with RPM, I've created a package containing the utilities but because of the unknown license, I can't redistribute them here. Instead, I provide a nosrc.rpm which contains the necessary instructions on how to build the package, but you will need to manually download the source file(s) listed from Areca and put them in the SOURCES directory prior to building the RPM.

Because there are two versions of the binaries, one for 32-bit x86 kernels and another for 64-bit x86_64 kernels, you may need to specify the architecture. For the 32-bit x86 version:

SPECS$ rpmbuild --target i386 -bb arcmsr-utils.spec

And for the 64-bit x86_64 version:

SPECS$ rpmbuild --target x86_64 -bb arcmsr-utils.spec

You should then have a suitable RPM package which you can install.

You can get the nosrc.rpm (signed with my GPG key) here:

VIA VT1211 drivers for CentOS 4

VIA VT1211 I recently picked up a couple of VIA EPIA SP-13000 boards. As I'm planning to use them in a single 1U Travla C147 case I want to keep track of the CPU fans and temperature using lm_sensors.

The driver hasn't been officially updated and ported from the version found in the 2.4 Linux kernel, however Lars Ekman & others have made efforts to port the driver to 2.6.

I've built and packaged the driver for all variants of the latest CentOS 4 kernels. They are available below (signed with my GPG key):

Current status is it works for me with an VIA EPIA SP-13000 using the i686 kernel from CentOS 4.3. I'm not entirely sure how useful the SMP or hugemem packages are, but I make them available here anyway as they're no effort to build.

BIND::Config::Parser

Simple lightweight parser for BIND v8 and v9 configuration files and uses a Parse::RecDescent grammar.

BIND statistics Net-SNMP sub-agent

This is a Net-SNMP sub-agent written in Perl that allows you to access the statistics from a running BIND v9 instance over SNMP. I wrote it after failing to find a decent script that supported per-zone/per-view statistics. Other features include:

Source and packages here:


© 2006 Matt Dainty
matt@bodgit-n-scarper.com (Public Key: 0x1F97D933)
Valid XHTML 1.1! Valid CSS!