diff --git a/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch b/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch new file mode 100644 index 0000000000000000000000000000000000000000..4cded32d421a656a5d98fbe0b44b0c4791acccf5 --- /dev/null +++ b/2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch @@ -0,0 +1,13 @@ +diff --git a/doc/source/quickstart.rst b/doc/source/quickstart.rst +index c3053ac6e7..b48f0ca0b5 100644 +--- a/doc/source/quickstart.rst ++++ b/doc/source/quickstart.rst +@@ -44,7 +44,7 @@ command in order to build it: + + .. code:: bash + +- $ sudo kiwi-ng --type oem system build \ ++ $ sudo kiwi-ng --profile=Disk --type oem system build \ + --description kiwi-descriptions/suse/x86_64/{exc_description} \ + --target-dir /tmp/myimage + diff --git a/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch b/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch new file mode 100644 index 0000000000000000000000000000000000000000..d6a9e39075465f02076a57883debf368c9dccf96 --- /dev/null +++ b/fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch @@ -0,0 +1,1371 @@ +diff --git a/build-tests/arm/fedora/test-image-live/appliance.kiwi b/build-tests/arm/fedora/test-image-live/appliance.kiwi +index 15a131cabd..b8a01c42f8 100644 +--- a/build-tests/arm/fedora/test-image-live/appliance.kiwi ++++ b/build-tests/arm/fedora/test-image-live/appliance.kiwi +@@ -17,7 +17,9 @@ + false + + +- ++ ++ ++ + + + +diff --git a/build-tests/arm/suse/test-image-live/appliance.kiwi b/build-tests/arm/suse/test-image-live/appliance.kiwi +index 6b6bb7053c..c7043cbf0c 100644 +--- a/build-tests/arm/suse/test-image-live/appliance.kiwi ++++ b/build-tests/arm/suse/test-image-live/appliance.kiwi +@@ -16,7 +16,7 @@ + false + bgrt + openSUSE +- ++ + + + +diff --git a/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi b/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi +new file mode 100644 +index 0000000000..4a51c17c7b +--- /dev/null ++++ b/build-tests/arm/suse/test-image-rpi-overlay/appliance.kiwi +@@ -0,0 +1,70 @@ ++ ++ ++ ++ ++ Marcus Schäfer ++ ms@suse.com ++ Disk image for RaspberryPi read-only overlay test build ++ ++ ++ 1.15.22 ++ zypper ++ en_US ++ us ++ UTC ++ true ++ ++ ++ ++ false ++ false ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ +diff --git a/build-tests/arm/suse/test-image-rpi-overlay/config.sh b/build-tests/arm/suse/test-image-rpi-overlay/config.sh +new file mode 100644 +index 0000000000..1dee22e7e2 +--- /dev/null ++++ b/build-tests/arm/suse/test-image-rpi-overlay/config.sh +@@ -0,0 +1,67 @@ ++#!/bin/bash ++#====================================== ++# Functions... ++#-------------------------------------- ++test -f /.kconfig && . /.kconfig ++test -f /.profile && . /.profile ++ ++#====================================== ++# Greeting... ++#-------------------------------------- ++echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." ++ ++#====================================== ++# Debug ++#-------------------------------------- ++#systemctl enable debug-shell.service ++ ++#====================================== ++# Setup baseproduct link ++#-------------------------------------- ++suseSetupProduct ++ ++#====================================== ++# Specify default runlevel ++#-------------------------------------- ++baseSetRunlevel 3 ++ ++#====================================== ++# Activate services ++#-------------------------------------- ++suseInsertService sshd ++ ++#====================================== ++# SSL Certificates Configuration ++#-------------------------------------- ++echo '** Rehashing SSL Certificates...' ++update-ca-certificates ++ ++#===================================== ++# Enable ntpd if installed ++#------------------------------------- ++if [ -f /etc/ntp.conf ]; then ++ suseInsertService ntpd ++ for i in 0 1 2 3; do ++ echo "server $i.opensuse.pool.ntp.org iburst" >> /etc/ntp.conf ++ done ++fi ++ ++#====================================== ++# Configure Raspberry Pi specifics ++#-------------------------------------- ++# Add necessary kernel modules to initrd (will disappear with bsc#1084272) ++echo 'add_drivers+=" bcm2835_dma dwc2 "' \ ++ > /etc/dracut.conf.d/raspberrypi_modules.conf ++ ++# Work around HDMI connector bug and network issues ++cat > /etc/modprobe.d/50-rpi3.conf <<-EOF ++ # No HDMI hotplug available ++ options drm_kms_helper poll=0 ++ # Prevent too many page allocations (bsc#1012449) ++ options smsc95xx turbo_mode=N ++EOF ++ ++cat > /usr/lib/sysctl.d/50-rpi3.conf <<-EOF ++ # Avoid running out of DMA pages for smsc95xx (bsc#1012449) ++ vm.min_free_kbytes = 2048 ++EOF +diff --git a/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install b/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install +new file mode 100644 +index 0000000000..83cb5e3458 +--- /dev/null ++++ b/build-tests/arm/suse/test-image-rpi-overlay/uboot-image-raspberrypi4-install +@@ -0,0 +1,655 @@ ++#!/bin/bash ++# ++# U-Boot injection script. ++# ++# This script installs U-Boot SPL, MLO, BL1, IMX, whatever images into ++# the target image during setup time as well as on first boot. ++# ++# It also serves as our generic hook into things we need to do to fix ++# up the build. ++ ++set -x ++ ++diskname=$1 ++bootdev=$2 ++p_number=${bootdev: -1} ++loopname="${bootdev%*p$p_number}" ++loopdev=/dev/${loopname#/dev/mapper/*} ++flavor=raspberrypi4 ++is_firstboot= ++ ++if [ "$is_firstboot" ]; then ++ # We're not inside the image build, but in the first boot of an ++ # installed system ++ ++ diskname=$(df / --output=source | tail -n1 | sed 's/[0-9]*$//;s/p$//') ++ is_firstboot=1 ++ if [ -d /boot/efi ]; then ++ is_efi=1 ++ fi ++ ++ cd / ++ ++ # During firstboot, gdisk is available at /usr/sbin. ++ export PATH="$PATH:/usr/sbin/" ++else ++ # We don't have gdisk in the build system, so point to the rootfs binary ++ export PATH="$PATH:/usr/src/packages/KIWIROOT-oem/usr/sbin/" ++ ++ # old KIWI places EFI in the root dir, KIWI-ng uses the final location ++ # below boot/efi/ ++ if [[ -d EFI || -d "boot/efi/EFI" ]]; then ++ # We're on an EFI build, so kiwi doesn't copy u-boot over. ++ # This is a hack to chdir into the obs-build dir to find ++ # our u-boot binaries nevertheless. ++ pushd /usr/src/packages/KIWIROOT-oem/ ++ is_efi=1 ++ fi ++fi ++ ++#========================================== ++# Convert GPT to MBR if necessary ++# TODO: remove me from here once new kiwi landed in TW and use efiparttable XML attribute instead ++#------------------------------------------ ++if [ "$is_efi" ]; then ++ # Some systems can not deal with GPT partition tables, so for ++ # those we convert the GPT to MBR ++ force_mbr= ++ ++ if [ -f "boot/vc/bootcode.bin" ]; then ++ # The RPi firmware can only read MBR ++ force_mbr=1 ++ fi ++ ++ if [ -f "boot/imx6-spl.bin" -o -f "boot/u-boot.imx" -o -f "boot/u-boot-dtb.imx" ]; then ++ # SPL goes at sector 2, overlapping GPT ++ force_mbr=1 ++ fi ++ ++ if [ -f "boot/arndale-bl1.img" -o \ ++ -f "boot/bl1.bin.hardkernel" -o \ ++ -f "boot/E4412_S.bl1.HardKernel.bin" ]; then ++ # BL1 goes at sector 1, overlapping GPT ++ force_mbr=1 ++ fi ++ ++ if [[ "$flavor" = "nanopik2" ]]; then ++ # BL2 goes at sector 1, overlapping GPT ++ force_mbr=1 ++ fi ++ ++ if [ -f "boot/u-boot-spl.kwb" ]; then ++ # SPL goes at sector 1, overlapping GPT ++ force_mbr=1 ++ fi ++ ++ if [ -f "boot/efi/boot.bin" ]; then ++ # ZynqMP / Zynq can only read from MBR ++ force_mbr=1 ++ fi ++ ++ if [ "$force_mbr" ]; then ++ # The target system doesn't support GPT, so let's move it to ++ # MBR partition layout instead. ++ # ++ # Also make sure to set the ESP partition to type 0xc so that ++ # broken firmware (Rpi) detects it as FAT. ++ ++ # Use tabs, "<<-" strips tabs, but no other whitespace! ++ cat > gdisk.tmp <<-'EOF' ++ x ++ r ++ g ++ t ++ 1 ++ c ++ w ++ y ++ EOF ++ losetup /dev/loop3 $diskname ++ dd if=/dev/loop3 of=mbrid.bin bs=1 skip=440 count=4 ++ gdisk /dev/loop3 < gdisk.tmp ++ dd of=/dev/loop3 if=mbrid.bin bs=1 seek=440 count=4 ++ losetup -d /dev/loop3 ++ rm -f mbrid.bin ++ rm -f gdisk.tmp ++ fi ++fi ++ ++#========================================== ++# adjust Raspberry Pi partition table ++#------------------------------------------ ++if [ -f "boot/vc/bootcode.bin" -a ! "$is_efi" ]; then ++ echo -n > gdisk.tmp ++ if [ ! "$is_firstboot" ]; then ++ # Set the name of the first partition to "vcboot" and mark ++ # the 1st and 2nd partitions as bootable (checked by RPi loader and U-Boot) ++ cat >> gdisk.tmp <<-'EOF' ++ c ++ 1 ++ vcboot ++ x ++ a ++ 1 ++ 2 ++ 64 ++ a ++ 2 ++ 2 ++ 64 ++ m ++ EOF ++ else ++ # Mark the 1st partition as (legacy) bootable (checked by RPi loader), since repartion removed it ++ cat >> gdisk.tmp <<-'EOF' ++ x ++ a ++ 1 ++ 2 ++ 64 ++ m ++ EOF ++ fi ++ ++ # Convert GPT to hybrid GPT ++ cat >> gdisk.tmp <<-'EOF' ++ x ++ r ++ h ++ 1 2 3 ++ n ++ c ++ n ++ 82 ++ y ++ 83 ++ n ++ w ++ y ++ EOF ++ ++ if [ "$is_firstboot" ]; then ++ gdisk /dev/mmcblk0 < gdisk.tmp ++ else ++ gdisk /dev/loop0 < gdisk.tmp ++ fi ++ rm -f gdisk.tmp ++fi ++ ++#========================================== ++# set certain dirs as nocow ++#------------------------------------------ ++function nocow() { ++ [ -d $1 ] && chattr -R +C $i ++} ++ ++for i in var/lib/mariadb var/lib/mysql var/lib/pgsql var/lib/libvirt/images var/log/journal; do ++ nocow $i ++done ++ ++#========================================== ++# copy Raspberry Pi firmware to EFI partition ++#------------------------------------------ ++if [ -f "boot/vc/bootcode.bin" -a "$is_efi" -a ! "$is_firstboot" ]; then ++ echo "RPi EFI system, installing firmware on ESP" ++ LINE=$(kpartx -asv $diskname | head -n1) ++ PART=$(echo "$LINE" | awk '{print $3}') ++ mkdir -p ./mnt-pi ++ mount /dev/mapper/$PART ./mnt-pi ++ ( cd boot/vc; tar c . ) | ( cd ./mnt-pi/; tar x ) ++ umount ./mnt-pi ++ rmdir ./mnt-pi ++ # "kpartx -dv $diskname" does not work if $diskname ++ # is longer than 64 characters ++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//') ++ kpartx -dv $LOOPDEV ++ losetup -d $LOOPDEV ++fi ++ ++#========================================== ++# install MLO as raw ++#------------------------------------------ ++if [ -f "boot/MLO" ];then ++ echo "Installing MLO (SPL)..." ++ opt="count=1 seek=1 conv=notrunc" ++ if ! dd if=boot/MLO of=$diskname bs=128k $opt; then ++ echo "Couldn't install MLO on $diskname" ++ exit 1 ++ fi ++ ++ echo "Installing U-Boot..." ++ opt="seek=1 conv=notrunc" ++ if ! dd if=boot/u-boot.img of=$diskname bs=384k $opt; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++ ++ # /.../ ++ # To avoid any issues when parted leaves x86 boot code ++ # in the MBR we better clear that part of the image ++ # ---- ++ dd if=/dev/zero of=$diskname bs=440 count=1 conv=notrunc ++fi ++ ++ ++#========================================== ++# install Odroid (exynos4) BL* & u-boot as raw ++#------------------------------------------ ++if [ -f "boot/E4412_S.bl1.HardKernel.bin" ];then ++ echo "Installing BL1..." ++ if ! dd if=boot/E4412_S.bl1.HardKernel.bin of=$diskname seek=1 conv=notrunc; then ++ echo "Couldn't install BL1 on $diskname" ++ exit 1 ++ fi ++ echo "Installing BL2..." ++ if ! dd if=boot/bl2.signed.bin of=$diskname seek=31 conv=notrunc; then ++ echo "Couldn't install BL2 on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then ++ echo "Couldn't install u-boot on $diskname" ++ exit 1 ++ fi ++ if ! dd if=boot/E4412_S.tzsw.signed.bin of=$diskname seek=2111 conv=notrunc; then ++ echo "Couldn't install TrustZone S/W on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install Odroid-X3 (exynos5) BL* & u-boot as raw ++# Careful: Odroid-C2 also has bl1.bin.hardkernel ++# TODO: Use image names instead of filename ++#------------------------------------------ ++if [[ -f "boot/bl1.bin.hardkernel" && -f "boot/bl2.bin.hardkernel" ]]; then ++ echo "Installing BL1..." ++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname seek=1 conv=notrunc; then ++ echo "Couldn't install BL1 on $diskname" ++ exit 1 ++ fi ++ echo "Installing BL2..." ++ if ! dd if=boot/bl2.bin.hardkernel of=$diskname seek=31 conv=notrunc; then ++ echo "Couldn't install BL2 on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.bin of=$diskname seek=63 conv=notrunc; then ++ echo "Couldn't install u-boot on $diskname" ++ exit 1 ++ fi ++ if ! dd if=boot/tzsw.bin.hardkernel of=$diskname seek=719 conv=notrunc; then ++ echo "Couldn't install TrustZone S/W on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install Arndale SPL & U-Boot as raw ++#------------------------------------------ ++if [[ -f "boot/smdk5250-spl.bin" || -f "boot/arndale-spl.bin" ]];then ++ echo "Installing BL1..." ++ if ! dd if=boot/arndale-bl1.img of=$diskname seek=1 conv=notrunc; then ++ echo "Couldn't install BL1 on $diskname" ++ exit 1 ++ fi ++ echo "Installing SPL..." ++ # Get SPL name (depends on U-Boot version) ++ SPL_FILE=$(ls boot/*-spl.bin); ++ if ! dd if=$SPL_FILE of=$diskname seek=17 conv=notrunc; then ++ echo "Couldn't install SPL ($SPL_FILE) on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.bin of=$diskname seek=49 conv=notrunc; then ++ echo "Couldn't install u-boot on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install sunXi/SoCFPGA SPL & U-Boot as raw ++#------------------------------------------ ++if [[ -f "boot/sunxi-spl.bin" || -f "boot/u-boot-sunxi-with-spl.bin" || -f "boot/u-boot-with-spl.sfp" ]]; then ++ if [ "$is_efi" ]; then ++ # The GPT spans the first 33 sectors, but we need to write our ++ # at sector 16. Shrink the GPT to only span 5 sectors ++ # (16 partitions) to give us some space. ++ echo -e 'x\ns\n16\nw\ny' > gdisk.tmp ++ losetup /dev/loop3 $diskname ++ dd if=/dev/loop3 of=mbrid.bin bs=1 skip=440 count=4 ++ gdisk /dev/loop3 < gdisk.tmp ++ dd of=/dev/loop3 if=mbrid.bin bs=1 seek=440 count=4 ++ losetup -d /dev/loop3 ++ rm -f mbrid.bin ++ rm -f gdisk.tmp ++ fi ++ if [ -f "boot/u-boot-sunxi-with-spl.bin" ]; then ++ echo "Installing All-in-one U-Boot/SPL..." ++ if ! dd if=boot/u-boot-sunxi-with-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++ elif [ -f "boot/u-boot-with-spl.sfp" ]; then ++ echo "Installing All-in-one U-Boot/SPL..." ++ if ! dd if=boot/u-boot-with-spl.sfp of=$diskname bs=64k skip=1 seek=1 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++ else ++ echo "Installing SPL..." ++ if ! dd if=boot/sunxi-spl.bin of=$diskname bs=1024 seek=8 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=40 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++ fi ++fi ++ ++#========================================== ++# install Chromebook u-boot as boot kernel ++# And do the required magic! ++#------------------------------------------ ++if [ "$flavor" = "chromebook" ]; then ++ if [ ! "$is_firstboot" ]; then ++ pushd /usr/src/packages/KIWIROOT-oem/ ++ echo "console=tty1 debug verbose" > /tmp/config ++ echo "blah" > /tmp/dummy.txt # Dummy file to make new 'vbutil_kernel' tool happy ++ ./usr/bin/vbutil_kernel --pack /tmp/newkern \ ++ --keyblock ./usr/share/vboot/devkeys/kernel.keyblock \ ++ --version 1 \ ++ --signprivate ./usr/share/vboot/devkeys/kernel_data_key.vbprivk \ ++ --config=/tmp/config --vmlinuz boot/u-boot.img --arch arm \ ++ --bootloader /tmp/dummy.txt ++ LINE=$(kpartx -asv $diskname | head -n1) ++ PART=$(echo "$LINE" | awk '{print $3}') ++ PART=$(echo "$PART" | sed 's/p[0-9][0-9]*$/p2/') # Copy on p2 since p1 is EFI ++ dd if=/tmp/newkern of=/dev/mapper/$PART ++ # "kpartx -dv $diskname" does not work if $diskname is longer than 64 characters ++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//') ++ kpartx -dv $LOOPDEV ++ losetup -d $LOOPDEV ++ fi ++ # For build and after reaprtition occured on 1st boot: ++ # Enable bootflag on partition 3 (u-boot now looks for bootscripts on bootable partitions only) ++ parted $diskname set 3 boot on ++ # CGPT magic ++ ./usr/bin/cgpt add -t kernel -i 2 -S 1 -T 5 -P 10 -l U-BOOT $diskname ++ popd ++fi ++ ++#========================================== ++# install i.MX 5/6 U-Boot as raw ++#------------------------------------------ ++if [ -f "boot/u-boot.imx" -o -f "boot/u-boot-dtb.imx" ]; then ++ if [ ! "$is_firstboot" ]; then ++ pushd /usr/src/packages/KIWIROOT-oem/ ++ else ++ pushd / ++ fi ++ imx_file=`ls boot/u-boot*.imx | head -n 1` ++ echo "Installing U-Boot: $imx_file..." ++ if ! dd if=$imx_file of=$diskname bs=512 seek=2 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++ popd ++fi ++ ++#========================================== ++# install i.MX 6 SPL & U-Boot as raw ++#------------------------------------------ ++if [[ -f "boot/imx6-spl.bin" ]]; then ++ echo "Installing SPL..." ++ if ! dd if=boot/imx6-spl.bin of=$diskname bs=1024 seek=1 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.img of=$diskname bs=1024 seek=69 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install Marvell SPL as raw ++#------------------------------------------ ++if [ -f "boot/u-boot-spl.kwb" ]; then ++ echo "Installing SPL..." ++ if ! dd if=boot/u-boot-spl.kwb of=$diskname bs=512 seek=1 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install Rockchip 32-bit SPL as raw ++#------------------------------------------ ++if [[ -f "boot/u-boot-spl.rksd" ]]; then ++ if [[ -f "boot/u-boot.bin" ]]; then ++ cat boot/u-boot-spl.rksd boot/u-boot.bin > u-boot.tmp ++ echo "Installing SPL + U-Boot..." ++ if ! dd if=u-boot.tmp of=$diskname bs=512 seek=64 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++ rm u-boot.tmp ++ else ++ echo "Installing SPL..." ++ if ! dd if=boot/u-boot-spl.rksd of=$diskname bs=512 seek=64 conv=notrunc; then ++ echo "Couldn't install SPL on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.img of=$diskname bs=512 seek=256 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++ fi ++fi ++ ++#========================================== ++# install Rockchip TPL/SPL + ITB as raw ++# (RK3328, RK3399 platforms) ++#------------------------------------------ ++if [[ -f "boot/idbloader.img" && -f "boot/u-boot.itb" ]]; then ++ echo "Installing idbloader.img..." ++ dd if=boot/idbloader.img of=$diskname bs=512 seek=64 conv=notrunc; ++ echo "Installing u-boot.itb..." ++ dd if=boot/u-boot.itb of=$diskname bs=512 seek=16384 conv=notrunc; ++fi ++ ++#========================================== ++# install Odroid-C2 SPL as raw ++#------------------------------------------ ++if [ "$flavor" = "odroidc2" ]; then ++ echo "Installing BL1 (1/2)..." ++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname bs=1 count=442 conv=notrunc; then ++ echo "Couldn't install BL1 on $diskname" ++ exit 1 ++ fi ++ echo "Installing BL1 (2/2)..." ++ if ! dd if=boot/bl1.bin.hardkernel of=$diskname bs=512 skip=1 seek=1 conv=notrunc; then ++ echo "Couldn't install BL1 on $diskname" ++ exit 1 ++ fi ++ echo "Installing U-Boot..." ++ if ! dd if=boot/u-boot.odroidc2 of=$diskname bs=512 seek=97 conv=notrunc; then ++ echo "Couldn't install U-Boot on $diskname" ++ exit 1 ++ fi ++fi ++ ++#========================================== ++# install Zynq to the first MBR partition ++#------------------------------------------ ++if [ "$flavor" = "zturn" ]; then ++ LINE=$(kpartx -asv $diskname | head -n1) ++ PART=$(echo "$LINE" | awk '{print $3}') ++ mkdir ./mnt-tmp ++ mount /dev/mapper/$PART ./mnt-tmp ++ for t in boot.bin u-boot.img; do ++ install -D -v boot/$t mnt-tmp/$t ++ done ++ umount ./mnt-tmp ++ rmdir ./mnt-tmp ++fi ++ ++# End of EFI changed directory scope ++if [ -z "$is_firstboot" -a -n "$is_efi" ]; then ++ popd ++fi ++ ++if [ "$is_firstboot" ]; then ++ for file in /etc/sysconfig/bootloader /etc/default/grub; do ++ # Make 2nd boot quieter since we already succeeded booting :-) ++ [ -e "$file" ] && sed -i -e 's/loglevel=3/quiet/' $file ++ done ++ ++ # Fix up grub2 efi installation on 32bit arm (shouldn't hurt elsewhere) ++ if grep -q boot/efi /etc/fstab; then ++ mkdir -p /boot/efi ++ mount /boot/efi ++ /sbin/update-bootloader --reinit ++ fi ++else ++ # Install a startup.nsh file so we boot automatically via the EFI shell ++ if [ -f boot/grub2/*efi/grub.efi -o -f ./EFI/BOOT/boot*.efi ];then ++ echo "EFI system, installing startup.nsh" ++ LINE=$(kpartx -asv $diskname | head -n1) ++ PART=$(echo "$LINE" | awk '{print $3}') ++ mkdir ./mnt-tmp ++ mount /dev/mapper/$PART ./mnt-tmp ++ if [ -f boot/grub2/arm-efi/grub.efi ]; then ++ echo "bootarm" > mnt-tmp/startup.nsh ++ else ++ echo "bootaa64" > mnt-tmp/startup.nsh ++ fi ++ umount ./mnt-tmp ++ rmdir ./mnt-tmp ++ # "kpartx -dv $diskname" does not work if $diskname ++ # is longer than 64 characters ++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//') ++ kpartx -dv $LOOPDEV ++ losetup -d $LOOPDEV ++ fi ++fi ++ ++#========================================== ++# install DTBs on boot partition ++#------------------------------------------ ++if [ -z "$is_firstboot" ]; then ++ if [ -e /usr/src/packages/KIWIROOT-oem/boot/dtb -a -n $bootdev ];then ++ echo "System uses device trees, installing to boot partition" ++ bootpart=$(echo $bootdev | sed 's/.*loop[0-9][0-9]*p/p/') ++ bootloop=$(kpartx -asv $diskname | awk '{print $3}' | grep "loop.*"$bootpart ) ++ mkdir ./mnt-tmp ++ mount /dev/mapper/$bootloop ./mnt-tmp ++ # KIWI copies dtb on non-EFI systems; check and skip ++ if [ -e ./mnt-tmp/dtb ]; then ++ echo "DTBs already in place" ++ # In case bootdev and rootdev are the same, the dtbs will be already ++ # located in the rootdev below /boot/ ++ elif [ ! \( -e ./mnt-tmp/boot -a -e ./mnt-tmp/boot/dtb \) ];then ++ cp -a /usr/src/packages/KIWIROOT-oem/boot/dtb* ./mnt-tmp/ ++ fi ++ umount ./mnt-tmp ++ loop=$(echo "/dev/$bootloop" | sed 's/p[0-9][0-9]*$//') ++ kpartx -dv $loop ++ losetup -d $loop ++ fi ++fi ++ ++#========================================== ++# Install boot.scr where needed ++#------------------------------------------ ++if [ -e boot/boot.scr ]; then ++ # We need to use standalone u-boot, but kiwi only support EFI/Grub2 ++ # So, use EFI layout for kiwi, but then copy boot.scr on partition #1 (EFI) ++ # to boot with standalone u-boot instead of bootefi (since some boards do not support it). ++ echo "Copy boot.scr on EFI boot partition" ++ # p1 is pseudo-EFI partition, p2 is rootfs (with boot/ folder) ++ BOOTPART=$(echo "$bootdev" | sed 's/p[0-9][0-9]*$/p1/') ++ mkdir ./mnt-boot ++ mount $BOOTPART ./mnt-boot ++ ++ # Copy boot script ++ cp boot/boot.scr ./mnt-boot/ ++ ++ umount ./mnt-boot ++ rmdir ./mnt-boot ++fi ++ ++#========================================== ++# Sabrelite autoboot with SPI flashed u-boot ++#------------------------------------------ ++if [ "$flavor" = "sabrelite" ]; then ++ # Sabrelite has a built-in u-boot which looks for 6x_bootscript ++ # add one which will chain load our u-boot (on mmc0 or mmc1 only) ++ sabrelite_conf=mnt-boot/6x_bootscript.txt ++ sabrelite_binconf=mnt-boot/6x_bootscript ++ ++ BOOTPART=$(echo "$bootdev" | sed 's/p[0-9][0-9]*$/p1/') ++ mkdir ./mnt-boot ++ mount $BOOTPART ./mnt-boot ++ ++ cat >> $sabrelite_conf <<-"EOF" ++setenv boot_on_sd3 'mw.l 0x020d8040 0x3040 && mw.l 0x020d8044 0x10000000 && reset' ++setenv boot_on_usd4 'mw.l 0x020d8040 0x3840 && mw.l 0x020d8044 0x10000000 && reset' ++if itest.s "xmmc" == "x$dtype"; then ++ if itest 0 == ${disk}; then ++ run boot_on_sd3 ++ else ++ run boot_on_usd4 ++ fi ++fi ++EOF ++ mkopts="-A arm -O linux -a 0 -e 0 -T script -C none"; ++ if ! mkimage $mkopts -n 'Boot-Script' -d $sabrelite_conf $sabrelite_binconf;then ++ echo "Failed to create 6x_bootscript image" ++ fi ++ umount ./mnt-boot ++ rmdir ./mnt-boot ++fi ++ ++ ++if ! [ "$is_firstboot" ]; then ++ if [ "$flavor" = "socfpgade0nanosoc" ]; then ++ echo "install FPGA loader support at boot" ++ LINE=$(kpartx -asv $diskname | head -n1) ++ PART=$(echo "$LINE" | awk '{print $3}') ++ mkdir ./mnt-tmp ++ mount /dev/mapper/$PART ./mnt-tmp ++ ++ fpga_conf=mnt-tmp/boot.script ++ fpga_binconf=mnt-tmp/boot.scr ++ cat >> $fpga_conf <<-"EOF" ++echo "Disable watchdog" ++mw.l 0xffd05014 0x00000040 ++setenv fpga_bitfiles 'fpga.rbf atlas_soc_ghrd.rbf' ++setenv fpga_part 1 ++setenv devtype mmc ++setenv devnum 0 ++setenv load_fpga_bitfile 'load ${devtype} ${devnum}:${fpga_part} ${loadaddr} ${fpga_bitfile}; fpga load 0 ${loadaddr} ${filesize}; bridge enable' ++setenv scan_mmc_for_fpgafile 'for fpga_bitfile in ${fpga_bitfiles}; do if test -e ${devtype} ${devnum}:${fpga_part} ${fpga_bitfile}; then echo Found FPGA bitfile ${fpga_bitfile}; run load_fpga_bitfile; fi; done' ++run scan_mmc_for_fpgafile ++echo "nothing else to do, continue boot ..." ++EOF ++ mkopts="-A arm -O linux -a 0 -e 0 -T script -C none"; ++ if ! mkimage $mkopts -n 'Boot-Script' -d $fpga_conf $fpga_binconf;then ++ echo "Failed to create FPGA uboot script image" ++ fi ++ umount ./mnt-tmp ++ rmdir ./mnt-tmp ++ # "kpartx -dv $diskname" does not work if $diskname ++ # is longer than 64 characters ++ LOOPDEV=$(echo "/dev/$PART" | sed 's/p[0-9][0-9]*$//') ++ kpartx -dv $LOOPDEV ++ losetup -d $LOOPDEV ++ fi ++fi +diff --git a/build-tests/arm/suse/test-image-rpi/appliance.kiwi b/build-tests/arm/suse/test-image-rpi/appliance.kiwi +index 0c74947049..8c39de8d8a 100644 +--- a/build-tests/arm/suse/test-image-rpi/appliance.kiwi ++++ b/build-tests/arm/suse/test-image-rpi/appliance.kiwi +@@ -15,8 +15,8 @@ + us + Europe/Berlin + true +- +- ++ ++ + + + +diff --git a/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi b/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi +index 660db15a2c..eb85189184 100644 +--- a/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi ++++ b/build-tests/ppc/fedora/test-image-disk-simple/appliance.kiwi +@@ -9,13 +9,11 @@ + + 1.30.1 + dnf +- charge +- breeze + en_US + us + UTC + false +- ++ + + false + +@@ -32,8 +30,6 @@ + + + +- +- + + + +diff --git a/build-tests/ppc/sle15/test-image-disk/appliance.kiwi b/build-tests/ppc/sle15/test-image-disk/appliance.kiwi +index 55aafd9af2..96e21052ed 100644 +--- a/build-tests/ppc/sle15/test-image-disk/appliance.kiwi ++++ b/build-tests/ppc/sle15/test-image-disk/appliance.kiwi +@@ -23,7 +23,7 @@ + false + + +- ++ + + false + +diff --git a/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi b/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi +index bfc6e5b0de..900e04659e 100644 +--- a/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi ++++ b/build-tests/ppc/suse/test-image-disk-simple/appliance.kiwi +@@ -14,9 +14,7 @@ + Europe/Berlin + true + false +- bgrt +- openSUSE +- ++ + + false + +diff --git a/build-tests/ppc/suse/test-image-disk/appliance.kiwi b/build-tests/ppc/suse/test-image-disk/appliance.kiwi +index 8e11624f6b..5e2269e6bc 100644 +--- a/build-tests/ppc/suse/test-image-disk/appliance.kiwi ++++ b/build-tests/ppc/suse/test-image-disk/appliance.kiwi +@@ -20,16 +20,14 @@ + Europe/Berlin + true + false +- bgrt +- openSUSE + + +- ++ + + + + +- ++ + + + +diff --git a/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi b/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi +index eadd9314ee..0dff3800f7 100644 +--- a/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi ++++ b/build-tests/x86/archlinux/test-image-live-disk-kis/appliance.kiwi +@@ -31,23 +31,25 @@ + false + + +- ++ ++ ++ + + +- ++ + + false + +- ++ + + + +- +- ++ ++ + + + +- ++ + + + +diff --git a/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi b/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi +index 5e3f99d13b..45569b979a 100644 +--- a/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi ++++ b/build-tests/x86/centos/test-image-live-disk-v7/appliance.kiwi +@@ -25,7 +25,7 @@ + + + +- ++ + + + +@@ -33,12 +33,12 @@ + + false + +- ++ + + + + +- ++ + + 2048 + true +diff --git a/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi b/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi +index cbb61f314d..5c0f466c66 100644 +--- a/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi ++++ b/build-tests/x86/centos/test-image-live-disk-v8/appliance.kiwi +@@ -25,7 +25,7 @@ + + + +- ++ + + + +@@ -33,12 +33,12 @@ + + false + +- ++ + + + + +- ++ + + 2048 + true +diff --git a/build-tests/x86/debian/test-image-live-disk/appliance.kiwi b/build-tests/x86/debian/test-image-live-disk/appliance.kiwi +index 4981d53343..96a434f496 100644 +--- a/build-tests/x86/debian/test-image-live-disk/appliance.kiwi ++++ b/build-tests/x86/debian/test-image-live-disk/appliance.kiwi +@@ -26,7 +26,7 @@ + + + +- ++ + + + +@@ -34,12 +34,12 @@ + + false + +- ++ + + + + +- ++ + + true + /dev/ram +diff --git a/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi b/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi +index 8759f09b57..29fabb569c 100644 +--- a/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi ++++ b/build-tests/x86/fedora/test-image-live-disk/appliance.kiwi +@@ -26,7 +26,7 @@ + + + +- ++ + + + +@@ -34,12 +34,12 @@ + + false + +- ++ + + + + +- ++ + + 2048 + true +diff --git a/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi b/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi +index 31ba7ff0db..91bf9b81ab 100644 +--- a/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-MicroOS/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi b/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi +index bc6a13cc06..f490a957e8 100644 +--- a/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-custom-partitions/appliance.kiwi +@@ -18,13 +18,13 @@ + false + bgrt + openSUSE +- ++ + + true + 512 + /dev/ram + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi b/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi +index a1d308f864..861dd6a35a 100644 +--- a/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-disk-legacy/appliance.kiwi +@@ -16,8 +16,8 @@ + false + bgrt + openSUSE +- +- ++ ++ + + 1024 + false +diff --git a/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi b/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi +index 543c90e8da..088f3d89b4 100644 +--- a/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-disk-simple/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-disk/appliance.kiwi b/build-tests/x86/suse/test-image-disk/appliance.kiwi +index eed6a3e287..c8ec6603c2 100644 +--- a/build-tests/x86/suse/test-image-disk/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-disk/appliance.kiwi +@@ -16,7 +16,7 @@ + false + bgrt + openSUSE +- ++ + + + true +diff --git a/build-tests/x86/suse/test-image-ec2/appliance.kiwi b/build-tests/x86/suse/test-image-ec2/appliance.kiwi +index fbf2456b63..ca3a00c11b 100644 +--- a/build-tests/x86/suse/test-image-ec2/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-ec2/appliance.kiwi +@@ -11,7 +11,7 @@ + + false + +- ++ + 10240 + + +diff --git a/build-tests/x86/suse/test-image-gce/appliance.kiwi b/build-tests/x86/suse/test-image-gce/appliance.kiwi +index df5288db67..f80af21d4a 100644 +--- a/build-tests/x86/suse/test-image-gce/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-gce/appliance.kiwi +@@ -7,11 +7,11 @@ + GCE test build + + +- ++ + + false + +- ++ + 10240 + + 1.0.17 +diff --git a/build-tests/x86/suse/test-image-live/appliance.kiwi b/build-tests/x86/suse/test-image-live/appliance.kiwi +index af1f99f58f..f1537927ab 100644 +--- a/build-tests/x86/suse/test-image-live/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-live/appliance.kiwi +@@ -16,7 +16,9 @@ + false + bgrt + openSUSE +- ++ ++ ++ + + + +diff --git a/build-tests/x86/suse/test-image-luks/appliance.kiwi b/build-tests/x86/suse/test-image-luks/appliance.kiwi +index 0ce0ab90b4..4ae9949648 100644 +--- a/build-tests/x86/suse/test-image-luks/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-luks/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-lvm/appliance.kiwi b/build-tests/x86/suse/test-image-lvm/appliance.kiwi +index 6337c6cf38..abb13c3ebc 100644 +--- a/build-tests/x86/suse/test-image-lvm/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-lvm/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-orthos/appliance.kiwi b/build-tests/x86/suse/test-image-orthos/appliance.kiwi +index b2c0730d3b..9abf9559ca 100644 +--- a/build-tests/x86/suse/test-image-orthos/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-orthos/appliance.kiwi +@@ -13,7 +13,7 @@ + us + Europe/Berlin + true +- ++ + + + true +diff --git a/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi b/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi +index bad171e779..45e0a1dd67 100644 +--- a/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-overlayroot/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + 4 + + +diff --git a/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi b/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi +index ead73a8251..47b04dd134 100644 +--- a/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-qcow-openstack/appliance.kiwi +@@ -7,11 +7,11 @@ + SUSE Tumbleweed guest image for OpenStack + + +- ++ + + false + +- ++ + 10240 + + 0.3.10 +diff --git a/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi b/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi +index 93035f6013..00ca4eb92e 100644 +--- a/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-suse-on-dnf/appliance.kiwi +@@ -16,11 +16,11 @@ + false + bgrt + openSUSE +- ++ + + false + +- ++ + + + +diff --git a/build-tests/x86/suse/test-image-vagrant/appliance.kiwi b/build-tests/x86/suse/test-image-vagrant/appliance.kiwi +index cdbff4fc38..6fe09b4e85 100644 +--- a/build-tests/x86/suse/test-image-vagrant/appliance.kiwi ++++ b/build-tests/x86/suse/test-image-vagrant/appliance.kiwi +@@ -28,21 +28,21 @@ + openSUSE + + +- ++ + + false + +- ++ + + 42 + + + +- ++ + + false + +- ++ + + 42 + +diff --git a/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi b/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi +index bd27fae4c8..dbc15cd790 100644 +--- a/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi ++++ b/build-tests/x86/ubuntu/test-image-live-disk/appliance.kiwi +@@ -26,7 +26,7 @@ + + + +- ++ + + + +@@ -34,12 +34,12 @@ + + false + +- ++ + + + + +- ++ + + true + /dev/ram diff --git a/kiwi.spec b/kiwi.spec index e59772ea8362d71e3616a30ce27bb204a27f4290..263dd86037f924342b5e0144da6051ac6b4aa567 100644 --- a/kiwi.spec +++ b/kiwi.spec @@ -2,12 +2,14 @@ Name: kiwi Version: 9.21.5 -Release: 1 +Release: 2 License: GPLv3+ Summary: Flexible operating system image builder URL: http://osinside.github.io/kiwi/ Source0: https://files.pythonhosted.org/packages/source/k/%{name}/%{name}-%{version}.tar.gz +Patch6000: fd6c0fac7bff29dfa745f951428f0f8933c65d60.patch +Patch6001: 2d963ea0ccd350d05df9a0f5c4bac261cba22389.patch BuildRequires: bash-completion dracut fdupes gcc make BuildRequires: python3-devel python3-setuptools shadow-utils @@ -189,6 +191,9 @@ done %{_mandir}/man8/%{name}* %changelog +* 20201104223007660955 patch-tracking 9.21.5-2 +- append patch file of upstream repository from to <2d963ea0ccd350d05df9a0f5c4bac261cba22389> + * Tue Jul 28 2020 xinghe - 9.21.5-1 - update version to 9.21.5 @@ -208,4 +213,4 @@ done - Remove python2 dependency * Sat Sep 21 2019 openEuler Buildteam - 9.16.12-2 -- Package init +- Package init \ No newline at end of file