commit | dd287e2cc9646c2425e1fa56b54d42e8dec692db | [log] [tgz] |
---|---|---|
author | Dmytro Maluka <dmy@semihalf.com> | Fri May 06 14:31:47 2022 |
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Aug 30 13:36:02 2022 |
tree | 48df7ce5dc5dc17903d1b970614b3db0b50da1c1 | |
parent | 2df99e149442a2f1c86a88c2374c71bfc73b86c2 [diff] |
initramfs: enable RTC interrupts passthrough ChromeOS receives RTC interrupts (along with RTC acpi events), so ChromeOS VM in ManaTEE should be able to receive them too. That said, this fix might be completely optional: RTC wakeup seems to work as well with RTC acpi events passthrough only, without RTC interrupts. Also from rtc-cmos driver source in kernel it looks like it is actually redundant: cmos_interrupt() is called by the acpi event handler as well as by the irq handler. However, let's keep it close to the non-virtualized behavior. BUG=b:225285399 TEST=Boot ManaTEE, verify that RTC wakeup works and rtc0 interrupt count in /proc/interrupts increases along with acpi event count in /sys/firmware/acpi/interrupts/ff_rt_clk. Change-Id: I6109ec4f2e76b7dd87496b02b23da4cfd1eeeb59 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/initramfs/+/3632105 Tested-by: Dmytro Maluka <dmaluka@google.com> Commit-Queue: Dmytro Maluka <dmaluka@google.com> Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
Build logic for creating standalone initramfs environments.
See the README files in the respective subdirs for more details.
Normally you wouldn't build in this directory directly. Instead, you would build the chromeos-initramfs package with the right USE flags. e.g.:
$ USE=recovery_ramfs emerge-$BOARD chromeos-initramfs
That will install the cpio initramfs files into the sysroot for you to build into a kernel directly. The various build scripts would then be used to make the right kernel/image using those (e.g. mod_image_for_recovery.sh).
You could build these by hand for quick testing. Inside the chroot:
$ make SYSROOT=/build/$BOARD BOARD=$BOARD <target>
That will create the cpio archives for you.
It is possible to debug few of the initramfs targets in QEMU. Read test/README.md for more information.
Also, here is a shortcut for developing/debugging graphical bits in initramfs, without having to create a full image for every iteration.
After emerge-$BOARD
, find your initramfs package from chroot /build/$BOARD/var/lib/initramfs
and copy to a running DUT, for example /tmp/recovery_ramfs.cpio
, then do followings on DUT over SSH:
mkdir /usr/local/test/; cd /usr/local/test
xzcat /tmp/XXXXXX_ramfs.cpio | toybox cpio -iv
(Here we assume that the kernel is configured to use xz compression for its initramfs.)stop ui; kill $(pidof frecon)
for d in dev proc sys tmp; do mount --bind /${d} /usr/local/test/${d} done
chroot /usr/local/test /init