From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.6 Received: from atuin.qyliss.net (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 68E7F4843D; Sun, 4 Dec 2022 22:45:23 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id 775FE48439; Sun, 4 Dec 2022 22:45:21 +0000 (UTC) Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) by atuin.qyliss.net (Postfix) with ESMTPS id B078F48437 for ; Sun, 4 Dec 2022 22:45:17 +0000 (UTC) Received: by mail-lj1-x22e.google.com with SMTP id l8so11585973ljh.13 for ; Sun, 04 Dec 2022 14:45:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unikie.com; s=google; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Rrhf4KTmWoDzfCp67lWy7tYNG4XcajfX5iFMuhsy/Sc=; b=XJ8CaY4CWCLV2bhY4HC9lLz2QoUFAaf9HpHjPjXs7H4HH/bh6eBH+Nyq1EoqY+9BJC FJ4K5dZsN4ve2yz95PLwu2WcV1Za3pC0JBwxCYALxhl4qXazuS1gMan2wLNFesQoYCyg PqeNN2z3xLcf95edCzqaxp+U3VtJvY4DmgsLWZfPB89ClS4+SMagyv3FLyKzOFkWh7rL 1cuCaHf+kN5AaQ/xecU7bAjtP0Y9VKN0MsKNohGe5beJ2re+3exFuTbKLbsQPig37grO cUFlF6LidaJWiPZManvy/GCEhK9yv4lCdCNm2YAvgStzbWDKojFqs6NqT4uZzRUIBhQt tPzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Rrhf4KTmWoDzfCp67lWy7tYNG4XcajfX5iFMuhsy/Sc=; b=SXWvj6fYRlA+FCdCFcGZkFBsHHqXSmhn4I7jpQZIsiyeT21F5k+AY7OC6cxXq2zCSH 5wV7UUMQ783FCBxo7vkcuzxLPy8vo7Vi7iXnt/NdZd9NYGe+hlz1zXYXenEnbqpgh84o OC9+NbHJluA1GicOv1dr4p/WKx/2PKe4Gz6PBtaIWUEGUL/9o1lhUq573auR0C8urAlu 64Cm3YuE6MSlIu4RoXcFnALYQJnR4pxbRgHg3TKVC39vzO3Pcm5YuUZt5NMpb/guzQvv 1FRc9L54UkNJJbQKKgCD2cQ/AIBq3asVVcX0NKuOGicOagaIuUHMMsKHVcRgjev7BAte peUQ== X-Gm-Message-State: ANoB5pmDYLXCYHfvf4b06tvGnuyHZDGGHB4Kuzit1D+lsuSokgmap05Q F7Xd9BxkoMsGNKiHGpw4Xfa/BA84w00nxvzE X-Google-Smtp-Source: AA0mqf6almbUFt8/dGqijM4W6dIuG6EjDrlgNPnkCU0RDCmEIleckLdbFBM2JbFhsswpwyhJ3dVz3w== X-Received: by 2002:a05:651c:1952:b0:26f:dfb2:9b9c with SMTP id bs18-20020a05651c195200b0026fdfb29b9cmr23693752ljb.461.1670193915893; Sun, 04 Dec 2022 14:45:15 -0800 (PST) Received: from localhost.localdomain (88-114-171-198.elisa-laajakaista.fi. [88.114.171.198]) by smtp.gmail.com with ESMTPSA id q18-20020a056512211200b004ae394b6a6fsm1904138lfr.246.2022.12.04.14.45.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 04 Dec 2022 14:45:15 -0800 (PST) From: vadim likholetov To: devel@spectrum-os.org Subject: [PATCH 1/2] Enables forwarding Wayland from appVM to host with waypipe Date: Mon, 5 Dec 2022 00:45:05 +0200 Message-Id: <20221204224506.1801177-1-vadim.likholetov@unikie.com> X-Mailer: git-send-email 2.36.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: OVY5JVCK6PE2VKB52A2RPKJNWY4YJRTP X-Message-ID-Hash: OVY5JVCK6PE2VKB52A2RPKJNWY4YJRTP X-MailFrom: vadim.likholetov@unikie.com X-Mailman-Rule-Hits: header-match-devel.spectrum-os.org-0 X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1 CC: vadim likholetov X-Mailman-Version: 3.3.5 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Signed-off-by: vadim likholetov --- host/initramfs/extfs.nix | 4 +++- host/rootfs/Makefile | 1 + host/rootfs/default.nix | 4 ++-- host/rootfs/usr/bin/vm-start-way | 10 ++++++++++ img/app/default.nix | 3 +++ vm/app/hello-waypipe.nix | 23 +++++++++++++++++++++++ 6 files changed, 42 insertions(+), 3 deletions(-) create mode 100755 host/rootfs/usr/bin/vm-start-way create mode 100644 vm/app/hello-waypipe.nix diff --git a/host/initramfs/extfs.nix b/host/initramfs/extfs.nix index 5c5850f..f49e519 100644 --- a/host/initramfs/extfs.nix +++ b/host/initramfs/extfs.nix @@ -11,12 +11,13 @@ let appvm-catgirl = import ../../vm/app/catgirl.nix { inherit config; }; appvm-lynx = import ../../vm/app/lynx.nix { inherit config; }; + appvm-hello-waypipe = import ../../vm/app/hello-waypipe.nix { inherit config; }; in runCommand "ext.ext4" { nativeBuildInputs = [ e2fsprogs ]; } '' - mkdir -p root/svc/data/appvm-{catgirl,lynx} + mkdir -p root/svc/data/appvm-{catgirl,lynx,hello-waypipe} cd root tar -C ${netvm} -c data | tar -C svc -x @@ -24,6 +25,7 @@ runCommand "ext.ext4" { tar -C ${appvm-catgirl} -c . | tar -C svc/data/appvm-catgirl -x tar -C ${appvm-lynx} -c . | tar -C svc/data/appvm-lynx -x + tar -C ${appvm-hello-waypipe} -c . | tar -C svc/data/appvm-hello-waypipe -x mkfs.ext4 -d . $out 16T resize2fs -M $out diff --git a/host/rootfs/Makefile b/host/rootfs/Makefile index 9559c06..06e3e8e 100644 --- a/host/rootfs/Makefile +++ b/host/rootfs/Makefile @@ -39,6 +39,7 @@ FILES = \ usr/bin/lsvm \ usr/bin/vm-console \ usr/bin/vm-start \ + usr/bin/vm-start-way \ usr/bin/vm-stop DIRS = dev etc/s6-linux-init/env ext run proc sys diff --git a/host/rootfs/default.nix b/host/rootfs/default.nix index 0a84f55..de4a6b6 100644 --- a/host/rootfs/default.nix +++ b/host/rootfs/default.nix @@ -7,7 +7,7 @@ pkgs.pkgsStatic.callPackage ( { lib, stdenvNoCC, nixos, runCommand, writeReferencesToFile, s6-rc, tar2ext4 , busybox, cloud-hypervisor, cryptsetup, execline, e2fsprogs, jq, kmod -, mdevd, s6, s6-linux-init, socat, util-linuxMinimal, xorg +, mdevd, s6, s6-linux-init, socat, util-linuxMinimal, xorg, waypipe }: let @@ -49,7 +49,7 @@ let packages = [ cloud-hypervisor e2fsprogs execline jq kmod mdevd s6 s6-linux-init s6-rc - socat start-vm + socat start-vm waypipe (cryptsetup.override { programs = { diff --git a/host/rootfs/usr/bin/vm-start-way b/host/rootfs/usr/bin/vm-start-way new file mode 100755 index 0000000..bda9934 --- /dev/null +++ b/host/rootfs/usr/bin/vm-start-way @@ -0,0 +1,10 @@ +#!/bin/sh +# SPDX-License-Identifier: EUPL-1.2+ + +s6-rc -bu change ext-rc +s6-rc -l /run/s6-rc.ext -u change $1 +ch-remote --api-socket /run/service/ext-${1}/env/cloud-hypervisor.sock add-vsock cid=4,socket=/run/u.${1}.socket +cd /run +nohup waypipe --socket /run/waypipe.sock client & +nohup socat unix-listen:/run/u.${1}.socket_5000,reuseaddr,fork unix-connect:/run/waypipe.sock & + diff --git a/img/app/default.nix b/img/app/default.nix index e7d5366..80f23c2 100644 --- a/img/app/default.nix +++ b/img/app/default.nix @@ -59,6 +59,9 @@ let DRM_BOCHS = yes; DRM = yes; AGP = yes; + VSOCKETS = yes; + VIRTIO_VSOCKETS = yes; + VIRTIO_VSOCKETS_COMMON = yes; }; }; in diff --git a/vm/app/hello-waypipe.nix b/vm/app/hello-waypipe.nix new file mode 100644 index 0000000..601b638 --- /dev/null +++ b/vm/app/hello-waypipe.nix @@ -0,0 +1,23 @@ +# SPDX-License-Identifier: MIT +# SPDX-FileCopyrightText: 2021-2022 Alyssa Ross + +{ config ? import ../../../nix/eval-config.nix {} }: + +import ../make-vm.nix { inherit config; } { + providers.net = [ "netvm" ]; + run = config.pkgs.callPackage ( + { writeScript, waypipe, havoc, foot, hello-wayland, socat}: + writeScript "run-waypipe-app" '' + #!/bin/sh + mkdir /run/0 + export XDG_RUNTIME_DIR=/run/0 + ${socat}/bin/socat unix-listen:/run/waypipe.sock,reuseaddr,fork vsock-connect:2:5000 & + sleep 1 + ${waypipe}/bin/waypipe --display wayland-local --socket /run/waypipe.sock server -- sleep inf & + export WAYLAND_DISPLAY=wayland-local + ${havoc}/bin/havoc + ${hello-wayland}/bin/hello-wayland + ${foot}/bin/foot + '' + ) { }; +} -- 2.36.2