mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-01 11:36:49 +00:00
b5193291bd
When fstools is unable to parse our root=<...> arg correctly, it can fall back to scanning all block devices for a 'rootfs_data' partition. This fallback was deemed wrong (or at least, a breaking/incompatible change) for some targets, so we're forced to opt back into it with fstools_partname_fallback_scan=1. Without this, OnHub devices will use a rootfs-appended loop device for rootfs_data instead of the intended 3rd partition. While I'm at it, just move all the boot args into the 'cros-vboot' build rule, instead of using the custom bootargs-append. All cros-vboot subtargets here are using the same rootwait (to support both eMMC and USB boot) and root/partition args. Signed-off-by: Brian Norris <computersforpeace@gmail.com> [ drop unrelated comments in commit description ] Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
61 lines
1.9 KiB
Makefile
61 lines
1.9 KiB
Makefile
define Build/cros-gpt
|
|
cp $@ $@.tmp 2>/dev/null || true
|
|
ptgen -o $@.tmp -g \
|
|
-T cros_kernel -N kernel -p $(CONFIG_TARGET_KERNEL_PARTSIZE)m \
|
|
-N rootfs -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)m \
|
|
-N rootfs_data -p \
|
|
$$((3687-$(CONFIG_TARGET_ROOTFS_PARTSIZE)-\
|
|
$(CONFIG_TARGET_KERNEL_PARTSIZE)))m
|
|
cat $@.tmp >> $@
|
|
rm $@.tmp
|
|
endef
|
|
|
|
define Build/append-kernel-part
|
|
dd if=$(IMAGE_KERNEL) bs=$(CONFIG_TARGET_KERNEL_PARTSIZE)M conv=sync >> $@
|
|
endef
|
|
|
|
# NB: Chrome OS bootloaders replace the '%U' in command lines with the UUID of
|
|
# the kernel partition it chooses to boot from. This gives a flexible way to
|
|
# consistently build and sign kernels that always use the subsequent
|
|
# (PARTNROFF=1) partition as their rootfs.
|
|
define Build/cros-vboot
|
|
$(STAGING_DIR_HOST)/bin/cros-vbutil \
|
|
-k $@ \
|
|
-c "root=PARTUUID=%U/PARTNROFF=1 rootwait fstools_partname_fallback_scan=1" \
|
|
-o $@.new
|
|
@mv $@.new $@
|
|
endef
|
|
|
|
define Device/OnhubImage
|
|
KERNEL_LOADADDR = 0x44208000
|
|
SOC := qcom-ipq8064
|
|
KERNEL_SUFFIX := -fit-zImage.itb.vboot
|
|
KERNEL_NAME := zImage
|
|
KERNEL = kernel-bin | fit none $$(KDIR)/image-$$(DEVICE_DTS).dtb | cros-vboot
|
|
IMAGES := factory.bin sysupgrade.bin
|
|
IMAGE/factory.bin := cros-gpt | append-kernel-part | append-rootfs
|
|
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
|
|
DEVICE_PACKAGES := ath10k-firmware-qca988x-ct e2fsprogs kmod-fs-ext4 losetup \
|
|
partx-utils mkf2fs kmod-fs-f2fs \
|
|
ucode kmod-google-firmware kmod-tpm-i2c-infineon \
|
|
kmod-sound-soc-ipq8064-storm kmod-usb-storage
|
|
endef
|
|
|
|
define Device/asus_onhub
|
|
$(call Device/OnhubImage)
|
|
DEVICE_VENDOR := ASUS
|
|
DEVICE_MODEL := OnHub SRT-AC1900
|
|
DEVICE_DTS := $$(SOC)-asus-onhub
|
|
BOARD_NAME := asus-onhub
|
|
endef
|
|
TARGET_DEVICES += asus_onhub
|
|
|
|
define Device/tplink_onhub
|
|
$(call Device/OnhubImage)
|
|
DEVICE_VENDOR := TP-Link
|
|
DEVICE_MODEL := OnHub AC1900 Cloud Router
|
|
DEVICE_DTS := $$(SOC)-tplink-onhub
|
|
BOARD_NAME := tplink-onhub
|
|
endef
|
|
TARGET_DEVICES += tplink_onhub
|