diff --git a/device.mk b/device.mk index 4403d3f..246ac80 100644 --- a/device.mk +++ b/device.mk @@ -140,9 +140,19 @@ PRODUCT_PACKAGES += \ com.android.hardware.power # Ramdisk +# Set BOARD_STORAGE_SUPPORTS_DISCARD := true in BoardConfig.mk (or a device +# variant makefile) to enable TRIM on the metadata partition. Only do this if +# your storage device actually supports discard (SD cards, SSDs) — USB flash +# drives typically don't, and requesting discard on them stalls jbd2. +ifeq ($(BOARD_STORAGE_SUPPORTS_DISCARD),true) +_FSTAB_SRC := $(DEVICE_PATH)/ramdisk/fstab.rpi4.discard +else +_FSTAB_SRC := $(DEVICE_PATH)/ramdisk/fstab.rpi4 +endif + PRODUCT_COPY_FILES += \ - $(DEVICE_PATH)/ramdisk/fstab.rpi4:$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi4 \ - $(DEVICE_PATH)/ramdisk/fstab.rpi4:$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi4 \ + $(_FSTAB_SRC):$(TARGET_COPY_OUT_RAMDISK)/fstab.rpi4 \ + $(_FSTAB_SRC):$(TARGET_COPY_OUT_VENDOR)/etc/fstab.rpi4 \ $(DEVICE_PATH)/ramdisk/init.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.rc \ $(DEVICE_PATH)/ramdisk/init.rpi4.usb.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.rpi4.usb.rc \ $(DEVICE_PATH)/ramdisk/ueventd.rpi4.rc:$(TARGET_COPY_OUT_VENDOR)/etc/ueventd.rc diff --git a/ramdisk/fstab.rpi4.discard b/ramdisk/fstab.rpi4.discard new file mode 100644 index 0000000..30f97f0 --- /dev/null +++ b/ramdisk/fstab.rpi4.discard @@ -0,0 +1,12 @@ +# Android fstab file. +# The filesystem that contains the filesystem checker binary (typically /system) cannot +# specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK + +# +/dev/block/by-name/system /system ext4 ro,barrier=1 wait,first_stage_mount +/dev/block/by-name/system_ext /system_ext ext4 ro,barrier=1 wait,first_stage_mount +/dev/block/by-name/vendor /vendor ext4 ro,barrier=1 wait,first_stage_mount +/dev/block/by-name/metadata /metadata ext4 noatime,nosuid,nodev,discard wait,formattable,first_stage_mount +/dev/block/by-name/userdata /data ext4 noatime,nosuid,nodev,nomblk_io_submit,errors=panic wait,check,formattable,quota +/devices/platform/scb/*.pcie/*/*/*/usb* auto auto defaults voldmanaged=usb:auto +/devices/platform/soc/*.usb/usb* auto auto defaults voldmanaged=usb:auto