From 70fa66f6152d790aefb3af8f88ddbb197511bafa Mon Sep 17 00:00:00 2001 From: j1nx Date: Mon, 1 Mar 2021 21:58:30 +0100 Subject: [PATCH 1/9] Add and configure 20% of memory as zram swap with a low agressive swappiness --- .../board/raspberrypi/kernel.config | 3 + .../configs/rpi4_64-gui_defconfig | 1 + .../rootfs-overlay/etc/sysctl.conf | 1 + .../usr/lib/systemd/system/dev-zram0.swap | 10 +++ .../usr/lib/systemd/system/ovos-zram.target | 6 ++ .../usr/lib/systemd/system/zram-swap.service | 15 +++++ .../rootfs-overlay/usr/libexec/ovos-zram | 66 +++++++++++++++++++ 7 files changed, 102 insertions(+) create mode 100644 buildroot-external/rootfs-overlay/etc/sysctl.conf create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/dev-zram0.swap create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/ovos-zram.target create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-swap.service create mode 100755 buildroot-external/rootfs-overlay/usr/libexec/ovos-zram diff --git a/buildroot-external/board/raspberrypi/kernel.config b/buildroot-external/board/raspberrypi/kernel.config index ec70df16..2aaf5bd4 100644 --- a/buildroot-external/board/raspberrypi/kernel.config +++ b/buildroot-external/board/raspberrypi/kernel.config @@ -1,3 +1,6 @@ CONFIG_SND_SOC_WM8960=m # CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y + +CONFIG_ZRAM=y +CONFIG_ZSMALLOC=y diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig index 9b7fe978..6c52e03a 100644 --- a/buildroot-external/configs/rpi4_64-gui_defconfig +++ b/buildroot-external/configs/rpi4_64-gui_defconfig @@ -465,6 +465,7 @@ BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y BR2_PACKAGE_UTIL_LINUX_KILL=y BR2_PACKAGE_UTIL_LINUX_MORE=y +BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y BR2_PACKAGE_NANO=y BR2_PACKAGE_VIM=y # BR2_PACKAGE_VIM_RUNTIME is not set diff --git a/buildroot-external/rootfs-overlay/etc/sysctl.conf b/buildroot-external/rootfs-overlay/etc/sysctl.conf new file mode 100644 index 00000000..e0b01f0d --- /dev/null +++ b/buildroot-external/rootfs-overlay/etc/sysctl.conf @@ -0,0 +1 @@ +vm.swappiness = 20 diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/dev-zram0.swap b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/dev-zram0.swap new file mode 100644 index 00000000..a37c9248 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/dev-zram0.swap @@ -0,0 +1,10 @@ +[Unit] +Description=OVOS ZRAM swap +Requires=zram-swap.service +After=zram-swap.service + +[Swap] +What=/dev/zram0 + +[Install] +WantedBy=swap.target diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ovos-zram.target b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ovos-zram.target new file mode 100644 index 00000000..10e8e323 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ovos-zram.target @@ -0,0 +1,6 @@ +[Unit] +Description=OVOS zram targets +Documentation=man:systemd.target(5) + +[Install] +WantedBy=multi-user.target diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-swap.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-swap.service new file mode 100644 index 00000000..81532d1c --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-swap.service @@ -0,0 +1,15 @@ +[Unit] +Description=OVOS ZRAM swap +DefaultDependencies=no +Before=dev-zram0.swap +RefuseManualStart=true +RefuseManualStop=true + +[Service] +Type=oneshot +ExecStart=/usr/libexec/ovos-zram -t swap +RemainAfterExit=true +StandardOutput=null + +[Install] +WantedBy=ovos-zram.target diff --git a/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram new file mode 100755 index 00000000..e6d065be --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram @@ -0,0 +1,66 @@ +#!/bin/sh +# Credits go to: https://github.com/home-assistant/operating-system/ +set -e + +#### Options #### + +TYPE="" +MOUNT="" +DEVICE="" +SIZE=0 + +#### Parse arguments #### + +while [ "$1" != "" ]; do + key=$1 + case $key in + -t|--type) + TYPE=$2 + shift + ;; + -s|--size) + SIZE=$2 + shift + ;; + -m|--mount) + MOUNT=$2 + shift + ;; + *) + echo "[Error] $0 : Argument '$1' unknown" + exit 1 + ;; + esac + shift +done + +# Valide Type +if [ "$TYPE" != "swap" ]; then + echo "[Error] Type unknown!" + exit 1 +fi + +# Lookup device +if [ "$TYPE" = "swap" ]; then + DEVICE="/dev/zram0" +#elif [ "$MOUNT" = "var" ]; then +# DEVICE="/dev/zram1" +#elif [ "$MOUNT" = "tmp" ]; then +# DEVICE="/dev/zram2" +else + echo "[Error] No device for lookup!" + exit 1 +fi + +# Calc 20% of memory for ZRAM swap partition +if [ "$TYPE" = "swap" ] && [ "$SIZE" -eq "0" ]; then + SIZE="$(awk '/MemTotal/{ print $2 * 0.20 }' /proc/meminfo)K" +fi + +# Init device +zramctl "$DEVICE" -s "$SIZE" -a lz4 + +# Swap +if [ "$TYPE" = "swap" ]; then + mkswap -L "ovos-zramswap" "$DEVICE" +fi From 364d8be816a1b15a028ddfa45489d1ee12a3797a Mon Sep 17 00:00:00 2001 From: j1nx Date: Tue, 2 Mar 2021 13:36:55 +0100 Subject: [PATCH 2/9] Make sure we have some overlap with when it swaps and the left memory space. 30 means, start using swap when <=30% of free memory is left we reserve 20% of space for ZRAM compressed SWAP meaning 10% safety This 10% margin feels safer then the hard 80/20 ratio we had. --- buildroot-external/rootfs-overlay/etc/sysctl.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot-external/rootfs-overlay/etc/sysctl.conf b/buildroot-external/rootfs-overlay/etc/sysctl.conf index e0b01f0d..c8dc29f1 100644 --- a/buildroot-external/rootfs-overlay/etc/sysctl.conf +++ b/buildroot-external/rootfs-overlay/etc/sysctl.conf @@ -1 +1 @@ -vm.swappiness = 20 +vm.swappiness = 30 From ad5b3114db92537ae0e6ab88b68ebb6959f55cfa Mon Sep 17 00:00:00 2001 From: j1nx Date: Tue, 2 Mar 2021 17:01:39 +0100 Subject: [PATCH 3/9] Add ZRAM ramdisk support --- buildroot-external/rootfs-overlay/etc/fstab | 1 - .../usr/lib/systemd/system/ramdisk.mount | 16 ++++++++++++++++ .../usr/lib/systemd/system/zram-ramdisk.service | 15 +++++++++++++++ .../rootfs-overlay/usr/libexec/ovos-zram | 11 ++++++++--- 4 files changed, 39 insertions(+), 4 deletions(-) create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-ramdisk.service diff --git a/buildroot-external/rootfs-overlay/etc/fstab b/buildroot-external/rootfs-overlay/etc/fstab index 66eb28a8..ff9c5a7a 100644 --- a/buildroot-external/rootfs-overlay/etc/fstab +++ b/buildroot-external/rootfs-overlay/etc/fstab @@ -9,4 +9,3 @@ tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 sysfs /sys sysfs defaults 0 0 #tmpfs /var/log tmpfs defaults 0 0 tmpfs /var/tmp tmpfs defaults 0 0 -tmpfs /ramdisk tmpfs rw,nodev,nosuid,size=20M 0 0 diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount new file mode 100644 index 00000000..74769558 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount @@ -0,0 +1,16 @@ +[Unit] +Description=OVOS ZRAM ramdisk +DefaultDependencies=no +Requires=zram-ramdisk.service +After=zram-ramdisk.service +Before=umount.target +Conflicts=umount.target + +[Mount] +What=/dev/zram1 +Where=/ramdisk +Type=ext4 +Options=nobarrier,strictatime,nosuid,nodev + +[Install] +WantedBy=local-fs.target diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-ramdisk.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-ramdisk.service new file mode 100644 index 00000000..917e6d55 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-ramdisk.service @@ -0,0 +1,15 @@ +[Unit] +Description=OVOS ZRAM ramdisk +DefaultDependencies=no +Before=ramdisk.mount +RefuseManualStart=true +RefuseManualStop=true + +[Service] +Type=oneshot +ExecStart=/usr/libexec/ovos-zram -t fs -m ramdisk -s 20M +RemainAfterExit=true +StandardOutput=null + +[Install] +WantedBy=ovos-zram.target diff --git a/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram index e6d065be..55ba0fc9 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram +++ b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram @@ -35,7 +35,7 @@ while [ "$1" != "" ]; do done # Valide Type -if [ "$TYPE" != "swap" ]; then +if [ "$TYPE" != "swap" ] && [ "$TYPE" != "fs" ]; then echo "[Error] Type unknown!" exit 1 fi @@ -43,8 +43,8 @@ fi # Lookup device if [ "$TYPE" = "swap" ]; then DEVICE="/dev/zram0" -#elif [ "$MOUNT" = "var" ]; then -# DEVICE="/dev/zram1" +elif [ "$MOUNT" = "ramdisk" ]; then + DEVICE="/dev/zram1" #elif [ "$MOUNT" = "tmp" ]; then # DEVICE="/dev/zram2" else @@ -64,3 +64,8 @@ zramctl "$DEVICE" -s "$SIZE" -a lz4 if [ "$TYPE" = "swap" ]; then mkswap -L "ovos-zramswap" "$DEVICE" fi + +# FileSystem +if [ "$TYPE" = "fs" ]; then + mkfs.ext4 -L "ovos-$MOUNT" -O ^has_journal "$DEVICE" +fi From 40d4f26f9f2db57868286b44766c06823cf2f917 Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 4 Mar 2021 11:29:15 +0100 Subject: [PATCH 4/9] Increase the default amount of available zram drive slots to 4 (for now) --- buildroot-external/board/raspberrypi/cmdline.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildroot-external/board/raspberrypi/cmdline.txt b/buildroot-external/board/raspberrypi/cmdline.txt index 3b2a965b..d87e9d92 100644 --- a/buildroot-external/board/raspberrypi/cmdline.txt +++ b/buildroot-external/board/raspberrypi/cmdline.txt @@ -1 +1 @@ -dwc_otg.lpm_enable=0 root=PARTUUID=c0932a41-44cf-463b-8152-d43188553ed4 rootfstype=ext4 elevator=deadline fsck.repair=yes console=ttyAMA0,115200 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 rootwait quiet splash +dwc_otg.lpm_enable=0 root=PARTUUID=c0932a41-44cf-463b-8152-d43188553ed4 rootfstype=ext4 elevator=deadline fsck.repair=yes zram.enabled=1 zram.num_devices=4 console=ttyAMA0,115200 consoleblank=0 loglevel=0 vt.global_cursor_default=0 logo.nologo systemd.show_status=0 rootwait quiet splash From 2cc9d467520c17fd224c725cdac5683cffed7d7f Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 4 Mar 2021 13:20:54 +0100 Subject: [PATCH 5/9] Increase initial boot and rootfs partition sizes --- .../board/raspberrypi/genimage-raspberrypi4-64.cfg | 2 +- buildroot-external/configs/rpi4_64-gui_defconfig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildroot-external/board/raspberrypi/genimage-raspberrypi4-64.cfg b/buildroot-external/board/raspberrypi/genimage-raspberrypi4-64.cfg index 426af9a2..82623ddb 100644 --- a/buildroot-external/board/raspberrypi/genimage-raspberrypi4-64.cfg +++ b/buildroot-external/board/raspberrypi/genimage-raspberrypi4-64.cfg @@ -10,7 +10,7 @@ image boot.vfat { "Image" } } - size = 32M + size = 96M } image sdcard.img { diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig index 6c52e03a..00a6a633 100644 --- a/buildroot-external/configs/rpi4_64-gui_defconfig +++ b/buildroot-external/configs/rpi4_64-gui_defconfig @@ -472,7 +472,7 @@ BR2_PACKAGE_VIM=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y BR2_TARGET_ROOTFS_EXT2_LABEL="rootfs1" -BR2_TARGET_ROOTFS_EXT2_SIZE="2527M" +BR2_TARGET_ROOTFS_EXT2_SIZE="4000M" BR2_TARGET_ROOTFS_EXT2_MKFS_OPTIONS="-O 64bit -U c0932a41-44cf-463b-8152-d43188553ed4" # BR2_TARGET_ROOTFS_TAR is not set BR2_PACKAGE_HOST_CMAKE=y From 5a347163666d3089abfe182c1236331f0914ae06 Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 4 Mar 2021 20:47:27 +0100 Subject: [PATCH 6/9] Fix our growndisk implementation by moving it further within the boot proces --- .../package/growdisk-service/growdisk.service | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/buildroot-external/package/growdisk-service/growdisk.service b/buildroot-external/package/growdisk-service/growdisk.service index 45767c39..5f81093a 100644 --- a/buildroot-external/package/growdisk-service/growdisk.service +++ b/buildroot-external/package/growdisk-service/growdisk.service @@ -1,9 +1,9 @@ [Unit] Description=Growdisk service to auto expand the rootfs partition -DefaultDependencies=no Conflicts=shutdown.target -After=systemd-remount-fs.service -Before=sysinit.target shutdown.target +After=local-fs.target +Wants=local-fs.target +Before=shutdown.target [Service] Type=oneshot From 5712beb181155662e9db70ca7c592a570a47fcb5 Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 4 Mar 2021 20:50:26 +0100 Subject: [PATCH 7/9] Fix ramdisk permission errors making it below to the mycroft user --- buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf | 1 + .../rootfs-overlay/usr/lib/systemd/system/ramdisk.mount | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf index 75383d19..76ee8fd5 100644 --- a/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf +++ b/buildroot-external/rootfs-overlay/etc/tmpfiles.d/mycroft.conf @@ -1,2 +1,3 @@ d /var/log/mycroft 700 mycroft mycroft Z /opt/mycroft - mycroft mycroft +d /ramdisk 700 mycroft mycroft diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount index 74769558..75bd91f9 100644 --- a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/ramdisk.mount @@ -10,7 +10,7 @@ Conflicts=umount.target What=/dev/zram1 Where=/ramdisk Type=ext4 -Options=nobarrier,strictatime,nosuid,nodev +Options=rw,nobarrier,strictatime,nosuid,nodev [Install] WantedBy=local-fs.target From 95984efb37094e1af18da0f723bd266afb78ce54 Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 11 Mar 2021 09:29:17 +0100 Subject: [PATCH 8/9] Add var zram system and preperation for r/w FS overlay system --- buildroot-external/rootfs-overlay/etc/fstab | 8 -------- .../rootfs-overlay/mnt/data/.empty | 0 .../usr/lib/systemd/system/var.mount | 16 ++++++++++++++++ .../usr/lib/systemd/system/zram-var.service | 15 +++++++++++++++ .../rootfs-overlay/usr/libexec/ovos-zram | 14 +++++++++++++- 5 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 buildroot-external/rootfs-overlay/mnt/data/.empty create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/var.mount create mode 100644 buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-var.service diff --git a/buildroot-external/rootfs-overlay/etc/fstab b/buildroot-external/rootfs-overlay/etc/fstab index ff9c5a7a..e8ae59b0 100644 --- a/buildroot-external/rootfs-overlay/etc/fstab +++ b/buildroot-external/rootfs-overlay/etc/fstab @@ -1,11 +1,3 @@ # PARTUUID=9262aee5-2d23-4e09-baac-280591e2e834 /boot vfat defaults,noatime 0 0 PARTUUID=c0932a41-44cf-463b-8152-d43188553ed4 / ext4 defaults,noatime 0 1 -proc /proc proc defaults 0 0 -devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 -tmpfs /dev/shm tmpfs mode=0777 0 0 -tmpfs /tmp tmpfs mode=1777 0 0 -tmpfs /run tmpfs mode=0755,nosuid,nodev 0 0 -sysfs /sys sysfs defaults 0 0 -#tmpfs /var/log tmpfs defaults 0 0 -tmpfs /var/tmp tmpfs defaults 0 0 diff --git a/buildroot-external/rootfs-overlay/mnt/data/.empty b/buildroot-external/rootfs-overlay/mnt/data/.empty new file mode 100644 index 00000000..e69de29b diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var.mount b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var.mount new file mode 100644 index 00000000..a158e531 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/var.mount @@ -0,0 +1,16 @@ +[Unit] +Description=OVOS ZRAM var +DefaultDependencies=no +Requires=zram-var.service +After=zram-var.service +Before=umount.target +Conflicts=umount.target + +[Mount] +What=/dev/zram2 +Where=/var +Type=ext4 +Options=nobarrier + +[Install] +WantedBy=local-fs.target diff --git a/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-var.service b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-var.service new file mode 100644 index 00000000..f4e37898 --- /dev/null +++ b/buildroot-external/rootfs-overlay/usr/lib/systemd/system/zram-var.service @@ -0,0 +1,15 @@ +[Unit] +Description=OVOS ZRAM var +DefaultDependencies=no +Before=var.mount +RefuseManualStart=true +RefuseManualStop=true + +[Service] +Type=oneshot +ExecStart=/usr/libexec/ovos-zram -t fs -m var -s 32M +RemainAfterExit=true +StandardOutput=null + +[Install] +WantedBy=ovos-zram.target diff --git a/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram index 55ba0fc9..7ef94408 100755 --- a/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram +++ b/buildroot-external/rootfs-overlay/usr/libexec/ovos-zram @@ -45,8 +45,10 @@ if [ "$TYPE" = "swap" ]; then DEVICE="/dev/zram0" elif [ "$MOUNT" = "ramdisk" ]; then DEVICE="/dev/zram1" +elif [ "$MOUNT" = "var" ]; then + DEVICE="/dev/zram2" #elif [ "$MOUNT" = "tmp" ]; then -# DEVICE="/dev/zram2" +# DEVICE="/dev/zram3" else echo "[Error] No device for lookup!" exit 1 @@ -69,3 +71,13 @@ fi if [ "$TYPE" = "fs" ]; then mkfs.ext4 -L "ovos-$MOUNT" -O ^has_journal "$DEVICE" fi + +# Copy persistent file structures into zram device +if [ "$MOUNT" = "var" ]; then + # Check if this is a first run + if [ ! -d /mnt/data/var ]; then + mkdir -p /mnt/data/var + cp -af /var/* /mnt/data/var/ + fi + cp -af /mnt/data/var/* "$DEVICE" +fi From 02908351b9c1a7e4763766f0bf216942138442ba Mon Sep 17 00:00:00 2001 From: j1nx Date: Thu, 11 Mar 2021 14:01:32 +0100 Subject: [PATCH 9/9] Additin of systemd profiling tools to reprofile the boot process --- buildroot-external/configs/rpi4_64-gui_defconfig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/buildroot-external/configs/rpi4_64-gui_defconfig b/buildroot-external/configs/rpi4_64-gui_defconfig index 00a6a633..5fa166f4 100644 --- a/buildroot-external/configs/rpi4_64-gui_defconfig +++ b/buildroot-external/configs/rpi4_64-gui_defconfig @@ -451,6 +451,8 @@ BR2_PACKAGE_SUDO=y BR2_PACKAGE_TIME=y BR2_PACKAGE_WHICH=y BR2_PACKAGE_HTOP=y +BR2_PACKAGE_SYSTEMD_ANALYZE=y +BR2_PACKAGE_SYSTEMD_BACKLIGHT=y BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y BR2_PACKAGE_SYSTEMD_HIBERNATE=y BR2_PACKAGE_SYSTEMD_LOCALED=y @@ -460,6 +462,7 @@ BR2_PACKAGE_SYSTEMD_POLKIT=y BR2_PACKAGE_SYSTEMD_RANDOMSEED=y BR2_PACKAGE_SYSTEMD_REPART=y # BR2_PACKAGE_SYSTEMD_RESOLVED is not set +BR2_PACKAGE_SYSTEMD_BOOTCHART=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y