We need some sort of container init that has a pipe back to the host. This could be done with virtio-sockets. (FR for networking purposes: use this channel to have the VM set up an IPv4 address that is assigned by the host)
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a commit a633fcf0d41ce6c5ef051dc3093350efce8b6c2a Author: Chirantan Ekbote <chirantan@chromium.org> Date: Tue Jul 25 03:32:45 2017 grpc: Introduce ebuild for version 1.3.0 Add an ebuild for gRPC version 1.3.0. BUG= chromium:708732 TEST='sudo emerge grpc' and 'emerge-$BOARD grpc' complete successfully Change-Id: Iefe0c6fce7a89162f2f71473c6d4b1ade2db7787 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/530051 Reviewed-by: Mike Frysinger <vapier@chromium.org> [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/chromeos/config/env/dev-libs/grpc [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/Manifest [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/files/0003-grpc-1.3.0-Fix-unsecure-.pc-files.patch [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/files/0004-grpc-1.3.0-Support-vsock.patch [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/files/0005-grpc-1.3.0-Don-t-run-ldconfig.patch [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/files/0001-grpc-1.3.0-Fix-incorrect-sonames-and-library-path.patch [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/grpc-1.3.0.ebuild [add] https://crrev.com/a633fcf0d41ce6c5ef051dc3093350efce8b6c2a/dev-libs/grpc/files/0002-grpc-1.3.0-Fix-cross-compiling.patch
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/80e76800d25273f2e5ce0d6fc8b314077c701ae0 commit 80e76800d25273f2e5ce0d6fc8b314077c701ae0 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Tue Jul 25 03:32:45 2017 target-chromium-os-sdk: Add dependency on gRPC gRPC needs to be installed in the SDK so that projects that use gRPC can use the language-specific plugins to generate code from the .proto files. BUG= chromium:708732 TEST='sudo emerge grpc' and then 'emerge-$BOARD maitred' Change-Id: Ib06d0a93fa36da5f2497445900ea0f7553862423 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/537162 Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/80e76800d25273f2e5ce0d6fc8b314077c701ae0/virtual/target-chromium-os-sdk/target-chromium-os-sdk-1.ebuild [rename] https://crrev.com/80e76800d25273f2e5ce0d6fc8b314077c701ae0/virtual/target-chromium-os-sdk/target-chromium-os-sdk-1-r78.ebuild
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/2bb04d584eadf0cbb2de96de757fa3ebdf8e42d5 commit 2bb04d584eadf0cbb2de96de757fa3ebdf8e42d5 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Jul 26 23:46:48 2017 common-mk: Add support for grpc Add support for generating gRPC code from proto3 files. BUG= chromium:708732 TEST=Built maitred code with gRPC CQ-DEPEND=CL:537162 Change-Id: I86739364347c0b15f3092b600fb181e1ce840a9d Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/534777 Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/2bb04d584eadf0cbb2de96de757fa3ebdf8e42d5/common-mk/protoc.gypi
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/4aae408dfb618be8aed0762d477a9c966f709016 commit 4aae408dfb618be8aed0762d477a9c966f709016 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Jul 26 23:46:48 2017 vm_tools: Initial commit Initial commit of vm_tools directory with OWNERS and README.md. BUG= chromium:708732 TEST=none Change-Id: Ib7583389709f439e4087f1b2886178cfa24b0eaf Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/550410 Reviewed-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> [add] https://crrev.com/4aae408dfb618be8aed0762d477a9c966f709016/vm_tools/OWNERS [add] https://crrev.com/4aae408dfb618be8aed0762d477a9c966f709016/vm_tools/README.md
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/966f06a3fd2eb0f461b69fde4d924b19e14193a1 commit 966f06a3fd2eb0f461b69fde4d924b19e14193a1 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Jul 26 23:46:48 2017 vm_tools: Add .proto files for host <-> guest communication Add .proto files to define the different services that will be running between the guest and the host. BUG= chromium:708732 TEST=In a later CL Change-Id: I2c0b86399f2bc015a23e70d70b113c0af254021a Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/550411 Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [add] https://crrev.com/966f06a3fd2eb0f461b69fde4d924b19e14193a1/vm_tools/proto/guest.proto [add] https://crrev.com/966f06a3fd2eb0f461b69fde4d924b19e14193a1/vm_tools/proto/host.proto [add] https://crrev.com/966f06a3fd2eb0f461b69fde4d924b19e14193a1/vm_tools/proto/common.proto
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/85ccde3888d35ab8f752a70de331186456d1eed7 commit 85ccde3888d35ab8f752a70de331186456d1eed7 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Jul 26 23:46:48 2017 vm_tools: Add maitred service implementation Implement the maitred service, which runs inside the VM. BUG= chromium:708732 TEST=unit tests and simple test program Change-Id: Icb65e1ccd4804002fb2a1b30b525d2b1a79d8bd0 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/550412 Reviewed-by: Stephen Barber <smbarber@chromium.org> [add] https://crrev.com/85ccde3888d35ab8f752a70de331186456d1eed7/vm_tools/maitred/main.cc [add] https://crrev.com/85ccde3888d35ab8f752a70de331186456d1eed7/vm_tools/maitred/service_impl.h [add] https://crrev.com/85ccde3888d35ab8f752a70de331186456d1eed7/vm_tools/vm_tools.gyp [add] https://crrev.com/85ccde3888d35ab8f752a70de331186456d1eed7/vm_tools/maitred/service_impl_unittest.cc [add] https://crrev.com/85ccde3888d35ab8f752a70de331186456d1eed7/vm_tools/maitred/service_impl.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac commit 5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Aug 09 18:47:54 2017 vm_tools: Add syslog collector Add the vm_syslog tool, which will be responsible for listening on the syslog socket (/dev/log) inside the VM and forwarding the logs it receives to a service on the host for persistent storage. BUG= chromium:708732 TEST=unit tests and manual verification of behavior Change-Id: I673fd2f1bd61bd0ba3e5f8fa957875c4da03333c Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/565965 Reviewed-by: Mike Frysinger <vapier@chromium.org> [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/parser_unittest.cc [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/main.cc [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/collector.cc [modify] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/vm_tools.gyp [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/parser.h [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/collector.h [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/parser.cc [modify] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/proto/host.proto [add] https://crrev.com/5e8a5fd81d783a2ecda93cbf2b713f7406ae4dac/vm_tools/syslog/collector_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/a025a5981380359e6f36eaa11f58faa9a31e7426 commit a025a5981380359e6f36eaa11f58faa9a31e7426 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Aug 09 18:47:54 2017 vm_tools: Forward kernel logs from /dev/kmsg Add support to vm_syslog for reading the kernel log buffer in /dev/kmsg and forwarding the contents out to the host. BUG= chromium:708732 TEST=unit tests and manual verification of behavior Change-Id: I530681d04dce23b3a9d0602d9dd5ac04ac5b2224 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/585578 Reviewed-by: Eric Caruso <ejcaruso@chromium.org> [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/parser_unittest.cc [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/collector.cc [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/parser.h [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/collector.h [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/parser.cc [modify] https://crrev.com/a025a5981380359e6f36eaa11f58faa9a31e7426/vm_tools/syslog/collector_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/df820a2f72d674dcfa7a4701e8fc02fa7c3ab4b1 commit df820a2f72d674dcfa7a4701e8fc02fa7c3ab4b1 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Aug 09 18:47:55 2017 vm_tools: maitred: Log to /dev/kmsg Configure maitred to send its log messages to /dev/kmsg. There are several reasons to send maitred logs here instead of to the standard syslog: * When maitred runs as init, vm_syslog will not be running (since it needs to be started by maitred) so some early maitred logs will be lost. * The kernel automatically mounts /dev after mounting the rootfs. This means that /dev/kmsg will always be available. * maitred doesn't need to depend on anything other than the kernel. * Developers will be able to see maitred logs just by booting a VM kernel with the serial console enabled. This is useful if it's not possible to extract logs out of the VM in some other way. BUG= chromium:708732 TEST=manual. Run maitred and see that its messages show up in /dev/kmsg. Change-Id: Ia85ea78f8234a21fd018f4ef6d0088052ff9fbda Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/590947 Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/df820a2f72d674dcfa7a4701e8fc02fa7c3ab4b1/vm_tools/maitred/main.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/2cfcd62d63ab535e3b6185db3c860515eb030950 commit 2cfcd62d63ab535e3b6185db3c860515eb030950 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Mon Aug 21 19:52:09 2017 vm_tools: maitred: Add support to run as init Add support for maitre'd to run as pid 1 inside the VM. Processes are launched via a new LaunchProcess rpc. BUG= chromium:708732 TEST=manual. Use client program to launch process and verify functionality. Change-Id: I59c09c9b7a49092d25ac8c3e78927b523b10c432 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/604714 Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/service_impl.h [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/vm_tools.gyp [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/service_impl_unittest.cc [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/main.cc [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/proto/guest.proto [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/service_impl.cc [add] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/docs/init.md [modify] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/README.md [add] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/init.cc [add] https://crrev.com/2cfcd62d63ab535e3b6185db3c860515eb030950/vm_tools/maitred/init.h
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/e8c403c5fd7d07c486d05507afdeb9f3312122e0 commit e8c403c5fd7d07c486d05507afdeb9f3312122e0 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Mon Aug 21 19:52:10 2017 vm_tools: maitred: Add client tool Add a maitred_client tool that can be run on the host system to send maitred rpcs for performing various tasks. For each rpc, the tool expects a path to a text proto file that fills in the request protobuf of that rpc. Example textproto files are included. Additionally, since this directory now contains both host and guest tools, split the gyp file into common, host, and guest configurations, respectively. The common code gets built by vm_tools.gyp while the appropriate .gypi file is included depending on whether the USE_kvm_host flag is set. BUG= chromium:708732 TEST=manual. Run the client and see that the server responds correctly. Change-Id: I5150ba2e6faad71df6f2f8906613e6ec88875f9c Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/604715 [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/maitred/client.cc [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/host.gypi [modify] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/vm_tools.gyp [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/maitred/vm_syslog.textproto [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/maitred/agetty.textproto [modify] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/common-mk/common.gypi [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/maitred/network-config.textproto [add] https://crrev.com/e8c403c5fd7d07c486d05507afdeb9f3312122e0/vm_tools/guest.gypi
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/502346db9bef404a21a19daa1f3cb6c25bc6bfa2 commit 502346db9bef404a21a19daa1f3cb6c25bc6bfa2 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Mon Aug 21 19:52:10 2017 vm_tools: Document changes in syslog behavior Rather than having multiple vm_launcher instances collecting logs from multiple VMs, we will instead have a single daemon that collects logs from all VMs, scrubs them, and then forwards them to the syslog on the host. BUG= chromium:708732 TEST=none Change-Id: I563833fee02e3a6550181f7f1c9b7296f972dcfe Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/617805 Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/502346db9bef404a21a19daa1f3cb6c25bc6bfa2/vm_tools/README.md
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/2b9d4bbdb50ef072d8ee8b0e5ed270dede1f2675 commit 2b9d4bbdb50ef072d8ee8b0e5ed270dede1f2675 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Tue Aug 22 00:55:27 2017 vm_tools: Add new ebuild Add a new ebuild for the vm_tools built from platform2. BUG= chromium:708732 TEST=emerge-$BOARD vm_tools works CQ-DEPEND=CL:604715 Change-Id: I0793d445dd9140b48497218dbe32cf52a39ed3a9 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/565352 Reviewed-by: Mike Frysinger <vapier@chromium.org> [add] https://crrev.com/2b9d4bbdb50ef072d8ee8b0e5ed270dede1f2675/chromeos-base/vm_tools/metadata.xml [add] https://crrev.com/2b9d4bbdb50ef072d8ee8b0e5ed270dede1f2675/chromeos-base/vm_tools/vm_tools-9999.ebuild
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/133f38081129635fba48ad68fd817be141675043 commit 133f38081129635fba48ad68fd817be141675043 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Tue Aug 22 02:53:02 2017 target-termina-os: Add vm_tools as a dependency Add vm_tools and remove upstart as runtime dependencies of the OS. vm_tools now provides /sbin/init so we don't need upstart anymore. BUG= chromium:708732 TEST=termina_build_image and verify that maitred is on the rootfs CQ-DEPEND=CL:565352 Change-Id: I4237aec96ecd85f7307162aa7f3679053a92dbc2 Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/604402 [rename] https://crrev.com/133f38081129635fba48ad68fd817be141675043/project-termina/virtual/target-termina-os/target-termina-os-1.5-r6.ebuild [modify] https://crrev.com/133f38081129635fba48ad68fd817be141675043/project-termina/virtual/target-termina-os/target-termina-os-1.5.ebuild
Marking this fixed. Please open new bugs for missing features.
Comment 1 by bugdroid1@chromium.org
, Jul 25 2017