Files
Inbox/系统基座文件/1/1.1/1.1.1 发行版与内核版本指纹.md
2025-12-11 07:24:36 +08:00

121 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
```