121 lines
3.8 KiB
Markdown
121 lines
3.8 KiB
Markdown
---
|
||
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
|
||
```
|