Problems with USB Pass through / iGPU drivers

98 views
Skip to first unread message

jidar

unread,
Oct 5, 2016, 5:11:23 PM10/5/16
to qubes...@googlegroups.com
Howdy Qubes users, I've been following things for a while now and I've
got a new laptop to run Qubes and will be submitting a HCL report after
I work out all the kinks. The laptop is a Dell Precision 5510 with NVMe
SSD, Xeon Processor and lots of ram. While working on this I've run into
a few issues:

1. I'm attempting to pass through a Trezor/KeepKey device for use as a
bitcoin hardware wallet. The problem I'm finding (see attached) is that
the device shows up in the correct AppVM, but it doesn't have all of the
same meta-data as the original device. I believe this causes
applications in the AppVM to not recognize the device, and will not
initialize.

I then attempted to work out how one might setup the sys-usb VM to have
a internet connection (so I could load the proper applications into it,
and have them connect out, ie: broadcast bitcoin transactions). While
doing this I found that the design of sys-usb doesn't allow this (it
gets set to a NetVM without any network devices). Is there a supported
way of doing this? I'm not at all concerned about rogue USB devices
showing up on my laptop, so while I understand others concerns that is
not one I have.

2. I've read the instructions for setting up a sys-usb VM, which got me
to this point, this is the only reason I needed to setup a sys-usb VM
was for question (1). Are there instructions for removing it? I tried
the following:

sudo qubesctl top.disable qvm.sys-usb
sudo qubesctl state.highstate

But the VM was still present, and seemed to be holding USB devices (like
my mouse).

3. Is there much in the way of documentation for setting up the correct
intel drivers for the iGPU? I ask because scrolling webpages can be
pretty choppy on what I'd consider a very powerful laptop. I read
earlier that somebody was using drivers that they plug into Dom0 but my
understanding of how VMs are displayed makes me wonder that inserting
Video drivers into Dom0 would have a positive effect on the behavior of
a VM's display.


Thanks!
--jidar
Screenshot_2016-10-05_00-15-06.png

Jeremy Rand

unread,
Oct 5, 2016, 11:11:17 PM10/5/16
to qubes...@googlegroups.com
jidar:
> Howdy Qubes users, I've been following things for a while now and I've
> got a new laptop to run Qubes and will be submitting a HCL report after
> I work out all the kinks. The laptop is a Dell Precision 5510 with NVMe
> SSD, Xeon Processor and lots of ram. While working on this I've run into
> a few issues:
>
> 1. I'm attempting to pass through a Trezor/KeepKey device for use as a
> bitcoin hardware wallet. The problem I'm finding (see attached) is that
> the device shows up in the correct AppVM, but it doesn't have all of the
> same meta-data as the original device. I believe this causes
> applications in the AppVM to not recognize the device, and will not
> initialize.
>
> I then attempted to work out how one might setup the sys-usb VM to have
> a internet connection (so I could load the proper applications into it,
> and have them connect out, ie: broadcast bitcoin transactions). While
> doing this I found that the design of sys-usb doesn't allow this (it
> gets set to a NetVM without any network devices). Is there a supported
> way of doing this? I'm not at all concerned about rogue USB devices
> showing up on my laptop, so while I understand others concerns that is
> not one I have.

You can setup a USB VM that's not a NetVM. Create a new AppVM and
assign the USB controller to it in the Devices tab. You might also have
to do the pci_strictreset thingy that the documentation mentions.

Cheers,
-Jeremy

signature.asc

jidar

unread,
Oct 10, 2016, 9:25:34 PM10/10/16
to qubes...@googlegroups.com
On 10/05/2016 10:10 PM, Jeremy Rand wrote:
> You can setup a USB VM that's not a NetVM. Create a new AppVM and
> assign the USB controller to it in the Devices tab. You might also have
> to do the pci_strictreset thingy that the documentation mentions.
>
> Cheers,
> -Jeremy
>
I've been trying to do this but for some reason it seems my USB keyboard
gets attached to sys-usb and never get's passed through to
"qubes.InputKeyboard" which means I get locked out as soon as sys-usb
powers up. I'm currently trying to read the instructions and github page
to determine how / why this happens.

Thanks,
--jidar

jidar

unread,
Oct 10, 2016, 9:30:28 PM10/10/16
to qubes...@googlegroups.com
On 10/05/2016 10:10 PM, Jeremy Rand wrote:
> You can setup a USB VM that's not a NetVM. Create a new AppVM and
> assign the USB controller to it in the Devices tab. You might also have
> to do the pci_strictreset thingy that the documentation mentions.
>
> Cheers,
> -Jeremy
>

Marek Marczykowski-Górecki

unread,
Oct 11, 2016, 9:31:11 AM10/11/16
to jidar, qubes...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
If you want custom USB VM, you can simply remove the default one.
As for qubes.InputKeyboard, take a look here:
https://www.qubes-os.org/doc/usb/#how-to-use-a-usb-keyboard

- --
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJX/OmWAAoJENuP0xzK19cs7SgIAJmMugKzkMolBH3wOVoIHfpj
qzHPE/i6yqH+2z7z/hkLZ9bUEvA8jE/AEkEoJMel1cKn/7P5SvL4wWgkI3HC8L03
LOx0BQcqL5y20YQKsSoeBeakojwqHnFoeAGRoo7M0y1unPe8K3MvjEqBh2wgDWXa
P6vtr/G9/NLSF3ggmuZo6muhVMvnMaFMy+gJmPZ4KOiFCoA6D+EcNP9lqzV43hzF
2Ma4XosD3gpvHoU0qgFiKQOOD02JwiJjdqlEI9Y0H6NKD0Iol+YxE/e3ONbyU0tp
IgvCma+JzEQKlXHbpVbthrx/2ulHnr4MUw16mmlj8+/0I5hxEAcdBF9dNBAgNog=
=tJze
-----END PGP SIGNATURE-----

jidar

unread,
Oct 11, 2016, 3:19:15 PM10/11/16
to qubes...@googlegroups.com, public-qubes-users-/...@plane.gmane.org
On 10/11/2016 08:31 AM, Marek Marczykowski-Górecki wrote:
>
> If you want custom USB VM, you can simply remove the default one.
> As for qubes.InputKeyboard, take a look here:
> https://www.qubes-os.org/doc/usb/#how-to-use-a-usb-keyboard
>
> - --
> Best Regards,
> Marek Marczykowski-Górecki
> Invisible Things Lab
>
So while this is helpful to understand the function of how qubes sets
the InputKeyboard, what it does not do is tell me how to specify the
device used as the keyboard. When I follow the instructions for
"Creating and Using a USB qube", I'm prompted to allow devices for Mouse
and Keyboard. I select "Yes to all" and normally my keyboard should work
here (my mouse does). However, my keyboard is never again functional.
I'm forced to remove the kernel lines `rd.qubes.hide_all_usb` and force
sys-usb to not start at boot, then reboot.

In essence, what I'm really trying to understand (outside several other
questions in the OP of this thread) is how a keyboard device is decided
on, or how to manually force what device is going to be used for a
keyboard.

The following is the device I'm attempting to use, but failing:

Bus 001 Device 006: ID 04d9:0141 Holtek Semiconductor, Inc.

For whatever reason, the device is never picked up (unless I don't use a
sys-usb qube at all) for use as a keyboard.

Any information you could provide on the decision process, or debugging
tools I could use to determine why this doesn't work and what a
potential solution could look like would be awesome.

Thanks!
--jidar

raah...@gmail.com

unread,
Oct 11, 2016, 3:54:24 PM10/11/16
to qubes-users, public-qubes-users-/...@plane.gmane.org, ji...@faptastic.com
see here https://github.com/qubesos/qubes-app-linux-input-proxy

also I would recommend not using a usb keyboard. get a little ps2 adapter for it which is more secure then having the keyboard in a usbvm.
Reply all
Reply to author
Forward
0 new messages