[systemd-devel] WebUSB

Greg KH greg at kroah.com
Mon Jan 9 09:38:30 UTC 2017


On Mon, Jan 09, 2017 at 10:20:33AM +0100, Lars Knudsen wrote:
> Hi,
> 
> I am currently looking into how we can make using WebUSB devices less painful
> for users on Linux.
> 
> The main purpose of WebUSB (as far as I can see) is to enable certain CDC (in
> particular - but not limited to) devices communicate directly with browsers
> visiting certain trusted sites (listed inside a binary object store - sent on
> initial handshake).
> 
> The spec is here: https://wicg.github.io/webusb/ (already running fine in
> chrome stable)
> Examples:
> https://www.youtube.com/watch?v=Z1Nk2hH2wFE
> https://www.youtube.com/watch?v=o7wGt9RfHVA
> https://twitter.com/denladeside/status/817451203076427783
> 
> I'm guessing the solution will consist of 2 parts:
> 
> 1. make sure no WebUSB device is picked up by modemmanager (modemmanager task)

Given that webusb can grab any device, how are you going to do that?

> 2. make sure that webusb devices will be somehow accessible to be used by a
> browser running with user permissions (current temp solution listed here:
> adding user to plugdev, adding 0664 permissions to device: https://
> developers.google.com/web/updates/2016/03/access-usb-devices-on-the-web )  
> (udev/systemd task).
> 
> For 2. we need to either making all webusb devices accessible or find some
> other way the browsers can - in a generic way - gain access.  In all cases,
> it's important that no USB interfaces has been pre-claimed by the system (e.g.
> by cdc_acm) or it should be possible for the browser to throw off the claims.

Userspace can disconnect any device from a driver if it wants to, but
you aren't going to be able to "beat" the kernel at binding to a device
if the driver.

thanks,

greg k-h


More information about the systemd-devel mailing list