ftpd‑topfield patches to 0.7.7n (and puppy to 1.14o)
ftpd‑topfield patches to 0.7.7n (and puppy to 1.14o)
I've patched the standard ftpd‑topfield distribution (obtained from
this site) to
better handle multiple toppies being in the USB bus. Given that they
will probably drop into standby mode when not doing anything you can't
reliable refer to specific ones by the order they appear on the USB bus,
as the result of that depends on which ones are on at any given time.
Similar patches have now been applied to puppy. I've also added code
to ignore crc checks on packets with zero checksums, so you don't need
to specify the -i option if you have the USB Accelerator patches
on your Toppy. The orginal code was
collected from here.
NOTE:After installing version 1.14n on a Plug Computer I noticed that
syslog reported a reset and failure to claim the device beforer use. So
I've extended the puppy patch from the original one to claim the
device in the same way that ftpd-topfield does.
The patches here use libusb to scan the bus for devices specified
by the --devices option (or -X, which is now activated):
- use first found (default)
- use the Nth (count from 0)
- use mmm/nnn as Bus mmm Dev nnn
- use Toppy with given serial number (and R2‑D2 has a firmware
patch to set this to a value other than the standard
"1000")
It also removes the use of any /tmp/puppy lock file since
claiming a USB device is exclusive anyway.
NOTE:This also removes the ability to pre-empt
another ftpd‑topfield process which currently owns the device when
it gets back to waiting for its next command.
25 May 2009 - minor changes to remove some compilation warnings.
The source files available here are:
These Pre-built binaries are available
- armv5tel/ftpd
- A version of ftpd‑topfield‑0.7.7n, compiled on a
SheevaPlug Computer running the alpha6 release of ubuntu and
2.6.30.5 kernel
- armv5tel/puppy
- A version of puppy‑1.14o, compiled on the same SheevaPlug
- mips/ftpd
- A version of ftpd‑topfield‑0.7.7n, compiled on an Asus wl500gx
running Oleg's 1.9.2.7‑10 with the optware feed from
ipkg.nslu2‑linux.org
- mips/puppy
- A version of puppy‑1.14o, compiled on the same Asus system
- x64/ftpd
- A version of ftpd‑topfield‑0.7.7n, compiled on a
64‑bit Intel Mandriva 2009.1 system
- x64/puppy
- A version of puppy‑1.14o, compiled on a 64‑bit Intel
Mandriva 2009.1 system
- i686/ftpd
- A version of ftpd‑topfield‑0.7.7n, compiled for 32-bit
on a 64‑bit Intel Mandriva 2009.1 system
- i686/puppy
- A version of puppy‑1.14o, compiled for 32-bit on a
64‑bit Intel Mandriva 2009.1 system
Compiling ftpd‑topfield
I have intended to make the original code builds still work. The
build method is to unpack the source, cd to the ftpd‑topfield
directory and run:
- make
- This will build the new code, with device bus scanning as
mentioned above
- make OLD_DEV_SCAN=1 USE_LIBUSB=1
- This will build the old code, but use libusb to find the device.
It will create /tmp/puppy lock files.
- make OLD_DEV_SCAN=1
- This will build the old code, but read the
/proc/bus/usb/devices file to determine devices (which is a
deprecated method). It will create lock files.
Compiling puppy
Similarly the intent is to allow original code builds still work. The
build options are to unpack the source, cd to the puppy
directory and run:
- make
- This will build the new code, with device bus scanning as
mentioned above
- make OLD_DEV_SCAN=1
- This will build the old code reading the
/proc/bus/usb/devices file to determine devices.
It will create lock files.
The Toppy USB protocol
Since you (and I) may wish to know what this is I've extracted a copy of
USB_Dll_(09Jun2004).pdf from
this zip file.
It's here as USB-protocol.pdf.
27 Aug 2009