From: Janpieter Sollie <[email protected]> Due to bcachefs being mainlined soon (hopefully), it's worth considering a more recent update channel, which may include bcachefs features in the future.
Necessary adjustments have been made for the packages, but kernel requirements may still need some extra tweaks Signed-off-by: jpsollie <[email protected]> --- build-test-kernel | 8 +++----- lib/common.sh | 8 +++++--- lib/libktest.sh | 2 +- root_image | 15 ++++++++------- tests/test-libs.sh | 4 ++-- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/build-test-kernel b/build-test-kernel index 9121fd1..38cfd25 100755 --- a/build-test-kernel +++ b/build-test-kernel @@ -121,10 +121,8 @@ run_ktest() do_make() { - if [[ -n $CROSS_COMPILE ]]; then - export ARCH="$KERNEL_ARCH" - export CROSS_COMPILE="$ARCH_TRIPLE-" - fi + local ARCH="$KERNEL_ARCH" + local CROSS_COMPILE="$ARCH_TRIPLE-" make --jobs="$ktest_njobs" \ --directory="$ktest_kernel_source" \ @@ -192,7 +190,7 @@ build_kernel() log_verbose "kernel_config_require: ${ktest_kernel_config_require[@]}" - MAKEARGS+=("LOCALVERSION=-ktest") + MAKEARGS+=("LOCALVERSION=-ktest" ARCH="$KERNEL_ARCH" CROSS_COMPILE="$ARCH_TRIPLE-") for opt in "${ktest_kernel_config_require[@]}"; do [[ -n $opt ]] && kernel_opt set "$opt" diff --git a/lib/common.sh b/lib/common.sh index b94557d..8629e9f 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -83,7 +83,7 @@ join_by() parse_arch() { case $1 in - x86|i386) + x86|i386|i686) ktest_arch=x86 DEBIAN_ARCH=i386 ARCH_TRIPLE=${ARCH_TRIPLE_X86} @@ -92,7 +92,7 @@ parse_arch() BITS=32 QEMU_PACKAGE=qemu-system-x86 - QEMU_BIN=qemu-system-x86_64 + QEMU_BIN=qemu-system-i386 ;; x86_64|amd64) ktest_arch=x86_64 @@ -188,7 +188,8 @@ parse_arch() if [[ $ktest_arch != $(uname -m) ]]; then CROSS_COMPILE=1 fi - + #special case: x86_64 is able to run i386 code. this isn't always the case for armv8 -> armv7 (cortex A35) + [[ $DEBIAN_ARCH == "i386" ]] && [[ "$(uname -m)" == "x86_64" ]] && CROSS_COMPILE=0 export DEBIAN_ARCH export MIRROR export ARCH_TRIPLE @@ -196,6 +197,7 @@ parse_arch() export QEMU_PACKAGE export QEMU_BIN export ktest_arch + export BITS } find_command() { diff --git a/lib/libktest.sh b/lib/libktest.sh index 8ead78b..9e8f4db 100644 --- a/lib/libktest.sh +++ b/lib/libktest.sh @@ -309,7 +309,7 @@ start_vm() local qemu_cmd=("$QEMU_BIN" -nodefaults -nographic) local accel=kvm local cputype=host - [[ $(uname -m) == $ktest_arch ]] || accel=tcg && cputype=max + [[ "${CROSS_COMPILE:-0}" == "1" ]] && accel=tcg && cputype=max case $ktest_arch in x86|x86_64) qemu_cmd+=(-cpu $cputype -machine type=q35,accel=$accel,nvdimm=on) diff --git a/root_image b/root_image index 87add22..5d9c767 100755 --- a/root_image +++ b/root_image @@ -45,6 +45,7 @@ if [[ $# = 0 ]]; then fi ktest_image="" +ktest_arch="$(uname -m)" CMD="cmd_$1" shift @@ -100,7 +101,7 @@ PACKAGES+=(libudev-dev libldap2-dev) PACKAGES+=(acct bsdextrautils xfsprogs xfslibs-dev quota libcap2-bin) PACKAGES+=(libattr1-dev libaio-dev libgdbm-dev libacl1-dev gettext) PACKAGES+=(libssl-dev libgdbm-dev libgdbm-compat-dev liburing-dev) -PACKAGES+=(duperemove thin-provisioning-tools fsverity) +PACKAGES+=(duperemove fsverity) # xfsprogs: PACKAGES+=(libinih-dev) @@ -123,10 +124,9 @@ PACKAGES+=("linux-headers-generic") # DKMS needs to cross-compile the module, # against a different kernel on a different CPUarchitecture. # this has to cause errors -[ $CROSS_COMPILE == 1 ] || PACKAGES+=(dkms zfsutils-linux zfs-dkms) +[ -z ${CROSS_COMPILE:-0} ] || PACKAGES+=(dkms zfsutils-linux zfs-dkms) + -# suspend testing: -# [[ $KERNEL_ARCH = x86 ]] && PACKAGES+=(uswsusp) EXCLUDE=(dmidecode nano rsyslog logrotate cron \ iptables nfacct \ @@ -241,6 +241,7 @@ update_packages() chmod 755 "$MNT"/tmp/rustup.sh _chroot "$MNT" /tmp/rustup.sh -y + echo 'export PATH="$HOME/.cargo/bin:$PATH"' > $MNT/etc/profile.d/rustup.sh } trim_image() @@ -304,10 +305,10 @@ cmd_create() --arch="$DEBIAN_ARCH" \ --exclude=$(join_by , "${EXCLUDE[@]}") \ --foreign \ - --components='main,contrib,non-free,bullseye-backports' \ - bullseye "$MNT" "$MIRROR" + --components='main,contrib,non-free' \ + trixie "$MNT" "$MIRROR" - [ ${CROSS_COMPILE} == 1 ] && cp $(which qemu-${ktest_arch}) ${MNT}$(which qemu-${ktest_arch}) + [ ${CROSS_COMPILE:-0} == 1 ] && cp $(which qemu-${ktest_arch}) ${MNT}$(which qemu-${ktest_arch}) _chroot "$MNT" /debootstrap/debootstrap --second-stage _chroot "$MNT" dpkg --configure -a diff --git a/tests/test-libs.sh b/tests/test-libs.sh index 8545911..2986f56 100644 --- a/tests/test-libs.sh +++ b/tests/test-libs.sh @@ -7,9 +7,9 @@ . $(dirname $(readlink -e ${BASH_SOURCE[0]}))/prelude.sh . $(dirname $(readlink -e ${BASH_SOURCE[0]}))/kconfig.sh -config-mem 4G +config-mem 8G -(($ktest_cpus > 16)) && ktest_cpus=16 +(($ktest_cpus > 8)) && ktest_cpus=8 # Usage: # setup_tracing tracepoint_glob -- 2.42.0
