From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 26 Apr 2021 10:36:22 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1lawj8-0002t7-Vf for lore@lore.pengutronix.de; Mon, 26 Apr 2021 10:36:22 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1lawj8-0006wD-Cb; Mon, 26 Apr 2021 10:36:22 +0200 Received: from dude.hi.pengutronix.de ([2001:67c:670:100:1d::7]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lawj5-0006vl-Ta; Mon, 26 Apr 2021 10:36:19 +0200 Received: from rhi by dude.hi.pengutronix.de with local (Exim 4.92) (envelope-from ) id 1lawj5-0002w2-Kv; Mon, 26 Apr 2021 10:36:19 +0200 From: Roland Hieber To: distrokit@pengutronix.de Date: Mon, 26 Apr 2021 10:35:56 +0200 Message-Id: <20210426083555.10908-1-rhi@pengutronix.de> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210426083039.emm3pevfbwslmtt4@pengutronix.de> References: <20210426083039.emm3pevfbwslmtt4@pengutronix.de> MIME-Version: 1.0 Subject: [DistroKit] [PATCH v2] v7a: run: randomise the SSH forwarding port X-BeenThere: distrokit@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: DistroKit Mailinglist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Roland Hieber Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "DistroKit" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: distrokit-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false When multiple ./configs/platform-v7a/run scripts are run at the same time, the first qemu process will open port 4445, and following runs will fail. To prevent that, first look at the environment variable QEMU_SSH_PORT to determine the port to be used (so that users can set this in their shell to keep the port static), or fall back to a port between 1025 and 65025 using the shell's PID as a seed, which should have a good chance of being unused. Also print the port forwarding before starting qemu, so we don't have to bother with "ps -Af|grep qemu". Signed-off-by: Roland Hieber --- v2: * use PPID instead of RANDOM to make the port reproducable in the same shell session (Michael Olbrich) --- configs/platform-v7a/run | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configs/platform-v7a/run b/configs/platform-v7a/run index d180ccfa890d..34c9aa017278 100755 --- a/configs/platform-v7a/run +++ b/configs/platform-v7a/run @@ -39,7 +39,7 @@ fi # the port which an sshd would connect to (in the emulated sysem) SSH_INTERNAL_PORT=22 # the port which QEMU opens at the host side to give access to the ${SSH_INTERNAL_PORT} -SSH_EXTERNAL_PORT=4445 +SSH_EXTERNAL_PORT=${QEMU_SSH_PORT:-${PPID%64000+1025}} # check if vde is available for networking if [ -z "${VDE_SOCKET}" ]; then @@ -59,6 +59,7 @@ fi # fall back to user network if necessary if [ -z "${QEMU_NET}" ]; then QEMU_NET=(-netdev user,id=net1,hostfwd=tcp:127.0.0.1:${SSH_EXTERNAL_PORT}-:${SSH_INTERNAL_PORT} ) + echo "Forwarding SSH port 127.0.0.1:${SSH_EXTERNAL_PORT} -> qemu:${SSH_INTERNAL_PORT}" fi BASE_CMDLINE="console=ttyAMA0,115200 loglevel=5 systemd.log_level=warning systemd.show_status=auto" -- 2.29.2 _______________________________________________ DistroKit mailing list DistroKit@pengutronix.de