diff options
-rwxr-xr-x | build-test-kernel | 23 | ||||
-rw-r--r-- | lib/common.sh | 17 | ||||
-rw-r--r-- | lib/libktest.sh | 4 | ||||
-rwxr-xr-x | root_image | 2 | ||||
-rw-r--r-- | tests/kconfig.sh | 29 |
5 files changed, 57 insertions, 18 deletions
diff --git a/build-test-kernel b/build-test-kernel index 2ffaf15..6a0b19e 100755 --- a/build-test-kernel +++ b/build-test-kernel @@ -194,13 +194,22 @@ build_kernel() local BOOT=$ktest_kernel_build/arch/$KERNEL_ARCH/boot - if [[ -f "$BOOT/bzImage" ]]; then - install -m0644 "$BOOT/bzImage" "$ktest_kernel_binary/vmlinuz" - elif [[ -f "$BOOT/vmlinux.strip" ]]; then - install -m0644 "$BOOT/vmlinux.strip" "$ktest_kernel_binary/vmlinuz" - else - install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinuz" - fi + case $ktest_arch in + x86*) + install -m0644 "$BOOT/bzImage" "$ktest_kernel_binary/vmlinuz" + ;; + aarch64) + install -m0644 "$BOOT/Image" "$ktest_kernel_binary/vmlinuz" + ;; + mips) + install -m0644 "$BOOT/vmlinux.strip" "$ktest_kernel_binary/vmlinuz" + #install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinuz" + ;; + default) + echo "Don't know how to install kernel" + exit 1 + ;; + esac install -m0644 "$ktest_kernel_build/vmlinux" "$ktest_kernel_binary/vmlinux" install -m0644 "$ktest_kernel_build/.config" "$ktest_kernel_binary/config" diff --git a/lib/common.sh b/lib/common.sh index e8e2ab5..a43a816 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -105,6 +105,17 @@ parse_arch() QEMU_PACKAGE=qemu-system-x86 QEMU_BIN=qemu-system-x86_64 ;; + aarch64) + ktest_arch=aarch64 + DEBIAN_ARCH=arm64 + ARCH_TRIPLE= + + KERNEL_ARCH=arm64 + BITS=64 + + QEMU_PACKAGE=qemu-system-arm + QEMU_BIN=qemu-system-aarch64 + ;; mips) DEBIAN_ARCH=mips ARCH_TRIPLE=mips-linux-gnu @@ -184,11 +195,7 @@ checkdep() local dep=$1 local package=$dep - if [[ $# -ge 2 ]]; then - package=$2 - else - package=$dep - fi + [[ $# -ge 2 ]] && package=$2 local found=0 diff --git a/lib/libktest.sh b/lib/libktest.sh index 282870c..186f96c 100644 --- a/lib/libktest.sh +++ b/lib/libktest.sh @@ -285,7 +285,6 @@ start_vm() local kernelargs=() kernelargs+=(mitigations=off) - kernelargs+=(console=hvc0) kernelargs+=(root=/dev/sda rw log_buf_len=8M) kernelargs+=("ktest.dir=$ktest_dir") kernelargs+=(ktest.env=$(readlink -f "$ktest_out/vm/env")) @@ -300,6 +299,9 @@ start_vm() x86|x86_64) qemu_cmd+=(-cpu host -machine type=q35,accel=kvm,nvdimm=on) ;; + aarch64) + qemu_cmd+=(-cpu host -machine type=virt,gic-version=max,accel=kvm) + ;; mips) qemu_cmd+=(-cpu 24Kf -machine malta) ktest_cpus=1 @@ -75,7 +75,7 @@ PACKAGES=(kexec-tools less psmisc openssh-server \ build-essential make gcc g++ \ autoconf automake autopoint bison \ pkg-config libtool-bin \ - gdb strace ltrace linux-perf trace-cmd blktrace sysstat \ + gdb strace linux-perf trace-cmd blktrace sysstat \ hdparm mdadm lvm2 \ btrfs-progs jfsutils nilfs-tools f2fs-tools \ bc attr gawk acl rsync git python3-docutils \ diff --git a/tests/kconfig.sh b/tests/kconfig.sh index 5cb3f2f..873c415 100644 --- a/tests/kconfig.sh +++ b/tests/kconfig.sh @@ -13,10 +13,13 @@ case $ktest_arch in require-kernel-config ACPI # way slower without it, do not know why require-kernel-config UNWINDER_FRAME_POINTER require-kernel-config HARDLOCKUP_DETECTOR + require-kernel-config RTC_DRV_CMOS have_kvmguest=1 have_virtio=1 have_suspend=1 + + require-kernel-append console=hvc0 ;; x86_64) require-kernel-config SMP @@ -27,10 +30,22 @@ case $ktest_arch in require-kernel-config ACPI # way slower without it, do not know why require-kernel-config UNWINDER_FRAME_POINTER require-kernel-config HARDLOCKUP_DETECTOR + require-kernel-config RTC_DRV_CMOS have_kvmguest=1 have_virtio=1 have_suspend=1 + + require-kernel-append console=hvc0 + ;; + aarch64) + require-kernel-config CONFIG_SERIAL_AMBA_PL011 + require-kernel-config CONFIG_SERIAL_AMBA_PL011_CONSOLE + require-kernel-config PCI_HOST_GENERIC + + have_virtio=1 + + require-kernel-append console=hvc0 ;; powerpc) require-kernel-config ADVANCED_OPTIONS @@ -38,6 +53,8 @@ case $ktest_arch in have_kvmguest=1 have_virtio=1 have_suspend=1 + + require-kernel-append console=hvc0 ;; mips) require-kernel-config MIPS_MALTA @@ -48,6 +65,12 @@ case $ktest_arch in have_virtio=1 ktest_storage_bus=piix4-ide + + require-kernel-append console=hvc0 + ;; + *) + echo "Kernel architecture not supported by kconfig.sh" + exit 1 ;; esac @@ -85,11 +108,13 @@ fi if [[ $have_virtio = 1 ]]; then require-kernel-config VIRTIO_MENU + require-kernel-config VIRTIO_MMIO require-kernel-config VIRTIO_PCI require-kernel-config HW_RANDOM_VIRTIO require-kernel-config VIRTIO_CONSOLE require-kernel-config VIRTIO_NET require-kernel-config NET_9P_VIRTIO + require-kernel-config CONFIG_CRYPTO_DEV_VIRTIO fi if [[ $have_suspend = 1 ]]; then @@ -131,7 +156,6 @@ require-kernel-config HW_RANDOM # Clock: require-kernel-config RTC_CLASS require-kernel-config RTC_HCTOSYS -require-kernel-config RTC_DRV_CMOS # Console: require-kernel-config SERIAL_8250 # XXX can probably drop @@ -163,9 +187,6 @@ require-kernel-config NET_9P require-kernel-config NETWORK_FILESYSTEMS require-kernel-config 9P_FS -# Fast RNG: -require-kernel-config CONFIG_CRYPTO_DEV_VIRTIO - # Crash dumps #if [[ $ktest_crashdump = 1 ]]; then # require-kernel-config KEXEC |