blob: 6d3ef992c7e8792dfc8e5d784c8abc37f430625b [file] [log] [blame]
Jan Kundrát1b5a4282018-04-05 21:32:53 +02001CZECHLIGHT_RAUC_TMP_TARGET_DIR = $(FS_DIR)/rootfs.czechlight-rauc.tmp
2
3CZECHLIGHT_RAUC_IMAGE_VERSION = dev
4
5$(BINARIES_DIR)/update.raucb: host-rauc rootfs-tar
6 @$(call MESSAGE,"Generating RAUC update bundle")
7 $(RM) -rf $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)
8 mkdir -p $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)
9 sed \
10 -e 's|CZECHLIGHT_RAUC_IMAGE_VERSION|$(call qstrip,$(CZECHLIGHT_RAUC_IMAGE_VERSION))|' \
11 -e 's|CZECHLIGHT_RAUC_COMPATIBLE|$(call qstrip,$(CZECHLIGHT_RAUC_COMPATIBLE))|' \
Jan Kundrátae54f382018-04-09 10:29:55 +020012 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/rauc-manifest.raucm.in \
Jan Kundrát1b5a4282018-04-05 21:32:53 +020013 > $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)/manifest.raucm
14
15 $(RM) -f $(BINARIES_DIR)/update.raucb
16 ln $(BINARIES_DIR)/rootfs.tar.xz $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)
17 tar -cJf $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)/cfg.tar.xz -T /dev/null
Jan Kundrátae54f382018-04-09 10:29:55 +020018 cp $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/rauc-hook.sh $(CZECHLIGHT_RAUC_TMP_TARGET_DIR)/hook.sh
Jan Kundrát1b5a4282018-04-05 21:32:53 +020019
Jan Kundrát4fbf2d22019-03-01 14:05:38 +010020 PATH=$(HOST_DIR)/bin:$(PATH) $(HOST_DIR)/bin/rauc \
Jan Kundrát1b5a4282018-04-05 21:32:53 +020021 --cert $(BR2_EXTERNAL_CZECHLIGHT_PATH)/crypto/rauc-cert.pem \
22 --key $(BR2_EXTERNAL_CZECHLIGHT_PATH)/crypto/rauc-key.pem \
23 bundle $(CZECHLIGHT_RAUC_TMP_TARGET_DIR) $(BINARIES_DIR)/update.raucb
24
25rootfs-czechlight-rauc: $(BINARIES_DIR)/update.raucb
26
27rootfs-czechlight-rauc-show-depends:
28 @echo host-rauc rootfs-tar
29
30.PHONY: rootfs-czechlight-rauc rootfs-czechlight-rauc-show-depends
31
32ifeq ($(CZECHLIGHT_RAUC_ROOTFS),y)
33TARGETS_ROOTFS += rootfs-czechlight-rauc
34ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_COMPATIBLE)),)
35$(error CZECHLIGHT_RAUC_COMPATIBLE cannot be empty)
36endif
37endif
Jan Kundrátf7edef32018-04-05 23:04:31 +020038
39CZECHLIGHT_RAUC_INSTALL_TARGET = YES
Jan Kundrátde3594f2018-05-24 16:28:06 +020040CZECHLIGHT_RAUC_DEPENDENCIES = rauc
Jan Kundrátf7edef32018-04-05 23:04:31 +020041
42ifeq ($(BR2_PACKAGE_CZECHLIGHT_RAUC),y)
43
44ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_BOOTLOADER)),)
45$(error Unsupported bootloader for RAUC)
46endif
47
48ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_SLOT_A_ROOTFS_DEV)),)
49$(error CZECHLIGHT_RAUC_SLOT_A_ROOTFS_DEV cannot be empty)
50endif
51ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_SLOT_A_CFG_DEV)),)
52$(error CZECHLIGHT_RAUC_SLOT_A_CFG_DEV cannot be empty)
53endif
54ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_SLOT_B_ROOTFS_DEV)),)
55$(error CZECHLIGHT_RAUC_SLOT_B_ROOTFS_DEV cannot be empty)
56endif
57ifeq ($(call qstrip,$(CZECHLIGHT_RAUC_SLOT_B_CFG_DEV)),)
58$(error CZECHLIGHT_RAUC_SLOT_B_CFG_DEV cannot be empty)
59endif
60
61endif # BR2_PACKAGE_CZECHLIGHT_RAUC
62
63define CZECHLIGHT_RAUC_INSTALL_TARGET_CMDS
Jan Kundrátdcb85882018-04-05 23:06:14 +020064 $(INSTALL) -D -m 0644 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/crypto/rauc-cert.pem $(TARGET_DIR)/etc/rauc/keyring.pem
Jan Kundrátf7edef32018-04-05 23:04:31 +020065 $(INSTALL) -D -m 0644 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/system.conf.in $(TARGET_DIR)/etc/rauc/system.conf
Jan Kundráta8c2b3a2018-04-09 10:32:11 +020066 sed -i -E -e "s|CZECHLIGHT_RAUC_BOOTLOADER|$(call qstrip, $(CZECHLIGHT_RAUC_BOOTLOADER))|" \
Jan Kundrátf7edef32018-04-05 23:04:31 +020067 -e 's|CZECHLIGHT_RAUC_COMPATIBLE|$(call qstrip,$(CZECHLIGHT_RAUC_COMPATIBLE))|' \
68 -e "s|CZECHLIGHT_RAUC_SLOT_A_ROOTFS_DEV|$(call qstrip,$(CZECHLIGHT_RAUC_SLOT_A_ROOTFS_DEV))|" \
69 -e "s|CZECHLIGHT_RAUC_SLOT_A_CFG_DEV|$(call qstrip,$(CZECHLIGHT_RAUC_SLOT_A_CFG_DEV))|" \
70 -e "s|CZECHLIGHT_RAUC_SLOT_B_ROOTFS_DEV|$(call qstrip,$(CZECHLIGHT_RAUC_SLOT_B_ROOTFS_DEV))|" \
71 -e "s|CZECHLIGHT_RAUC_SLOT_B_CFG_DEV|$(call qstrip,$(CZECHLIGHT_RAUC_SLOT_B_CFG_DEV))|" \
72 $(TARGET_DIR)/etc/rauc/system.conf
Jan Kundrátde3594f2018-05-24 16:28:06 +020073 mkdir -p $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
Jan Kundrátcfca0b52018-04-09 11:45:52 +020074 $(INSTALL) -D -m 0644 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/rauc-mark-good.service \
75 $(TARGET_DIR)/usr/lib/systemd/system/
76 ln -sf ../rauc-mark-good.service $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
Jan Kundrát7ac11342018-06-14 18:56:05 +020077 $(INSTALL) -D -m 0644 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/enable-hw-watchdog.service \
78 $(TARGET_DIR)/usr/lib/systemd/system/
79 ln -sf ../enable-hw-watchdog.service $(TARGET_DIR)/usr/lib/systemd/system/multi-user.target.wants/
Jan Kundrát7ad22582018-08-22 19:06:45 +020080
81 # Just for USB flashing
82 mkdir -p $(TARGET_DIR)/usr/lib/systemd/system-generators/
83 $(INSTALL) -D -m 0755 \
84 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/czechlight-usb-flash-mount-generator \
85 $(TARGET_DIR)/usr/lib/systemd/system-generators/
86 $(INSTALL) -D -m 0644 \
87 $(BR2_EXTERNAL_CZECHLIGHT_PATH)/package/czechlight-rauc/usb-flash.service \
88 $(TARGET_DIR)/usr/lib/systemd/system/
Jan Kundrátf7edef32018-04-05 23:04:31 +020089endef
90
91$(eval $(generic-package))