From 3b3b35f92bfafe6acd950812e29c515587f8c102 Mon Sep 17 00:00:00 2001 From: Lucien Mueller Date: Wed, 16 Aug 2023 08:54:07 +0200 Subject: [PATCH] nwl-ramdisk-minimal: add kernel-selftest with dependencies also add support for armada hw17 ID: 418251 Signed-off-by: Lucien Mueller --- .../conf/machine/netmodule-hw17.conf | 1 + .../linux/linux-nrsw/conf/netbird.cfg | 2 +- .../linux/linux-nrsw/conf/netbolt.cfg | 84 ++++++++++++++++--- .../busybox/busybox/kernel-selftest.cfg | 7 ++ .../recipes-core/busybox/busybox_%.bbappend | 5 ++ .../images/nwl-ramdisk-minimal.bb | 5 +- .../kernel-selftest/kernel-selftest.bbappend | 56 +++++++++++++ 7 files changed, 145 insertions(+), 15 deletions(-) create mode 100644 layers/meta-nwl-distro/recipes-core/busybox/busybox/kernel-selftest.cfg create mode 100644 layers/meta-nwl-distro/recipes-core/busybox/busybox_%.bbappend create mode 100644 layers/meta-nwl-distro/recipes-core/kernel-selftest/kernel-selftest.bbappend diff --git a/layers/meta-netmodule-legacy-bsp/conf/machine/netmodule-hw17.conf b/layers/meta-netmodule-legacy-bsp/conf/machine/netmodule-hw17.conf index 6dd2709..23cb4af 100644 --- a/layers/meta-netmodule-legacy-bsp/conf/machine/netmodule-hw17.conf +++ b/layers/meta-netmodule-legacy-bsp/conf/machine/netmodule-hw17.conf @@ -11,4 +11,5 @@ MAX_FS_SIZE = "279542" # U-Boot reads actual DTB file name from board descriptor, see: # printenv fdt_image KERNEL_DEVICETREE = "openwrt-nbhw17.dtb" +UBOOT_MACHINE = "netmodule-hw17" diff --git a/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbird.cfg b/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbird.cfg index 7c600d2..64121de 100644 --- a/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbird.cfg +++ b/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbird.cfg @@ -4207,7 +4207,7 @@ CONFIG_STRIP_ASM_SYMS=y # Generic Kernel Debugging Instruments # # CONFIG_MAGIC_SYSRQ is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set # CONFIG_UBSAN is not set diff --git a/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbolt.cfg b/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbolt.cfg index 0afd871..969f25b 100644 --- a/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbolt.cfg +++ b/layers/meta-netmodule-legacy-bsp/recipes-kernel/linux/linux-nrsw/conf/netbolt.cfg @@ -62,6 +62,7 @@ CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set # end of IRQ subsystem CONFIG_GENERIC_IRQ_MULTI_HANDLER=y @@ -152,7 +153,15 @@ CONFIG_NET_NS=y # CONFIG_SCHED_AUTOGROUP is not set # CONFIG_SYSFS_DEPRECATED is not set # CONFIG_RELAY is not set -# CONFIG_BLK_DEV_INITRD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +# CONFIG_RD_GZIP is not set +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +CONFIG_RD_XZ=y +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_RD_ZSTD is not set # CONFIG_BOOT_CONFIG is not set CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set @@ -186,7 +195,7 @@ CONFIG_SHMEM=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_BPF_SYSCALL is not set +CONFIG_BPF_SYSCALL=y # CONFIG_USERFAULTFD is not set CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y # CONFIG_KCMP is not set @@ -606,11 +615,13 @@ CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y CONFIG_ARCH_HAS_PHYS_TO_DMA=y +# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y # # GCOV-based kernel profiling # +# CONFIG_GCOV_KERNEL is not set CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y # end of GCOV-based kernel profiling @@ -643,6 +654,7 @@ CONFIG_BLK_DEV_THROTTLING=y # CONFIG_BLK_WBT is not set # CONFIG_BLK_CGROUP_IOLATENCY is not set # CONFIG_BLK_CGROUP_IOCOST is not set +CONFIG_BLK_DEBUG_FS=y # CONFIG_BLK_SED_OPAL is not set # CONFIG_BLK_INLINE_ENCRYPTION is not set @@ -783,7 +795,7 @@ CONFIG_IP_MROUTE=y CONFIG_IP_MROUTE_MULTIPLE_TABLES=y # CONFIG_IP_PIMSM_V1 is not set # CONFIG_IP_PIMSM_V2 is not set -# CONFIG_SYN_COOKIES is not set +CONFIG_SYN_COOKIES=y # CONFIG_NET_IPVTI is not set CONFIG_NET_UDP_TUNNEL=y CONFIG_NET_FOU=m @@ -844,7 +856,7 @@ CONFIG_IPV6_MROUTE=y # CONFIG_IPV6_RPL_LWTUNNEL is not set # CONFIG_NETLABEL is not set CONFIG_MPTCP=y -# CONFIG_MPTCP_IPV6 is not set +CONFIG_MPTCP_IPV6=y # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y @@ -938,7 +950,7 @@ CONFIG_NETFILTER_XT_TARGET_TCPMSS=m # Xtables matches # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m -# CONFIG_NETFILTER_XT_MATCH_BPF is not set +CONFIG_NETFILTER_XT_MATCH_BPF=m # CONFIG_NETFILTER_XT_MATCH_CGROUP is not set # CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set CONFIG_NETFILTER_XT_MATCH_COMMENT=m @@ -1075,13 +1087,14 @@ CONFIG_BRIDGE_EBT_T_FILTER=m # CONFIG_BRIDGE_EBT_SNAT is not set CONFIG_BRIDGE_EBT_LOG=m # CONFIG_BRIDGE_EBT_NFLOG is not set -# CONFIG_BPFILTER is not set +CONFIG_BPFILTER=y # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set CONFIG_L2TP=y +# CONFIG_L2TP_DEBUGFS is not set CONFIG_L2TP_V3=y CONFIG_L2TP_IP=y CONFIG_L2TP_ETH=y @@ -1138,7 +1151,7 @@ CONFIG_NET_SCH_TBF=m # CONFIG_NET_SCH_TAPRIO is not set CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m -# CONFIG_NET_SCH_NETEM is not set +CONFIG_NET_SCH_NETEM=y # CONFIG_NET_SCH_DRR is not set # CONFIG_NET_SCH_MQPRIO is not set # CONFIG_NET_SCH_SKBPRIO is not set @@ -1171,7 +1184,7 @@ CONFIG_CLS_U32_MARK=y # CONFIG_NET_CLS_RSVP6 is not set CONFIG_NET_CLS_FLOW=m CONFIG_NET_CLS_CGROUP=y -# CONFIG_NET_CLS_BPF is not set +CONFIG_NET_CLS_BPF=y # CONFIG_NET_CLS_FLOWER is not set # CONFIG_NET_CLS_MATCHALL is not set CONFIG_NET_EMATCH=y @@ -1196,7 +1209,7 @@ CONFIG_NET_ACT_SKBEDIT=m # CONFIG_NET_ACT_CSUM is not set # CONFIG_NET_ACT_MPLS is not set # CONFIG_NET_ACT_VLAN is not set -# CONFIG_NET_ACT_BPF is not set +CONFIG_NET_ACT_BPF=y # CONFIG_NET_ACT_CONNMARK is not set # CONFIG_NET_ACT_CTINFO is not set # CONFIG_NET_ACT_SKBMOD is not set @@ -1225,7 +1238,7 @@ CONFIG_XPS=y CONFIG_CGROUP_NET_CLASSID=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_BQL=y -# CONFIG_BPF_JIT is not set +CONFIG_BPF_JIT=y CONFIG_NET_FLOW_LIMIT=y # @@ -1294,6 +1307,7 @@ CONFIG_BT=y # CONFIG_BT_LE is not set # CONFIG_BT_LEDS is not set # CONFIG_BT_MSFTEXT is not set +CONFIG_BT_DEBUGFS=y # CONFIG_BT_SELFTEST is not set # CONFIG_BT_FEATURE_DEBUG is not set @@ -1496,7 +1510,9 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set -# CONFIG_BLK_DEV_RAM is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=4096 # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_BLK_DEV_RBD is not set @@ -1912,6 +1928,7 @@ CONFIG_USB_SIERRA_NET=m # # CONFIG_WAN is not set # CONFIG_VMXNET3 is not set +# CONFIG_NETDEVSIM is not set # CONFIG_NET_FAILOVER is not set # CONFIG_ISDN is not set # CONFIG_NVM is not set @@ -4546,7 +4563,10 @@ CONFIG_STRIP_ASM_SYMS=y # Generic Kernel Debugging Instruments # # CONFIG_MAGIC_SYSRQ is not set -# CONFIG_DEBUG_FS is not set +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# CONFIG_DEBUG_FS_ALLOW_NONE is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set # CONFIG_UBSAN is not set @@ -4689,7 +4709,45 @@ CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" CONFIG_ARCH_HAS_KCOV=y CONFIG_CC_HAS_SANCOV_TRACE_PC=y # CONFIG_KCOV is not set -# CONFIG_RUNTIME_TESTING_MENU is not set +CONFIG_RUNTIME_TESTING_MENU=y +CONFIG_LKDTM=y +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_BITOPS is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +CONFIG_TEST_BPF=m +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_FREE_PAGES is not set # CONFIG_MEMTEST is not set # end of Kernel Testing and Coverage # end of Kernel hacking diff --git a/layers/meta-nwl-distro/recipes-core/busybox/busybox/kernel-selftest.cfg b/layers/meta-nwl-distro/recipes-core/busybox/busybox/kernel-selftest.cfg new file mode 100644 index 0000000..b2ec1a6 --- /dev/null +++ b/layers/meta-nwl-distro/recipes-core/busybox/busybox/kernel-selftest.cfg @@ -0,0 +1,7 @@ +CONFIG_TASKSET=y +CONFIG_FEATURE_TASKSET_FANCY=y +CONFIG_FEATURE_TASKSET_CPULIST=y + +CONFIG_FEATURE_FANCY_HEAD=y + +CONFIG_FEATURE_DATE_NANO=y diff --git a/layers/meta-nwl-distro/recipes-core/busybox/busybox_%.bbappend b/layers/meta-nwl-distro/recipes-core/busybox/busybox_%.bbappend new file mode 100644 index 0000000..f3d2bcb --- /dev/null +++ b/layers/meta-nwl-distro/recipes-core/busybox/busybox_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/busybox:" + +SRC_URI += " \ + file://kernel-selftest.cfg \ + " diff --git a/layers/meta-nwl-distro/recipes-core/images/nwl-ramdisk-minimal.bb b/layers/meta-nwl-distro/recipes-core/images/nwl-ramdisk-minimal.bb index 26d5c45..52f5196 100644 --- a/layers/meta-nwl-distro/recipes-core/images/nwl-ramdisk-minimal.bb +++ b/layers/meta-nwl-distro/recipes-core/images/nwl-ramdisk-minimal.bb @@ -3,7 +3,7 @@ MAINTAINER = "Lucien Müller " inherit nwl-image -IMAGE_FSTYPES = "cpio.xz" +IMAGE_FSTYPES = "cpio" # Keep only the minimum packages NO_RECOMMENDATIONS = "1" @@ -12,7 +12,10 @@ COREOS_IMAGE_GENERATE_INSTALLER = "0" COREOS_IMAGE_GENERATE_UKI = "0" COREOS_IMAGE_GENERATE_SWU = "0" + +IMAGE_FEATURES += "ssh-server" IMAGE_INSTALL:append = " \ networkmanager-nmcli \ systemd-conf \ + kernel-selftest \ " diff --git a/layers/meta-nwl-distro/recipes-core/kernel-selftest/kernel-selftest.bbappend b/layers/meta-nwl-distro/recipes-core/kernel-selftest/kernel-selftest.bbappend new file mode 100644 index 0000000..6e89f0e --- /dev/null +++ b/layers/meta-nwl-distro/recipes-core/kernel-selftest/kernel-selftest.bbappend @@ -0,0 +1,56 @@ +# kernel-selftest misses some dependencies for some of the tests +# We add them here +RDEPENDS:${PN} += " \ + perl-module-io \ + perl-module-io-handle \ + perl-module-io-seekable \ + util-linux \ + gcc-sanitizers \ + fuse \ + jq \ + iputils \ + iproute2 \ + iproute2-tc \ + iproute2-nstat \ + iproute2-ss \ + coreutils \ + " +# kernel-module-gpio-mockup \ +# " + +DEPENDS += " \ + util-linux \ + gcc-sanitizers \ + fuse \ + numactl \ + " + +INSANE_SKIP:${PN} = "already-stripped" + +TEST_LIST += "net net/forwarding net/mptcp lkdtm" + +# Replace compile and install to make all tests + +# do_compile() { +# if [ ${@bb.utils.contains('PACKAGECONFIG', 'bpf', 'True', 'False', d)} = 'True' ]; then +# if [ ${@bb.utils.contains('DEPENDS', 'clang-native', 'True', 'False', d)} = 'False' ]; then +# bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so +# either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency" +# fi +# fi +# oe_runmake -C ${S}/tools/testing/selftests all +# } +# +# do_install() { +# oe_runmake -C ${S}/tools/testing/selftests INSTALL_PATH=${D}/usr/kernel-selftest install +# # Install kselftest-list.txt that required by kselftest runner. +# #oe_runmake -s --no-print-directory COLLECTION=${i} -C ${S}/tools/testing/selftests emit_tests \ +# # >> ${D}/usr/kernel-selftest/kselftest-list.txt +# # Install kselftest runner. +# install -m 0755 ${S}/tools/testing/selftests/run_kselftest.sh ${D}/usr/kernel-selftest/ +# cp -R --no-dereference --preserve=mode,links -v ${S}/tools/testing/selftests/kselftest ${D}/usr/kernel-selftest/ +# if [ -e ${D}/usr/kernel-selftest/bpf/test_offload.py ]; then +# sed -i -e '1s,#!.*python3,#! /usr/bin/env python3,' ${D}/usr/kernel-selftest/bpf/test_offload.py +# fi +# chown root:root -R ${D}/usr/kernel-selftest +# } \ No newline at end of file