Search This Blog

15 September 2009

puppy is an old dog now

I have long ago upgraded from a Topfield PVR to a Beyonwiz PVR, so puppy has not really been getting any attention for a few years. It's an old dog now and I won't be teaching it any new tricks.

Since puppy was developed, Linux USB support has improved tremendously. As the Linux kernel matured, advances were made in the APIs that the kernel presents to user space. The supporting user space libraries have also evolved in the last five years. Current Linux kernel supports USB3 - well before Windows or OSX. Such improvements have lead to some APIs, such as usbfs, being deprecated.

The main objective behind developing puppy was to create a utility that could be used in embedded Linux devices. Almost all such embedded devices still run older Linux kernels, so I will not be upgrading the puppy code to switch from the now deprecated usbfs implementation to the new sysfs API. I don't really have the means to test the changes. Current Linux kernels still have support for usbfs, you just need to turn it on.

To bring back the /proc/bus/usb/ entries, rebuild your kernel with CONFIG_USB_DEVICEFS enabled and
mount -t usbfs none /proc/bus/usb

That's all you should need to make your system compatible with puppy.

A third party patch to add sysfs support to puppy is available here. There is no matching patch for ftpd-topfield, however the above recipe should get ftpd-topfield working again.

1 comment:

Anonymous said...


Thanks for puppy!

I am just trying to use it to interface a normal machine (ie. not embedded) to my Topfield.

I have today battled with the missing usbfs, so to make things easier I started a github repository for fixes and made an Ubuntu package.

In case it is of use to anybody else:

Github: (includes sysfs and packaging changes)

Ubuntu package: