diff --git a/tools/kconfig/README.md b/tools/kconfig/README.md new file mode 100644 index 0000000000000000000000000000000000000000..1bacaf7d52861b88c7976ae2cb401d14f02861d3 --- /dev/null +++ b/tools/kconfig/README.md @@ -0,0 +1,33 @@ +# 工具作用 + +检查内核配置文件是否满足最小集基准建议(6.6内核及以上) + +# 依赖环境安装与部署 + + +# 网络需求 + +检查内核源码仓库kconfig需要连接外部网络 + +# 使用说明 + +`python3 run.py [-b BRANCH] [-a ARCH] [-w WORK_DIR]` + +* **位置参数(必选)** + * **`arch`** + 指定待检查的内核配置架构,目前支持arm64, x86两个架构 + +* **可选参数** + + * **`-b, --branch`** + 指定`内核源码分支`,目标检查(https://gitee.com/openeuler/kernel源码仓库)中对应分支kconfig配置文件 + + * **`-w, --work-dir`** + 指定`工作路径`,默认路径为/tmp/kconfig + + * **`-l, --local`** + 指定`本地内核配置文件`,模块同时支持检查下载到本地的内核配置文件 + + +# 输出报告 + 运行日志中输出检查结果,检查成功证明满足最小集内核配置建议,无差异报告输出;检查失败于工作目录下输出kconfig与最小集基准差异结果: kconfig_*.csv diff --git a/tools/kconfig/__init__.py b/tools/kconfig/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tools/kconfig/config/logger.conf b/tools/kconfig/config/logger.conf new file mode 100644 index 0000000000000000000000000000000000000000..af58d15889252e9db95630456d27afbcc6c6011e --- /dev/null +++ b/tools/kconfig/config/logger.conf @@ -0,0 +1,42 @@ +#logger.conf +############################################### +[loggers] +keys=root,kconfig,test + +[logger_root] +level=INFO +handlers=stdout +qualname=root + +[logger_kconfig] +level=DEBUG +handlers=rotate_file +qualname=kconfig + +[logger_test] +level=DEBUG +handlers=stdout +qualname=test +propagate=0 + +############################################### +[handlers] +keys=stdout,rotate_file + +[handler_stdout] +class=StreamHandler +level=INFO +formatter=common +args=(sys.stdout,) + +[handler_rotate_file] +class=handlers.RotatingFileHandler +level=DEBUG +formatter=common + +############################################### +[formatters] +keys=common + +[formatter_common] +format=%(asctime)s %(filename)16s[line:%(lineno)4d] %(levelname)7s: %(message)s diff --git a/tools/kconfig/config/min_arm64.yaml b/tools/kconfig/config/min_arm64.yaml new file mode 100644 index 0000000000000000000000000000000000000000..1b4925aa2dda9ee693412cb840c5ce831a36d43d --- /dev/null +++ b/tools/kconfig/config/min_arm64.yaml @@ -0,0 +1,540 @@ +CONFIG_64BIT: y +CONFIG_ACPI: y +CONFIG_ACPI_APEI: y +CONFIG_ACPI_APEI_GHES: y +CONFIG_ACPI_APEI_MEMORY_FAILURE: y +CONFIG_ACPI_APEI_PCIEAER: y +CONFIG_ACPI_APEI_SEA: y +CONFIG_ACPI_CPPC_CPUFREQ: m +CONFIG_ACPI_HMAT: y +CONFIG_ACPI_HOTPLUG_CPU: y +CONFIG_ACPI_IPMI: m +CONFIG_ACPI_NUMA: y +CONFIG_ACPI_PCI_SLOT: y +CONFIG_ACPI_PROCESSOR: y +CONFIG_ACPI_THERMAL: y +CONFIG_ADVISE_SYSCALLS: y +CONFIG_AIO: y +CONFIG_ARCH_HISI: y +CONFIG_ARCH_PHYTIUM: y +CONFIG_ARM64: y +CONFIG_ARM64_4K_PAGES: y +CONFIG_ARM64_64K_PAGES: y +CONFIG_ARM64_AMU_EXTN: y +CONFIG_ARM64_CNP: y +CONFIG_ARM64_E0PD: y +CONFIG_ARM64_EPAN: y +CONFIG_ARM64_HW_AFDBM: y +CONFIG_ARM64_LSE_ATOMICS: y +CONFIG_ARM64_PAN: y +CONFIG_ARM64_PA_BITS_48: y +CONFIG_ARM64_PMEM: y +CONFIG_ARM64_PSEUDO_NMI: y +CONFIG_ARM64_RAS_EXTN: y +CONFIG_ARM64_SME: y +CONFIG_ARM64_SVE: y +CONFIG_ARM64_VA_BITS_48: y +CONFIG_ARM_CCN: y +CONFIG_ARM_GIC: y +CONFIG_ARM_GIC_PHYTIUM_2500: y +CONFIG_ARM_GIC_V2M: y +CONFIG_ARM_GIC_V3: y +CONFIG_ARM_GIC_V3_ITS: y +CONFIG_ARM_GIC_V3_ITS_PCI: y +CONFIG_ARM_PMU: y +CONFIG_ARM_SMMU: y +CONFIG_ARM_SMMU_V3: y +CONFIG_ARM_SMMU_V3_PMU: m +CONFIG_ARM_SMMU_V3_SVA: y +CONFIG_ARM_SPE_PMU: m +CONFIG_ASYMMETRIC_KEY_TYPE: y +CONFIG_ATA: m +CONFIG_AUDIT: y +CONFIG_AUTOFS_FS: y +CONFIG_AUXILIARY_BUS: y +CONFIG_BASE_FULL: y +CONFIG_BINFMT_ELF: y +CONFIG_BINFMT_SCRIPT: y +CONFIG_BLK_CGROUP: y +CONFIG_BLK_DEV: y +CONFIG_BLK_DEV_DM: m +CONFIG_BLK_DEV_INITRD: y +CONFIG_BLK_DEV_IO_TRACE: y +CONFIG_BLK_DEV_NVME: m +CONFIG_BLK_DEV_SD: m +CONFIG_BLK_MQ_PCI: y +CONFIG_BLK_MQ_VIRTIO: y +CONFIG_BLK_PM: y +CONFIG_BLOCK: y +CONFIG_BNX2: m +CONFIG_BNX2X: m +CONFIG_BNXT: m +CONFIG_BONDING: m +CONFIG_BPF: y +CONFIG_BPF_JIT: y +CONFIG_BPF_SYSCALL: y +CONFIG_BRIDGE: m +CONFIG_BTRFS_FS: m +CONFIG_BUG: y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE: y +CONFIG_CFS_BANDWIDTH: y +CONFIG_CGROUPS: y +CONFIG_CGROUP_BPF: y +CONFIG_CGROUP_CPUACCT: y +CONFIG_CGROUP_DEVICE: y +CONFIG_CGROUP_FREEZER: y +CONFIG_CGROUP_HUGETLB: y +CONFIG_CGROUP_PERF: y +CONFIG_CGROUP_PIDS: y +CONFIG_CGROUP_RDMA: y +CONFIG_CGROUP_SCHED: y +CONFIG_CGROUP_WRITEBACK: y +CONFIG_CHECKPOINT_RESTORE: y +CONFIG_CHELSIO_T4: m +CONFIG_CIFS: m +CONFIG_COMMON_CLK: y +CONFIG_COMPACTION: y +CONFIG_CONFIGFS_FS: y +CONFIG_COREDUMP: y +CONFIG_CORESIGHT: m +CONFIG_CPUSETS: y +CONFIG_CPU_FREQ: y +CONFIG_CPU_IDLE: y +CONFIG_CPU_ISOLATION: y +CONFIG_CPU_LITTLE_ENDIAN: y +CONFIG_CPU_PM: y +CONFIG_CRASH_CORE: y +CONFIG_CRASH_DUMP: y +CONFIG_CRC16: y +CONFIG_CRYPTO: y +CONFIG_CRYPTO_AEAD: y +CONFIG_CRYPTO_AEAD2: y +CONFIG_CRYPTO_AES: y +CONFIG_CRYPTO_AKCIPHER: y +CONFIG_CRYPTO_AKCIPHER2: y +CONFIG_CRYPTO_ALGAPI: y +CONFIG_CRYPTO_ALGAPI2: y +CONFIG_CRYPTO_CRC32: m +CONFIG_CRYPTO_DEV_HISI_HPRE: m +CONFIG_CRYPTO_DEV_HISI_QM: m +CONFIG_CRYPTO_DEV_HISI_SEC: m +CONFIG_CRYPTO_DEV_HISI_SEC2: m +CONFIG_CRYPTO_DEV_HISI_TRNG: m +CONFIG_CRYPTO_DEV_HISI_ZIP: m +CONFIG_CRYPTO_FIPS: y +CONFIG_CRYPTO_GCM: y +CONFIG_CRYPTO_GHASH: y +CONFIG_CRYPTO_HASH: y +CONFIG_CRYPTO_HASH2: y +CONFIG_CRYPTO_LIB_AES: y +CONFIG_CRYPTO_LIB_SHA256: y +CONFIG_CRYPTO_LZO: y +CONFIG_CRYPTO_MANAGER: y +CONFIG_CRYPTO_MANAGER2: y +CONFIG_CRYPTO_RNG: y +CONFIG_CRYPTO_RNG2: y +CONFIG_CRYPTO_RSA: y +CONFIG_CRYPTO_SHA256: y +CONFIG_CRYPTO_SKCIPHER: y +CONFIG_CRYPTO_SKCIPHER2: y +CONFIG_CRYPTO_SM2: y +CONFIG_CRYPTO_SM3: y +CONFIG_CRYPTO_SM3_ARM64_CE: m +CONFIG_CRYPTO_SM3_GENERIC: y +CONFIG_CRYPTO_SM4: m +CONFIG_CRYPTO_SM4_GENERIC: m +CONFIG_CUSE: m +CONFIG_CXL_BUS: m +CONFIG_CXL_PCI: m +CONFIG_DAMON: y +CONFIG_DAX: y +CONFIG_DEBUG_FS: y +CONFIG_DEBUG_INFO: y +CONFIG_DEBUG_INFO_BTF: y +CONFIG_DEBUG_KERNEL: y +CONFIG_DETECT_HUNG_TASK: y +CONFIG_DEVMEM: y +CONFIG_DEVTMPFS: y +CONFIG_DEVTMPFS_MOUNT: y +CONFIG_DMADEVICES: y +CONFIG_DMA_ENGINE: y +CONFIG_DMI: y +CONFIG_DNOTIFY: y +CONFIG_DNS_RESOLVER: m +CONFIG_DRM: m +CONFIG_DRM_HISI_HIBMC: m +CONFIG_DRM_PHYTIUM: m +CONFIG_DYNAMIC_FTRACE: y +CONFIG_E1000: m +CONFIG_EDAC: y +CONFIG_EFI: y +CONFIG_EFI_STUB: y +CONFIG_ELFCORE: y +CONFIG_ELF_CORE: y +CONFIG_EPOLL: y +CONFIG_EROFS_FS: m +CONFIG_ETHTOOL_NETLINK: y +CONFIG_EVENTFD: y +CONFIG_EVM: y +CONFIG_EXT3_FS: m +CONFIG_EXT4_FS: m +CONFIG_FAIR_GROUP_SCHED: y +CONFIG_FANOTIFY: y +CONFIG_FAT_FS: m +CONFIG_FB: y +CONFIG_FB_EFI: y +CONFIG_FCOE: m +CONFIG_FHANDLE: y +CONFIG_FILE_LOCKING: y +CONFIG_FRAMEBUFFER_CONSOLE: y +CONFIG_FREEZER: y +CONFIG_FSCACHE: m +CONFIG_FSNOTIFY: y +CONFIG_FS_DAX: y +CONFIG_FTRACE: y +CONFIG_FTRACE_SYSCALLS: y +CONFIG_FUSE_FS: m +CONFIG_FUTEX: y +CONFIG_GENERIC_BUG: y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK: y +CONFIG_GENERIC_IRQ_IPI: y +CONFIG_GENERIC_MSI_IRQ: y +CONFIG_GENERIC_PHY: y +CONFIG_GPIO_ACPI: y +CONFIG_GPIO_HISI: m +CONFIG_HARDLOCKUP_DETECTOR: y +CONFIG_HDMI: y +CONFIG_HIGH_RES_TIMERS: y +CONFIG_HINIC: m +CONFIG_HISILICON_LPC: y +CONFIG_HISI_PCIE_PMU: m +CONFIG_HISI_PMU: m +CONFIG_HISI_THERMAL: m +CONFIG_HNS: m +CONFIG_HNS3: m +CONFIG_HOTPLUG_CPU: y +CONFIG_HOTPLUG_PCI: y +CONFIG_HOTPLUG_PCI_PCIE: y +CONFIG_HUGETLBFS: y +CONFIG_HUGETLB_PAGE: y +CONFIG_HWMON: y +CONFIG_HW_RANDOM: y +CONFIG_HZ: + - '100' + - '250' + - '1000' +CONFIG_I2C: y +CONFIG_I2C_HISI: m +CONFIG_I40E: m +CONFIG_I40EVF: m +CONFIG_ICE: m +CONFIG_IGB: m +CONFIG_ILLEGAL_POINTER_VALUE: '0xdead000000000000' +CONFIG_IMA: y +CONFIG_INET: y +CONFIG_INET_DIAG: m +CONFIG_INET_MPTCP_DIAG: m +CONFIG_INET_TCP_DIAG: m +CONFIG_INET_UDP_DIAG: m +CONFIG_INFINIBAND: m +CONFIG_INFINIBAND_HNS: m +CONFIG_INFINIBAND_HNS_HIP08: y +CONFIG_INPUT: y +CONFIG_INPUT_KEYBOARD: y +CONFIG_INPUT_MOUSE: y +CONFIG_INTEGRITY: y +CONFIG_IOMMU_SUPPORT: y +CONFIG_IOSCHED_BFQ: y +CONFIG_IO_URING: y +CONFIG_IPC_NS: y +CONFIG_IPMI_HANDLER: m +CONFIG_IPMI_SI: m +CONFIG_IPV6: y +CONFIG_IP_NF_ARPTABLES: m +CONFIG_IP_NF_IPTABLES: m +CONFIG_IP_NF_RAW: m +CONFIG_IP_NF_SECURITY: m +CONFIG_IP_SET: m +CONFIG_IP_VS: m +CONFIG_IP_VS_IPV6: y +CONFIG_IP_VS_PROTO_TCP: y +CONFIG_IP_VS_RR: m +CONFIG_IRQ_MSI_IOMMU: y +CONFIG_ISO9660_FS: m +CONFIG_IXGBE: m +CONFIG_IXGBEVF: m +CONFIG_JBD2: m +CONFIG_KALLSYMS: y +CONFIG_KALLSYMS_ALL: y +CONFIG_KERNFS: y +CONFIG_KEXEC: y +CONFIG_KEXEC_CORE: y +CONFIG_KEXEC_FILE: y +CONFIG_KEYS: y +CONFIG_KPROBES: y +CONFIG_KRETPROBES: y +CONFIG_KSM: y +CONFIG_KUNPENG_HCCS: m +CONFIG_KVM: y +CONFIG_KVM_MMIO: y +CONFIG_LIVEPATCH: y +CONFIG_LOCKD: m +CONFIG_LOCKD_V4: y +CONFIG_LOCKUP_DETECTOR: y +CONFIG_LOG_BUF_SHIFT: '20' +CONFIG_LOG_CPU_MAX_BUF_SHIFT: '12' +CONFIG_LSM: lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf +CONFIG_MACVLAN: m +CONFIG_MAGIC_SYSRQ: y +CONFIG_MD: y +CONFIG_MEGARAID_SAS: m +CONFIG_MEMBARRIER: y +CONFIG_MEMCG: y +CONFIG_MEMCG_KMEM: y +CONFIG_MEMFD_CREATE: y +CONFIG_MEMORY_FAILURE: y +CONFIG_MEMORY_HOTPLUG: y +CONFIG_MIGRATION: y +CONFIG_MISC_FILESYSTEMS: y +CONFIG_MLX4_CORE: m +CONFIG_MLX4_EN: m +CONFIG_MLX5_CORE: m +CONFIG_MLX5_CORE_EN: y +CONFIG_MMU: y +CONFIG_MODULES: y +CONFIG_MODULE_SIG: y +CONFIG_MODULE_SIG_KEY: certs/signing_key.pem +CONFIG_MODULE_UNLOAD: y +CONFIG_MODVERSIONS: y +CONFIG_MPTCP: y +CONFIG_MQ_IOSCHED_DEADLINE: y +CONFIG_MQ_IOSCHED_KYBER: y +CONFIG_MTD: m +CONFIG_MULTIUSER: y +CONFIG_NAMESPACES: y +CONFIG_NET: y +CONFIG_NETDEVICES: y +CONFIG_NETFILTER: y +CONFIG_NETFILTER_ADVANCED: y +CONFIG_NETFILTER_INGRESS: y +CONFIG_NETFILTER_XTABLES: y +CONFIG_NETFILTER_XT_MARK: m +CONFIG_NETLINK_DIAG: m +CONFIG_NETWORK_FILESYSTEMS: y +CONFIG_NET_ACT_GACT: m +CONFIG_NET_ACT_POLICE: m +CONFIG_NET_CLS: y +CONFIG_NET_CLS_ACT: y +CONFIG_NET_CORE: y +CONFIG_NET_NS: y +CONFIG_NET_SCHED: y +CONFIG_NET_SCH_FQ_CODEL: y +CONFIG_NET_SCH_INGRESS: m +CONFIG_NET_TEAM: m +CONFIG_NFSD: m +CONFIG_NFSD_V3_ACL: y +CONFIG_NFSD_V4: y +CONFIG_NFS_ACL_SUPPORT: m +CONFIG_NFS_COMMON: y +CONFIG_NFS_FS: m +CONFIG_NFS_FSCACHE: y +CONFIG_NFS_V3: m +CONFIG_NFS_V4: m +CONFIG_NFS_V4_1: y +CONFIG_NFS_V4_2: y +CONFIG_NF_CONNTRACK: m +CONFIG_NF_NAT: m +CONFIG_NF_TABLES: m +CONFIG_NF_TABLES_ARP: y +CONFIG_NF_TABLES_INET: y +CONFIG_NF_TABLES_IPV4: y +CONFIG_NF_TABLES_IPV6: y +CONFIG_NGBE: m +CONFIG_NLS: y +CONFIG_NLS_ASCII: y +CONFIG_NLS_UTF8: m +CONFIG_NODES_SHIFT: + - '6' + - '8' + - '10' +CONFIG_NO_HZ: y +CONFIG_NO_HZ_COMMON: y +CONFIG_NO_HZ_FULL: y +CONFIG_NR_CPUS: + - '1024' + - '4096' + - '8192' +CONFIG_NTB: m +CONFIG_NTFS3_FS: m +CONFIG_NUMA: y +CONFIG_NUMA_BALANCING: y +CONFIG_NVME_CORE: m +CONFIG_NVME_FABRICS: m +CONFIG_NVME_RDMA: m +CONFIG_NVME_TARGET: m +CONFIG_NVME_TCP: m +CONFIG_OVERLAY_FS: m +CONFIG_PACKET: y +CONFIG_PACKET_DIAG: m +CONFIG_PAGE_COUNTER: y +CONFIG_PANIC_ON_OOPS: y +CONFIG_PARAVIRT: y +CONFIG_PCI: y +CONFIG_PCIEAER: y +CONFIG_PCIEASPM: y +CONFIG_PCIEPORTBUS: y +CONFIG_PCIE_EDR: y +CONFIG_PCI_ATS: y +CONFIG_PCI_HISI: y +CONFIG_PCI_HOST_GENERIC: y +CONFIG_PCI_IOV: y +CONFIG_PCI_MSI: y +CONFIG_PERF_EVENTS: y +CONFIG_PGTABLE_LEVELS: '4' +CONFIG_PID_NS: y +CONFIG_PM: y +CONFIG_POSIX_MQUEUE: y +CONFIG_POSIX_MQUEUE_SYSCTL: y +CONFIG_POSIX_TIMERS: y +CONFIG_PRINTK: y +CONFIG_PROC_FS: y +CONFIG_PROC_KCORE: y +CONFIG_PROC_PID_CPUSET: y +CONFIG_PROC_SYSCTL: y +CONFIG_PROC_VMCORE: y +CONFIG_PROFILING: y +CONFIG_PSI: y +CONFIG_PSTORE: y +CONFIG_PVPANIC: y +CONFIG_PVPANIC_MMIO: m +CONFIG_QUOTA: y +CONFIG_RANDOMIZE_BASE: y +CONFIG_RAS: y +CONFIG_RATIONAL: y +CONFIG_RCU_STALL_COMMON: y +CONFIG_RELOCATABLE: y +CONFIG_RESET_CONTROLLER: y +CONFIG_RESET_HISI: y +CONFIG_RPS: y +CONFIG_RSEQ: y +CONFIG_RTC_CLASS: y +CONFIG_RTC_INTF_DEV: y +CONFIG_RTC_SYSTOHC: y +CONFIG_SATA_AHCI: m +CONFIG_SCHED_AUTOGROUP: y +CONFIG_SCHED_CLUSTER: y +CONFIG_SCHED_MC: y +CONFIG_SCHED_SMT: y +CONFIG_SCSI: y +CONFIG_SCSI_HISI_SAS: m +CONFIG_SCSI_HISI_SAS_PCI: m +CONFIG_SCSI_MPT2SAS: m +CONFIG_SCSI_MPT3SAS: m +CONFIG_SCSI_SAS_ATA: y +CONFIG_SECCOMP: y +CONFIG_SECURITY: y +CONFIG_SECURITYFS: y +CONFIG_SECURITY_INFINIBAND: y +CONFIG_SECURITY_NETWORK: y +CONFIG_SECURITY_NETWORK_XFRM: y +CONFIG_SECURITY_PATH: y +CONFIG_SECURITY_SELINUX: y +CONFIG_SERIAL_8250: y +CONFIG_SERIAL_CORE: y +CONFIG_SERIO: y +CONFIG_SHMEM: y +CONFIG_SIGNALFD: y +CONFIG_SLUB: y +CONFIG_SMC: m +CONFIG_SMP: y +CONFIG_SOFTLOCKUP_DETECTOR: y +CONFIG_SOFT_WATCHDOG: m +CONFIG_SPARSEMEM: y +CONFIG_SPARSEMEM_VMEMMAP: y +CONFIG_SPI: y +CONFIG_SPI_HISI_KUNPENG: m +CONFIG_SPI_HISI_SFC_V3XX: m +CONFIG_SPI_MASTER: y +CONFIG_SQUASHFS: m +CONFIG_STACKPROTECTOR: y +CONFIG_STACKPROTECTOR_STRONG: y +CONFIG_STACKTRACE: y +CONFIG_SUNRPC: m +CONFIG_SWAP: y +CONFIG_SYN_COOKIES: y +CONFIG_SYSCTL: y +CONFIG_SYSFS: y +CONFIG_SYSFS_SYSCALL: y +CONFIG_SYSTEM_TRUSTED_KEYRING: y +CONFIG_SYSVIPC: y +CONFIG_SYSVIPC_SYSCTL: y +CONFIG_TAP: m +CONFIG_TASKSTATS: y +CONFIG_TCP_CONG_ADVANCED: y +CONFIG_TCP_CONG_BBR: m +CONFIG_TCP_CONG_CUBIC: y +CONFIG_THERMAL: y +CONFIG_THREAD_INFO_IN_TASK: y +CONFIG_TIMERFD: y +CONFIG_TLS: m +CONFIG_TMPFS: y +CONFIG_TRACEPOINTS: y +CONFIG_TRACING: y +CONFIG_TRANSPARENT_HUGEPAGE: y +CONFIG_TREE_RCU: y +CONFIG_TRUSTED_KEYS: y +CONFIG_TTY: y +CONFIG_TUN: m +CONFIG_TXGBE: m +CONFIG_UACCE: m +CONFIG_UIO: m +CONFIG_UNIX: y +CONFIG_UPROBES: y +CONFIG_USB: y +CONFIG_USB_ACM: m +CONFIG_USB_EHCI_HCD: y +CONFIG_USB_EHCI_PCI: y +CONFIG_USB_STORAGE: m +CONFIG_USB_SUPPORT: y +CONFIG_USB_XHCI_HCD: y +CONFIG_USERFAULTFD: y +CONFIG_USER_NS: y +CONFIG_UTS_NS: y +CONFIG_VETH: m +CONFIG_VFAT_FS: m +CONFIG_VFIO: m +CONFIG_VFIO_PCI: m +CONFIG_VFIO_PLATFORM: m +CONFIG_VHOST: m +CONFIG_VHOST_NET: m +CONFIG_VHOST_VSOCK: m +CONFIG_VIRTIO: m +CONFIG_VIRTIO_BLK: m +CONFIG_VIRTIO_CONSOLE: m +CONFIG_VIRTIO_FS: m +CONFIG_VIRTIO_MEM: m +CONFIG_VIRTIO_MENU: y +CONFIG_VIRTIO_MMIO: m +CONFIG_VIRTIO_NET: m +CONFIG_VIRTIO_PCI: m +CONFIG_VIRTIO_PCI_LEGACY: y +CONFIG_VIRTUALIZATION: y +CONFIG_VIRT_CPU_ACCOUNTING: y +CONFIG_VIRT_CPU_ACCOUNTING_GEN: y +CONFIG_VLAN_8021Q: m +CONFIG_VMAP_STACK: y +CONFIG_VM_EVENT_COUNTERS: y +CONFIG_VSOCKETS: m +CONFIG_VT: y +CONFIG_VT_CONSOLE: y +CONFIG_VXLAN: m +CONFIG_WATCHDOG: y +CONFIG_XDP_SOCKETS: y +CONFIG_XFRM: y +CONFIG_XFRM_USER: y +CONFIG_XFS_FS: m +CONFIG_XPS: y +CONFIG_ZONE_DMA: y +CONFIG_ZONE_DMA32: y +CONFIG_ZRAM: m +CONFIG_ZSMALLOC: y diff --git a/tools/kconfig/config/min_x86.yaml b/tools/kconfig/config/min_x86.yaml new file mode 100644 index 0000000000000000000000000000000000000000..97ffd2cc67b7d61f1b4c701e3f7c04acc4c3df7b --- /dev/null +++ b/tools/kconfig/config/min_x86.yaml @@ -0,0 +1,543 @@ +CONFIG_64BIT: y +CONFIG_ACPI: y +CONFIG_ACPI_APEI: y +CONFIG_ACPI_APEI_GHES: y +CONFIG_ACPI_APEI_MEMORY_FAILURE: y +CONFIG_ACPI_APEI_PCIEAER: y +CONFIG_ACPI_HMAT: y +CONFIG_ACPI_HOTPLUG_CPU: y +CONFIG_ACPI_IPMI: m +CONFIG_ACPI_NUMA: y +CONFIG_ACPI_PCI_SLOT: y +CONFIG_ACPI_PROCESSOR: y +CONFIG_ACPI_THERMAL: y +CONFIG_ADVISE_SYSCALLS: y +CONFIG_AIO: y +CONFIG_AMD_MEM_ENCRYPT: y +CONFIG_ARCH_CPUIDLE_HALTPOLL: y +CONFIG_ASYMMETRIC_KEY_TYPE: y +CONFIG_ATA: m +CONFIG_AUDIT: y +CONFIG_AUTOFS_FS: y +CONFIG_AUXILIARY_BUS: y +CONFIG_BASE_FULL: y +CONFIG_BINFMT_ELF: y +CONFIG_BINFMT_SCRIPT: y +CONFIG_BLK_CGROUP: y +CONFIG_BLK_DEV: y +CONFIG_BLK_DEV_DM: m +CONFIG_BLK_DEV_INITRD: y +CONFIG_BLK_DEV_IO_TRACE: y +CONFIG_BLK_DEV_NVME: m +CONFIG_BLK_DEV_SD: m +CONFIG_BLK_MQ_PCI: y +CONFIG_BLK_MQ_VIRTIO: y +CONFIG_BLK_PM: y +CONFIG_BLOCK: y +CONFIG_BNX2: m +CONFIG_BNX2X: m +CONFIG_BNXT: m +CONFIG_BONDING: m +CONFIG_BPF: y +CONFIG_BPF_JIT: y +CONFIG_BPF_SYSCALL: y +CONFIG_BRIDGE: m +CONFIG_BTRFS_FS: m +CONFIG_BUG: y +CONFIG_BUILD_SALT: '' +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE: y +CONFIG_CFS_BANDWIDTH: y +CONFIG_CGROUPS: y +CONFIG_CGROUP_BPF: y +CONFIG_CGROUP_CPUACCT: y +CONFIG_CGROUP_DEVICE: y +CONFIG_CGROUP_FREEZER: y +CONFIG_CGROUP_HUGETLB: y +CONFIG_CGROUP_PERF: y +CONFIG_CGROUP_PIDS: y +CONFIG_CGROUP_RDMA: y +CONFIG_CGROUP_SCHED: y +CONFIG_CGROUP_WRITEBACK: y +CONFIG_CHECKPOINT_RESTORE: y +CONFIG_CHELSIO_T4: m +CONFIG_CIFS: m +CONFIG_COMMON_CLK: y +CONFIG_COMPACTION: y +CONFIG_COMPAT: y +CONFIG_CONFIGFS_FS: y +CONFIG_COREDUMP: y +CONFIG_CPUSETS: y +CONFIG_CPU_FREQ: y +CONFIG_CPU_IDLE: y +CONFIG_CPU_ISOLATION: y +CONFIG_CPU_SUP_AMD: y +CONFIG_CPU_SUP_CENTAUR: y +CONFIG_CPU_SUP_HYGON: y +CONFIG_CPU_SUP_INTEL: y +CONFIG_CPU_SUP_ZHAOXIN: y +CONFIG_CRASH_CORE: y +CONFIG_CRASH_DUMP: y +CONFIG_CRC16: y +CONFIG_CRYPTO: y +CONFIG_CRYPTO_AEAD: y +CONFIG_CRYPTO_AEAD2: y +CONFIG_CRYPTO_AES: y +CONFIG_CRYPTO_AKCIPHER: y +CONFIG_CRYPTO_AKCIPHER2: y +CONFIG_CRYPTO_ALGAPI: y +CONFIG_CRYPTO_ALGAPI2: y +CONFIG_CRYPTO_CRC32: m +CONFIG_CRYPTO_DEV_CCP: y +CONFIG_CRYPTO_DEV_ZHAOXIN: m +CONFIG_CRYPTO_DEV_ZHAOXIN_AES: m +CONFIG_CRYPTO_DEV_ZHAOXIN_SHA: m +CONFIG_CRYPTO_FIPS: y +CONFIG_CRYPTO_GCM: y +CONFIG_CRYPTO_GHASH: y +CONFIG_CRYPTO_HASH: y +CONFIG_CRYPTO_HASH2: y +CONFIG_CRYPTO_LIB_AES: y +CONFIG_CRYPTO_LIB_SHA256: y +CONFIG_CRYPTO_LZO: y +CONFIG_CRYPTO_MANAGER: y +CONFIG_CRYPTO_MANAGER2: y +CONFIG_CRYPTO_RNG: y +CONFIG_CRYPTO_RNG2: y +CONFIG_CRYPTO_RSA: y +CONFIG_CRYPTO_SHA256: y +CONFIG_CRYPTO_SIMD: y +CONFIG_CRYPTO_SKCIPHER: y +CONFIG_CRYPTO_SKCIPHER2: y +CONFIG_CRYPTO_SM2: y +CONFIG_CRYPTO_SM3: y +CONFIG_CRYPTO_SM3_AVX_X86_64: m +CONFIG_CRYPTO_SM3_GENERIC: y +CONFIG_CRYPTO_SM3_ZHAOXIN_GMI: m +CONFIG_CRYPTO_SM4: m +CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64: m +CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64: m +CONFIG_CRYPTO_SM4_GENERIC: m +CONFIG_CRYPTO_SM4_ZHAOXIN_GMI: m +CONFIG_CUSE: m +CONFIG_CXL_BUS: m +CONFIG_CXL_PCI: m +CONFIG_DAMON: y +CONFIG_DAX: y +CONFIG_DEBUG_FS: y +CONFIG_DEBUG_INFO: y +CONFIG_DEBUG_INFO_BTF: y +CONFIG_DEBUG_KERNEL: y +CONFIG_DETECT_HUNG_TASK: y +CONFIG_DEVMEM: y +CONFIG_DEVTMPFS: y +CONFIG_DEVTMPFS_MOUNT: y +CONFIG_DMADEVICES: y +CONFIG_DMA_ENGINE: y +CONFIG_DMI: y +CONFIG_DNOTIFY: y +CONFIG_DNS_RESOLVER: m +CONFIG_DRM: m +CONFIG_DYNAMIC_FTRACE: y +CONFIG_E1000: m +CONFIG_EDAC: y +CONFIG_EFI: y +CONFIG_EFI_STUB: y +CONFIG_ELFCORE: y +CONFIG_ELF_CORE: y +CONFIG_EPOLL: y +CONFIG_EROFS_FS: m +CONFIG_ETHTOOL_NETLINK: y +CONFIG_EVENTFD: y +CONFIG_EVM: y +CONFIG_EXT3_FS: m +CONFIG_EXT4_FS: m +CONFIG_FAIR_GROUP_SCHED: y +CONFIG_FANOTIFY: y +CONFIG_FAT_FS: m +CONFIG_FB: y +CONFIG_FB_EFI: y +CONFIG_FCOE: m +CONFIG_FHANDLE: y +CONFIG_FILE_LOCKING: y +CONFIG_FRAMEBUFFER_CONSOLE: y +CONFIG_FREEZER: y +CONFIG_FSCACHE: m +CONFIG_FSNOTIFY: y +CONFIG_FS_DAX: y +CONFIG_FTRACE: y +CONFIG_FTRACE_SYSCALLS: y +CONFIG_FUSE_FS: m +CONFIG_FUTEX: y +CONFIG_GENERIC_BUG: y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK: y +CONFIG_GENERIC_MSI_IRQ: y +CONFIG_GPIO_ACPI: y +CONFIG_HARDLOCKUP_DETECTOR: y +CONFIG_HDMI: y +CONFIG_HIGH_RES_TIMERS: y +CONFIG_HINIC: m +CONFIG_HOTPLUG_CPU: y +CONFIG_HOTPLUG_PCI: y +CONFIG_HOTPLUG_PCI_PCIE: y +CONFIG_HPET_TIMER: y +CONFIG_HUGETLBFS: y +CONFIG_HUGETLB_PAGE: y +CONFIG_HWMON: y +CONFIG_HW_RANDOM: y +CONFIG_HW_RANDOM_ZHAOXIN: m +CONFIG_HYPERVISOR_GUEST: y +CONFIG_HZ: + - '100' + - '250' + - '1000' +CONFIG_I2C: y +CONFIG_I2C_ZHAOXIN: m +CONFIG_I40E: m +CONFIG_I40EVF: m +CONFIG_IA32_FEAT_CTL: y +CONFIG_ICE: m +CONFIG_IGB: m +CONFIG_ILLEGAL_POINTER_VALUE: '0xdead000000000000' +CONFIG_IMA: y +CONFIG_INET: y +CONFIG_INET_DIAG: m +CONFIG_INET_MPTCP_DIAG: m +CONFIG_INET_TCP_DIAG: m +CONFIG_INET_UDP_DIAG: m +CONFIG_INFINIBAND: m +CONFIG_INPUT: y +CONFIG_INPUT_KEYBOARD: y +CONFIG_INPUT_MOUSE: y +CONFIG_INSTRUCTION_DECODER: y +CONFIG_INTEGRITY: y +CONFIG_INTEL_IDLE: y +CONFIG_INTEL_IDXD_BUS: m +CONFIG_INTEL_IFS: m +CONFIG_INTEL_IOMMU: y +CONFIG_INTEL_PMC_CORE: m +CONFIG_INTEL_PMT_CLASS: m +CONFIG_INTEL_TPMI: m +CONFIG_IOMMU_SUPPORT: y +CONFIG_IOSCHED_BFQ: y +CONFIG_IO_URING: y +CONFIG_IPC_NS: y +CONFIG_IPMI_HANDLER: m +CONFIG_IPMI_SI: m +CONFIG_IPV6: y +CONFIG_IP_NF_ARPTABLES: m +CONFIG_IP_NF_IPTABLES: m +CONFIG_IP_NF_RAW: m +CONFIG_IP_NF_SECURITY: m +CONFIG_IP_SET: m +CONFIG_IP_VS: m +CONFIG_IP_VS_IPV6: y +CONFIG_IP_VS_PROTO_TCP: y +CONFIG_IP_VS_RR: m +CONFIG_IRQ_MSI_IOMMU: y +CONFIG_IRQ_REMAP: y +CONFIG_ISO9660_FS: m +CONFIG_IXGBE: m +CONFIG_IXGBEVF: m +CONFIG_JBD2: m +CONFIG_KALLSYMS: y +CONFIG_KALLSYMS_ALL: y +CONFIG_KERNFS: y +CONFIG_KEXEC: y +CONFIG_KEXEC_CORE: y +CONFIG_KEXEC_FILE: y +CONFIG_KEYS: y +CONFIG_KPROBES: y +CONFIG_KRETPROBES: y +CONFIG_KSM: y +CONFIG_KVM: m +CONFIG_KVM_AMD: m +CONFIG_KVM_GUEST: y +CONFIG_KVM_INTEL: m +CONFIG_KVM_MMIO: y +CONFIG_LIVEPATCH: y +CONFIG_LOCKD: m +CONFIG_LOCKD_V4: y +CONFIG_LOCKUP_DETECTOR: y +CONFIG_LOG_BUF_SHIFT: '20' +CONFIG_LOG_CPU_MAX_BUF_SHIFT: '12' +CONFIG_LSM: lockdown,yama,loadpin,safesetid,integrity,selinux,smack,tomoyo,apparmor,bpf +CONFIG_MACVLAN: m +CONFIG_MAGIC_SYSRQ: y +CONFIG_MD: y +CONFIG_MEGARAID_SAS: m +CONFIG_MEMBARRIER: y +CONFIG_MEMCG: y +CONFIG_MEMCG_KMEM: y +CONFIG_MEMFD_CREATE: y +CONFIG_MEMORY_FAILURE: y +CONFIG_MEMORY_HOTPLUG: y +CONFIG_MICROCODE: y +CONFIG_MIGRATION: y +CONFIG_MISC_FILESYSTEMS: y +CONFIG_MLX4_CORE: m +CONFIG_MLX4_EN: m +CONFIG_MLX5_CORE: m +CONFIG_MLX5_CORE_EN: y +CONFIG_MMU: y +CONFIG_MODULES: y +CONFIG_MODULE_SIG: y +CONFIG_MODULE_SIG_KEY: certs/signing_key.pem +CONFIG_MODULE_UNLOAD: y +CONFIG_MODVERSIONS: y +CONFIG_MPTCP: y +CONFIG_MQ_IOSCHED_DEADLINE: y +CONFIG_MQ_IOSCHED_KYBER: y +CONFIG_MTD: m +CONFIG_MULTIUSER: y +CONFIG_NAMESPACES: y +CONFIG_NET: y +CONFIG_NETDEVICES: y +CONFIG_NETFILTER: y +CONFIG_NETFILTER_ADVANCED: y +CONFIG_NETFILTER_INGRESS: y +CONFIG_NETFILTER_XTABLES: y +CONFIG_NETFILTER_XT_MARK: m +CONFIG_NETLINK_DIAG: m +CONFIG_NETWORK_FILESYSTEMS: y +CONFIG_NET_ACT_GACT: m +CONFIG_NET_ACT_POLICE: m +CONFIG_NET_CLS: y +CONFIG_NET_CLS_ACT: y +CONFIG_NET_CORE: y +CONFIG_NET_NS: y +CONFIG_NET_SCHED: y +CONFIG_NET_SCH_FQ_CODEL: y +CONFIG_NET_SCH_INGRESS: m +CONFIG_NET_TEAM: m +CONFIG_NFSD: m +CONFIG_NFSD_V3_ACL: y +CONFIG_NFSD_V4: y +CONFIG_NFS_ACL_SUPPORT: m +CONFIG_NFS_COMMON: y +CONFIG_NFS_FS: m +CONFIG_NFS_FSCACHE: y +CONFIG_NFS_V3: m +CONFIG_NFS_V4: m +CONFIG_NFS_V4_1: y +CONFIG_NFS_V4_2: y +CONFIG_NF_CONNTRACK: m +CONFIG_NF_NAT: m +CONFIG_NF_TABLES: m +CONFIG_NF_TABLES_ARP: y +CONFIG_NF_TABLES_INET: y +CONFIG_NF_TABLES_IPV4: y +CONFIG_NF_TABLES_IPV6: y +CONFIG_NGBE: m +CONFIG_NLS: y +CONFIG_NLS_ASCII: y +CONFIG_NLS_UTF8: m +CONFIG_NODES_SHIFT: + - '6' + - '8' + - '10' +CONFIG_NO_HZ: y +CONFIG_NO_HZ_COMMON: y +CONFIG_NO_HZ_FULL: y +CONFIG_NR_CPUS: + - '1024' + - '4096' + - '8192' +CONFIG_NTB: m +CONFIG_NTFS3_FS: m +CONFIG_NUMA: y +CONFIG_NUMA_BALANCING: y +CONFIG_NVME_CORE: m +CONFIG_NVME_FABRICS: m +CONFIG_NVME_RDMA: m +CONFIG_NVME_TARGET: m +CONFIG_NVME_TCP: m +CONFIG_OUTPUT_FORMAT: elf64-x86-64 +CONFIG_OVERLAY_FS: m +CONFIG_PACKET: y +CONFIG_PACKET_DIAG: m +CONFIG_PAGE_COUNTER: y +CONFIG_PANIC_ON_OOPS: y +CONFIG_PARAVIRT: y +CONFIG_PARAVIRT_CLOCK: y +CONFIG_PARAVIRT_SPINLOCKS: y +CONFIG_PCI: y +CONFIG_PCIEAER: y +CONFIG_PCIEASPM: y +CONFIG_PCIEPORTBUS: y +CONFIG_PCIE_EDR: y +CONFIG_PCI_ATS: y +CONFIG_PCI_IOV: y +CONFIG_PCI_MSI: y +CONFIG_PERF_EVENTS: y +CONFIG_PGTABLE_LEVELS: '5' +CONFIG_PID_NS: y +CONFIG_PINCTRL_KX7000: m +CONFIG_PINCTRL_ZHAOXIN: m +CONFIG_PM: y +CONFIG_POSIX_MQUEUE: y +CONFIG_POSIX_MQUEUE_SYSCTL: y +CONFIG_POSIX_TIMERS: y +CONFIG_PRINTK: y +CONFIG_PROC_FS: y +CONFIG_PROC_KCORE: y +CONFIG_PROC_PID_CPUSET: y +CONFIG_PROC_SYSCTL: y +CONFIG_PROC_VMCORE: y +CONFIG_PROFILING: y +CONFIG_PSI: y +CONFIG_PSTORE: y +CONFIG_PVPANIC: y +CONFIG_PVPANIC_MMIO: m +CONFIG_QUOTA: y +CONFIG_RANDOMIZE_BASE: y +CONFIG_RAS: y +CONFIG_RATIONAL: y +CONFIG_RCU_STALL_COMMON: y +CONFIG_RELOCATABLE: y +CONFIG_RESET_CONTROLLER: y +CONFIG_RPS: y +CONFIG_RSEQ: y +CONFIG_RTC_CLASS: y +CONFIG_RTC_INTF_DEV: y +CONFIG_RTC_SYSTOHC: y +CONFIG_SATA_AHCI: m +CONFIG_SATA_ZHAOXIN: y +CONFIG_SCHED_AUTOGROUP: y +CONFIG_SCHED_CLUSTER: y +CONFIG_SCHED_MC: y +CONFIG_SCHED_MC_PRIO: y +CONFIG_SCHED_SMT: y +CONFIG_SCSI: y +CONFIG_SCSI_MPT2SAS: m +CONFIG_SCSI_MPT3SAS: m +CONFIG_SCSI_SAS_ATA: y +CONFIG_SECCOMP: y +CONFIG_SECURITY: y +CONFIG_SECURITYFS: y +CONFIG_SECURITY_INFINIBAND: y +CONFIG_SECURITY_NETWORK: y +CONFIG_SECURITY_NETWORK_XFRM: y +CONFIG_SECURITY_PATH: y +CONFIG_SECURITY_SELINUX: y +CONFIG_SENSORS_ZHAOXIN_CPUTEMP: m +CONFIG_SERIAL_8250: y +CONFIG_SERIAL_CORE: y +CONFIG_SERIO: y +CONFIG_SHMEM: y +CONFIG_SIGNALFD: y +CONFIG_SLUB: y +CONFIG_SMC: m +CONFIG_SMP: y +CONFIG_SOFTLOCKUP_DETECTOR: y +CONFIG_SOFT_WATCHDOG: m +CONFIG_SPARSEMEM: y +CONFIG_SPARSEMEM_VMEMMAP: y +CONFIG_SPECULATION_MITIGATIONS: y +CONFIG_SPI: y +CONFIG_SQUASHFS: m +CONFIG_STACKPROTECTOR: y +CONFIG_STACKPROTECTOR_STRONG: y +CONFIG_STACKTRACE: y +CONFIG_SUNRPC: m +CONFIG_SWAP: y +CONFIG_SYN_COOKIES: y +CONFIG_SYSCTL: y +CONFIG_SYSFS: y +CONFIG_SYSFS_SYSCALL: y +CONFIG_SYSTEM_TRUSTED_KEYRING: y +CONFIG_SYSTEM_TRUSTED_KEYS: '' +CONFIG_SYSVIPC: y +CONFIG_SYSVIPC_SYSCTL: y +CONFIG_TAP: m +CONFIG_TASKSTATS: y +CONFIG_TCP_CONG_ADVANCED: y +CONFIG_TCP_CONG_BBR: m +CONFIG_TCP_CONG_CUBIC: y +CONFIG_THERMAL: y +CONFIG_THREAD_INFO_IN_TASK: y +CONFIG_TIMERFD: y +CONFIG_TLS: m +CONFIG_TMPFS: y +CONFIG_TRACEPOINTS: y +CONFIG_TRACING: y +CONFIG_TRANSPARENT_HUGEPAGE: y +CONFIG_TREE_RCU: y +CONFIG_TRUSTED_KEYS: y +CONFIG_TTY: y +CONFIG_TUN: m +CONFIG_TXGBE: m +CONFIG_UACCE: m +CONFIG_UIO: m +CONFIG_UNIX: y +CONFIG_UNWINDER_ORC: y +CONFIG_UPROBES: y +CONFIG_USB: y +CONFIG_USB_ACM: m +CONFIG_USB_EHCI_HCD: y +CONFIG_USB_EHCI_PCI: y +CONFIG_USB_STORAGE: m +CONFIG_USB_SUPPORT: y +CONFIG_USB_XHCI_HCD: y +CONFIG_USERFAULTFD: y +CONFIG_USER_NS: y +CONFIG_UTS_NS: y +CONFIG_VETH: m +CONFIG_VFAT_FS: m +CONFIG_VFIO: m +CONFIG_VFIO_IOMMU_TYPE1: m +CONFIG_VFIO_MDEV: m +CONFIG_VFIO_PCI: m +CONFIG_VGA_CONSOLE: y +CONFIG_VHOST: m +CONFIG_VHOST_NET: m +CONFIG_VHOST_VSOCK: m +CONFIG_VIRTIO: y +CONFIG_VIRTIO_BLK: m +CONFIG_VIRTIO_CONSOLE: m +CONFIG_VIRTIO_FS: m +CONFIG_VIRTIO_MEM: m +CONFIG_VIRTIO_MENU: y +CONFIG_VIRTIO_MMIO: m +CONFIG_VIRTIO_NET: m +CONFIG_VIRTIO_PCI: y +CONFIG_VIRTIO_PCI_LEGACY: y +CONFIG_VIRTUALIZATION: y +CONFIG_VIRT_CPU_ACCOUNTING: y +CONFIG_VIRT_CPU_ACCOUNTING_GEN: y +CONFIG_VLAN_8021Q: m +CONFIG_VMAP_STACK: y +CONFIG_VM_EVENT_COUNTERS: y +CONFIG_VSOCKETS: m +CONFIG_VT: y +CONFIG_VT_CONSOLE: y +CONFIG_VXLAN: m +CONFIG_WATCHDOG: y +CONFIG_X86: y +CONFIG_X86_64: y +CONFIG_X86_64_SMP: y +CONFIG_X86_CMOV: y +CONFIG_X86_CMPXCHG64: y +CONFIG_X86_CPUID: y +CONFIG_X86_DIRECT_GBPAGES: y +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS: y +CONFIG_X86_INTEL_PSTATE: y +CONFIG_X86_IOPL_IOPERM: y +CONFIG_X86_IO_APIC: y +CONFIG_X86_LOCAL_APIC: y +CONFIG_X86_MCE: y +CONFIG_X86_MCE_INTEL: y +CONFIG_X86_MPPARSE: y +CONFIG_X86_MSR: y +CONFIG_X86_SGX: y +CONFIG_X86_TSC: y +CONFIG_X86_VSYSCALL_EMULATION: y +CONFIG_X86_X2APIC: y +CONFIG_XDP_SOCKETS: y +CONFIG_XFRM: y +CONFIG_XFRM_USER: y +CONFIG_XFS_FS: m +CONFIG_XPS: y +CONFIG_ZONE_DMA: y +CONFIG_ZONE_DMA32: y +CONFIG_ZRAM: m +CONFIG_ZSMALLOC: y diff --git a/tools/kconfig/run.py b/tools/kconfig/run.py new file mode 100644 index 0000000000000000000000000000000000000000..2942e08f9da8cccd497e493902e9e93f646c2089 --- /dev/null +++ b/tools/kconfig/run.py @@ -0,0 +1,159 @@ +# -*- encoding=utf-8 -*- +""" +# ********************************************************************************** +# Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved. +# [oecp] is licensed under the Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# You may obtain a copy of Mulan PSL v2 at: +# http://license.coscl.org.cn/MulanPSL2 +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR +# PURPOSE. +# See the Mulan PSL v2 for more details. +# Author: yangyulong +# Create: 2024-04-12 +# Description: run check min kconfig +# ********************************************************************************** +""" +import stat +import time +from urllib.parse import urljoin +import csv +import re +import sys +import argparse +import logging +import os +import tempfile +import yaml + +from tools.constant import ARCH, KERNEL_URL, DEFCONFIG, CMP_RESULT_LESS, CMP_RESULT_CHANGE, REPORT_HEAD +from tools.do_download import do_download +from tools.logger import init_logger + +logger = logging.getLogger('kconfig') + + +class MinKconfig(object): + + @staticmethod + def get_kconfig_item(kconfig): + """ + get kconfig item + @param kconfig: kconfig path + @return: + """ + item = {} + flag_oe = False + with open(kconfig, "r") as f: + for line in f.readlines(): + line = line.strip().replace("\n", "") + if line == "": + continue + if line.startswith("#"): + if re.search(r'\.oe\d+\.', line): + flag_oe = True + continue + + name, version = line.split("=", 1) + item.setdefault(name, version.strip('"')) + + return item, flag_oe + + @staticmethod + def get_min_base(arch): + min_path = os.path.join(os.path.dirname(__file__), "config/min_%s.yaml" % arch) + with open(min_path, "r") as f: + min_kconfig = yaml.safe_load(f) + + return min_kconfig + + @staticmethod + def export_diff_config(report_dir, results): + report_name = "kconfig_%s.csv" % time.strftime("%Y%m%d%H%M%S", time.localtime()) + report_output = os.path.join(report_dir, report_name) + flags = os.O_RDWR | os.O_CREAT + modes = stat.S_IROTH | stat.S_IRWXU + with os.fdopen(os.open(report_output, flags, modes), 'w+', newline='', encoding='utf-8') as f: + f_csv = csv.writer(f) + f_csv.writerow(REPORT_HEAD) + f_csv.writerows(results) + + logger.info("check in min kconfig details report: %s" % report_output) + + def check_min_config(self, local_path, arch, dir_path, oe=False): + results = [] + logger.debug("check kconfig local path: %s" % local_path) + test_kconfigs, flag_oe = self.get_kconfig_item(local_path) + min_kconfig = self.get_min_base(arch) + min_items = list(min_kconfig.keys()) + if not oe and flag_oe: + oe = True + for item in min_items: + if oe and item == 'CONFIG_ARM64_64K_PAGES': + continue + set_config = test_kconfigs.get(item, None) + set_range = min_kconfig.get(item) + if set_config is None: + results.append([item, set_range, '', CMP_RESULT_LESS]) + continue + if isinstance(set_range, list): + if set_config in set_range: + continue + results.append([item, set_range, set_config, CMP_RESULT_CHANGE]) + else: + if set_config != set_range: + results.append([item, set_range, set_config, CMP_RESULT_CHANGE]) + + if results: + logger.info("check in min kconfig failed.") + self.export_diff_config(dir_path, results) + else: + logger.info("check in min kconfig success.") + + +def init_args(): + """ + init args + :return: + """ + parser = argparse.ArgumentParser() + + default_work_dir = "/tmp/kconfig" + parser.add_argument("-b", "--branch", type=str, dest="gitee_branch", + help="the branch of https://gitee.com/openeuler/kernel") + parser.add_argument("-a", "--arch", type=str, dest="arch", help="kconfig arch") + parser.add_argument("-l", "--local", type=str, dest="local", default="", help="local kconfig file") + parser.add_argument("-w", "--work-dir", type=str, dest="work_dir", default=default_work_dir, help="work root dir") + + return parser.parse_args() + + +if __name__ == "__main__": + init_logger() + args = init_args() + + logger.info(f"branch: {args.gitee_branch}") + logger.info(f"arch: {args.arch}") + logger.info(f"local path: {args.local}") + logger.info(f"work directory: {args.work_dir}") + + if args.arch not in ARCH: + logger.error("please input test arch, support at arm64, x86") + sys.exit(-1) + + work_dir = args.work_dir + if not os.path.exists(work_dir): + os.makedirs(work_dir) + if args.gitee_branch: + defconfig_url = urljoin(KERNEL_URL, "%s/arch/%s/configs/%s" % (args.gitee_branch, args.arch, DEFCONFIG)) + with tempfile.NamedTemporaryFile() as f_md: + if do_download(defconfig_url, f_md.name) is None: + logger.error("input incorrect branch, check target in https://gitee.com/openeuler/kernel") + else: + MinKconfig().check_min_config(f_md.name, args.arch, work_dir, True) + else: + if os.path.exists(args.local): + MinKconfig().check_min_config(args.local, args.arch, work_dir) + else: + logger.error("local config: %s not exists" % args.local) diff --git a/tools/kconfig/tools/__init__.py b/tools/kconfig/tools/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tools/kconfig/tools/constant.py b/tools/kconfig/tools/constant.py new file mode 100644 index 0000000000000000000000000000000000000000..d223741499fb0c349a51b6982baae925c99e7506 --- /dev/null +++ b/tools/kconfig/tools/constant.py @@ -0,0 +1,16 @@ + +# kernel source repository +KERNEL_URL = 'https://gitee.com/openeuler/kernel/raw/' + +# report header +REPORT_HEAD = ['kconfig', 'min range', 'set config', 'check result'] + +# support arch +ARCH = ['arm64', 'x86'] + +# download kconfig name +DEFCONFIG = 'openeuler_defconfig' + +# check result types +CMP_RESULT_LESS = 'less' +CMP_RESULT_CHANGE = 'change' diff --git a/tools/kconfig/tools/do_download.py b/tools/kconfig/tools/do_download.py new file mode 100644 index 0000000000000000000000000000000000000000..6f003491c7e6b80797410e255b8bd6c9759ba36d --- /dev/null +++ b/tools/kconfig/tools/do_download.py @@ -0,0 +1,91 @@ +import logging +import sys +import traceback +from time import time +from urllib.request import urlretrieve + +logger = logging.getLogger("kconfig") + + +def do_download(url, file_path, progress=False, step=1): + """ + 从url下载,保存到file_path + :param url: 远程地址 + :param file_path: 文件下载地址 + :param progress: 展示下载进度 + :param step: 每次展示进度步数 + :return: + """ + + def current_timestamp(): + """ + 当前秒 + :return: + """ + return int(time()) + + class ReportHook(object): + """ + 回调类 + """ + last_block = 0 + download = 0 + total = 0 + percent = 0 + last_time = current_timestamp() + + def cb(self, block_num=1, block_size=1, total_size=None): + """ + retrieve reporthook + :param block_num: 块编号 + :param block_size: 块大小 + :param total_size: 总下载大小 + :return: + """ + if not total_size: + return + + self.total = total_size + + download = (block_num - self.last_block) * block_size + now = current_timestamp() + interval = now - self.last_time + if not interval: + return + speed = download // interval + if not speed: + return + + self.download += download + percent = self.download * 100 // self.total + est = (self.total - self.download) // speed + + if percent >= self.percent + step: + logger.error( + f"{percent}% [{convert_bytes(self.download)}/{convert_bytes(self.total)}] complete, " + f"estimate to take another {est} seconds\n") + self.percent = percent + + self.last_block = block_num + self.last_time = now + + reporthook = ReportHook().cb if progress else None + try: + logger.debug(f"download {url} to {file_path}") + return urlretrieve(url, file_path, reporthook=reporthook) + except Exception as err: + logger.debug(f"urlretrieve {url} exception {traceback.format_exc()}") + + +def convert_bytes(size): + """ + 将大小转换成 KB MB GB TB 展示 + :param size: + :return: + """ + for x in ['bytes', 'KB', 'MB', 'GB', 'TB']: + if size < 1024.0: + return f"{size} {x}" if x == 'bytes' else f"{size:.2f} {x}" + size /= 1024.0 + + return size diff --git a/tools/kconfig/tools/logger.py b/tools/kconfig/tools/logger.py new file mode 100644 index 0000000000000000000000000000000000000000..bf4c97d993e83b797f32feb7242680ed8d68d8f3 --- /dev/null +++ b/tools/kconfig/tools/logger.py @@ -0,0 +1,13 @@ +import os +import logging.config + + +def init_logger(): + """ + 初始化logger + :return: + """ + conf_path = os.path.realpath(os.path.join(os.path.dirname(__file__), "../config/logger.conf")) + defaults = {'args': str(('test_kconfig.log', 'a+', 50 * 1024 * 1024, 5))} + + logging.config.fileConfig(conf_path, defaults=defaults)