blob: 29eaa0b46da9a2cce5ae41763454f999e32d2d07 [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//src/virtualization/packages/guest_package.gni")
declare_args() {
# Package the rootfs as a QCOW image (as opposed to a flat file).
debian_guest_qcow = true
debian_guest_earlycon = false
}
initrd_image = "initrd.img"
rootfs_image = "rootfs.qcow2"
tests_image = "tests.img"
linux_image = "vmlinuz"
guest_prebuilt("initrd") {
source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${initrd_image}"
output = "${target_out_dir}/debian/${initrd_image}"
}
guest_prebuilt("rootfs") {
source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${rootfs_image}"
output = "${target_out_dir}/debian/${rootfs_image}"
}
guest_prebuilt("tests") {
source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${tests_image}"
output = "${target_out_dir}/debian/${tests_image}"
}
guest_prebuilt("kernel") {
source = "//prebuilt/virtualization/packages/debian_guest/images/${target_cpu}/${linux_image}"
output = "${target_out_dir}/debian/${linux_image}"
}
guest_package("debian_guest") {
deps = [
":initrd",
":kernel",
":tests",
]
cmdline = "root=/dev/vda rw"
if (debian_guest_earlycon) {
if (target_cpu == "x64") {
cmdline += " earlycon=uart,io,0x3f8"
} else if (target_cpu == "arm64") {
cmdline += " earlycon=pl011,0x808300000"
} else {
panic("Unsupported architecture ${target_cpu}")
}
}
linux = "${target_out_dir}/debian/${linux_image}"
ramdisk = "${target_out_dir}/debian/${initrd_image}"
disk_name = "filesystem.img"
if (debian_guest_qcow) {
deps += [ ":rootfs" ]
disk_path = rebase_path("${target_out_dir}/debian/${rootfs_image}")
disk_options = "ro,qcow,volatile"
} else {
disk_path = rebase_path("${target_out_dir}/debian/rootfs.img")
disk_options = "ro,volatile"
}
resources = [
{
path = disk_path
dest = disk_name
},
]
block_devices = [ "data/${disk_name},${disk_options}" ]
tests_filename = "tests.img"
resources += [
{
path = rebase_path("${target_out_dir}/debian/${tests_image}")
dest = "${tests_filename}"
},
]
block_devices += [ "data/${tests_filename},ro" ]
deps += [ "//src/virtualization/lib/guest_interaction:extras" ]
gis_out_dir =
get_label_info("//src/virtualization/lib/guest_interaction:extras",
"target_out_dir")
resources += [
{
path = rebase_path("$gis_out_dir/linux/extras.img")
dest = "extras.img"
},
]
block_devices += [ "data/extras.img,ro" ]
}