commit | e043793ce4968d66e0abfc27e4be9c976ba2ccb6 | [log] [tgz] |
---|---|---|
author | Duncan Laurie <dlaurie@google.com> | Tue Dec 11 17:07:14 2018 |
committer | chrome-bot <chrome-bot@chromium.org> | Tue Dec 18 00:52:21 2018 |
tree | 4622d4e950e0fd2de26c54de788d0b6018b5a5c7 | |
parent | c748ebdb82cf1495e31a8dea6191340dd3530a83 [diff] |
initramfs: Conditionally include and use ectool In order to support systems without Chromium EC the recovery script is changed to look for the ectool binary before using it, and the build system is changed to conditionally include the ectool binary only if the "cros_ec" USE flag is set. BUG=chromium:913766 TEST="USE=factory_netboot_ramfs emerge-sarien chromeos-initramfs" CQ-DEPEND=CL:1372284 Change-Id: I0c117cff5bed3dee2f79404c2392961faefe04dd Signed-off-by: Duncan Laurie <dlaurie@google.com> Reviewed-on: https://chromium-review.googlesource.com/1372266 Reviewed-by: Hung-Te Lin <hungte@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.xz
, then do followings on DUT:
mount -o remount,exec /mnt/stateful_partition
mkdir /mnt/stateful_partition/test; cd /mnt/stateful_partition/test
xzcat /tmp/XXXXXX_ramfs.cpio.xz | cpio -iv
stop ui; kill $(pidof frecon)
bind mount /dev, /proc, /sys and /tmp in /mnt/stateful_partition/test
chroot /mnt/stateful_partition/test/init