diff --git a/.obs_test b/.obs_test index 04039957..7fb08755 100644 --- a/.obs_test +++ b/.obs_test @@ -1,4 +1,4 @@ Virtualization:Appliances:Images:Testing_x86 x86_64 -Virtualization:Appliances:Images:Testing_arm armv7l +Virtualization:Appliances:Images:Testing_arm aarch64 Virtualization:Appliances:Images:Testing_s390 s390x Virtualization:Appliances:Images x86_64 diff --git a/build-tests/arm/test-image-panda-oem/appliance.kiwi b/build-tests/arm/test-image-panda-oem/appliance.kiwi deleted file mode 100644 index c9f9ec30..00000000 --- a/build-tests/arm/test-image-panda-oem/appliance.kiwi +++ /dev/null @@ -1,111 +0,0 @@ - - - - - Marcus Schaefer - ms@suse.com - - openSUSE Tumbleweed JeOS image for ARM (panda) boards - - - - - - true - 500 - true - - - 2016.03.09 - zypper - en_US - us - Europe/Berlin - true - openSUSE - openSUSE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/build-tests/arm/test-image-panda-oem/config.sh b/build-tests/arm/test-image-panda-oem/config.sh deleted file mode 100644 index d8272359..00000000 --- a/build-tests/arm/test-image-panda-oem/config.sh +++ /dev/null @@ -1,174 +0,0 @@ -#!/bin/bash -# vim: sw=4 et -#================ -# FILE : config.sh -#---------------- -# PROJECT : OpenSuSE KIWI Image System -# COPYRIGHT : (c) 2006 SUSE LINUX Products GmbH. All rights reserved -# : -# AUTHOR : Marcus Schaefer -# : -# BELONGS TO : Operating System images -# : -# DESCRIPTION : configuration script for SUSE based -# : operating systems -# : -# : -# STATUS : BETA -#---------------- -#====================================== -# Functions... -#-------------------------------------- -test -f /.kconfig && . /.kconfig -test -f /.profile && . /.profile - -#====================================== -# Greeting... -#-------------------------------------- -echo "Configure image: [$kiwi_iname]..." - -#====================================== -# Setup baseproduct link -#-------------------------------------- -suseSetupProduct - -#====================================== -# Activate services -#-------------------------------------- -suseInsertService sshd -suseInsertService boot.device-mapper -suseInsertService ntpd -suseInsertService NetworkManager -suseRemoveService avahi-dnsconfd -suseRemoveService avahi-daemon - -#========================================== -# remove unneeded packages -#------------------------------------------ -suseRemovePackagesMarkedForDeletion - -#====================================== -# Add missing gpg keys to rpm -#-------------------------------------- -suseImportBuildKey - -#========================================== -# remove package docs -#------------------------------------------ -rm -rf /usr/share/doc/packages/* -rm -rf /usr/share/doc/manual/* -rm -rf /opt/kde* - -if ! rpmqpack | grep -q vim-enhanced; then - #====================================== - # only basic version of vim is - # installed; no syntax highlighting - #-------------------------------------- - sed -i -e's/^syntax on/" syntax on/' /etc/vimrc -fi - -#====================================== -# Import GPG Key -#-------------------------------------- -t=$(mktemp) -cat - < $t ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2.0.15 (GNU/Linux) - -mQENBEkUTD8BCADWLy5d5IpJedHQQSXkC1VK/oAZlJEeBVpSZjMCn8LiHaI9Wq3G -3Vp6wvsP1b3kssJGzVFNctdXt5tjvOLxvrEfRJuGfqHTKILByqLzkeyWawbFNfSQ -93/8OunfSTXC1Sx3hgsNXQuOrNVKrDAQUqT620/jj94xNIg09bLSxsjN6EeTvyiO -mtE9H1J03o9tY6meNL/gcQhxBvwuo205np0JojYBP0pOfN8l9hnIOLkA0yu4ZXig -oKOVmf4iTjX4NImIWldT+UaWTO18NWcCrujtgHueytwYLBNV5N0oJIP2VYuLZfSD -VYuPllv7c6O2UEOXJsdbQaVuzU1HLocDyipnABEBAAG0NG9wZW5TVVNFIFByb2pl -Y3QgU2lnbmluZyBLZXkgPG9wZW5zdXNlQG9wZW5zdXNlLm9yZz6JATwEEwECACYC -GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAUCU2dN1AUJHR8ElQAKCRC4iy/UPb3C -hGQrB/9teCZ3Nt8vHE0SC5NmYMAE1Spcjkzx6M4r4C70AVTMEQh/8BvgmwkKP/qI -CWo2vC1hMXRgLg/TnTtFDq7kW+mHsCXmf5OLh2qOWCKi55Vitlf6bmH7n+h34Sha -Ei8gAObSpZSF8BzPGl6v0QmEaGKM3O1oUbbB3Z8i6w21CTg7dbU5vGR8Yhi9rNtr -hqrPS+q2yftjNbsODagaOUb85ESfQGx/LqoMePD+7MqGpAXjKMZqsEDP0TbxTwSk -4UKnF4zFCYHPLK3y/hSH5SEJwwPY11l6JGdC1Ue8Zzaj7f//axUs/hTC0UZaEE+a -5v4gbqOcigKaFs9Lc3Bj8b/lE10Y -=i2TA ------END PGP PUBLIC KEY BLOCK----- -EOF -rpm --import $t -rm -f $t - -#====================================== -# SuSEconfig -#-------------------------------------- -suseConfig - -#====================================== -# Add Factory repo -#-------------------------------------- -zypper ar -f \ - http://download.opensuse.org/ports/armv7hl/tumbleweed/repo/oss/ openSUSE-Ports-Tumbleweed-repo-oss - -#====================================== -# Add xorg config with fbdev -#-------------------------------------- -mkdir -p /etc/X11/xorg.conf.d/ -cat > /etc/X11/xorg.conf.d/20-fbdev.conf <> /etc/securetty < /etc/sysconfig/network/ifcfg-eth0 <<-EOF - BOOTPROTO='dhcp' - MTU='' - REMOTE_IPADDR='' - STARTMODE='onboot' - EOF - ;; -esac - -#====================================== -# Configure ntp -#-------------------------------------- -# tell e2fsck to ignore the time differences -cat > /etc/e2fsck.conf <> /etc/ntp.conf -done - -#====================================== -# Load panel-tfp410 before omapdrm -#-------------------------------------- -cat > /etc/modprobe.d/50-omapdrm.conf < gdisk.tmp - /usr/src/packages/KIWIROOT-oem/usr/sbin/gdisk /dev/loop0 < gdisk.tmp - rm -f gdisk.tmp -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 Origen SPL & u-boot as raw -#------------------------------------------ -if [ -f "boot/origen-spl.bin" ];then - echo "Installing SPL..." - if ! dd if=boot/origen-spl.bin of=$diskname 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.bin of=$diskname seek=65 conv=notrunc; then - echo "Couldn't install u-boot on $diskname" - exit 1 - fi -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 -#------------------------------------------ -if [ -f "boot/bl1.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 Cubieboard/Cubietruck SPL & u-boot as raw -#------------------------------------------ -if [[ -f "boot/sunxi-spl.bin" || -f "boot/u-boot-sunxi-with-spl.bin" ]];then - 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 - 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 -#------------------------------------------ -if [ "$flavor" = "chromebook" ]; then - pushd /usr/src/packages/KIWIROOT-oem/ - echo "console=tty1 debug verbose" > /tmp/config - ./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 - PART=$(kpartx -asv $diskname | cut -d ' ' -f 3 | head -n1) - dd if=/tmp/newkern of=/dev/mapper/$PART - kpartx -dv $diskname - # Enable bootflag on partition 2 (u-boot now looks for bootscripts on bootable partitions only) - parted $diskname set 2 boot on - # CGPT magic - ./usr/bin/cgpt add -t kernel -i 1 -S 1 -T 5 -P 10 -l U-BOOT $diskname - popd -fi - -#========================================== -# install i.MX u-boot as raw -#------------------------------------------ -if [ -f "boot/u-boot.imx" ];then - pushd /usr/src/packages/KIWIROOT-oem/ - echo "Installing U-Boot..." - if ! dd if=boot/u-boot.imx of=$diskname bs=512 seek=2 conv=notrunc; then - echo "Couldn't install u-boot on $diskname" - exit 1 - fi - popd -fi - -#========================================== -# install Cubox-i SPL & u-boot as raw -#------------------------------------------ -if [ -f "boot/cuboxi-spl.bin" ];then - echo "Installing SPL..." - if ! dd if=boot/cuboxi-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 - -) - -if [ -f boot/grub2/*efi/grub.efi -o -f ./EFI/BOOT/boot*.efi ];then - echo "EFI system, installing startup.nsh" - PART=$(kpartx -asv $diskname | cut -d ' ' -f 3 | head -n1) - mkdir ./mnt - mount /dev/mapper/$PART ./mnt - if [ -f boot/grub2/arm-efi/grub.efi ]; then - echo "bootarm" > mnt/startup.nsh - else - echo "bootaa64" > mnt/startup.nsh - fi - umount ./mnt - rmdir ./mnt - kpartx -dv $diskname -fi diff --git a/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup b/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup deleted file mode 100644 index 0191a894..00000000 --- a/build-tests/arm/test-image-panda-oem/uboot-image-panda-setup +++ /dev/null @@ -1,508 +0,0 @@ -#!/bin/bash - -set -x - -flavor=panda -target=firstboot -kerneladdr= -ramdiskaddr= -bootkernel=default - -case $target in - firstboot) - conf=boot/boot.script - binconf=boot/boot.scr - kernel=boot/linux.vmx - initrd=boot/initrd.uboot - # the kernel command line is already prepopulated by KIWI - bootargs= - ;; - boot) - hookName=$1 # name of hook script calling this code - mountPrefix=$2 # mount path of the image - destsPrefix=$3 # base dir for the config files - unum=$4 # boot partition ID - rdev=$5 # root partition - ufix=$6 # title postfix - swap=$7 # optional swap partition - conf=$destsPrefix/boot/boot.script - binconf=$destsPrefix/boot/boot.script - - #====================================== - # make sure conf dir exists - #-------------------------------------- - mkdir -p $destsPrefix/boot - #====================================== - # check for device by ID - #-------------------------------------- - local diskByID=`getDiskID $rdev` - local swapByID=`getDiskID $swap swap` - #====================================== - # check for system image .profile - #-------------------------------------- - if [ -f $mountPrefix/image/.profile ];then - importFile < $mountPrefix/image/.profile - fi - #====================================== - # check for kernel options - #-------------------------------------- - if [ ! -z "$kiwi_cmdline" ];then - KIWI_KERNEL_OPTIONS="$KIWI_KERNEL_OPTIONS $kiwi_cmdline" - fi - - # /.../ - # On other systems which supports a boot menu we add - # the linux kernel and initrd with its file names - # like this: - # - # kernel=`echo $i | cut -f1 -d:` - # initrd=`echo $i | cut -f2 -d:` - # - # But on arm systems there can only be one kernel because - # uboot doesn't support a menu. Thus perl-bootloader also - # doesn't support updating the uboot configuration and - # that's the reason why we use the links created by - # mkinitrd to point to the kernel and initrd in order - # to support kernel updates - # ---- - kernel=uImage - initrd=initrd - - # gather kernel command line - bootargs="root=$diskByID loader=$loader" - if [ "$imageDiskDevice" ];then - bootargs="$bootargs disk=$(getDiskID $imageDiskDevice)" - fi - if [ "$swap" ];then - bootargs="$bootargs resume=$swapByID" - fi - if [ "$haveLVM" = "yes" ];then - bootargs="$bootargs VGROUP=$VGROUP" - fi - bootargs="$bootargs $KIWI_INITRD_PARAMS" - bootargs="$bootargs $KIWI_KERNEL_OPTIONS" - - # start with a fresh config - true > $conf - ;; - *) - echo "Unknown target $target" >&2 - exit 1 - ;; -esac - -bootdevs=mmc -units="0" -bootparts='${unit}:1' -boottype=bootz -setdev='mmc dev ${unit}' -sizeprefix=0x -fdtfolder=dtb -fs=ext2 -initrd_high=0xffffffff -fdt_high=0xffffffff -# To display a splash file, we need a working display, an uncompressed BMP file and 'bmp' commands -should_use_splashfile=0 -splashfile=opensuse.bmp - -case $flavor in - beaglebone) - units="0 1" # 0: is SD card - 1: is internal eMMC - kerneladdr=0x82000000 - ramdiskaddr=0x88080000 - fdtaddr=0x88000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=call_findfdt - ;; - beagle|panda) - kerneladdr=0x82000000 - ramdiskaddr=0x88080000 - fdtaddr=0x88000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=call_findfdt - ;; - highbank|midway) - bootdevs=scsi - should_use_fdt=1 - setdev=1 - # Highbank's u-boot already prepends 0x to the file size - sizeprefix= - # And calls the variable $fdt_addr rather than $fdtaddr - use_fdt_addr=1 - ;; - cubox) - kerneladdr=0x2000000 - ramdiskaddr=0x5000000 - ;; - cubieboard) - kerneladdr=0x46000000 - ramdiskaddr=0x4a000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=sun4i-a10-cubieboard.dtb - fdtaddr=0x49000000 - ;; - cubieboard2) - kerneladdr=0x46000000 - ramdiskaddr=0x4a000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=sun7i-a20-cubieboard2.dtb - fdtaddr=0x49000000 - ;; - cubietruck) - kerneladdr=0x46000000 - ramdiskaddr=0x4a000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=sun7i-a20-cubietruck.dtb - fdtaddr=0x49000000 - ;; - bananapi) - kerneladdr=0x46000000 - ramdiskaddr=0x4a000000 - should_use_fdt=1 - should_load_fdt=1 - fdtfile=sun7i-a20-bananapi.dtb - fdtaddr=0x49000000 - ;; - loco) - kerneladdr=0x70800000 - ramdiskaddr=0x7e000000 - fdtaddr=0x7d800000 - should_use_fdt=1 - should_load_fdt=1 - units="0 1" - fdtfile=imx53-qsb.dtb - ;; - arndale) - kerneladdr=0x44000000 - ramdiskaddr=0x45000000 - fdtaddr=0x4c000000 - units="0 1" # 0: is internal eMMC or USB stick - 1: is SD card - should_use_fdt=1 - should_load_fdt=1 - fdtfile=exynos5250-arndale.dtb - ;; - chromebook) - fs="" # No ext2load by default on u-boot-snow. Just use 'load' command. - kerneladdr=0x40007000 - ramdiskaddr=0x44000000 - fdtaddr=0x42000000 - bootdevs="mmc usb" - units="0 1" # 0: is internal eMMC or USB stick - 1: is SD card - bootparts='${unit}:2' - should_use_fdt=1 - should_load_fdt=1 - fdtfile=exynos5250-snow.dtb - ;; - sabrelite) - kerneladdr=0x10008000 - ramdiskaddr=0x14000000 - fdtaddr=0x12000000 - bootdevs="mmc usb" - units="0 1" # 0: is SD3 (bottom) slot - 1: is uSD4 (top) slot - should_use_fdt=1 - should_load_fdt=1 - fdtfile=imx6q-sabrelite.dtb - should_use_splashfile=1 - ;; - raspberrypi) - fs="" - bootparts='${unit}:2' - should_use_fdt=1 - should_load_fdt=1 - use_fdt_addr_r=1 - #fdtfile is set by u-boot, do not overwrite - # kernel-raspberrypi (downstream kernel) does not use the same DT - if [ $bootkernel = raspberrypi ]; then - fdtfile=bcm2708-rpi-b.dtb # TODO: Support all RPi1 DTB included in Linux kernel, not only RPi 1 B - fi - # bootargs for dracut shouldn't override rootfstype - bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//') - if [ $bootkernel = raspberrypi ]; then - # Pass Mac address to Linux (works only on downstream kernel). Should be removed with new u-boot which will auto-update device-tree with it. - if [ $target = boot ]; then - # Bootargs is defined upper in this script, so it is available/editable - bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ") - else # $target = firstboot - # Bootargs is already defined by kiwi but not available/editable here - bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ") - fi - fi - # initrd needs to be relocated as it is too big - initrd_high= - ;; - raspberrypi2) - fs="" - bootparts='${unit}:2' - should_use_fdt=1 - should_load_fdt=1 - use_fdt_addr_r=1 - if [ $bootkernel = rpi2 ]; then - fdtfile=bcm2709-rpi-2-b.dtb - fi - # bootargs for dracut shouldn't override rootfstype - bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//') - if [ $bootkernel = rpi2 ]; then - # Pass Mac address to Linux (works only on downstream kernel) Should be removed with new u-boot which will auto-update device-tree with it. - if [ $target = boot ]; then - # Bootargs is defined upper in this script, so it is available/editable - bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ") - else # $target = firstboot - # Bootargs is already defined by kiwi but not available/editable here - bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ") - fi - fi - # initrd needs to be relocated as it is too big - initrd_high= - ;; - raspberrypi3) - fs="" - bootparts='${unit}:2' - should_use_fdt=1 - should_load_fdt=1 - use_fdt_addr_r=1 - fdtfile=bcm2710-rpi-3-b.dtb - # bootargs for dracut shouldn't override rootfstype - bootargs=$(echo "$bootargs" | sed 's/ rootfstype=ramfs//') - if [ $bootkernel = rpi2 ]; then - # Pass Mac address to Linux (works only on downstream kernel) Should be removed with new u-boot which will auto-update device-tree with it. - if [ $target = boot ]; then - # Bootargs is defined upper in this script, so it is available/editable - bootargs=$(echo "$bootargs smsc95xx.macaddr=\${usbethaddr} ") - else # $target = firstboot - # Bootargs is already defined by kiwi but not available/editable here - bootargs=$(echo "\${bootargs} smsc95xx.macaddr=\${usbethaddr} ") - fi - fi - # initrd needs to be relocated as it is too big - initrd_high= - ;; - cuboxi) - kerneladdr=0x10800100 - fdtaddr=calculate - ramdiskaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - fdtfile=call_findfdt - fs="" # u-boot does not know ext2load on cubox-i, 'load' does the job fine - ;; - mustang) - boottype=bootm - bootdevs=scsi - setdev="true" - kerneladdr=0x4002000000 - fdtaddr=calculate - ramdiskaddr=calculate - use_fdt_addr_r=1 - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - initrd_high=0x43e0000000 - fdtfile=apm-mustang.dtb - [ "$target" = "boot" ] && initrd=uInitrd - fdt_high= - ;; - m400) - fs="" # Just use "load" command - boottype=bootm - bootdevs=scsi - setdev="true" - kerneladdr=0x4002000000 - fdtaddr=calculate - ramdiskaddr=calculate - use_fdt_addr_r=1 - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - initrd_high=0x43e0000000 - fdtfile=apm/apm-m400.dtb - fdt_high= - ;; - paz00) - kerneladdr=0x1000000 - ramdiskaddr=0x2200000 - fdtaddr=0x2000000 - should_use_fdt=1 - should_load_fdt=1 - units="1 0" - bootdevs="mmc usb" - fdtfile=tegra20-paz00.dtb - ;; - olinuxinolime) - kerneladdr=0x41000000 - ramdiskaddr=calculate - fdtaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - fdtfile=sun4i-a10-olinuxino-lime.dtb - fdt_high= - initrd_high= - ;; - olinuxinolime2) - kerneladdr=0x41000000 - ramdiskaddr=calculate - fdtaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - fdtfile=sun7i-a20-olinuxino-lime2.dtb - fdt_high= - initrd_high= - ;; - a13olinuxino) - kerneladdr=0x41000000 - ramdiskaddr=calculate - fdtaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - fdtfile=sun5i-a13-olinuxino.dtb - fdt_high= - initrd_high= - ;; - a20olinuxinolime) - kerneladdr=0x41000000 - ramdiskaddr=calculate - fdtaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - fdtfile=sun7i-a20-olinuxino-lime.dtb - fdt_high= - initrd_high= - ;; - a20olinuxinomicro) - kerneladdr=0x41000000 - ramdiskaddr=calculate - fdtaddr=calculate - should_load_fdt=1 - should_use_fdt=1 - remove_fdt_high=1 - fdtfile=sun7i-a20-olinuxino-micro.dtb - fdt_high= - initrd_high= - ;; - odroid|odroidxu3) - fs="" # u-boot does not know ext2load on odroid, only fatload, ext4load and load, - kerneladdr=0x40007FC0 - ramdiskaddr=0x42000000 - fdtaddr=0x40800000 - should_load_fdt=1 - should_use_fdt=1 - ;; -esac - -# override zImage file names -if [ $boottype = bootz -a $target = boot ]; then - kernel=zImage -fi - -# calculate fdt- and ramdiskaddr from kerneladdr -# kernel needs maximum 63MB -# fdt maximum 1MB -# ramdisk can be placed anywhere after that -if [ "x$fdtaddr" = "xcalculate" ]; then - fdtaddr=$(( $kerneladdr + 0x03F00000 )) # kernel + 63M - fdtaddr=`printf '0x%X' $fdtaddr` # convert back to hexadecimal -fi -if [ "x$ramdiskaddr" = "xcalculate" ]; then - ramdiskaddr=$(( $fdtaddr + 0x00100000 )) # fdt + 1M - ramdiskaddr=`printf '0x%X' $ramdiskaddr` # convert back to hexadecimal -fi - -# copy bash variables into boot script (except 'target' which is not used in u-boot and may overlap u-boot variables (e.g. cubox-i)) -for variable in kernel initrd fdtfile fdtfolder flavor bootdevs bootparts \ - initrd_high fdt_high boottype kerneladdr ramdiskaddr should_use_fdt \ - should_load_fdt fdtaddr setdev units sizeprefix use_fdt_addr \ - use_fdt_addr_r fs remove_fdt_high should_use_splashfile splashfile; do - value=$(eval "echo $(echo \$$variable)") - # only set variables that contain data, leave the others alone - if [ "$value" ]; then - echo "setenv $variable '$value'" >> $conf - fi -done - -# follow KIWI modules/KIWIBoot.pm and append $append variable to the end of bootargs -# this allows user to consistently add extra parameters to kernel as simply as possible: -# > setenv append extraopt -# > boot -if [ "x$bootargs" != "x" ]; then - echo "setenv bootargs \"$bootargs \${append}\"" >> $conf -fi - -cat >> $conf <<-"EOF" - test -n "$kerneladdr" || setenv kerneladdr ${kernel_addr_r} - test -n "$ramdiskaddr" || setenv ramdiskaddr ${ramdisk_addr_r} - if test 1${should_use_splashfile} = 11; then - setenv load_splashfile 'if ${fs}load ${bootdev} ${bootpart} ${kerneladdr} ${splashfile}; then; bmp display ${kerneladdr}; fi;' - else - setenv load_splashfile '' - fi - setenv load_kernel '${fs}load ${bootdev} ${bootpart} ${kerneladdr} ${kernel}' - setenv load_initrd '${fs}load ${bootdev} ${bootpart} ${ramdiskaddr} ${initrd}; setenv rd_filesize ${sizeprefix}${filesize}' - if test 1${should_load_fdt} = 11; then - if test 0${fdtfile} = 0call_findfdt; then - run findfdt - fi - if test 0${fdtfile} = 0call_autodetectfdt; then - run autodetectfdt - fi - if test -n "$validatefdt"; then - # Beagleboard xM needs to run validatefdt with latest u-boot, but bootpart is 0:2 by default and prefix file with $bootdir. - setenv bootpart 0:1 - setenv bootdir ${fdtfolder} - run validatefdt - fi - setenv loadfdt '${fs}load ${bootdev} ${bootpart} ${fdtaddr} ${fdtfolder}/${fdtfile}' - else - setenv loadfdt '' - fi - if test 1${use_fdt_addr} = 11; then - # Calxeda systems use $fdt_addr rather than $fdtaddr - setenv fdtaddr $fdt_addr - fi - if test 1${use_fdt_addr_r} = 11; then - # At least upstream rpi_b uses $fdt_addr_r rather than $fdtaddr - setenv fdtaddr ${fdt_addr_r} - fi - if test 1${should_use_fdt} = 11; then - setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize} ${fdtaddr}' - else - setenv boot_kernel '${boottype} ${kerneladdr} ${ramdiskaddr}:${rd_filesize}' - fi - if test 1${remove_fdt_high} = 11; then - setenv fdt_high - fi - setenv doit 'run load_splashfile; if run load_kernel; then; run load_initrd; run loadfdt; run boot_kernel; fi' - setenv bootcmd 'for bootdev in ${bootdevs}; do for unit in ${units}; do setenv bootpart; for bootpart in ${bootparts}; do setenv fix_bootpart "setenv bootpart $bootpart"; run fix_bootpart; run setdev; run doit; done; done; done' - boot -EOF - -#========================================== -# Create machine readable uboot format -# (only during image creation) -#------------------------------------------ -if [ -x /usr/bin/mkimage -a "$target" = firstboot ];then - mkopts="-A arm -O linux -a 0 -e 0 -T script -C none"; - if ! mkimage $mkopts -n 'Boot-Script' -d $conf $binconf;then - echo "Failed to create uboot script image" - exit 1 - fi -fi - -#========================================== -# create a uImage for one-off x-gene -#------------------------------------------ -if [ "$flavor" = "mustang" -o "$flavor" = "m400" ]; then - if [ "$target" = "firstboot" ]; then - mkimage -A arm -O linux -C none -T kernel -a 0x00080000 -e 0x00080000 -n Linux -d $kernel boot/uImage - mv boot/uImage $kernel - fi -fi - -set +x diff --git a/build-tests/arm/test-image-rpi-oem/appliance.kiwi b/build-tests/arm/test-image-rpi-oem/appliance.kiwi new file mode 100644 index 00000000..c8664c2a --- /dev/null +++ b/build-tests/arm/test-image-rpi-oem/appliance.kiwi @@ -0,0 +1,100 @@ + + + + + Marcus Schäfer + ms@suse.com + oem disk for RaspberryPi test build + + + 1.15.0 + zypper + openSUSE + openSUSE + en_US + us + Europe/Berlin + true + + + + + + + + + + + + + true + 500 + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build-tests/arm/test-image-rpi-oem/config.sh b/build-tests/arm/test-image-rpi-oem/config.sh new file mode 100644 index 00000000..66e944f4 --- /dev/null +++ b/build-tests/arm/test-image-rpi-oem/config.sh @@ -0,0 +1,127 @@ +#!/bin/bash +#====================================== +# Functions... +#-------------------------------------- +test -f /.kconfig && . /.kconfig +test -f /.profile && . /.profile + +mkdir /var/lib/misc/reconfig_system + +#====================================== +# Greeting... +#-------------------------------------- +echo "Configure image: [$kiwi_iname]-[$kiwi_profiles]..." + +#====================================== +# Debug +#-------------------------------------- +#systemctl enable debug-shell.service + +#====================================== +# add missing fonts +#-------------------------------------- +CONSOLE_FONT="eurlatgr.psfu" + +#====================================== +# Mount system filesystems +#-------------------------------------- +baseMount + +#====================================== +# Setup baseproduct link +#-------------------------------------- +suseSetupProduct + +#====================================== +# Specify default runlevel +#-------------------------------------- +baseSetRunlevel 3 + +#====================================== +# Add missing gpg keys to rpm +#-------------------------------------- +suseImportBuildKey + +#====================================== +# Activate services +#-------------------------------------- +suseInsertService sshd + +#====================================== +# Remove doc files +#-------------------------------------- +baseStripDocs + +#====================================== +# Sysconfig Update +#-------------------------------------- +# Systemd controls the console font now +echo FONT="$CONSOLE_FONT" >> /etc/vconsole.conf + +#====================================== +# SSL Certificates Configuration +#-------------------------------------- +echo '** Rehashing SSL Certificates...' +update-ca-certificates + +if [ ! -s /var/log/zypper.log ]; then + > /var/log/zypper.log +fi + +#====================================== +# Import trusted rpm keys +#-------------------------------------- +for i in /usr/lib/rpm/gnupg/keys/gpg-pubkey*asc; do + # importing can fail if it already exists + rpm --import $i || true +done + +#===================================== +# Configure snapper +#------------------------------------- +if [ "$kiwi_btrfs_root_is_snapshot" = 'true' ]; then + echo "creating initial snapper config ..." + # we can't call snapper here as the .snapshots subvolume + # already exists and snapper create-config doens't like + # that. + cp /etc/snapper/config-templates/default /etc/snapper/configs/root + # Change configuration to match SLES12-SP1 values + sed -i -e '/^TIMELINE_CREATE=/s/yes/no/' /etc/snapper/configs/root + sed -i -e '/^NUMBER_LIMIT=/s/50/10/' /etc/snapper/configs/root + + baseUpdateSysConfig /etc/sysconfig/snapper SNAPPER_CONFIGS root +fi + +#===================================== +# 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 + +baseCleanMount + +exit 0 diff --git a/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh b/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh new file mode 100644 index 00000000..b437f0da --- /dev/null +++ b/build-tests/arm/test-image-rpi-oem/editbootinstall_rpi.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +set -x + +diskname=$1 +devname="$2" +loopname="${devname%*p2}" +loopdev=/dev/${loopname#/dev/mapper/*} + +#========================================== +# copy Raspberry Pi firmware to EFI partition +#------------------------------------------ +echo "RPi EFI system, installing firmware on ESP" +mkdir -p ./mnt-pi +mount ${loopname}p1 ./mnt-pi +( cd boot/vc; tar c . ) | ( cd ./mnt-pi/; tar x ) +umount ./mnt-pi +rmdir ./mnt-pi + +#========================================== +# Change partition label type to MBR +#------------------------------------------ +# +# 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 +dd if=$loopdev of=mbrid.bin bs=1 skip=440 count=4 +gdisk $loopdev < gdisk.tmp +dd of=$loopdev if=mbrid.bin bs=1 seek=440 count=4 +rm -f mbrid.bin +rm -f gdisk.tmp diff --git a/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0 b/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0 new file mode 100644 index 00000000..b01f9e19 --- /dev/null +++ b/build-tests/arm/test-image-rpi-oem/root/etc/sysconfig/network/ifcfg-lan0 @@ -0,0 +1,4 @@ +BOOTPROTO='dhcp' +MTU='' +REMOTE_IPADDR='' +STARTMODE='onboot' diff --git a/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules b/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules new file mode 100644 index 00000000..8865e787 --- /dev/null +++ b/build-tests/arm/test-image-rpi-oem/root/etc/udev/rules.d/70-persistent-net.rules @@ -0,0 +1 @@ +SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="?*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="?*", NAME="lan0"