diff --git a/debian/changelog b/debian/changelog index 62eeff84..f48a7b4d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,32 +1,3 @@ -livecd-rootfs (2.832) lunar; urgency=medium - - * Clean up some remaining references to /dev/mapper. - - -- Steve Langasek Mon, 17 Apr 2023 18:50:18 -0700 - -livecd-rootfs (2.831) lunar; urgency=medium - - * Use the correct path for the loop device. - - -- Steve Langasek Mon, 17 Apr 2023 16:11:52 -0700 - -livecd-rootfs (2.830) lunar; urgency=medium - - * Call losetup -d properly. - - -- Steve Langasek Mon, 17 Apr 2023 12:22:19 -0700 - -livecd-rootfs (2.829) lunar; urgency=medium - - [ Loïc Minier ] - * Initial support for NVIDIA Tegra. LP: #2015644. - - [ Steve Langasek ] - * Use losetup instead of kpartx to try to resolve race conditions in - riscv64 image builds. - - -- Steve Langasek Mon, 17 Apr 2023 08:22:21 -0700 - livecd-rootfs (2.828) lunar; urgency=medium * 099-ubuntu-image-customization.chroot: Remove redundant creation of oem diff --git a/debian/control b/debian/control index b1ad7323..c8c78a76 100644 --- a/debian/control +++ b/debian/control @@ -27,7 +27,6 @@ Depends: ${misc:Depends}, lsb-release, lzma, make, - mount, parted, procps, python3, diff --git a/live-build/auto/config b/live-build/auto/config index ca25d54b..46ba25fd 100755 --- a/live-build/auto/config +++ b/live-build/auto/config @@ -975,9 +975,6 @@ case $PROJECT in intel-iot) variants='intel' ;; - tegra) - variants='tegra' - ;; *) # variants='ga hwe' variants='ga' @@ -994,9 +991,6 @@ case $PROJECT in elif [ "$variant" = "intel" ]; then kernel_metapkg=linux-intel-iotg flavor=intel-iotg - elif [ "$variant" = "tegra" ]; then - kernel_metapkg=linux-nvidia-tegra - flavor=nvidia-tegra else echo "bogus variant: $variant" exit 1 @@ -1249,11 +1243,6 @@ case "$ARCH${SUBARCH:++$SUBARCH}" in add_package install linux-firmware-raspi pi-bluetooth u-boot-rpi u-boot-tools BINARY_REMOVE_LINUX=false ;; - arm64+tegra) - # Common configuration for all NVIDIA Tegra image variants (server, - # desktop etc.) - KERNEL_FLAVOURS="nvidia-$SUBARCH" - ;; riscv*+*) if [ "${SUBARCH:-}" = "licheerv" ]; then # The wifi driver of the licheerv is an out-of-tree driver packaged diff --git a/live-build/buildd/hooks/02-disk-image-uefi.binary b/live-build/buildd/hooks/02-disk-image-uefi.binary index cd8af1a7..280db0ab 100755 --- a/live-build/buildd/hooks/02-disk-image-uefi.binary +++ b/live-build/buildd/hooks/02-disk-image-uefi.binary @@ -41,7 +41,7 @@ create_partitions() { } create_and_mount_uefi_partition() { - uefi_dev="${loop_device}p15" + uefi_dev="/dev/mapper${loop_device///dev/}p15" mountpoint="$1" mkfs.vfat -F 32 -n UEFI "${uefi_dev}" diff --git a/live-build/functions b/live-build/functions index dfed45cc..f16c9445 100644 --- a/live-build/functions +++ b/live-build/functions @@ -12,13 +12,16 @@ loop_raw= backing_img= clean_loops() { - if [ -n "${loop_device}" ]; then + local kpartx_ret + local kpartx_stdout + + if [ -n "${backing_img}" ]; then # If something just finished writing to the device or a # partition (e.g. the zerofree in umount_partition) udev might # still be processing the device. udevadm settle sync - losetup -v -d "${loop_device}" + kpartx -v -d "${backing_img}" unset backing_img fi @@ -62,15 +65,18 @@ mount_image() { trap clean_loops EXIT backing_img="$1" local rootpart="$2" - loop_device=$(losetup --show -f -P -v ${backing_img}) + kpartx_mapping="$(kpartx -s -v -a ${backing_img})" + # Find the loop device + loop_p1="$(echo -e ${kpartx_mapping} | head -n1 | awk '{print$3}')" + loop_device="/dev/${loop_p1%p[0-9]*}" if [ ! -b ${loop_device} ]; then echo "unable to find loop device for ${backing_img}" exit 1 fi # Find the rootfs location - rootfs_dev_mapper="${loop_device}p${rootpart}" + rootfs_dev_mapper="/dev/mapper/${loop_p1%%[0-9]}${rootpart}" if [ ! -b "${rootfs_dev_mapper}" ]; then echo "${rootfs_dev_mapper} is not a block device"; exit 1 @@ -207,7 +213,7 @@ mount_disk_image() { mount_image ${disk_image} 1 mount_partition "${rootfs_dev_mapper}" $mountpoint - local uefi_dev="${loop_device}p15" + local uefi_dev="/dev/mapper${loop_device///dev/}p15" if [ -b ${uefi_dev} -a -e $mountpoint/boot/efi ]; then mount "${uefi_dev}" $mountpoint/boot/efi fi @@ -248,7 +254,7 @@ umount_partition() { umount_disk_image() { mountpoint="$1" - local uefi_dev="${loop_device}p15" + local uefi_dev="/dev/mapper${loop_device///dev/}p15" if [ -e "$mountpoint/boot/efi" -a -b "$uefi_dev" ]; then # zero fill free space in UEFI partition cat < /dev/zero > "$mountpoint/boot/efi/bloat_file" 2> /dev/null || true diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary index b5b7cffc..dc87a361 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-ppc64el.binary @@ -49,7 +49,7 @@ GRUB_TIMEOUT=0 # Set the default commandline GRUB_CMDLINE_LINUX_DEFAULT="console=hvc0 earlyprintk" EOF - prep_partition="${loop_device}p2" + prep_partition="/dev/mapper${loop_device///dev/}p2" chroot mountpoint grub-install "${prep_partition}" \ --no-nvram \ --boot-directory=/boot \ diff --git a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary index 042db427..91e77516 100755 --- a/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary +++ b/live-build/ubuntu-cpc/hooks.d/base/disk-image-uefi.binary @@ -197,7 +197,7 @@ create_partitions() { } create_and_mount_uefi_partition() { - uefi_dev="${loop_device}p15" + uefi_dev="/dev/mapper${loop_device///dev/}p15" mountpoint="$1" mkfs.vfat -F 32 -n UEFI "${uefi_dev}" @@ -234,7 +234,7 @@ install_grub() { # Server preinstalled image # Setup cidata sample data & nocloud fallback # Allows login on first boot with or without metadata - cidata_dev="${loop_device}p14" + cidata_dev="/dev/mapper${loop_device///dev/}p14" setup_cidata "${cidata_dev}" setup_cinocloud mountpoint fi @@ -246,7 +246,7 @@ install_grub() { # Server preinstalled image # Setup cidata sample data & nocloud fallback # Allows login on first boot with or without metadata - cidata_dev="${loop_device}p14" + cidata_dev="/dev/mapper${loop_device///dev/}p14" setup_cidata "${cidata_dev}" setup_cinocloud mountpoint fi @@ -258,7 +258,7 @@ install_grub() { # Server preinstalled image # Setup cidata sample data & nocloud fallback # Allows login on first boot with or without metadata - cidata_dev="${loop_device}p13" + cidata_dev="/dev/mapper${loop_device///dev/}p13" setup_cidata "${cidata_dev}" setup_cinocloud mountpoint fi @@ -285,10 +285,10 @@ install_grub() { efi_target=riscv64-efi # The real U-Boot chroot mountpoint apt-get install -qqy u-boot-microchip - loader="${loop_device}p13" + loader="/dev/mapper${loop_device///dev/}p13" dd if=mountpoint/usr/lib/u-boot/microchip_icicle/u-boot.payload of=$loader # Provide end-user modifyable CIDATA - cidata_dev="${loop_device}p12" + cidata_dev="/dev/mapper${loop_device///dev/}p12" setup_cidata "${cidata_dev}" # Provide stock nocloud datasource # Allow interactive login on baremetal board, @@ -330,10 +330,10 @@ install_grub() { chroot mountpoint apt-get install -qqy u-boot-nezha # Since version 2022.10 U-Boot SPL and U-Boot are installed onto the same partition. # Package nezha-boot0 is not needed anymore. - loader1="${loop_device}p13" + loader1="/dev/mapper${loop_device///dev/}p13" dd if=mountpoint/usr/lib/u-boot/${SUBARCH}/u-boot-sunxi-with-spl.bin of=$loader1 # Provide end-user modifyable CIDATA - cidata_dev="${loop_device}p12" + cidata_dev="/dev/mapper${loop_device///dev/}p12" setup_cidata "${cidata_dev}" # Provide stock nocloud datasource # Allow interactive login on baremetal SiFive board, @@ -359,7 +359,7 @@ install_grub() { efi_target=riscv64-efi # factory u-boot requires a p3 partition with /boot/uEnv.txt file - uenv_dev="${loop_device}p3" + uenv_dev="/dev/mapper${loop_device///dev/}p3" mkfs.ext4 "${uenv_dev}" uenv_mnt_dir=`mktemp -d uenvXXX` mount "${uenv_dev}" "${uenv_mnt_dir}" @@ -387,7 +387,7 @@ EOF umount "${uenv_mnt_dir}" rmdir "${uenv_mnt_dir}" # Provide end-user modifyable CIDATA - cidata_dev="${loop_device}p12" + cidata_dev="/dev/mapper${loop_device///dev/}p12" setup_cidata "${cidata_dev}" # Provide stock nocloud datasource # Allow interactive login on baremetal SiFive board, @@ -406,7 +406,7 @@ EOF chroot mountpoint bash -c 'FK_FORCE=yes apt-get install -qqy grub-efi-riscv64 flash-kernel' efi_target=riscv64-efi # Provide end-user modifyable CIDATA - cidata_dev="${loop_device}p12" + cidata_dev="/dev/mapper${loop_device///dev/}p12" setup_cidata "${cidata_dev}" # Provide stock nocloud datasource # Allow interactive login on baremetal board, @@ -431,13 +431,13 @@ EOF fi chroot mountpoint apt-get install -qqy u-boot-sifive # FSBL, which gets U-Boot SPL - loader1="${loop_device}p13" + loader1="/dev/mapper${loop_device///dev/}p13" # The real U-Boot - loader2="${loop_device}p14" + loader2="/dev/mapper${loop_device///dev/}p14" dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot-spl.bin of=$loader1 dd if=mountpoint/usr/lib/u-boot/${u_boot_arch}/u-boot.itb of=$loader2 # Provide end-user modifyable CIDATA - cidata_dev="${loop_device}p12" + cidata_dev="/dev/mapper${loop_device///dev/}p12" setup_cidata "${cidata_dev}" # Provide stock nocloud datasource # Allow interactive login on baremetal SiFive board, diff --git a/live-build/ubuntu-server/hooks/03-kernel-metapkg.chroot_early b/live-build/ubuntu-server/hooks/03-kernel-metapkg.chroot_early index ed02f8b6..a6a19f86 100755 --- a/live-build/ubuntu-server/hooks/03-kernel-metapkg.chroot_early +++ b/live-build/ubuntu-server/hooks/03-kernel-metapkg.chroot_early @@ -13,8 +13,6 @@ case $PASS in kernel_metapkg=linux-generic-hwe-$(lsb_release -sr) elif [ "$flavor" = "intel-iotg" ]; then kernel_metapkg=linux-intel-iotg - elif [ "$flavor" = "nvidia-tegra" ]; then - kernel_metapkg=linux-nvidia-tegra else echo "bogus flavor: $flavor" exit 1