Re: Linux as a USB hub?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/02/2015 01:29 PM, Rogan Dawes wrote:
On Tue, Dec 01, 2015 at 06:17:54PM -0800, Greg KH wrote:
On Wed, Dec 02, 2015 at 01:02:28AM +0000, Rogan Dawes wrote:
Thanks Greg.

At a high level, what is needed to implement a new type of USB device gadget,
such as a display link device?

A lot of work :)


Heh! Ok, as a non C-programmer, I'm looking for the easiest way, then :-D

I assume there is a small kernel portion that simply relays data to user space,
and a user space component that processes that data and replies appropriately?

The files Documentation/usb/gadget* should give you an idea of what is
needed here.  But first, I suggest you read up on how USB works, it's a
lot more complex than I think you realize it is...

I'm sure it is more complex that I realise, which is why I'm asking questions first.

To explain what I am trying to achieve, and possibly the way in which I can go about it, to my understanding:

As mentioned originally, I'm trying to come up with an IP KVM, as inexpensively as possible. Realising that the approach that I am following will not allow me to interact with any layers prior to a successfully booted operating system, what I am hoping to do is, at a minimum, be able to observe the DisplayLink traffic flowing from an external computer (i.e. not a VM) over the USB.


If I understood your idea correctly you would like to do something like rdp over USB, am I right?

If yes then I'm currently running a project with students from Warsaw University of Technology and they are doing exactly this:)

What we would like to do:
- Use FunctionFS to emulate DisplayLink device
- Use f_hid to pass input events
- Maybe use f_ecm to share clipboard, file copy etc.

Unfortunately currently we have only some very basic proof of concept. We have ffs daemon and ConfigFS config to setup and act like a display link with 640x480 monitor. So on a host side we see another monitor and on the device side we have an window in which we can see image from host.

There are several problems. The most important one is display link host driver and protocol documentation. We have implemented our function based on open source display link driver (udl). Unfortunately the performance is very poor 1280x1024 is absolutely max what we can get if we don't want to have a slide show. udl driver itself has also some problems and NULL ptr dereferences. Moreover, Linux driver implements only very limited set of encodings while Windows driver has much more of them and it's very easy to see when you compare usb bandwidth used by widnows and linux driver.

That's why we will try to improve udl driver. Currently we try to setup machine at university which will run linux and then windows in virtual machine. We would like to connect dl to this computer, pass it to virtual machine and then use usbmon + wireshark and try to figure out new encodings used by windows driver and add them to udl driver but probably it will take a lot of time...

Best regards,
--
Krzysztof Opasiak
Samsung R&D Institute Poland
Samsung Electronics
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux