Drew
2018-08-19 03:04:02 UTC
I want to do some experiments with vchan and develop an UI that let me
manage some DomUs (userspace) configs from a domU, without using
Qrexec or anything Qubes specific.
I've read:
[1]: https://lists.xen.org/archives/html/xen-users/2014-01/msg00162.html
[2]: https://www.cs.uic.edu/~xzhang/vchan/
Qubes OS run on top of Xen, so it should be possible to use the vchan
library inside the DomUs.
1) In the sites its described a communication between Dom0 and a DomU,
but I need to establish variuos bidirectional channels between DomUs.
Is it possible?
2) I don't know if Qubes OS is using or not a different version of the
vchan library nor if the developers have set up specific limitations
that can make the job harder.
3) In the libs folders I found all the libraries I think I need, but I
couldn't find any header (libxenvchan.h, ...) in the VMs systems, so
do I need to compile and install Xen from source, to be able to write
my own programs, even on Qubes OS?
And if I wanted to distribute a package for Qubes, the default
Debian/Fedora templates would need extra deps?
I've tried to write a new header with the `extern` declarations and
compile 'node.c' from /xen/tools/libvchan:
[https://github.com/xen-project/xen/blob/master/tools/libvchan/node.c]
as a test, linking the binary to 'libvchan-xen.so', which I think its
Qubes specific and 'libxenvchan.so' in a second attempt.
The compilation succeded, but the program couldn't establish any
connections between VMs:
***@develop:~/myvchan$ ./node server write 3 /data/vchan
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node server write 3 <ANY_PATH>
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node client read 3 /data/vchan
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node client read 3 /local/domain/<DOMID>/myc
libxenvchan_*_init: No such file or directory
***@develop:~/myvchan$ xenstore-exists /local/domain/<DOMID>/matrix
***@develop:~/myvchan$ echo $?
0
Anyone can explain me what I'm missing and guide me through the right
procedure ?
manage some DomUs (userspace) configs from a domU, without using
Qrexec or anything Qubes specific.
I've read:
[1]: https://lists.xen.org/archives/html/xen-users/2014-01/msg00162.html
[2]: https://www.cs.uic.edu/~xzhang/vchan/
Qubes OS run on top of Xen, so it should be possible to use the vchan
library inside the DomUs.
1) In the sites its described a communication between Dom0 and a DomU,
but I need to establish variuos bidirectional channels between DomUs.
Is it possible?
2) I don't know if Qubes OS is using or not a different version of the
vchan library nor if the developers have set up specific limitations
that can make the job harder.
3) In the libs folders I found all the libraries I think I need, but I
couldn't find any header (libxenvchan.h, ...) in the VMs systems, so
do I need to compile and install Xen from source, to be able to write
my own programs, even on Qubes OS?
And if I wanted to distribute a package for Qubes, the default
Debian/Fedora templates would need extra deps?
I've tried to write a new header with the `extern` declarations and
compile 'node.c' from /xen/tools/libvchan:
[https://github.com/xen-project/xen/blob/master/tools/libvchan/node.c]
as a test, linking the binary to 'libvchan-xen.so', which I think its
Qubes specific and 'libxenvchan.so' in a second attempt.
The compilation succeded, but the program couldn't establish any
connections between VMs:
***@develop:~/myvchan$ ./node server write 3 /data/vchan
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node server write 3 <ANY_PATH>
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node client read 3 /data/vchan
libxenvchan_*_init: Permission denied
***@develop:~/myvchan$ ./node client read 3 /local/domain/<DOMID>/myc
libxenvchan_*_init: No such file or directory
***@develop:~/myvchan$ xenstore-exists /local/domain/<DOMID>/matrix
***@develop:~/myvchan$ echo $?
0
Anyone can explain me what I'm missing and guide me through the right
procedure ?