--- tags: [] date created: 星期三, 十一月 19日 2025, 3:10:38 下午 date modified: 星期三, 十一月 19日 2025, 5:42:25 下午 --- # 1.1.1 发行版与内核版本指纹 **1. OS 发行版完整标识 (Distro Full ID)** - **关键性**:P0 - **预期信息**:确认具体的 SP 版本(如 V10 SP1/SP2/SP3),不同版本的 Glibc 和内核基线差异极大。 - 探测命令: ```bash cat /etc/kylin-release /etc/os-release 2>/dev/null | grep -E "PRETTY_NAME|VERSION_ID|Kylin Linux Advanced Server" Kylin Linux Advanced Server release V10 (GFB) NAME="Kylin Linux Advanced Server" VERSION_ID="V10" PRETTY_NAME="Kylin Linux Advanced Server V10 (GFB)" ``` **2. CPU 架构与字节序 (Arch & Endianness)** - **关键性**:P0 - **预期信息**:必须确认为 aarch64 且为 Little Endian(小端序),这是 Feiteng S5000C 的基础特征。 - 探测命令: ```bash lscpu | grep -E "Architecture|Byte Order" 空 ``` **3. 内核发布版本号 (Kernel Release)** - **关键性**:P0 - **预期信息**:精确的内核版本字符串。驱动源码的 Header Path 必须与此完全一致。 - 探测命令: ```bash uname -r 4.19.90-52.23.v2207.gfb08.ky10.aarch64 ``` **4. 内核构建编译器版本 (Kernel GCC Version)** - **关键性**:P0 - **预期信息**:提取圆括号内的 gcc version。如果此版本与当前环境中 gcc 版本差异过大,编译内核模块时极易报错。 - 探测命令: ```bash cat /proc/version Linux version 4.19.90-52.23.v2207.gfb08.ky10.aarch64 (KYLINSOFT@localhost.localdomain) (gcc version 7.3.0 (GCC)) #1 SMP Tue Apr 23 18:20:01 CST 2024 ``` **5. 内核启动参数全集 (Kernel Boot Cmdline)** - **关键性**:P1 - **预期信息**:检查是否已有预设的 isolcpus、hugepages 或 iommu 参数,判断基线是否纯净。 - 探测命令: ```bash cat /proc/cmdline BOOT_IMAGE=/vmlinuz-4.19.90-52.23.v2207.gfb08.ky10.aarch64 root=/dev/mapper/klas-root ro rd.lvm.lv=klas/root rd.lvm.lv=klas/swap acpi=on rhgb quiet console=tty0 crashkernel=1024M,high smmu.bypassdev=0x1000:0x17 smmu.bypassdev=0x1000:0x15 video=efifb:off module_blacklist=phytium_mci_pci module_blacklist=phytium_mci audit=0 ``` **6. 内核构建时间戳 (Kernel Build Timestamp)** - **关键性**:P2 - **预期信息**:确认内核是原厂构建还是用户自行重新编译过的版本。 - 探测命令: ```bash uname -v #1 SMP Tue Apr 23 18:20:01 CST 2024 ``` **7. 内核模块签名强制性 (Module Signing Policy)** - **关键性**:P1 - **预期信息**:检查 CONFIG_MODULE_SIG_FORCE。如果是 y,则加载未签名的自研驱动会被拒绝。 - 探测命令: ```bash grep "CONFIG_MODULE_SIG" /boot/config-$(uname -r) 2>/dev/null || echo "Config check failed" CONFIG_MODULE_SIG=y # CONFIG_MODULE_SIG_FORCE Is not Set CONFIG_MODULE_SIG_ALL=y # CONFIG_MODULE_SIG_SHA1 is not set # CONFIG_MODULE_SIG_SHA224 is not set CONFIG_MODULE_SIG_SHA256=y # CONFIG_MODULE_SIG_SHA384 is not set # CONFIG_MODULE_SIG_SHA512 is not set CONFIG_MODULE_SIG_HASH="sha256" CONFIG_MODULE_SIG_KEY="certs/signing_key.pem" ``` **8. 安全模块状态 (LSM Status)** - **关键性**:P1 - **预期信息**:确认 SELinux 或 Kysec(麒麟安全子系统)的状态,这是导致设备节点无权限访问的常见原因。 - 探测命令: ```bash sestatus 2>/dev/null; getenforce 2>/dev/null; ls -d /sys/kernel/security/lsm SELinux status: disabled Disabled /sys/kernel/security/lsm ``` **9. 页大小配置 (Page Size Configuration)** - **关键性**:P1 - **预期信息**:aarch64 架构下可能存在 4KB 或 64KB 页大小的差异。页大小不匹配会导致内存映射(mmap)失败。 - 探测命令: ```bash getconf PAGESIZE 65536 ```