Hi, I have been using Ardour (Ubuntu Studio) for some time now without issue and I think its great, so I decided to complicate my setup with a Frontier tranzport device. I plug it in, can read it with lsusb, I can see the device and its name. It appears to be detected fine. At the suggestion of another topic on here I tried the hotplug method. (its worth noting at this point that if I run the ‘tranzport’ file located in /etc/hotplug/usb/ and the device lights up an echos back some zeros and ones when ever I push a button so I know I have basic connectivity. I also ran an install from a GIT thing? which I think was kernel drivers.
When I run Ardour and select the Tranzport, I get a notice to tell me that Tranzport could not be initialised. So I ran it from the command line and I get the actual error which is ‘Cannot Claim USB interface’.
From looking at other topics and looking through some of the source code (I’m an amateur programmer) I think its something to do with udev. However I’m not sure what this is.
I looked through io_usb.cc in the driver source code and there is a condition after the opening condition which is ‘usb_claim_interface(udev, 0) < 0’ if that helps anyone? because if this condition is not met, the script throws the claim message above.
This is driving me mad now, if anyone has any ideas on this issue, I would be grateful.
BTW I am still learning Linux. So If I have missed out any information like versions or something please let me know.
Thanks in advance…
@marcdever: very much to my disappointment, supporting the Tranzport turned out to massively more complex than it should be, mostly because of two issues:
(1) because of Linux’ security model, it is generally tricky for arbitrary users to get access to various non-standard USB devices. Things like cameras, input devices and disks are generally handled appropriately these days, but a device like the Tranzport ends up being owned by root and not accessible to ordinary uses most of the time. Tweaking of at least one complex, arcane configuration file becomes a requirement.
(2) it turned out that libusb, the generally “standard” way to interact with miscellaneous USB devices, just simply wasn’t designed well enough for this kind of device - it generates too much data, too fast and requires a fairly complex 2-way communication stream. Its not that it didn’t work - I did all the development of the initial Tranzport support with this approach - but it wasn’t reliable or flexible enough.
As a result of (2), David Taht wrote a kernel driver for the Tranzport that means that its not necessary to use libusb. However, this creates a problem for Ardour because we have to make a choice about how to interact with the device: the kernel driver or libusb. It has been so long since I did anything with this code that I don’t even remember which one is the default in the current versions of Ardour 2.X.
Overall, this is not a topic I am willing to discuss via forums because of the nature of the medium, but I’d be happy to go on about this at length via one of the two ardour mailing lists (see the support page for details if you’re not already on it). ardour-dev would probably be slightly better.
Thanks Paul, I will do that