xref: /aosp_15_r20/external/crosvm/tools/examples/example_simple.ps1 (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker <#
2*bb4ee6a4SAndroid Build Coastguard Worker .Description
3*bb4ee6a4SAndroid Build Coastguard Worker Runs an ubuntu image. The image itself needs to be built on linux as per instructions at
4*bb4ee6a4SAndroid Build Coastguard Worker https://crosvm.dev/book/running_crosvm/example_usage.html#preparing-the-guest-os-image
5*bb4ee6a4SAndroid Build Coastguard Worker 
6*bb4ee6a4SAndroid Build Coastguard Worker The console is a pipe at \\.\pipe\crosvm-debug that you can connect to using apps like
7*bb4ee6a4SAndroid Build Coastguard Worker putty.
8*bb4ee6a4SAndroid Build Coastguard Worker .PARAMETER IMAGE_DIR
9*bb4ee6a4SAndroid Build Coastguard Worker Directory where initrd, rootfs and vmlinuz are located. Defaults to user's tmp directory.
10*bb4ee6a4SAndroid Build Coastguard Worker .PARAMETER LOGS_DIR
11*bb4ee6a4SAndroid Build Coastguard Worker Directory where logs will be written to. Defaults to user's tmp directory.
12*bb4ee6a4SAndroid Build Coastguard Worker #>
13*bb4ee6a4SAndroid Build Coastguard Worker param (
14*bb4ee6a4SAndroid Build Coastguard Worker     [Parameter(
15*bb4ee6a4SAndroid Build Coastguard Worker         Position = 0
16*bb4ee6a4SAndroid Build Coastguard Worker     )]
17*bb4ee6a4SAndroid Build Coastguard Worker     [string]$IMAGE_DIR = $Env:TEMP, ##
18*bb4ee6a4SAndroid Build Coastguard Worker     [Parameter(
19*bb4ee6a4SAndroid Build Coastguard Worker         Position = 1
20*bb4ee6a4SAndroid Build Coastguard Worker     )]
21*bb4ee6a4SAndroid Build Coastguard Worker     [string]$LOGS_DIR = $Env:TEMP  ##
22*bb4ee6a4SAndroid Build Coastguard Worker )
23*bb4ee6a4SAndroid Build Coastguard Worker 
24*bb4ee6a4SAndroid Build Coastguard Worker $VMLINUZ = Join-Path $IMAGE_DIR "vmlinuz"
25*bb4ee6a4SAndroid Build Coastguard Worker $ROOTFS = Join-Path $IMAGE_DIR "rootfs"
26*bb4ee6a4SAndroid Build Coastguard Worker $INITRD = Join-Path $IMAGE_DIR "initrd"
27*bb4ee6a4SAndroid Build Coastguard Worker $SERIAL = "\\.\pipe\crosvm-debug"
28*bb4ee6a4SAndroid Build Coastguard Worker $LOGS_DIR = Join-Path $LOGS_DIR "\"
29*bb4ee6a4SAndroid Build Coastguard Worker 
30*bb4ee6a4SAndroid Build Coastguard Worker $PATHS = $IMAGE_DIR, $VMLINUZ, $ROOTFS, $INITRD, $LOGS_DIR
31*bb4ee6a4SAndroid Build Coastguard Worker 
32*bb4ee6a4SAndroid Build Coastguard Worker foreach ($path in $PATHS) {
33*bb4ee6a4SAndroid Build Coastguard Worker     if (!(Test-Path $path)) {
34*bb4ee6a4SAndroid Build Coastguard Worker         throw (New-Object System.IO.FileNotFoundException("Path not found: $path", $path))
35*bb4ee6a4SAndroid Build Coastguard Worker     }
36*bb4ee6a4SAndroid Build Coastguard Worker }
37*bb4ee6a4SAndroid Build Coastguard Worker 
38*bb4ee6a4SAndroid Build Coastguard Worker cargo run --features "all-msvc64,whpx" -- `
39*bb4ee6a4SAndroid Build Coastguard Worker     --log-level INFO `
40*bb4ee6a4SAndroid Build Coastguard Worker     run-mp `
41*bb4ee6a4SAndroid Build Coastguard Worker     --logs-directory $LOGS_DIR `
42*bb4ee6a4SAndroid Build Coastguard Worker     --cpus 1 `
43*bb4ee6a4SAndroid Build Coastguard Worker     --mem 4096 `
44*bb4ee6a4SAndroid Build Coastguard Worker     --serial "hardware=serial,type=namedpipe,path=$SERIAL,num=1,console=true" `
45*bb4ee6a4SAndroid Build Coastguard Worker     --params "nopat clocksource=jiffies root=/dev/vda5 loglevel=7 console=/dev/ttyS1 console=/dev/ttyS0"  `
46*bb4ee6a4SAndroid Build Coastguard Worker     --host-guid "dontcare" `
47*bb4ee6a4SAndroid Build Coastguard Worker     --rwdisk $ROOTFS `
48*bb4ee6a4SAndroid Build Coastguard Worker     --initrd $INITRD `
49*bb4ee6a4SAndroid Build Coastguard Worker     $VMLINUZ
50