Date: Wed, 20 Jul 2011 09:59:35 +0100 From: Matt Dawson <matt@chronos.org.uk> To: Hans Petter Selasky <hselasky@c2i.net> Cc: freebsd-usb@freebsd.org Subject: Re: Porting op to FreeBSD Message-ID: <201107200959.36056.matt@chronos.org.uk> In-Reply-To: <201107191513.17906.hselasky@c2i.net> References: <201107191356.36832.matt@chronos.org.uk> <201107191513.17906.hselasky@c2i.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 19 July 2011 14:13:17 Hans Petter Selasky wrote: > > http://sourceforge.net/projects/openprogrammer/files/OP/op_0.7.9. > > tar.gz > > > > to FreeBSD and have run into a brick wall (my lack of knowledge, > > basically). It uses Linux' hiddev to communicate with the > > OpenProgrammer hardware, which isn't compatible with our usbhid. > > The ioctls and structs are very different. The programmer itself > > has a uhidX device node and seems to be fine under FreeBSD. > > There are many ways to achieve your goal. The simplest one might be > to compile the Linux HID layer into the webcamd deamon and have a > compatible interface. This means no porting effort. Interesting, although it does introduce a dependency on webcamd which, for an otherwise small program, seems a little mad. > You will have to checkout and install the linux_make tool from the > I4B SVN, referred to from the webcamd > (/usr/ports/multimedia/webcamd) homepage: > > http://www.selasky.org/hans_petter/video4bsd/ > > And add some config entries to the config file for the HID layer, > and possibly also resolve a few compile issues. I suspect this is going to be the main issue. It pulls in hiddev.h for Linux directly and has no configure stage, so it expects those headers to be where they should be on a vanilla Linux box. It does compile under Windows/Cygwin with a conditional in the defines, so the dependency on hiddev is obviously portable. I'd much rather make it native and throw my changes back upstream. The whole point of this device is that it's open so it needs to run everywhere and that little CLI really is the bare bones. I have been in contact with the developer and he thinks getting read() and write() working is the main step and everything else is trivial. It's just translating those ioctl calls and structs to our usbhid that stumping me, simply because I don't understand what they do in either OS. I have an idea that the ioctls are simply to pull in the packet size for read and write operations but, beyond that, my clue chest is empty. I'll probably have to just bite the bullet, sit down and compare what it does in both Linux and Windows/Cygwin and then try to work out how to get the same results on FreeBSD. There's no being lazy, it seems! -- Matt Dawson MTD15-RIPE matt@chronos.org.uk
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201107200959.36056.matt>