diff --git a/Makefile b/Makefile index e21b506f..d93aea23 100644 --- a/Makefile +++ b/Makefile @@ -23,10 +23,6 @@ $(TARGETS_CONFIG): %-config: $(TARGETS): %: $(RELEASE_DIR) %-config @echo "build $@" $(MAKE) -C $(BUILDROOT) BR2_EXTERNAL=../$(BUILDROOT_EXTERNAL) 2>&1 | tee logs/buildroot_$@_output.txt - #rsync -ah --progress $(BUILDROOT)/output/images/disk.img $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img - #rsync -ah --progress $(BUILDROOT)/output/images/rootfs.swu $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu - #xz -3 -T0 -v -f $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img - #xz -3 -T0 -v -f $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu xz -2 -v -f -T0 -c $(BUILDROOT)/output/images/disk.img > $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).img.xz rsync -ah --progress $(BUILDROOT)/output/images/rootfs.swu $(RELEASE_DIR)/OpenVoiceOS_$@_$(BUILDDATE).swu @if [ $@ = "ova_64" ]; then\ diff --git a/buildroot b/buildroot index cb869be2..5a586768 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit cb869be2b2c5788ebe6cea31d4d6b2718441e95c +Subproject commit 5a5867681b5709859f2eebf24e9576451e9a7c0f diff --git a/buildroot-external/board/ovos/raspberrypi/grub-efi.cfg b/buildroot-external/board/ovos/raspberrypi/grub-efi.cfg index f28fb3c1..26c66bd2 100644 --- a/buildroot-external/board/ovos/raspberrypi/grub-efi.cfg +++ b/buildroot-external/board/ovos/raspberrypi/grub-efi.cfg @@ -1,4 +1,5 @@ -serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 +set serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 +set terminal --timeout=3 serial console set timeout=3 set timeout_style=menu @@ -64,7 +65,7 @@ else fi fi -default_cmdline="fsck.repair=yes zram.enabled=1 zram.num_devices=3 logo.nologo systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait" +default_cmdline="rd.shell console=tty0 console=serial0,115200 fsck.repair=yes zram.enabled=1 zram.num_devices=3 logo.nologo systemd.unified_cgroup_hierarchy=1 cgroup_enable=cpuset cgroup_memory=1 $boot_condition rootwait" file_env -f ($root)/cmdline.txt cmdline regexp --set 1:boothd (.+),.+ ${root} @@ -72,18 +73,14 @@ regexp --set 1:boothd (.+),.+ ${root} # Save all changes to necessary environment variables at once save_env -f /EFI/BOOT/grub.env ustate boot_counter rootfs -menuentry "OpenVoiceOS - Slot A ${rootfs_status_A}" { - linux (${boothd},gpt2)/boot/kernel root=UUID=c0932a41-44cf-463b-8152-d43188553ed4 rootrw=UUID=f1326040-5236-40eb-b683-aaa100a9afcf $default_cmdline $cmdline +menuentry "OpenVoiceOS - UUID" { + linux (${boothd},gpt2)/boot/kernel root=live:UUID=c0932a41-44cf-463b-8152-d43188553ed4 rd.live.overlay=UUID=f1326040-5236-40eb-b683-aaa100a9afcf $default_cmdline $cmdline } -menuentry "OpenVoiceOS - Slot B ${rootfs_status_B}" { - linux (${boothd},gpt3)/boot/kernel root=UUID=3adea996-45ad-4928-920e-ffb5aedd00cb rootrw=UUID=f1326040-5236-40eb-b683-aaa100a9afcf $default_cmdline $cmdline +menuentry "OpenVoiceOS - PARTUUID" { + linux (${boothd},gpt3)/boot/kernel root=live:PARTUUID=c0932a41-44cf-463b-8152-d43188553ed4 rd.live.overlay=PARTUUID=f1326040-5236-40eb-b683-aaa100a9afcf $default_cmdline $cmdline } -menuentry "OpenVoiceOS - Slot A (Rescue shell)" { - linux (${boothd},gpt2)/boot/kernel root=PARTUUID=c0932a41-44cf-463b-8152-d43188553ed4 ro $default_cmdline $cmdline systemd.unit=rescue.target -} - -menuentry "OpenVoiceOS - Slot B (Rescue shell)" { - linux (${boothd},gpt3)/boot/kernel root=PARTUUID=3adea996-45ad-4928-920e-ffb5aedd00cb ro $default_cmdline $cmdline systemd.unit=rescue.target +menuentry "OpenVoiceOS - SDA2" { + linux (${boothd},gpt2)/boot/kernel root=live:/dev/sda2 rd.live.overlay=/dev/sda2 $default_cmdline $cmdline } diff --git a/buildroot-external/board/ovos/raspberrypi/patches/linux/0001-Add-support-for-the-XMOS-VocalFusion-3510-INT-soundc.patch b/buildroot-external/board/ovos/raspberrypi/patches/linux/0001-Add-support-for-the-XMOS-VocalFusion-3510-INT-soundc.patch.bu similarity index 100% rename from buildroot-external/board/ovos/raspberrypi/patches/linux/0001-Add-support-for-the-XMOS-VocalFusion-3510-INT-soundc.patch rename to buildroot-external/board/ovos/raspberrypi/patches/linux/0001-Add-support-for-the-XMOS-VocalFusion-3510-INT-soundc.patch.bu diff --git a/buildroot-external/board/ovos/raspberrypi/rpi4/config.txt b/buildroot-external/board/ovos/raspberrypi/rpi4/config.txt index 29e949e7..74632232 100644 --- a/buildroot-external/board/ovos/raspberrypi/rpi4/config.txt +++ b/buildroot-external/board/ovos/raspberrypi/rpi4/config.txt @@ -71,3 +71,5 @@ dtparam=spi=on # Enable boost from 1.5Ghz to 1.8Ghz on compatible models arm_boost=1 + +enable_uart=1 diff --git a/buildroot-external/configs/rpi4_64_defconfig b/buildroot-external/configs/rpi4_64_defconfig index 6733e273..ec981069 100644 --- a/buildroot-external/configs/rpi4_64_defconfig +++ b/buildroot-external/configs/rpi4_64_defconfig @@ -1,11 +1,7 @@ BR2_aarch64=y BR2_cortex_a72=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_12=y -BR2_BINUTILS_VERSION_2_41_X=y -BR2_BINUTILS_GPROFNG=y -BR2_GCC_VERSION_14_X=y -BR2_TOOLCHAIN_BUILDROOT_CXX=y -BR2_TOOLCHAIN_BUILDROOT_FORTRAN=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y BR2_TOOLCHAIN_GLIBC_GCONV_LIBS_COPY=y BR2_WGET="wget --passive-ftp -nd -t 3" BR2_DL_DIR="../../downloads" @@ -34,7 +30,7 @@ BR2_ROOTFS_POST_IMAGE_SCRIPT="$(BR2_EXTERNAL)/scripts/post-image.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_TARBALL=y -BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,545eb1a62b733857dd4556dfd67e6c81d73fc0e4)/linux-545eb1a62b733857dd4556dfd67e6c81d73fc0e4.tar.gz" +BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,236f36133619216a5c8faea1a8c2c93c83efc2f4)/linux-236f36133619216a5c8faea1a8c2c93c83efc2f4.tar.gz" BR2_LINUX_KERNEL_DEFCONFIG="bcm2711" BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL)/kernel/ovos.config $(BR2_EXTERNAL)/kernel/device-drivers.config $(BR2_EXTERNAL)/kernel/docker.config $(BR2_EXTERNAL)/board/ovos/raspberrypi/kernel.config" BR2_LINUX_KERNEL_LZ4=y @@ -48,6 +44,7 @@ BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y BR2_PACKAGE_LINUX_TOOLS_GPIO=y BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL)/busybox.config" +BR2_PACKAGE_BUSYBOX_INDIVIDUAL_BINARIES=y BR2_PACKAGE_ALSA_UTILS=y BR2_PACKAGE_ALSA_UTILS_ALSACONF=y BR2_PACKAGE_ALSA_UTILS_ACONNECT=y @@ -67,6 +64,9 @@ BR2_PACKAGE_ALSA_UTILS_SPEAKER_TEST=y BR2_PACKAGE_FFMPEG=y BR2_PACKAGE_FFMPEG_GPL=y BR2_PACKAGE_FFMPEG_NONFREE=y +# BR2_PACKAGE_FFMPEG_FFMPEG is not set +BR2_PACKAGE_FFMPEG_POSTPROC=y +BR2_PACKAGE_FFMPEG_SWSCALE=y # BR2_PACKAGE_GSTREAMER1_PARSE is not set # BR2_PACKAGE_GSTREAMER1_TRACE is not set # BR2_PACKAGE_GSTREAMER1_GST_DEBUG is not set @@ -79,27 +79,17 @@ BR2_PACKAGE_PIPEWIRE_V4L2=y BR2_PACKAGE_PULSEAUDIO=y BR2_PACKAGE_TINYCOMPRESS=y BR2_PACKAGE_WIREPLUMBER=y -BR2_PACKAGE_BZIP2=y -BR2_PACKAGE_GZIP=y -BR2_PACKAGE_LZIP=y -BR2_PACKAGE_LZOP=y -BR2_PACKAGE_P7ZIP=y BR2_PACKAGE_UNRAR=y BR2_PACKAGE_UNZIP=y -BR2_PACKAGE_ZIP=y -BR2_PACKAGE_ZSTD=y -BR2_PACKAGE_MEMSTAT=y -BR2_PACKAGE_NMON=y BR2_PACKAGE_BINUTILS=y BR2_PACKAGE_DIFFUTILS=y BR2_PACKAGE_FINDUTILS=y -BR2_PACKAGE_FLEX=y BR2_PACKAGE_GIT=y BR2_PACKAGE_GREP=y BR2_PACKAGE_JO=y BR2_PACKAGE_JQ=y -BR2_PACKAGE_PATCH=y BR2_PACKAGE_PKGCONF=y +BR2_PACKAGE_SED=y BR2_PACKAGE_CPIO=y BR2_PACKAGE_DOSFSTOOLS=y BR2_PACKAGE_DOSFSTOOLS_FATLABEL=y @@ -115,6 +105,7 @@ BR2_PACKAGE_FUSE_OVERLAYFS=y BR2_PACKAGE_NTFS_3G=y BR2_PACKAGE_MESA3D=y BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y +BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM=y BR2_PACKAGE_MESA3D_OPENGL_ES=y BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI=y BR2_PACKAGE_BRCMFMAC_SDIO_FIRMWARE_RPI_BT=y @@ -126,14 +117,14 @@ BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4_CD=y BR2_PACKAGE_RPI_FIRMWARE_CONFIG_FILE="$(BR2_EXTERNAL)/board/ovos/raspberrypi/rpi4/config.txt" # BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS is not set BR2_PACKAGE_AVRDUDE=y +BR2_PACKAGE_CRYPTSETUP=y BR2_PACKAGE_DBUS_PYTHON=y BR2_PACKAGE_GPTFDISK=y BR2_PACKAGE_GPTFDISK_GDISK=y BR2_PACKAGE_GPTFDISK_SGDISK=y BR2_PACKAGE_I2C_TOOLS=y BR2_PACKAGE_PARTED=y -BR2_PACKAGE_SPI_TOOLS=y -BR2_PACKAGE_JIMTCL=y +BR2_PACKAGE_RNG_TOOLS=y BR2_PACKAGE_LUA=y BR2_PACKAGE_PYTHON3=y BR2_PACKAGE_PYTHON3_PY_PYC=y @@ -143,41 +134,32 @@ BR2_PACKAGE_PYTHON_SPIDEV=y BR2_PACKAGE_ALSA_LIB_PYTHON=y BR2_PACKAGE_ALSA_PLUGINS=y BR2_PACKAGE_LIBSAMPLERATE=y -BR2_PACKAGE_LIBSOXR=y -BR2_PACKAGE_LILV=y -BR2_PACKAGE_OPUS=y -BR2_PACKAGE_PORTAUDIO=y -BR2_PACKAGE_SPEEXDSP=y BR2_PACKAGE_WEBRTC_AUDIO_PROCESSING=y BR2_PACKAGE_LIBARCHIVE=y BR2_PACKAGE_LIBDEFLATE=y +BR2_PACKAGE_LZO=y BR2_PACKAGE_CA_CERTIFICATES=y -BR2_PACKAGE_LIBARGON2=y BR2_PACKAGE_LIBKSBA=y BR2_PACKAGE_LIBSSH2=y +BR2_PACKAGE_LIBSSH2_OPENSSL=y BR2_PACKAGE_LIBOPENSSL_BIN=y BR2_PACKAGE_LIBOPENSSL_ENGINES=y BR2_PACKAGE_SQLITE=y BR2_PACKAGE_LIBCONFIG=y +BR2_PACKAGE_LIBCONFUSE=y BR2_PACKAGE_LIBLOCKFILE=y BR2_PACKAGE_LIBNFS=y BR2_PACKAGE_LIBSYSFS=y BR2_PACKAGE_LOCKDEV=y BR2_PACKAGE_PHYSFS=y -BR2_PACKAGE_DTC=y -BR2_PACKAGE_DTC_PROGRAMS=y -BR2_PACKAGE_JITTERENTROPY_LIBRARY=y -BR2_PACKAGE_LIBAIO=y BR2_PACKAGE_LIBGPIOD2=y BR2_PACKAGE_LIBGPIOD2_TOOLS=y -BR2_PACKAGE_LIBGUDEV=y BR2_PACKAGE_LIBINPUT=y BR2_PACKAGE_LIBINPUT_PYTHON_TOOLS=y -BR2_PACKAGE_LIBV4L=y -BR2_PACKAGE_LIBV4L_UTILS=y BR2_PACKAGE_JSON_GLIB=y BR2_PACKAGE_LIBFASTJSON=y BR2_PACKAGE_LIBXML2=y +BR2_PACKAGE_SORD=y BR2_PACKAGE_LIBCAMERA_PYTHON=y BR2_PACKAGE_LIBCAMERA_V4L2=y BR2_PACKAGE_LIBCAMERA_PIPELINE_RPI_VC4=y @@ -185,21 +167,14 @@ BR2_PACKAGE_LIBCAMERA_PIPELINE_SIMPLE=y BR2_PACKAGE_LIBCAMERA_PIPELINE_UVCVIDEO=y BR2_PACKAGE_LIBCAMERA_PIPELINE_VIMC=y BR2_PACKAGE_LIBCAMERA_APPS=y -BR2_PACKAGE_LIBOGG=y BR2_PACKAGE_LIBCURL=y BR2_PACKAGE_LIBCURL_CURL=y -BR2_PACKAGE_LIBPSL=y +BR2_PACKAGE_LIBIDN2=y BR2_PACKAGE_SLIRP4NETNS=y BR2_PACKAGE_FFTW=y -BR2_PACKAGE_GOBJECT_INTROSPECTION=y -BR2_PACKAGE_JEMALLOC=y -BR2_PACKAGE_LIBCAP_TOOLS=y BR2_PACKAGE_LIBDAEMON=y -BR2_PACKAGE_LIBEVENT=y -BR2_PACKAGE_LIBUNWIND=y BR2_PACKAGE_LIBUV=y BR2_PACKAGE_NCURSES_WCHAR=y -BR2_PACKAGE_MOBILE_BROADBAND_PROVIDER_INFO=y BR2_PACKAGE_AARDVARK_DNS=y BR2_PACKAGE_BLUEZ_TOOLS=y BR2_PACKAGE_BLUEZ5_UTILS=y @@ -241,6 +216,8 @@ BR2_PACKAGE_WPA_SUPPLICANT_CLI=y BR2_PACKAGE_WPA_SUPPLICANT_WPA_CLIENT_SO=y BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y BR2_PACKAGE_WPA_SUPPLICANT_DBUS=y +BR2_PACKAGE_DASH=y +BR2_PACKAGE_BASH_COMPLETION=y BR2_PACKAGE_CATATONIT=y BR2_PACKAGE_FILE=y BR2_PACKAGE_GNUPG=y @@ -270,8 +247,10 @@ BR2_PACKAGE_SWUPDATE_USB=y BR2_PACKAGE_SYSTEMD_KERNELINSTALL=y BR2_PACKAGE_SYSTEMD_ANALYZE=y BR2_PACKAGE_SYSTEMD_BACKLIGHT=y -BR2_PACKAGE_SYSTEMD_BINFMT=y # BR2_PACKAGE_SYSTEMD_PSTORE is not set +BR2_PACKAGE_SYSTEMD_FIRSTBOOT=y +BR2_PACKAGE_SYSTEMD_HIBERNATE=y +# BR2_PACKAGE_SYSTEMD_HOSTNAMED is not set # BR2_PACKAGE_SYSTEMD_HWDB is not set BR2_PACKAGE_SYSTEMD_LOCALED=y BR2_PACKAGE_SYSTEMD_LOGIND=y @@ -281,6 +260,7 @@ BR2_PACKAGE_SYSTEMD_OOMD=y BR2_PACKAGE_SYSTEMD_POLKIT=y BR2_PACKAGE_SYSTEMD_RANDOMSEED=y BR2_PACKAGE_SYSTEMD_REPART=y +BR2_PACKAGE_SYSTEMD_SYSUSERS=y BR2_PACKAGE_SYSTEMD_UTMP=y BR2_PACKAGE_TAR=y BR2_PACKAGE_UTIL_LINUX_BINARIES=y @@ -288,6 +268,7 @@ BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y BR2_PACKAGE_UTIL_LINUX_KILL=y BR2_PACKAGE_UTIL_LINUX_LOGGER=y BR2_PACKAGE_UTIL_LINUX_LOGIN=y +BR2_PACKAGE_UTIL_LINUX_LOSETUP=y BR2_PACKAGE_UTIL_LINUX_LSMEM=y BR2_PACKAGE_UTIL_LINUX_MESG=y BR2_PACKAGE_UTIL_LINUX_MORE=y @@ -302,11 +283,8 @@ BR2_PACKAGE_NANO=y BR2_PACKAGE_VIM=y # BR2_PACKAGE_VIM_RUNTIME is not set BR2_TARGET_ROOTFS_CPIO_DRACUT=y -BR2_TARGET_ROOTFS_CPIO_DRACUT_MODULES="$(BR2_EXTERNAL)/dracut/modules.d" BR2_TARGET_ROOTFS_CPIO_DRACUT_CONF_FILES="$(BR2_EXTERNAL)/dracut/conf/dracut.conf" BR2_TARGET_ROOTFS_EROFS=y -BR2_TARGET_ROOTFS_EROFS_LZ4HC_LEVEL=12 -BR2_TARGET_ROOTFS_EROFS_DEDUPE=y BR2_TARGET_ROOTFS_EROFS_FRAGMENTS=y BR2_TARGET_ROOTFS_EROFS_ZTAILPACKING=y BR2_TARGET_ROOTFS_EROFS_PCLUSTERSIZE=262144 @@ -323,6 +301,7 @@ BR2_PACKAGE_HOST_GO_BIN=y BR2_PACKAGE_HOST_MKPASSWD=y BR2_PACKAGE_HOST_MTOOLS=y BR2_PACKAGE_HOST_PKGCONF=y +BR2_PACKAGE_HOST_QEMU=y BR2_PACKAGE_ALSA_UCM_CONF=y BR2_PACKAGE_BTSPEAKER=y BR2_PACKAGE_NCPAMIXER=y diff --git a/buildroot-external/dracut/conf/dracut.conf b/buildroot-external/dracut/conf/dracut.conf index a08b868e..e5159a7b 100644 --- a/buildroot-external/dracut/conf/dracut.conf +++ b/buildroot-external/dracut/conf/dracut.conf @@ -5,61 +5,55 @@ i18n_install_all=no lvmconf=no mdadmconf=no early_microcode=no -hostonly=no -hostonly_cmdline=no use_fstab=no -kernel_cmdline="rd.break=initqueue" do_strip=no -no_kernel=yes -filesystems+=" \ -overlayfs \ -" # Dracut modules needed add_dracutmodules+=" \ -readonly-rootfs-overlay \ +00-merged-usr \ +dbus-daemon \ +dm \ +dmsquash-live \ +dmsquash-live-autooverlay \ +dracut-systemd \ +libc-links \ +overlayfs \ +shell-interpreter \ +systemd \ +systemd-initrd \ +systemd-journald \ +systemd-modules-load \ +systemd-sysctl \ +systemd-tmpfiles \ +systemd-udevd " # Modules to ignore omit_dracutmodules+=" \ -base \ -bash \ biosdevname \ btrfs \ -bluetooth \ -busybox \ caps \ cifs \ connman \ crypt \ crypt-gpg \ -dash \ dbus-broker \ -dbus-daemon \ -dm \ dmraid \ dmsquash-live-ntfs \ -dracut-systemd \ fcoe \ fcoe-uefi \ -fs-lib \ hwdb \ iscsi \ -i18n \ -kernel-modules \ -kernel-modules-extra \ lvmmerge \ lvmthinpool-monitor \ lvm \ -lunmask \ mdraid \ memstrack \ -mksh \ modsign \ -mount-root \ multipath \ nbd \ network-legacy \ +network-manager \ network-wicked \ nfs \ nvdimm \ @@ -68,44 +62,21 @@ parse-lunmask \ pcsc \ qemu \ qemu-net \ -resume \ -rootfs-block \ rngd \ -shell-interpreter \ -shutdown \ -systemd \ -systemd-udevd \ +ssh-client \ +stratis \ +systemd-ac-power \ +systemd-bsod \ systemd-coredump \ systemd-cryptsetup \ -systemd-ask-password \ -systemd-timedated \ -systemd-rfkill \ -systemd-resolved \ systemd-hostnamed \ -systemd-initrd \ -systemd-integritysetup \ -systemd-journald \ systemd-ldconfig \ systemd-networkd \ -systemd-timesyncd \ -systemd-udev \ -systemd-veritysetup \ -systemd-modules-load \ systemd-pcrphase \ systemd-portabled \ systemd-pstore \ -systemd-sysctl \ -systemd-repart \ systemd-sysext \ -systemd-sysusers \ -systemd-tmpfiles \ -squash \ -ssh-client \ -stratis \ -terminfo \ +squash-squashfs \ tpm2-tss \ -udev-rules \ -url-lib \ -usrmount \ virtiofs \ " diff --git a/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/init-readonly-rootfs-overlay-boot.sh b/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/init-readonly-rootfs-overlay-boot.sh deleted file mode 100755 index ff1af418..00000000 --- a/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/init-readonly-rootfs-overlay-boot.sh +++ /dev/null @@ -1,208 +0,0 @@ -#!/bin/sh - -# Enable strict shell mode -set -euo pipefail - -PATH=/sbin:/bin:/usr/sbin:/usr/bin - -MOUNT="/bin/mount" -UMOUNT="/bin/umount" - -INIT="/sbin/init" -ROOT_ROINIT="/sbin/init" - -ROOT_MOUNT="/mnt" -ROOT_RODEVICE="" -ROOT_RWDEVICE="" -ROOT_ROMOUNT="/media/rfs/ro" -ROOT_RWMOUNT="/media/rfs/rw" -ROOT_RWRESET="no" - -ROOT_ROFSTYPE="" -ROOT_ROMOUNTOPTIONS="bind" -ROOT_ROMOUNTOPTIONS_DEVICE="noatime,nodiratime" - -ROOT_RWFSTYPE="" -ROOT_RWMOUNTOPTIONS="rw,noatime tmpfs" -ROOT_RWMOUNTOPTIONS_DEVICE="rw,noatime" - -early_setup() { - mkdir -p /proc - mkdir -p /sys - $MOUNT -t proc proc /proc - $MOUNT -t sysfs sysfs /sys - grep -w "/dev" /proc/mounts >/dev/null || $MOUNT -t devtmpfs none /dev -} - -read_args() { - [ -z "${CMDLINE+x}" ] && CMDLINE=`cat /proc/cmdline` - for arg in $CMDLINE; do - # Set optarg to option parameter, and '' if no parameter was - # given - optarg=`expr "x$arg" : 'x[^=]*=\(.*\)' || echo ''` - case $arg in - root=*) - ROOT_RODEVICE=$optarg ;; - rootfstype=*) - ROOT_ROFSTYPE="$optarg" - modprobe $optarg 2> /dev/null || \ - log "Could not load $optarg module";; - rootinit=*) - ROOT_ROINIT=$optarg ;; - rootoptions=*) - ROOT_ROMOUNTOPTIONS_DEVICE="$optarg" ;; - rootrw=*) - ROOT_RWDEVICE=$optarg ;; - rootrwfstype=*) - ROOT_RWFSTYPE="$optarg" - modprobe $optarg 2> /dev/null || \ - log "Could not load $optarg module";; - rootrwreset=*) - ROOT_RWRESET=$optarg ;; - rootrwoptions=*) - ROOT_RWMOUNTOPTIONS_DEVICE="$optarg" ;; - init=*) - INIT=$optarg ;; - esac - done -} - -fatal() { - echo "rorootfs-overlay: $1" >$CONSOLE - echo >$CONSOLE - exec sh -} - -log() { - echo "rorootfs-overlay: $1" >$CONSOLE -} - -wait_for_device() { - counter=0 - while [ ! -b $1 ]; do - sleep .100 - counter=$((counter + 1)) - if [ $counter -ge 50 ]; then - fatal "$1 is not availble" - exit - fi - done -} - -early_setup - -[ -z "${CONSOLE+x}" ] && CONSOLE="/dev/console" - -read_args - -mount_and_boot() { - mkdir -p $ROOT_MOUNT $ROOT_ROMOUNT $ROOT_RWMOUNT - - # Build mount options for read only root file system. - # If no read-only device was specified via kernel command line, use - # current root file system via bind mount. - wait_for_device ${ROOT_RODEVICE} - ROOT_ROMOUNTPARAMS_BIND="-o ${ROOT_ROMOUNTOPTIONS} /" - if [ -n "${ROOT_RODEVICE}" ]; then - ROOT_ROMOUNTPARAMS="-o ${ROOT_ROMOUNTOPTIONS_DEVICE} $ROOT_RODEVICE" - if [ -n "${ROOT_ROFSTYPE}" ]; then - ROOT_ROMOUNTPARAMS="-t $ROOT_ROFSTYPE $ROOT_ROMOUNTPARAMS" - fi - else - ROOT_ROMOUNTPARAMS="$ROOT_ROMOUNTPARAMS_BIND" - fi - - # Mount root file system to new mount-point, if unsuccessful, try bind - # mounting current root file system. - if ! $MOUNT $ROOT_ROMOUNTPARAMS "$ROOT_ROMOUNT" 2>/dev/null ; then - log "Could not mount $ROOT_RODEVICE, bind mounting..." - if ! $MOUNT $ROOT_ROMOUNTPARAMS_BIND "$ROOT_ROMOUNT"; then - fatal "Could not mount read-only rootfs" - fi - fi - - # Remounting root file system as read only. - if ! $MOUNT -o remount,ro "$ROOT_ROMOUNT"; then - fatal "Could not remount read-only rootfs as read only" - fi - - # If future init is the same as current file, use $ROOT_ROINIT - # Tries to avoid loop to infinity if init is set to current file via - # kernel command line - if cmp -s "$0" "$INIT"; then - INIT="$ROOT_ROINIT" - fi - - # Build mount options for read write root file system. - # If a read-write device was specified via kernel command line, use - # it, otherwise default to tmpfs. - wait_for_device ${ROOT_RWDEVICE} - if [ -n "${ROOT_RWDEVICE}" ]; then - - ROOT_RWMOUNTPARAMS="-o $ROOT_RWMOUNTOPTIONS_DEVICE $ROOT_RWDEVICE" - if [ -n "${ROOT_RWFSTYPE}" ]; then - ROOT_RWMOUNTPARAMS="-t $ROOT_RWFSTYPE $ROOT_RWMOUNTPARAMS" - fi - else - ROOT_RWMOUNTPARAMS="-t tmpfs -o $ROOT_RWMOUNTOPTIONS" - fi - - # Mount read-write file system into initram root file system - if ! $MOUNT $ROOT_RWMOUNTPARAMS $ROOT_RWMOUNT ; then - fatal "Could not mount read-write rootfs" - fi - - # Reset read-write file system if specified - if [ "yes" == "$ROOT_RWRESET" -a -n "${ROOT_RWMOUNT}" ]; then - rm -rf $ROOT_RWMOUNT/* - fi - - # Determine which unification file system to use - union_fs_type="" - if grep -w "overlay" /proc/filesystems >/dev/null; then - union_fs_type="overlay" - elif grep -w "aufs" /proc/filesystems >/dev/null; then - union_fs_type="aufs" - else - union_fs_type="" - fi - - # Create/Mount overlay root file system - case $union_fs_type in - "overlay") - mkdir -p $ROOT_RWMOUNT/upperdir $ROOT_RWMOUNT/work - $MOUNT -t overlay overlay \ - -o "$(printf "%s%s%s" \ - "lowerdir=$ROOT_ROMOUNT," \ - "upperdir=$ROOT_RWMOUNT/upperdir," \ - "workdir=$ROOT_RWMOUNT/work")" \ - $ROOT_MOUNT - ;; - "aufs") - $MOUNT -t aufs i\ - -o "dirs=$ROOT_RWMOUNT=rw:$ROOT_ROMOUNT=ro" \ - aufs $ROOT_MOUNT - ;; - "") - fatal "No overlay filesystem type available" - ;; - esac - - # Move read-only and read-write root file system into the overlay - # file system - mkdir -p $ROOT_MOUNT/$ROOT_ROMOUNT $ROOT_MOUNT/$ROOT_RWMOUNT - $MOUNT -n --move $ROOT_ROMOUNT ${ROOT_MOUNT}/$ROOT_ROMOUNT - $MOUNT -n --move $ROOT_RWMOUNT ${ROOT_MOUNT}/$ROOT_RWMOUNT - - $MOUNT -n --move /proc ${ROOT_MOUNT}/proc - $MOUNT -n --move /sys ${ROOT_MOUNT}/sys - $MOUNT -n --move /dev ${ROOT_MOUNT}/dev - - cd $ROOT_MOUNT - - # switch to actual init in the overlay root file system - exec switch_root $ROOT_MOUNT $INIT || - fatal "Couldn't chroot, dropping to shell" -} - -mount_and_boot diff --git a/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/module-setup.sh b/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/module-setup.sh deleted file mode 100755 index 470f7b95..00000000 --- a/buildroot-external/dracut/modules.d/99readonly-rootfs-overlay/module-setup.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash -# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- -# ex: ts=8 sw=4 sts=4 et filetype=sh - -check() { - require_binaries busybox || return 1 - require_binaries cat || return 1 - require_binaries switch_root || return 1 - require_binaries cmp || return 1 - require_binaries expr || return 1 - require_binaries grep || return 1 - require_binaries mkdir || return 1 - require_binaries mount || return 1 - require_binaries umount || return 1 - return 0 -} - -depends() { - return 0 -} - -installkernel() { - return 0 -} - -install_busybox_links() { - dir="${1}" - linkname="${2}" - - (cd "${dracutsysrootdir?}${dir}" && - for x in *; do - if [ "$(readlink "${x}")" = "${linkname}" ]; then - ln -sf "${linkname}" "${initdir?}/${dir}/${x}" - fi - done - ) -} - -install() { - - inst_multiple mount umount cat cmp grep mkdir expr switch_root - - # Install busybox binary - inst_multiple /bin/busybox - if [ -e "${dracutsysrootdir?}/lib64" ]; then - ln -sf lib "${initdir?}/lib64" - ln -sf lib "${initdir?}/usr/lib64" - fi - - if [ -e "${dracutsysrootdir?}/lib32" ]; then - ln -sf lib "${initdir?}/lib32" - ln -sf lib "${initdir?}/usr/lib32" - fi - - install_busybox_links "/bin" "busybox" - install_busybox_links "/sbin" "../bin/busybox" - if [ ! -L "${dracutsysrootdir?}/bin" ]; then - install_busybox_links "/usr/bin" "../../bin/busybox" - install_busybox_links "/usr/sbin" "../../bin/busybox" - fi - - # inst does not work for some reason. Use cp(1) instead. - #inst "$moddir/init-readonly-rootfs-overlay-boot.sh" "/init" - cp $moddir/init-readonly-rootfs-overlay-boot.sh $initdir/init -} - diff --git a/buildroot-external/kernel/ovos.config b/buildroot-external/kernel/ovos.config index 1e4c5dfc..6ab4f201 100644 --- a/buildroot-external/kernel/ovos.config +++ b/buildroot-external/kernel/ovos.config @@ -14,8 +14,11 @@ CONFIG_PREEMPT_VOLUNTARY=y CONFIG_PSI=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y -CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_MODULE_COMPRESS_GZIP is not set # CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_COMPRESS_ALL is not set CONFIG_ZRAM=y CONFIG_KSM=y diff --git a/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.hash b/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.hash index 1af9c870..fb281411 100644 --- a/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.hash +++ b/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.hash @@ -1,2 +1,2 @@ # Locally calculated -sha256 ad8dd8d79bda54f9d28b095ce9dfa009de9970daf7b57dda86216a4e4977fe4e alsa-ucm-conf-1.2.12.tar.gz +sha256 0b1c6740c665078a1c2818ef4902417d75bba4f0fb7fd558633707c367a727e7 alsa-ucm-conf-1.2.13.tar.gz diff --git a/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.mk b/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.mk index 3e561c66..a37848d2 100644 --- a/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.mk +++ b/buildroot-external/package/alsa-ucm-conf/alsa-ucm-conf.mk @@ -4,7 +4,7 @@ # ################################################################################ -ALSA_UCM_CONF_VERSION = 1.2.12 +ALSA_UCM_CONF_VERSION = 1.2.13 ALSA_UCM_CONF_SITE = $(call github,alsa-project,alsa-ucm-conf,v$(ALSA_UCM_CONF_VERSION)) ALSA_UCM_CONF_DEPENDENCIES = alsa-lib diff --git a/buildroot-external/package/ncpamixer/ncpamixer.mk b/buildroot-external/package/ncpamixer/ncpamixer.mk index 1b8661b6..99c0ec63 100644 --- a/buildroot-external/package/ncpamixer/ncpamixer.mk +++ b/buildroot-external/package/ncpamixer/ncpamixer.mk @@ -4,7 +4,7 @@ # ################################################################################ -NCPAMIXER_VERSION = a273d233437caa31348fe3ffd8cfdd7c3d3d27c7 +NCPAMIXER_VERSION = 400d90e545fb3c139b83b41915bd2d458b92daf8 NCPAMIXER_SITE = $(call github,fulhax,ncpamixer,$(NCPAMIXER_VERSION)) NCPAMIXER_SUBDIR = src NCPAMIXER_LICENSE = MIT diff --git a/buildroot-external/package/ovos-rust-messagebus/ovos-rust-messagebus.mk b/buildroot-external/package/ovos-rust-messagebus/ovos-rust-messagebus.mk index 48bcda6e..d873dda7 100644 --- a/buildroot-external/package/ovos-rust-messagebus/ovos-rust-messagebus.mk +++ b/buildroot-external/package/ovos-rust-messagebus/ovos-rust-messagebus.mk @@ -4,7 +4,7 @@ # ################################################################################ -OVOS_RUST_MESSAGEBUS_VERSION = 0.3.1 +OVOS_RUST_MESSAGEBUS_VERSION = 1.1.0 OVOS_RUST_MESSAGEBUS_SITE = $(call github,OscillateLabsLLC,ovos-rust-messagebus,v$(OVOS_RUST_MESSAGEBUS_VERSION)) OVOS_RUST_MESSAGEBUS_DEPENDENCIES = host-rustc host-pkgconf diff --git a/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk b/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk index e0e99e2b..22576ea3 100644 --- a/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk +++ b/buildroot-external/package/rpi-eeprom/rpi-eeprom.mk @@ -3,16 +3,16 @@ # rpi-eeprom # ############################################################# -RPI_EEPROM_VERSION = e9717985d26205a790d5dbc77b8dbadcadb52e05 +RPI_EEPROM_VERSION = f02f0eaf4e681a618fad55e5cc09d4306a82ac47 RPI_EEPROM_SITE = $(call github,raspberrypi,rpi-eeprom,$(RPI_EEPROM_VERSION)) RPI_EEPROM_LICENSE = BSD-3-Clause RPI_EEPROM_LICENSE_FILES = LICENSE RPI_EEPROM_INSTALL_IMAGES = YES ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI4),y) - RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-10-21.bin + RPI_EEPROM_FIRMWARE_PATH = firmware-2711/stable/pieeprom-2024-12-07.bin else ifeq ($(BR2_PACKAGE_RPI_EEPROM_RPI5),y) # Raspberry Pi 5 - RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-10-21.bin + RPI_EEPROM_FIRMWARE_PATH = firmware-2712/stable/pieeprom-2024-12-19.bin endif define RPI_EEPROM_BUILD_CMDS diff --git a/buildroot-external/scripts/post-build.sh b/buildroot-external/scripts/post-build.sh index bbdbbab2..9e74fb37 100755 --- a/buildroot-external/scripts/post-build.sh +++ b/buildroot-external/scripts/post-build.sh @@ -103,7 +103,8 @@ main() { local home_mount_point="${BINARIES_DIR}/home" mkdir -p "${home_mount_point}" sudo mount -o loop,discard "${home_img}" "${home_mount_point}" - sudo rsync -avPHSX "${TARGET_DIR}/home/"* "${home_mount_point}/" + #sudo rsync -avPHSX "${TARGET_DIR}/home/"* "${home_mount_point}/" + sudo rsync -avPSX "${TARGET_DIR}/home/"* "${home_mount_point}/" sudo umount "${home_img}" }