this worked very well, and the script was able to complete STAGE 5 and 6, however
the external USB mouse no longer works, even after unplug/replug.
this worked very well, and the script was able to complete STAGE 5 and 6, however
the external USB mouse no longer works, even after unplug/replug.
Is sys-usb running?
Check the policy for mouse in Qubes Global Settings → USB Devices.
What’s the sys-usb template?
Do you see your mouse in Qubes Devices widget?
sys-usb is running.
USB Qube: Mouse enabled
sys-usb template is debian-12
The mouse is present in USB optical devices, yes.
Disconnect USB mouse from USB port.
Run this command in both sys-usb and dom0 terminals:
sudo journalctl -f -n0
Connect your USB mouse.
Check the logs in sys-usb and dom0 terminals.
Specifically anything related to qubes-input-sender.
sys-usb:
May 31 00:32:22 sys-usb systemd[1]: qubes-input-sender-mouse@event10.service: Main process exited, code=exited, status=126/n/a
May 31 00:32:22 sys-usb systemd[1]: qubes-input-sender-mouse@event10.service: Failed with result ‘exit-code’.
May 31 00:32:37 sys-usb xdg-desktop-por[1374]: …/…/…/gdk/x11/gdkproperty-x11.c:224 invalid X atom: 3318873993
May 31 00:32:37 sys-usb gnome-terminal-[1336]: …/…/…/gdk/x11/gdkproperty-x11.c:224 invalid X atom: 3318873993
Can you post the full log?
Maybe there is something wrong with your debian-12 template during Qubes in-place upgrade. I’d try to install the fresh debian-12 template from the repository using Qubes Template Manager and try to use it for sys-usb.
The debian-12 template needed to be upgraded yes. After rebooting it
though, the USB mouse still isn’t working.
I’m talking about installing the default template from the Qubes OS repository without your changes in it, not just updating your existing debian-12 template.
Maybe there was an error somewhere during your existing debian-12 template in-place upgrade and that’s why it’s not working.
reinstall the debian-12 template from qubes-templates-itl?
Yes.
You can clone your existing debian-12 template to save it and then reinstall it.
this is best done via the template manager?
Yes.
This doesn’t seem to have worked.
Currently the USB device is detected and is listed as sys-usb: 3-1.2
I’m not sure what sys-usb: 3-1.2 actually is, that isn’t clear.
If you try to attach the mouse to the sys-usb VM, it returns an error message:
QubesException: Device Attach Failed.
You’re trying to attach the USB device from sys-usb to sys-usb, that won’t work and there is no point in doing this.
Can you post the sys-usb log?
Just these messages about qubes-input-sender-mouse
service failing are not helpful, there should be more relevant information about other errors that are causing this service to fail:
[2024-06-01 12:44:27] Debian GNU/Linux 12 sys-usb hvc0 [2024-06-01 12:44:27] [2024-06-01 12:44:27] sys-usb login: [ 11.179816] systemd[926]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set [2024-06-01 12:44:28] [ 11.693586] systemd-journald[254]: File /var/log/journal/01bf8b0d6f9441c9aa03c45a95cb941c/user-1000.journal corrupted or uncleanly shut down, renaming and replacing. [2024-06-01 12:45:47] [ 90.250380] usb 2-1.2: USB disconnect, device number 5 [2024-06-01 12:45:48] [ 91.903077] usb 2-1.2: new low-speed USB device number 6 using ehci-pci [2024-06-01 12:45:49] [ 91.989023] usb 2-1.2: New USB device found, idVendor=0461, idProduct=4d42, bcdDevice= 1.00 [2024-06-01 12:45:49] [ 91.989102] usb 2-1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0 [2024-06-01 12:45:49] [ 91.989162] usb 2-1.2: Product: Dynex 5-Button Wired Optical Mouse [2024-06-01 12:45:49] [ 91.994504] input: Dynex 5-Button Wired Optical Mouse as /devices/pci0000:00/0000:00:07.0/usb2/2-1/2-1.2/2-1.2:1.0/0003:0461:4D42.0007/input/input13 [2024-06-01 12:45:49] [ 91.995913] hid-generic 0003:0461:4D42.0007: input,hidraw5: USB HID v1.11 Mouse [Dynex 5-Button Wired Optical Mouse] on usb-0000:00:07.0-1.2/input0
[2024-06-01 12:44:17] [00:06.0] Write-back to unknown field 0xd8 (partially) inhibited (0x00000000) [2024-06-01 12:44:17] [00:06.0] If the device doesn’t work, try enabling permissive mode [2024-06-01 12:44:17] [00:06.0] (unsafe) and if it helps report the problem to xen-devel [2024-06-01 12:44:17] [00:07.0] Write-back to unknown field 0x6c (partially) inhibited (0x00000000) [2024-06-01 12:44:17] [00:07.0] If the device doesn’t work, try enabling permissive mode [2024-06-01 12:44:17] [00:07.0] (unsafe) and if it helps report the problem to xen-devel [2024-06-01 12:44:17] [00:08.0] Write-back to unknown field 0x6c (partially) inhibited (0x00000000) [2024-06-01 12:44:17] [00:08.0] If the device doesn’t work, try enabling permissive mode [2024-06-01 12:44:17] [00:08.0] (unsafe) and if it helps report the problem to xen-devel [2024-06-01 12:44:18] random: crng init done [2024-06-01 12:44:23] [00:06.0] xen_pt_msgctrl_reg_write: setup MSI (register: 87). [2024-06-01 12:44:23] [00:06.0] msi_msix_setup: requested pirq 53 for MSI (vec: 0x0, entry: 0x0) [2024-06-01 12:44:23] [00:06.0] xen_pt_msi_setup: MSI mapped with pirq 53. [2024-06-01 12:44:23] [00:06.0] msi_msix_update: Updating MSI with pirq 53 gvec 0x0 gflags 0x7035 (entry: 0x0)
2024-06-01 12:44:26.652 qrexec-daemon[8065]: qrexec-daemon.c:867:parse_policy_response: qrexec-policy-daemon didn’t return any data 2024-06-01 12:44:27.205 qrexec-daemon[8125]: qrexec-daemon.c:867:parse_policy_response: qrexec-policy-daemon didn’t return any data WARNING:root:warning: !compat-4.0 directive in file /etc/qubes/policy.d/35-compat.policy line 16 is transitional and will be deprecated Traceback (most recent call last): File “/usr/bin/qrexec-policy-exec”, line 5, in sys.exit(main()) ^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 307, in main result = get_result(args) ^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 256, in get_result result_str = asyncio.run( ^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/base_events.py”, line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 369, in handle_request resolution = policy.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1623, in evaluate return rule.action.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1115, in evaluate return request.ask_resolution_type( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 733, in init assert default_target is None or default_target in targets_for_ask ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError 2024-06-01 12:44:28.279 qrexec-daemon[8065]: qrexec-daemon.c:1095:connect_daemon_socket: qrexec-policy-exec failed WARNING:root:warning: !compat-4.0 directive in file /etc/qubes/policy.d/35-compat.policy line 16 is transitional and will be deprecated Traceback (most recent call last): File “/usr/bin/qrexec-policy-exec”, line 5, in sys.exit(main()) ^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 307, in main result = get_result(args) ^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 256, in get_result result_str = asyncio.run( ^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/base_events.py”, line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 369, in handle_request resolution = policy.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1623, in evaluate return rule.action.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1115, in evaluate return request.ask_resolution_type( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 733, in init assert default_target is None or default_target in targets_for_ask ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError 2024-06-01 12:44:28.510 qrexec-daemon[8125]: qrexec-daemon.c:1095:connect_daemon_socket: qrexec-policy-exec failed 2024-06-01 12:44:34.968 qrexec-daemon[8265]: qrexec-daemon.c:867:parse_policy_response: qrexec-policy-daemon didn’t return any data 2024-06-01 12:44:35.045 qrexec-daemon[8266]: qrexec-daemon.c:867:parse_policy_response: qrexec-policy-daemon didn’t return any data WARNING:root:warning: !compat-4.0 directive in file /etc/qubes/policy.d/35-compat.policy line 16 is transitional and will be deprecated WARNING:root:warning: !compat-4.0 directive in file /etc/qubes/policy.d/35-compat.policy line 16 is transitional and will be deprecated Traceback (most recent call last): File “/usr/bin/qrexec-policy-exec”, line 5, in sys.exit(main()) ^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 307, in main result = get_result(args) ^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 256, in get_result result_str = asyncio.run( ^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/base_events.py”, line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 369, in handle_request resolution = policy.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1623, in evaluate return rule.action.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1115, in evaluate return request.ask_resolution_type( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 733, in init assert default_target is None or default_target in targets_for_ask ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError Traceback (most recent call last): File “/usr/bin/qrexec-policy-exec”, line 5, in sys.exit(main()) ^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 307, in main result = get_result(args) ^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 256, in get_result result_str = asyncio.run( ^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run return runner.run(main) 2024-06-01 12:44:35.463 qrexec-daemon[8265]: ^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run qrexec-daemon.c:1095:connect_daemon_socket: qrexec-policy-exec failed return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/base_events.py”, line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 369, in handle_request resolution = policy.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1623, in evaluate return rule.action.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1115, in evaluate return request.ask_resolution_type( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 733, in init assert default_target is None or default_target in targets_for_ask ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError 2024-06-01 12:44:35.502 qrexec-daemon[8266]: qrexec-daemon.c:1095:connect_daemon_socket: qrexec-policy-exec failed 2024-06-01 12:45:49.602 qrexec-daemon[8308]: qrexec-daemon.c:867:parse_policy_response: qrexec-policy-daemon didn’t return any data WARNING:root:warning: !compat-4.0 directive in file /etc/qubes/policy.d/35-compat.policy line 16 is transitional and will be deprecated Traceback (most recent call last): File “/usr/bin/qrexec-policy-exec”, line 5, in sys.exit(main()) ^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 307, in main result = get_result(args) ^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 256, in get_result result_str = asyncio.run( ^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 190, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/runners.py”, line 118, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib64/python3.11/asyncio/base_events.py”, line 653, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/tools/qrexec_policy_exec.py”, line 369, in handle_request resolution = policy.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1623, in evaluate return rule.action.evaluate(request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 1115, in evaluate return request.ask_resolution_type( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File “/usr/lib/python3.11/site-packages/qrexec/policy/parser.py”, line 733, in init assert default_target is None or default_target in targets_for_ask ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AssertionError 2024-06-01 12:45:49.902 qrexec-daemon[8308]: qrexec-daemon.c:1095:connect_daemon_socket: qrexec-policy-exec failed
Can you upload it as a file?
You can get the sys-usb log with this command in sys-usb terminal:
sudo journalctl -b > journalctl.log
journalctl.log (106.0 KB)
There is some error with the qrexec policy in dom0, but I don’t know what’s the problem based on just this part of log.
Can you upload the dom0 log for the current boot?
sudo journalctl -b > journalctl.log