Files
Inbox/系统基座文件/1/1.1/1.1.1 发行版与内核版本指纹.md

121 lines
3.8 KiB
Markdown
Raw Normal View History

2025-12-11 07:24:36 +08:00
---
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
```