From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.3 (2019-12-06) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=0.9 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, FORGED_SPF_HELO,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.3 Received: by atuin.qyliss.net (Postfix, from userid 496) id F09F13838; Mon, 8 Jun 2020 20:45:46 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id 39BC93885; Mon, 8 Jun 2020 20:45:41 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id D6E053828; Mon, 8 Jun 2020 20:45:38 +0000 (UTC) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-oln040092005028.outbound.protection.outlook.com [40.92.5.28]) by atuin.qyliss.net (Postfix) with ESMTPS id 622673827 for ; Mon, 8 Jun 2020 20:45:35 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ax8yIs6ax9J633b5wIeqiA33Y826/yUGR6+NoO1TNd5XeBeJTefJSH6Jm+kiQK34Qd+D5/h4l1Q38+bOf8Vw2u41yTpT7cY1e6Rq8LUvyAO3qPYCrVzN7HXpIuEry27ghyeMudxfvwVmWyAIR25kdEz0pa5Y9FBJBoy2Mp23pHz+UKX8ZY3eslrIdYmmTyJ+zfCKWcUZHprl2rsglF7oBwqFvZYcwv1vifzs+ia/mFL4nF4yfdD54uH+t6bP4uMRQfgw+iDubnlW/gx8N1w5LfA917nXy2BO4BTConNfbqmjl+ZgkJnGvfNvW6/Nvj6Y6Ap9Iy8CU8uPTVhypNLgAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y9osDNcMRb3A54LQe/0IW5P/UpyD6cLKlpqHd3/EmfY=; b=EjTggvOfvGMhZelS9FwKFJyfz9/Bs9M4F8Uo4TgZYn9MidpMjqj4ZPSdY+1w/pr6Wd1FH0DLR8o6ZeGdUzUNqM4TNzKv/xAgyGuO1RloHrp6h8NxenJqeU9qM4kiKrBt/3Yj2TyAoQO3/Bp57952JjDTTpT6adYdT8AU2oi+gVbdiob894c1QVbCOZ60/QPzyrdv4MsmgIazQzpGTzD9IXJFjufGe3QV2BF85qlvr5M2Yr9jjS8OOde4FAbcHwF+04TP2RLNd1Z8Fq7hJCf73aejj5rmbX8UNnIagXRuv93OUd/0f4vD1B4azcBZ+XgZwrpjZfTzQadJjUBxm7L6tA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y9osDNcMRb3A54LQe/0IW5P/UpyD6cLKlpqHd3/EmfY=; b=J1iBpI/+nBUDHVnMEz0LSOEkJN4ZTlCvmU3ymr0/itB0UChFoVwQnMNRyx6U7AZCbQUn+YaIYX9SKAqte1rORT5YhaJxhtoRc5vG4myzeOpjnicDz6mmgkDwv3jpfa6RRUUH+e0LWPZKQ3dhMlRjNttdU5b6AJFo6ts3X8UYp9r9e41lVZoHCRfsHIw1znvfBA4o1K5lyXDTxV2AcdZzZj38X3NojHhoPwlrIKCqJDETONd0JDSjKRTOgHKk0K+cBG3YKlurZj/H8yrvbRNSIxiEd5F+Ju30z0vfp2Iq1kGS7bu/WepbilIiOC9PTl1/UR21o+3VziVW2NM8cXd8Mw== Received: from SN1NAM02FT035.eop-nam02.prod.protection.outlook.com (10.152.72.53) by SN1NAM02HT034.eop-nam02.prod.protection.outlook.com (10.152.73.130) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18; Mon, 8 Jun 2020 20:45:32 +0000 Received: from CH2PR14MB3579.namprd14.prod.outlook.com (2a01:111:e400:7e44::42) by SN1NAM02FT035.mail.protection.outlook.com (2a01:111:e400:7e44::145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18 via Frontend Transport; Mon, 8 Jun 2020 20:45:32 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:566671DDF64FD1DC662A52A5C06070DF92AB0278CEA58F54901CB5CD2BF2BDC7;UpperCasedChecksum:E9E8E3D5EB77EF2769E6D0471B8E3F77B21C86D2C7FA78ABC6DA0A2EE3EFF1CB;SizeAsReceived:7465;Count:48 Received: from CH2PR14MB3579.namprd14.prod.outlook.com ([fe80::2948:142c:3047:102c]) by CH2PR14MB3579.namprd14.prod.outlook.com ([fe80::2948:142c:3047:102c%4]) with mapi id 15.20.3066.023; Mon, 8 Jun 2020 20:45:32 +0000 From: Cole Helbling To: devel@spectrum-os.org Subject: [PATCH doc] Document spectrum-vm Date: Mon, 8 Jun 2020 13:44:20 -0700 Message-ID: X-Mailer: git-send-email 2.26.2 Content-Type: text/plain X-ClientProxiedBy: BY5PR16CA0023.namprd16.prod.outlook.com (2603:10b6:a03:1a0::36) To CH2PR14MB3579.namprd14.prod.outlook.com (2603:10b6:610:62::18) X-Microsoft-Original-Message-ID: <20200608204419.30238-1-cole.e.helbling@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from localhost.localdomain (67.187.170.40) by BY5PR16CA0023.namprd16.prod.outlook.com (2603:10b6:a03:1a0::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3066.18 via Frontend Transport; Mon, 8 Jun 2020 20:45:31 +0000 X-Mailer: git-send-email 2.26.2 X-Microsoft-Original-Message-ID: <20200608204419.30238-1-cole.e.helbling@outlook.com> X-TMN: [nyJIuFos4PlhxJUHFNquuj5K5t8ilTEt] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 50601522-cf9e-49ab-34f5-08d80bece2fc X-MS-Exchange-SLBlob-MailProps: ISIDp/2nRg0P5VvxTV4l3JQyvCgLRJqka2cBZzlf8BHtR50kTx4d2IRl1r3qbKn7FiKqmdYK0alrsvXd1y+fvwQ8cKlkWjWzwjN9BCLjhAztHETexjd8bUSWd/cHqou/64IykPvPKUUfHVSUemKmwb1tq1jdlur972w8w40Sa7/R8tFOXt2ataxn+MQMZuu2BnttearWzL1q9YlicCAgQNM2RchJpPiHVqidCP3sqXXtdfvXKVwWq2pb9cc5ZVL0PHvdSswMuzv1Arh9ksWbP9h/uJyTN0E49dIutQoS+efM4XcWDM4Jkk70/L9QZkii61FMeamWDtKLc3IUJFUR7/AdrFdTmTTiILexJbmwdXHl3oydMqpe5U5hwKHe85QryKeO8Fzoz8jug1yRE/22WHc6ST0fgPfghMsj/4iRULF34s0xetME/cScFD3DIVAk3uc+waneTWz5nq7WhH6PsZ7eITxPeNgqzQs5EuWUnkWx6cAGxQd6smW91R4OrH4sCTmGdVUeUklZMg0TIAtkxd2WYELwwgGhX8Y0JrB3j1fAzor8DsWpK1CkYXssmiPUD+/62a7lXmS8VrculAhr2vZRo5y/zYidIQphf+ujvJmeBeGh7GY1IWFDkOFiSM+RW9HKMD6ytEyR8x0eNOVdV4bdg6K0dqSHSKSBIx3i1PuPX1YRm8B+K+r4O4fOqNPLM020ckZnsi59hqMQmEOpI9fWroNvGUGUg0z3CHzq27gjioTIyJ5tZiM0btl8Ybx1/bWyh3LIuQnB5YqDk+4uvfAPbzEWidf2TrxCJUONrsk3hmXgt4e8fD/0rNdA4/HGDQQEhrmtE9Gjz5GXqCwluRbdQ3pjQi092IhPUePcY/Qa69TdKl+XIX2Y5vv2xOYSVzppC2wzViQ= X-MS-TrafficTypeDiagnostic: SN1NAM02HT034: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: URLRyTrGn4mbo31qNXSbjGoAf6BjI1OGSjvsS+buVkV7Z2iAJK8rObhWLP/NVcPoQMuF5f1zDxMUj2z3UJ6o8WjEbUqO2gnlxbJ65t7HDDv0OLFcCItlO+dByq9xzTgkuO+mqpwNeOn8mu8AEl4bXFSWEfr4+dWmPBJQRfnJt92U1h7ppidSoB7PZ9KR89jRvNI2pN0YW/XfwwYB/gDlH8R3lEySfiFF0aNq4oSG0SnA2ehHeh4yIr+uhCEsKuvy X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:0;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR14MB3579.namprd14.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:;DIR:OUT;SFP:1901; X-MS-Exchange-AntiSpam-MessageData: WJ7S5rMIk61OZOH2bgWRGSPv2A1bXElYIoIAw5su0mHMkq0Z3BB/xMQHfq/knZMMvNAfbV72xwY4xKLUVc7WltFNsoOUeVTuOfZsLT2IL6rUXp2fio/nBLZAlFM+L0gHxaBj436/2cM0KDI29CworQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 50601522-cf9e-49ab-34f5-08d80bece2fc X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2020 20:45:32.4826 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM02HT034 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: ASZVLPIJT66QH2FBPKVYFGZB5DIURE3P X-Message-ID-Hash: ASZVLPIJT66QH2FBPKVYFGZB5DIURE3P X-MailFrom: cole.e.helbling@outlook.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: Cole Helbling X-Mailman-Version: 3.3.1 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: spectrum-vm is a handy way to start a crosvm instance for testing crosvm itself, the kernel, or the rootfs. This commit adds some fledgling documentation on its functionality and usage. --- I feel like this is mostly a rough draft, so give me all your suggestions/criticisms/what have you. I put this section above the "Hacking on crosvm" section so that it will be introduced before it is used in an example. developer-manual.adoc | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/developer-manual.adoc b/developer-manual.adoc index b7eb2cb..739dc83 100644 --- a/developer-manual.adoc +++ b/developer-manual.adoc @@ -106,6 +106,49 @@ the https://spectrum-os.org/doc/crosvm/crosvm/[crosv= m documentation] for the version currently used by Spectrum is hosted on the Spectrum website. =20 +=3D=3D=3D=3D spectrum-vm + +`spectrum-vm` is a shell script that allows for testing various Spectrum +VM components, including crosvm, the kernel, and the rootfs. The +simplest way to use this tool is by running `nix-shell -I +nixpkgs=3D/path/to/nixpkgs-spectrum -p spectrumPackages.spectrum-vm --ru= n +spectrum-vm` in a terminal, which will start up an instance of crosvm +from Nixpkgs running Wayfire in a new window. + +**** +Be advised that Wayfire's default keymap is set to Dvorak +https://spectrum-os.org/git/nixpkgs/tree/pkgs/os-specific/linux/spectrum= /rootfs/default.nix[inside +of the rootfs] -- to change this to your preferred keymap, just set the +`xkb_layout` option (or remove it altogether for a default of QWERTY). +**** + +Once you are ready to end your crosvm session, switch back to where you +ran `spectrum-vm` and type `reboot` (not `poweroff`). This window is not +limited to just stopping the VM, however; it is a functional serial +console and you can even run commands like `env` and `cat +/etc/passwd`. + +As mentioned above, `spectrum-vm` also supports options that allow you +to specify custom components or run arbitrary commands before exiting: + +---- +nix-shell -I nixpkgs=3D/path/to/nixpkgs-spectrum -p spectrumPackages.spe= ctrum-vm + +nix-shell$ spectrum-vm --help +Usage: spectrum-vm [OPTION]... [-- CROSVM_OPTIONS] + + -c COMMAND shell command to run inside VM + -C, --crosvm PATH path to custom crosvm executable + -k, --kernel PATH path to custom kernel image + -f, --rootfs PATH path to custom root file system image + -- CROSVM_OPTIONS extra arguments to pass to crosvm + +nix-shell$ spectrum-vm -c 'echo $PATH' # print out the VM's PATH to the = serial terminal and exit +nix-shell$ spectrum-vm -C target/debug/crosvm -- --disable-sandbox # use= the specified crosvm and disable sandboxing +nix-shell$ spectrum-vm -k result/bzImage # use the specified kernel imag= e +nix-shell$ spectrum-vm -f squashfs # use the specified squashfs as the r= oot filesystem image +---- + =3D=3D=3D=3D Hacking on crosvm =20 There are a few ways to get a crosvm development environment. You can --=20 2.26.2