QubesOS / qubes-issues

The Qubes OS Project issue tracker
https://www.qubes-os.org/doc/issue-tracking/
536 stars 47 forks source link

qubes-video-companion installation error and not usable on Debian/Fedora #7991

Closed Minimalist73 closed 4 months ago

Minimalist73 commented 1 year ago

Qubes OS release

4.1

Brief summary

qubes-video-companion can't be installed on debian-11 and is not working on both Fedora 36 and 37 while trying to screenshare.

Steps to reproduce

Expected behavior

Should install on Debian and screenshare should work on both Fedora and Debian

Actual behavior

When installing qubes-video-companion v1.0.1-1 from current-testing (QubesOS/updates-status/issues/3383) (qubes-video-companion-dom0 for dom0), 2 different issues are coming up:

On Fedora (36/37 - with kernel 6.1.6-1):

Transaction Summary

Install 6 Packages

Total download size: 1.0 M Installed size: 2.7 M Is this ok [y/N]: y Downloading Packages: (1/6): qubes-video-companion-docs-1.0.1-1.fc37.noarch.rpm 284 kB/s | 104 kB 00:00
(2/6): qubes-video-companion-license-1.0.1-1.fc37.noarch.rpm 166 kB/s | 12 kB 00:00
(3/6): qubes-video-companion-receiver-1.0.1-1.fc37.noarch.rpm 209 kB/s | 17 kB 00:00
(4/6): libdvbv5-1.22.1-4.fc37.x86_64.rpm 323 kB/s | 188 kB 00:00
(5/6): qubes-video-companion-sender-1.0.1-1.fc37.noarch.rpm 243 kB/s | 18 kB 00:00
(6/6): v4l-utils-1.22.1-4.fc37.x86_64.rpm 544 kB/s | 668 kB 00:01

Total 642 kB/s | 1.0 MB 00:01
Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : qubes-video-companion-license-1.0.1-1.fc37.noarch 1/6 Installing : libdvbv5-1.22.1-4.fc37.x86_64 2/6 Installing : v4l-utils-1.22.1-4.fc37.x86_64 3/6 Installing : qubes-video-companion-sender-1.0.1-1.fc37.noarch 4/6 Installing : qubes-video-companion-receiver-1.0.1-1.fc37.noarch 5/6 Installing : qubes-video-companion-docs-1.0.1-1.fc37.noarch 6/6 Running scriptlet: qubes-video-companion-docs-1.0.1-1.fc37.noarch 6/6 Verifying : libdvbv5-1.22.1-4.fc37.x86_64 1/6 Verifying : v4l-utils-1.22.1-4.fc37.x86_64 2/6 Verifying : qubes-video-companion-docs-1.0.1-1.fc37.noarch 3/6 Verifying : qubes-video-companion-license-1.0.1-1.fc37.noarch 4/6 Verifying : qubes-video-companion-receiver-1.0.1-1.fc37.noarch 5/6 Verifying : qubes-video-companion-sender-1.0.1-1.fc37.noarch 6/6 Notifying dom0 about installed applications

Installed: libdvbv5-1.22.1-4.fc37.x86_64 qubes-video-companion-docs-1.0.1-1.fc37.noarch
qubes-video-companion-license-1.0.1-1.fc37.noarch qubes-video-companion-receiver-1.0.1-1.fc37.noarch
qubes-video-companion-sender-1.0.1-1.fc37.noarch v4l-utils-1.22.1-4.fc37.x86_64

Complete!

[user@TEST-1 ~]$ qubes-video-companion screenshare

(screenshare.py:29906): Gdk-CRITICAL **: 17:53:22.551: gdk_atom_intern: assertion 'atom_name != NULL' failed

(screenshare.py:29906): Gdk-CRITICAL **: 17:53:22.552: gdk_atom_intern: assertion 'atom_name != NULL' failed Receiving video stream at 1920x1080 30 FPS... Traceback (most recent call last): File "/usr/share/qubes-video-companion/sender/screenshare.py", line 68, in screenshare = ScreenShare() ^^^^^^^^^^^^^ File "/usr/share/qubes-video-companion/sender/screenshare.py", line 23, in init self.main(self) File "/usr/share/qubes-video-companion/sender/service.py", line 158, in main self.start_transmission() File "/usr/share/qubes-video-companion/sender/service.py", line 128, in start_transmission element = self._element = Gst.parse_launchv( ^^^^^^^^^^^^^^^^^^ gi.repository.GLib.GError: gst_parse_error: could not link queue0 to capsfilter0 (3)

On Debian 11 (with kernel 6.1.6-1): 
- Installation end with an error (full install below)

user@TEST-3:~$ sudo apt install qubes-video-companion Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu build-essential dctrl-tools dkms dpkg-dev g++ g++-10 gcc gcc-10 gir1.2-ayatanaappindicator3-0.1 gstreamer1.0-tools libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan6 libbinutils libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-10-dev libitm1 liblsan0 libnsl-dev libstdc++-10-dev libtirpc-dev libtsan0 libubsan1 libv4l2rds0 linux-compiler-gcc-10-x86 linux-headers-5.10.0-20-amd64 linux-headers-5.10.0-20-common linux-headers-amd64 linux-kbuild-5.10 linux-libc-dev make manpages-dev v4l-utils v4l2loopback-dkms Suggested packages: binutils-doc debtags menu debian-keyring g++-multilib g++-10-multilib gcc-10-doc gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-10-multilib gcc-10-locales glibc-doc libstdc++-10-doc make-doc v4l2loopback-utils The following NEW packages will be installed: binutils binutils-common binutils-x86-64-linux-gnu build-essential dctrl-tools dkms dpkg-dev g++ g++-10 gcc gcc-10 gir1.2-ayatanaappindicator3-0.1 gstreamer1.0-tools libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan6 libbinutils libc-dev-bin libc-devtools libc6-dev libcc1-0 libcrypt-dev libctf-nobfd0 libctf0 libgcc-10-dev libitm1 liblsan0 libnsl-dev libstdc++-10-dev libtirpc-dev libtsan0 libubsan1 libv4l2rds0 linux-compiler-gcc-10-x86 linux-headers-5.10.0-20-amd64 linux-headers-5.10.0-20-common linux-headers-amd64 linux-kbuild-5.10 linux-libc-dev make manpages-dev qubes-video-companion v4l-utils v4l2loopback-dkms 0 upgraded, 45 newly installed, 0 to remove and 0 not upgraded. Need to get 64.7 MB of archives. After this operation, 262 MB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 https://deb.debian.org/debian bullseye/main amd64 libcc1-0 amd64 10.2.1-6 [47.0 kB] Get:2 https://deb.debian.org/debian bullseye/main amd64 binutils-common amd64 2.35.2-2 [2,220 kB] Get:3 https://deb.qubes-os.org/r4.1/vm bullseye-testing/main amd64 qubes-video-companion all 1.0.1-1+deb11u1 [109 kB] Get:4 https://deb.debian.org/debian bullseye/main amd64 libbinutils amd64 2.35.2-2 [570 kB] Get:5 https://deb.debian.org/debian bullseye/main amd64 libctf-nobfd0 amd64 2.35.2-2 [110 kB] Get:6 https://deb.debian.org/debian bullseye/main amd64 libctf0 amd64 2.35.2-2 [53.2 kB] Get:7 https://deb.debian.org/debian bullseye/main amd64 binutils-x86-64-linux-gnu amd64 2.35.2-2 [1,809 kB] Get:8 https://deb.debian.org/debian bullseye/main amd64 binutils amd64 2.35.2-2 [61.2 kB] Get:9 https://deb.debian.org/debian bullseye/main amd64 libitm1 amd64 10.2.1-6 [25.8 kB] Get:10 https://deb.debian.org/debian bullseye/main amd64 libasan6 amd64 10.2.1-6 [2,065 kB] Get:11 https://deb.debian.org/debian bullseye/main amd64 liblsan0 amd64 10.2.1-6 [828 kB] Get:12 https://deb.debian.org/debian bullseye/main amd64 libtsan0 amd64 10.2.1-6 [2,000 kB] Get:13 https://deb.debian.org/debian bullseye/main amd64 libubsan1 amd64 10.2.1-6 [777 kB] Get:14 https://deb.debian.org/debian bullseye/main amd64 libgcc-10-dev amd64 10.2.1-6 [2,328 kB] Get:15 https://deb.debian.org/debian bullseye/main amd64 gcc-10 amd64 10.2.1-6 [17.0 MB]
Get:16 https://deb.debian.org/debian bullseye/main amd64 gcc amd64 4:10.2.1-1 [5,192 B]
Get:17 https://deb.debian.org/debian bullseye/main amd64 make amd64 4.3-4.1 [396 kB]
Get:18 https://deb.debian.org/debian bullseye/main amd64 dpkg-dev all 1.20.12 [2,312 kB]
Get:19 https://deb.debian.org/debian bullseye/main amd64 libc-dev-bin amd64 2.31-13+deb11u5 [276 kB]
Get:20 https://deb.debian.org/debian bullseye/main amd64 linux-libc-dev amd64 5.10.158-2 [1,571 kB]
Get:21 https://deb.debian.org/debian bullseye/main amd64 libcrypt-dev amd64 1:4.4.18-4 [104 kB]
Get:22 https://deb.debian.org/debian bullseye/main amd64 libtirpc-dev amd64 1.3.1-1+deb11u1 [191 kB]
Get:23 https://deb.debian.org/debian bullseye/main amd64 libnsl-dev amd64 1.3.0-2 [66.4 kB]
Get:24 https://deb.debian.org/debian bullseye/main amd64 libc6-dev amd64 2.31-13+deb11u5 [2,359 kB]
Get:25 https://deb.debian.org/debian bullseye/main amd64 libstdc++-10-dev amd64 10.2.1-6 [1,741 kB]
Get:26 https://deb.debian.org/debian bullseye/main amd64 g++-10 amd64 10.2.1-6 [9,380 kB]
Get:27 https://deb.debian.org/debian bullseye/main amd64 g++ amd64 4:10.2.1-1 [1,644 B]
Get:28 https://deb.debian.org/debian bullseye/main amd64 build-essential amd64 12.9 [7,704 B]
Get:29 https://deb.debian.org/debian bullseye/main amd64 dctrl-tools amd64 2.24-3+b1 [104 kB]
Get:30 https://deb.debian.org/debian bullseye/main amd64 dkms all 2.8.4-3 [78.2 kB]
Get:31 https://deb.debian.org/debian bullseye/main amd64 gir1.2-ayatanaappindicator3-0.1 amd64 0.5.5-2+deb11u2 [71.3 kB] Get:32 https://deb.debian.org/debian bullseye/main amd64 gstreamer1.0-tools amd64 1.18.4-2.1 [1,198 kB] Get:33 https://deb.debian.org/debian bullseye/main amd64 libalgorithm-diff-perl all 1.201-1 [43.3 kB]
Get:34 https://deb.debian.org/debian bullseye/main amd64 libalgorithm-diff-xs-perl amd64 0.04-6+b1 [12.0 kB] Get:35 https://deb.debian.org/debian bullseye/main amd64 libalgorithm-merge-perl all 0.08-3 [12.7 kB]
Get:36 https://deb.debian.org/debian bullseye/main amd64 libc-devtools amd64 2.31-13+deb11u5 [246 kB]
Get:37 https://deb.debian.org/debian bullseye/main amd64 libv4l2rds0 amd64 1.20.0-2 [77.4 kB]
Get:38 https://deb.debian.org/debian bullseye/main amd64 linux-compiler-gcc-10-x86 amd64 5.10.158-2 [540 kB] Get:39 https://deb.debian.org/debian bullseye/main amd64 linux-headers-5.10.0-20-common all 5.10.158-2 [9,055 kB] Get:40 https://deb.debian.org/debian bullseye/main amd64 linux-kbuild-5.10 amd64 5.10.158-2 [786 kB]
Get:41 https://deb.debian.org/debian bullseye/main amd64 linux-headers-5.10.0-20-amd64 amd64 5.10.158-2 [1,062 kB] Get:42 https://deb.debian.org/debian bullseye/main amd64 linux-headers-amd64 amd64 5.10.158-2 [1,180 B] Get:43 https://deb.debian.org/debian bullseye/main amd64 manpages-dev all 5.10-1 [2,309 kB]
Get:44 https://deb.debian.org/debian bullseye/main amd64 v4l-utils amd64 1.20.0-2 [624 kB]
Get:45 https://deb.debian.org/debian bullseye/main amd64 v4l2loopback-dkms all 0.12.5-1 [36.2 kB]
Fetched 64.7 MB in 31s (2,110 kB/s)
Extracting templates from packages: 100% Selecting previously unselected package libcc1-0:amd64. (Reading database ... 99977 files and directories currently installed.) Preparing to unpack .../00-libcc1-0_10.2.1-6_amd64.deb ... Unpacking libcc1-0:amd64 (10.2.1-6) ... Selecting previously unselected package binutils-common:amd64. Preparing to unpack .../01-binutils-common_2.35.2-2_amd64.deb ... Unpacking binutils-common:amd64 (2.35.2-2) ... Selecting previously unselected package libbinutils:amd64. Preparing to unpack .../02-libbinutils_2.35.2-2_amd64.deb ... Unpacking libbinutils:amd64 (2.35.2-2) ... Selecting previously unselected package libctf-nobfd0:amd64. Preparing to unpack .../03-libctf-nobfd0_2.35.2-2_amd64.deb ... Unpacking libctf-nobfd0:amd64 (2.35.2-2) ... Selecting previously unselected package libctf0:amd64. Preparing to unpack .../04-libctf0_2.35.2-2_amd64.deb ... Unpacking libctf0:amd64 (2.35.2-2) ... Selecting previously unselected package binutils-x86-64-linux-gnu. Preparing to unpack .../05-binutils-x86-64-linux-gnu_2.35.2-2_amd64.deb ... Unpacking binutils-x86-64-linux-gnu (2.35.2-2) ... Selecting previously unselected package binutils. Preparing to unpack .../06-binutils_2.35.2-2_amd64.deb ... Unpacking binutils (2.35.2-2) ... Selecting previously unselected package libitm1:amd64. Preparing to unpack .../07-libitm1_10.2.1-6_amd64.deb ... Unpacking libitm1:amd64 (10.2.1-6) ... Selecting previously unselected package libasan6:amd64. Preparing to unpack .../08-libasan6_10.2.1-6_amd64.deb ... Unpacking libasan6:amd64 (10.2.1-6) ... Selecting previously unselected package liblsan0:amd64. Preparing to unpack .../09-liblsan0_10.2.1-6_amd64.deb ... Unpacking liblsan0:amd64 (10.2.1-6) ... Selecting previously unselected package libtsan0:amd64. Preparing to unpack .../10-libtsan0_10.2.1-6_amd64.deb ... Unpacking libtsan0:amd64 (10.2.1-6) ... Selecting previously unselected package libubsan1:amd64. Preparing to unpack .../11-libubsan1_10.2.1-6_amd64.deb ... Unpacking libubsan1:amd64 (10.2.1-6) ... Selecting previously unselected package libgcc-10-dev:amd64. Preparing to unpack .../12-libgcc-10-dev_10.2.1-6_amd64.deb ... Unpacking libgcc-10-dev:amd64 (10.2.1-6) ... Selecting previously unselected package gcc-10. Preparing to unpack .../13-gcc-10_10.2.1-6_amd64.deb ... Unpacking gcc-10 (10.2.1-6) ... Selecting previously unselected package gcc. Preparing to unpack .../14-gcc_4%3a10.2.1-1_amd64.deb ... Unpacking gcc (4:10.2.1-1) ... Selecting previously unselected package make. Preparing to unpack .../15-make_4.3-4.1_amd64.deb ... Unpacking make (4.3-4.1) ... Selecting previously unselected package dpkg-dev. Preparing to unpack .../16-dpkg-dev_1.20.12_all.deb ... Unpacking dpkg-dev (1.20.12) ... Selecting previously unselected package libc-dev-bin. Preparing to unpack .../17-libc-dev-bin_2.31-13+deb11u5_amd64.deb ... Unpacking libc-dev-bin (2.31-13+deb11u5) ... Selecting previously unselected package linux-libc-dev:amd64. Preparing to unpack .../18-linux-libc-dev_5.10.158-2_amd64.deb ... Unpacking linux-libc-dev:amd64 (5.10.158-2) ... Selecting previously unselected package libcrypt-dev:amd64. Preparing to unpack .../19-libcrypt-dev_1%3a4.4.18-4_amd64.deb ... Unpacking libcrypt-dev:amd64 (1:4.4.18-4) ... Selecting previously unselected package libtirpc-dev:amd64. Preparing to unpack .../20-libtirpc-dev_1.3.1-1+deb11u1_amd64.deb ... Unpacking libtirpc-dev:amd64 (1.3.1-1+deb11u1) ... Selecting previously unselected package libnsl-dev:amd64. Preparing to unpack .../21-libnsl-dev_1.3.0-2_amd64.deb ... Unpacking libnsl-dev:amd64 (1.3.0-2) ... Selecting previously unselected package libc6-dev:amd64. Preparing to unpack .../22-libc6-dev_2.31-13+deb11u5_amd64.deb ... Unpacking libc6-dev:amd64 (2.31-13+deb11u5) ... Selecting previously unselected package libstdc++-10-dev:amd64. Preparing to unpack .../23-libstdc++-10-dev_10.2.1-6_amd64.deb ... Unpacking libstdc++-10-dev:amd64 (10.2.1-6) ... Selecting previously unselected package g++-10. Preparing to unpack .../24-g++-10_10.2.1-6_amd64.deb ... Unpacking g++-10 (10.2.1-6) ... Selecting previously unselected package g++. Preparing to unpack .../25-g++_4%3a10.2.1-1_amd64.deb ... Unpacking g++ (4:10.2.1-1) ... Selecting previously unselected package build-essential. Preparing to unpack .../26-build-essential_12.9_amd64.deb ... Unpacking build-essential (12.9) ... Selecting previously unselected package dctrl-tools. Preparing to unpack .../27-dctrl-tools_2.24-3+b1_amd64.deb ... Unpacking dctrl-tools (2.24-3+b1) ... Selecting previously unselected package dkms. Preparing to unpack .../28-dkms_2.8.4-3_all.deb ... Unpacking dkms (2.8.4-3) ... Selecting previously unselected package gir1.2-ayatanaappindicator3-0.1. Preparing to unpack .../29-gir1.2-ayatanaappindicator3-0.1_0.5.5-2+deb11u2_amd64.deb ... Unpacking gir1.2-ayatanaappindicator3-0.1 (0.5.5-2+deb11u2) ... Selecting previously unselected package gstreamer1.0-tools. Preparing to unpack .../30-gstreamer1.0-tools_1.18.4-2.1_amd64.deb ... Unpacking gstreamer1.0-tools (1.18.4-2.1) ... Selecting previously unselected package libalgorithm-diff-perl. Preparing to unpack .../31-libalgorithm-diff-perl_1.201-1_all.deb ... Unpacking libalgorithm-diff-perl (1.201-1) ... Selecting previously unselected package libalgorithm-diff-xs-perl. Preparing to unpack .../32-libalgorithm-diff-xs-perl_0.04-6+b1_amd64.deb ... Unpacking libalgorithm-diff-xs-perl (0.04-6+b1) ... Selecting previously unselected package libalgorithm-merge-perl. Preparing to unpack .../33-libalgorithm-merge-perl_0.08-3_all.deb ... Unpacking libalgorithm-merge-perl (0.08-3) ... Selecting previously unselected package libc-devtools. Preparing to unpack .../34-libc-devtools_2.31-13+deb11u5_amd64.deb ... Unpacking libc-devtools (2.31-13+deb11u5) ... Selecting previously unselected package libv4l2rds0:amd64. Preparing to unpack .../35-libv4l2rds0_1.20.0-2_amd64.deb ... Unpacking libv4l2rds0:amd64 (1.20.0-2) ... Selecting previously unselected package linux-compiler-gcc-10-x86. Preparing to unpack .../36-linux-compiler-gcc-10-x86_5.10.158-2_amd64.deb ... Unpacking linux-compiler-gcc-10-x86 (5.10.158-2) ... Selecting previously unselected package linux-headers-5.10.0-20-common. Preparing to unpack .../37-linux-headers-5.10.0-20-common_5.10.158-2_all.deb ... Unpacking linux-headers-5.10.0-20-common (5.10.158-2) ... Selecting previously unselected package linux-kbuild-5.10. Preparing to unpack .../38-linux-kbuild-5.10_5.10.158-2_amd64.deb ... Unpacking linux-kbuild-5.10 (5.10.158-2) ... Selecting previously unselected package linux-headers-5.10.0-20-amd64. Preparing to unpack .../39-linux-headers-5.10.0-20-amd64_5.10.158-2_amd64.deb ... Unpacking linux-headers-5.10.0-20-amd64 (5.10.158-2) ... Selecting previously unselected package linux-headers-amd64. Preparing to unpack .../40-linux-headers-amd64_5.10.158-2_amd64.deb ... Unpacking linux-headers-amd64 (5.10.158-2) ... Selecting previously unselected package manpages-dev. Preparing to unpack .../41-manpages-dev_5.10-1_all.deb ... Unpacking manpages-dev (5.10-1) ... Selecting previously unselected package v4l-utils. Preparing to unpack .../42-v4l-utils_1.20.0-2_amd64.deb ... Unpacking v4l-utils (1.20.0-2) ... Selecting previously unselected package v4l2loopback-dkms. Preparing to unpack .../43-v4l2loopback-dkms_0.12.5-1_all.deb ... Unpacking v4l2loopback-dkms (0.12.5-1) ... Selecting previously unselected package qubes-video-companion. Preparing to unpack .../44-qubes-video-companion_1.0.1-1+deb11u1_all.deb ... Unpacking qubes-video-companion (1.0.1-1+deb11u1) ... Setting up manpages-dev (5.10-1) ... Setting up libalgorithm-diff-perl (1.201-1) ... Setting up binutils-common:amd64 (2.35.2-2) ... Setting up linux-libc-dev:amd64 (5.10.158-2) ... Setting up libctf-nobfd0:amd64 (2.35.2-2) ... Setting up libasan6:amd64 (10.2.1-6) ... Setting up libtirpc-dev:amd64 (1.3.1-1+deb11u1) ... Setting up linux-headers-5.10.0-20-common (5.10.158-2) ... Setting up make (4.3-4.1) ... Setting up gstreamer1.0-tools (1.18.4-2.1) ... Setting up libubsan1:amd64 (10.2.1-6) ... Setting up libnsl-dev:amd64 (1.3.0-2) ... Setting up libcrypt-dev:amd64 (1:4.4.18-4) ... Setting up linux-kbuild-5.10 (5.10.158-2) ... Setting up libv4l2rds0:amd64 (1.20.0-2) ... Setting up libbinutils:amd64 (2.35.2-2) ... Setting up libc-dev-bin (2.31-13+deb11u5) ... Setting up libalgorithm-diff-xs-perl (0.04-6+b1) ... Setting up gir1.2-ayatanaappindicator3-0.1 (0.5.5-2+deb11u2) ... Setting up libcc1-0:amd64 (10.2.1-6) ... Setting up liblsan0:amd64 (10.2.1-6) ... Setting up dctrl-tools (2.24-3+b1) ... Setting up libitm1:amd64 (10.2.1-6) ... Setting up libc-devtools (2.31-13+deb11u5) ... Setting up libalgorithm-merge-perl (0.08-3) ... Setting up libtsan0:amd64 (10.2.1-6) ... Setting up libctf0:amd64 (2.35.2-2) ... Setting up libgcc-10-dev:amd64 (10.2.1-6) ... Setting up v4l-utils (1.20.0-2) ... Setting up libc6-dev:amd64 (2.31-13+deb11u5) ... Setting up binutils-x86-64-linux-gnu (2.35.2-2) ... Setting up libstdc++-10-dev:amd64 (10.2.1-6) ... Setting up binutils (2.35.2-2) ... Setting up dpkg-dev (1.20.12) ... Setting up gcc-10 (10.2.1-6) ... Setting up linux-compiler-gcc-10-x86 (5.10.158-2) ... Setting up g++-10 (10.2.1-6) ... Setting up gcc (4:10.2.1-1) ... Setting up dkms (2.8.4-3) ... Setting up linux-headers-5.10.0-20-amd64 (5.10.158-2) ... /etc/kernel/header_postinst.d/dkms: dkms: running auto installation service for kernel 5.10.0-20-amd64:. Setting up g++ (4:10.2.1-1) ... update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode Setting up build-essential (12.9) ... Setting up linux-headers-amd64 (5.10.158-2) ... Setting up v4l2loopback-dkms (0.12.5-1) ... Loading new v4l2loopback-0.12.5 DKMS files... dpkg: warning: version '6.1.6-1.fc32.qubes.x86_64' has bad syntax: invalid character in revision number dpkg: warning: version '6.1.6-1.fc32.qubes.x86_64' has bad syntax: invalid character in revision number It is likely that 6.1.6-1.fc32.qubes.x86_64 belongs to a chroot's host Building for 5.10.0-10-amd64, 5.10.0-17-amd64, 5.10.0-18-amd64, 5.10.0-19-amd64, 5.10.0-20-amd64, 6.1.6- 1.fc32.qubes.x86_64, initramfs, lost+found and vmlinuz Module build for kernel 5.10.0-10-amd64 was skipped since the kernel headers for this kernel does not seem to be installed. Module build for kernel 5.10.0-17-amd64 was skipped since the kernel headers for this kernel does not seem to be installed. Module build for kernel 5.10.0-18-amd64 was skipped since the kernel headers for this kernel does not seem to be installed. Module build for kernel 5.10.0-19-amd64 was skipped since the kernel headers for this kernel does not seem to be installed. Building initial module for 5.10.0-20-amd64 Done.

v4l2loopback.ko: Running module version sanity check.

depmod...

DKMS: install completed. Building initial module for 6.1.6-1.fc32.qubes.x86_64 Error! Bad return status for module build on kernel: 6.1.6-1.fc32.qubes.x86_64 (x86_64) Consult /var/lib/dkms/v4l2loopback/0.12.5/build/make.log for more information. dpkg: error processing package v4l2loopback-dkms (--configure): installed v4l2loopback-dkms package post-installation script subprocess returned error exit status 10 dpkg: dependency problems prevent configuration of qubes-video-companion: qubes-video-companion depends on v4l2loopback-dkms (>= 0.12.5-1); however: Package v4l2loopback-dkms is not configured yet.

dpkg: error processing package qubes-video-companion (--configure): dependency problems - leaving unconfigured Processing triggers for libc-bin (2.31-13+deb11u5) ... Processing triggers for man-db (2.9.4-2) ... Errors were encountered while processing: v4l2loopback-dkms qubes-video-companion E: Sub-process /usr/bin/dpkg returned an error code (1)

`/var/lib/dkms/v4l2loopback/0.12.5/build/make.log`:

DKMS make.log for v4l2loopback-0.12.5 for kernel 6.1.6-1.fc32.qubes.x86_64 (x86_64) Tue 17 Jan 2023 05:25:46 PM CET Building v4l2-loopback driver... make -C /lib/modules/6.1.6-1.fc32.qubes.x86_64/build M=/var/lib/dkms/v4l2loopback/0.12.5/build modules make[1]: Entering directory '/usr/lib/modules/6.1.6-1.fc32.qubes.x86_64/build' warning: the compiler differs from the one used to build the kernel The kernel was built by: gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1) You are using: gcc (Debian 10.2.1-6) 10.2.1 20210110 CC [M] /var/lib/dkms/v4l2loopback/0.12.5/build/v4l2loopback.o cc1: error: incompatible gcc/plugin versions cc1: error: failed to initialize plugin ./scripts/gcc-plugins/structleak_plugin.so cc1: error: incompatible gcc/plugin versions cc1: error: failed to initialize plugin ./scripts/gcc-plugins/latent_entropy_plugin.so make[2]: [scripts/Makefile.build:250: /var/lib/dkms/v4l2loopback/0.12.5/build/v4l2loopback.o] Error 1 make[1]: [Makefile:1992: /var/lib/dkms/v4l2loopback/0.12.5/build] Error 2 make[1]: Leaving directory '/usr/lib/modules/6.1.6-1.fc32.qubes.x86_64/build' make: *** [Makefile:43: v4l2loopback.ko] Error 2

marmarek commented 1 year ago

For Debian, v4l2loopback-dkms should really be just "recommends", not "depend", as it isn't strictly required anymore (dom0-provided kernels have v4l2loopback included now). But building module should work too - so there are two bugs here.

Anyway, it seems it got unpacked, so you may try to use it, maybe it works already.

For Fedora, I'll take a look.

Minimalist73 commented 1 year ago

Anyway, it seems it got unpacked, so you may try to use it, maybe it works already.

I indeed have it installed on Debian 11, but here is what I'm getting when I'm trying to screenshare:

user@TEST-3:~$ qubes-video-companion screenshare
Traceback (most recent call last):
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 82, in <module>
    main(sys.argv)
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 17, in main
    width, height, fps = read_video_parameters()
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 63, in read_video_parameters
    raise RuntimeError("wrong number of bytes read")
RuntimeError: wrong number of bytes read
marmarek commented 1 year ago

Is it installed on the sharing qube (or its template) too?

Minimalist73 commented 1 year ago

Is it installed on the sharing qube (or its template) too?

I have TEST-3 and TEST-4 which are both fresh Debian-11 StandaloneVM with qubes-video-companion installed the same way. Trying the same screenshare command give the same error on both too. Tried to reboot both of them and test again but I still have the same error again.

marmarek commented 1 year ago

do you get it immediately? you should get a qrexec policy prompt; did you installed dom0 part (qubes-video-companion-dom0 package)?

Minimalist73 commented 1 year ago

do you get it immediately? you should get a qrexec policy prompt; did you installed dom0 part (qubes-video-companion-dom0 package)?

I have the prompt from dom0, but when I put the other VM and accept it, it shows the "RuntimeError: wrong number of bytes read" error. Also, dom0 package is installed and RPC policies seems created and correct:

[user@dom0 ~]$ cat /etc/qubes-rpc/policy/qvc.ScreenShare
# Policy for Qubes Video Companion, R4.0 syntax
@anyvm  @dispvm  allow
@anyvm  @default ask
@anyvm  @anyvm   ask
@anyvm  dom0     ask
[user@dom0 ~]$ rpm -qa | grep qubes-video-companion-dom0
qubes-video-companion-dom0-1.0.1-1.fc32.noarch
tlaurion commented 1 year ago

Not useable on debian-11.

dom0 4.1: sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-video-companion-dom0 (not documented correctly upstream)

Installed under debian-11: sudo apt install qubes-video-companion

But when launching:

user@heads-tests-qemu-tpm2-whip:~$ qubes-video-companion screenshare
Traceback (most recent call last):
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 82, in <module>
    main(sys.argv)
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 17, in main
    width, height, fps = read_video_parameters()
  File "/usr/share/qubes-video-companion/receiver/receiver.py", line 63, in read_video_parameters
    raise RuntimeError("wrong number of bytes read")
RuntimeError: wrong number of bytes read
DemiMarie commented 1 year ago

@tlaurion Webcam works, but indeed screensharing is broken.

marmarek commented 1 year ago

I (hopefully) fixed screenshare too with the update (auto-)linked above.

Minimalist73 commented 1 year ago

Thanks for the update @marmarek !

I installed the new version in dom0 and on 2 debian-11 StandaloneVM and that's the error I'm now getting:

user@TEST-1:~$ qubes-video-companion screenshare
Receiving video stream at 1920x1080 30 FPS...
Traceback (most recent call last):
  File "/usr/share/qubes-video-companion/sender/screenshare.py", line 69, in <module>
    screenshare = ScreenShare()
  File "/usr/share/qubes-video-companion/sender/screenshare.py", line 24, in __init__
    self.main(self)
  File "/usr/share/qubes-video-companion/sender/service.py", line 158, in main
    self.start_transmission()
  File "/usr/share/qubes-video-companion/sender/service.py", line 128, in start_transmission
    element = self._element = Gst.parse_launchv(
gi.repository.GLib.Error: gst_parse_error: could not link queue0 to capsfilter0 (3)
tlaurion commented 1 year ago

I learned today (we learn everyday...) that to update one has to: sudo qubes-dom0-update --enablerepo=qubes-dom0-current-testing qubes-video-companion-dom0 --action=update

@Minimalist73 might help you get it working.

After installing into debian-11 repository, shutdown... You have to run qubes-video-companion in the RECEIVER side. (I was confused and did the other way around).

It works as expected. Tested https://github.com/QubesOS/updates-status/issues/3625

Minimalist73 commented 1 year ago

You have to run qubes-video-companion in the RECEIVER side.

I don't get this, how do I do that ? Anytime I execute qubes-video-companion and set the target VM I get the error I specified above.

Dom0 is updated:

rpm -qa | grep companion
qubes-video-companion-dom0-1.0.2-1.fc32.noarch

Both debian-11 VMs shows:

dpkg -l | grep qubes-video-companion
ii  qubes-video-companion                1.0.2-1+deb11u1                    all          Securely stream webcams and share screens across virtual machines
tlaurion commented 1 year ago

@Minimalist73

user@TEST-1:~$ qubes-video-companion screenshare

Needs to be ran in receiver qube. Prompt from dom0 is asking from where screen is to be shared from to the caller qube, being receiver of stream, on /dev/video0 if no webcam or anything else being assigned to that receiver call prior of qubes-video-companion call. (/dev/video0 will be the stream passed to the caller qube after this point).

I was not able to record screen on destination from cheese, though. It froze cheese on receiver side, where preview and "webcam" pictures worked as intended. I guess its a bug in cheese but didn't took the time to investigate.

But I was able to hack this around to save video on the receiver side by doing

cvlc v4l2:///dev/video0 --sout="#transcode{vcodec=theo,vb=2000,fps=20,scale=1.0}:standard{access=file,mux=ogg,dst=output.ogg}"

That was good enough for me: what I needed was to record screenshare for a pre-recorded demo I needed to produce, saved under output.ogg.

Same dom0 and Debian packages installed, but sender and receiver qubes confirmed using that template, of course restarted after package install to be available on qubes start.

I do not remember having needed to reboot dom0, but then received a user bug report related to qubes dom0 update changing /boot binaries without changing grub config, and rebooted dom0 (same xen boot deployed binary with different hashes) to find a tsc bug in newer 4.15 xen preventing me to have successful qemu full booting tests in link of latest xen 4.15 boot deployed binary, unrelated here, creating soft locking because of unreliable clock source. Again unrelated here which should not impact others for the sake of this issue but maybe explaining why rebooting made it work for me.

I would advise making sure both receiver (where qubes-video-companion asks for source of video) and sender (destination of dom0 prompt where screen sharing originates) to be rebooted to make sure they both use the same template. Error is from dom0 package as far as I know. Maybe rebooting required after installing dom0 update. Not sure.

Minimalist73 commented 1 year ago

I tried everything I could and I can't get this to work, I'm still getting the same error I sent earlier. I installed qubes-video-companion-dom0-receiver in dom0 (it was not installed for some reason) but nothing changed, error still there. I tried to do it with 2 Fedora standalone but I'm still getting the same thing.

I noticed that I don't have any /dev/video0 on both qubes. I can make one by enabling v4l2loopback (modprobe v4l2loopback) but I still get the same thing and for some reason the /dev/video0 disappear (module is not enabled anymore) each time I get the error.

Willy-JL commented 1 year ago

Thanks for the update @marmarek !

I installed the new version in dom0 and on 2 debian-11 StandaloneVM and that's the error I'm now getting:

user@TEST-1:~$ qubes-video-companion screenshare
Receiving video stream at 1920x1080 30 FPS...
Traceback (most recent call last):
  File "/usr/share/qubes-video-companion/sender/screenshare.py", line 69, in <module>
    screenshare = ScreenShare()
  File "/usr/share/qubes-video-companion/sender/screenshare.py", line 24, in __init__
    self.main(self)
  File "/usr/share/qubes-video-companion/sender/service.py", line 158, in main
    self.start_transmission()
  File "/usr/share/qubes-video-companion/sender/service.py", line 128, in start_transmission
    element = self._element = Gst.parse_launchv(
gi.repository.GLib.Error: gst_parse_error: could not link queue0 to capsfilter0 (3)

that error is due to the capsfilter expecting a cropped image, just one monitor, while ximagesrc gets your whole x11 desktop with all monitors, and no cropping was specified in between. i managed to fix that error locally on my system, ill experiment a bit more and make a PR

Augsch123 commented 1 year ago

I installed qubes-video-companion on a debian-12-minimal template. Besides the large amount of dependencies to be pulled ( including gcc and linux-header ), I cannot use it as the sender. On the receiver side I got error message like this:

File "/usr/lib/python3/dist-packages/gi/__init__.py", line 126, in require_version
  raise ValueError('Namespace %s not available' % namespace)
Value Error: Namespace Gst not availble

I guess it still lacks certain dependency, but cannot figure it out myself.

andrewdavidwong commented 1 year ago

@Augsch123, that sounds like it might be off-topic for this issue. See the second point here.

tlaurion commented 6 months ago

@Minimalist73 is it still relevant or fixed?

tlaurion commented 6 months ago

@andrewdavidwong

The only thing I see is that dom0 package is wrong. Opened https://github.com/QubesOS/qubes-video-companion/pull/18

[user@dom0 ~]
$ sudo qubes-dom0-update qubes-video-companion
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
Unable to detect release version (use '--releasever' to specify release version)
Fedora 37 - x86_64                              520 kB/s |  70 MB     02:17    
Fedora 37 - x86_64 - Updates                    499 kB/s |  43 MB     01:28    
Qubes Host Repository (updates)                 109 kB/s | 2.0 MB     00:18    
Last metadata expiration check: 0:00:06 ago on Tue Apr 23 15:36:00 2024.
No match for argument: qubes-video-companion
Error: Unable to find a match: qubes-video-companion
[user@dom0 ~]
(1)$ sudo qubes-dom0-update --action=search companion
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
Unable to detect release version (use '--releasever' to specify release version)
Last metadata expiration check: 0:33:11 ago on Tue Apr 23 15:36:00 2024.
====================== Name & Summary Matched: companion =======================
texlive-latex-graphics-companion-doc.noarch : Documentation for latex-graphics-companion
texlive-latex-web-companion-doc.noarch : Documentation for latex-web-companion
=========================== Name Matched: companion ============================
qubes-video-companion-dom0.noarch : Securely stream webcams and share screens across virtual machines
qubes-video-companion-dom0.src : Securely stream webcams and share screens across virtual machines
========================== Summary Matched: companion ==========================
R-car.noarch : Companion to Applied Regression package for R
granite.i686 : elementary companion library for GTK+ and GLib
granite.x86_64 : elementary companion library for GTK+ and GLib
kongress.x86_64 : A companion application for conferences made by KDE
libfm-qt.i686 : Companion library for PCManFM
libfm-qt.x86_64 : Companion library for PCManFM
libmongocrypt.i686 : The companion C library for client side encryption in drivers
libmongocrypt.x86_64 : The companion C library for client side encryption in drivers
moolticute.x86_64 : Companion GUI application for Mooltipass password manager devices
perl-Apache-RPC.noarch : Companion packages for RPC::XML tuned for mod_perl environments
perl-Readonly-XS.x86_64 : Companion module for Readonly
texlive-chextras.noarch : A companion package for the Swiss typesetter
No packages downloaded
[user@dom0 ~]
$ sudo qubes-dom0-update qubes-video-companion-dom0
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
Unable to detect release version (use '--releasever' to specify release version)
Fedora 37 - x86_64                              7.9 kB/s |  25 kB     00:03    
Fedora 37 - x86_64 - Updates                     10 kB/s |  25 kB     00:02    
Qubes Host Repository (updates)                 1.0 kB/s | 2.7 kB     00:02    
Dependencies resolved.
================================================================================
 Package                     Arch    Version          Repository           Size
================================================================================
Installing:
 qubes-video-companion-dom0  noarch  1.0.5-1.fc37     qubes-dom0-current  116 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 116 k
Installed size: 155 k
DNF will only download packages for the transaction.
Downloading Packages:
qubes-video-companion-dom0-1.0.5-1.fc37.noarch.  45 kB/s | 116 kB     00:02    
--------------------------------------------------------------------------------
Total                                            24 kB/s | 116 kB     00:04     
Complete!
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Qubes OS Repository for Dom0                                                                                                                                  2.9 MB/s | 3.0 kB     00:00    
Qubes OS Repository for Dom0                                                                                                                                   60 kB/s | 1.8 kB     00:00    
Dependencies resolved.
==============================================================================================================================================================================================
 Package                                                 Architecture                        Version                                     Repository                                      Size
==============================================================================================================================================================================================
Installing:
 qubes-video-companion-dom0                              noarch                              1.0.5-1.fc37                                qubes-dom0-cached                              113 k

Transaction Summary
==============================================================================================================================================================================================
Install  1 Package

Total size: 113 k
Installed size: 155 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                      1/1 
  Installing       : qubes-video-companion-dom0-1.0.5-1.fc37.noarch                                                                                                                       1/1 
  Running scriptlet: qubes-video-companion-dom0-1.0.5-1.fc37.noarch                                                                                                                       1/1 
  Verifying        : qubes-video-companion-dom0-1.0.5-1.fc37.noarch                                                                                                                       1/1 

Installed:
  qubes-video-companion-dom0-1.0.5-1.fc37.noarch                                                                                                                                              

Complete!
[user@dom0 ~]
Minimalist73 commented 6 months ago

@Minimalist73 is it still relevant or fixed?

No issue on my side. I've been using this for months now.

andrewdavidwong commented 6 months ago

Closing as completed. If anyone believes this issue is not yet completed, or if anyone is still affected by this issue, please leave a comment, and we'll be happy to reopen it. Thank you.

tlaurion commented 6 months ago

@andrewdavidwong its a user confusion issue per unclear documentation.

The documentation is not clear on the following facts:

Please read https://github.com/QubesOS/qubes-issues/issues/7991#issuecomment-1474887416 This gives a receiving side example of recording directly from the command line on the receiving qube, which can launch cheese as per doc, to see the screen of the "destination" qube being shown there. If cheese works, it means that command line tools would permit recording of the stream on the qube having launched qubes-video-companion.

There is no "bug" in software, outside of user output being cryptic when on launches qubes-vdeo-companion and it says:

Usage: qubes-video-companion webcam|screenshare [destination qube]

Which leads users to be confused with reason: this should probably be [receiving qube] instead, and the README.md being explicit of the functioning of the tool for massive adoption. The fact that there is some but not a lot of reports on this shows that not a lot of people use it, but they should. They just don't know it exists, try to use it, fail and give up using it.

If this is clarified in docs, issues like this will stop popping up in forum and issues. I'm not good writing docs, that's a plain fact. Still working on it on my own projects.

@Minimalist73 @adw Might want to share other use cases, other recommended tools that do not require command line, and is not bogus as cheese is, and or better, change the docs through pull requests?

tlaurion commented 6 months ago

@adw @marmarek i opened https://github.com/QubesOS/qubes-video-companion/pull/18 which was duplicate of another one, reported by @Minimalist73 as duplicate. Please merge the origin.

Docs need to be sound for soft to be tested and used. The fact that no more issues opened because instructions are bad shows a lot of fev users but not a lot of end users, where this solution should be massively used because simply amazing.