海光3350 + 银河麒麟V10 2403 + 摩尔线程MTT S50 安装实战记
一、硬件平台
台式机 联想开天P3H G1t
| 组件 | 型号 | 说明 |
|---|---|---|
| CPU | 海光 C86-3G 3350 | 8核16线程,Zen1架构,相当于AMD锐龙1700水平 |
| 主板 | MTTS50 | BIOS版本 w0jkt20a,联想开天/ThinkStation方案 |
| 显卡 | 摩尔线程 MTT S50 | 8GB显存,PCIe x16,国产GPU |
| 系统盘 | TWSC 512GB NVMe | /dev/nvme0n1 |
| 数据盘 | 西数 2TB SATA机械 | /dev/sda |
| 内存 | — | DDR4,32GB |
二、系统选型与兼容性陷阱
2.1 版本选择的关键误区
最初尝试安装 麒麟V10 2403,但启动后直接 Kernel Panic,报错信息如下:
RIP: entry_SYSCALL_64_after_hwframe+0x5c/0xc1
Code: Bad RIP value
CR2: 0000000000000000
Call Trace: lookup_fast -> walk_component -> link_path_walk
unable to handle kernel paging request
问题根源:麒麟V10 2403官方支持列表明确为 海光C86-4G 及新一代CPU(鲲鹏920新型号、飞腾S5000C、龙芯3D5000等),而 C86-3G(3350)的支持首次加入是在2303版本。2403版本内核可能移除了C86-3G所需的CPU微码和初始化代码。
重要提示:麒麟V10 x86版本分为 “兆芯/海光专用版” 和 “HWE版(Intel/AMD专用)”,务必下载前者。
2.2 为什么2403最终能跑?
经过BIOS调试后,2403成功启动并完整安装。这说明:
- 2403内核并未完全移除C86-3G支持,但默认路径可能依赖某些BIOS特性
- BIOS设置(特别是IOMMU相关)直接影响内核初始化流程
- 社区验证:C86-3G + 2403 的组合在正确配置下可以工作,但属于非官方支持场景
三、BIOS调试:从Kernel Panic到成功启动
3.1 必须关闭的选项
| 选项 | 路径(海光BIOS通用) | 作用 | 关闭原因 |
|---|---|---|---|
| IOMMU | HYGON CBS → NBIO Common Options → NB Configuration | DMA重映射与设备隔离 | 内核在IOMMU初始化阶段崩溃,Call Trace指向iommu相关路径 |
| Hygon Memory Guard | 同IOMMU附近 | 海光内存安全扩展(类似AMD TSME) | 2403内核可能未正确识别C86-3G的Memory Guard实现 |
| SR-IOV | Advanced → PCI Subsystem Settings | 单根I/O虚拟化 | 依赖IOMMU,且增加PCIe初始化复杂度 |
3.2 相关选项说明
- Resize BAR:海光C86-3G平台通常无独立选项(该特性多见于RDNA2/Gen12以后显卡),但摩尔线程驱动要求此功能,实测主板可能默认开启
- Above 4G Decoding:在海光BIOS中可能显示为 “4GB以上空间解码”,默认已开启
- Secure Boot:建议关闭,避免与麒麟内核签名验证冲突
- SVM Mode(AMD-V):非虚拟化场景建议关闭
3.3 调试过程
初始状态:IOMMU开启 → Kernel Panic
修改后:IOMMU关闭 + Memory Guard关闭 + SR-IOV关闭 → 成功进入安装界面
由于同时修改了三个参数,无法精确定位单一因素。但Kernel Panic的Call Trace明确指向IOMMU相关路径,IOMMU是最可能的根本原因。
四、磁盘分区与加密容器处理
4.1 原有系统状态
机器此前安装了麒麟服务器版Kylin-server-v10-sp3,分区结构如下:
/dev/nvme0n1 (512GB NVMe)
├── p1: EFI系统分区 (600MB, FAT32, /boot/efi)
├── p2: /boot分区 (1GB, XFS)
└── p3: LUKS加密容器 (475GB) → 解锁后 → LVM卷组 → 逻辑卷 → XFS
4.2 "加密磁盘"标签的含义
安装器检测到p3存在LUKS签名,但无法解锁(无密码或未提示输入),因此显示为 “加密磁盘”。这不代表可以读写,而是安装器无法识别内部结构。
4.3 全盘安装方案
选择 “全盘安装” + “格式化整个磁盘”,安装器自动重新分区:
/dev/nvme0n1
├── p1: EFI (600MB, vfat)
├── p2: /boot (1GB, ext4)
└── p3: LVM物理卷 (剩余全部)
├── / 分区 (ext4, 系统根目录)
├── backup分区 (ext4, 系统恢复点)
├── data分区 (ext4, 用户数据)
└── swap分区 (swap, 虚拟内存)
/dev/sda (2TB机械)
└── 独立数据盘 (ext4, 挂载为数据盘)
关键选项:
- ❌ 出厂备份 — 不需要
- ❌ 全盘加密 — 避免加密复杂性
- ☑️ 逻辑卷(LVM) — 推荐,便于后期动态扩缩容
- ☑️ 格式化整个磁盘 — 必须勾选,确保旧加密容器物理清除
五、摩尔线程MTT S50驱动安装
5.1 驱动包
使用摩尔线程官方 musa_3.1.0-pc_x86.deb 驱动包。
5.2 依赖问题解决
首次安装报错:
musa 依赖于 libgles2;然而:未安装软件包 libgles2。
修复步骤:
sudo apt-get update
sudo apt-get install -f
sudo apt-get install libgles2 libgles2-mesa
sudo dpkg -i musa_3.1.0-pc_x86.deb
5.3 安装成功标志
DKMS: install completed.
WARNING: The system needs to be restarted for MUSA driver!
重启后验证:
# 内核模块加载
$ lsmod | grep mtgpu
mtgpu 3592192 131
# 显卡信息
$ mthreads-gmi
ID Name |PCIe |%GPU Mem
0 MTT S50 |0000:05:00.0 |7% 637MiB(8192MiB)
|16x(16x) |48C
# 分辨率
$ xrandr
Screen 0: current 1920 x 1080
HDMI-1 connected primary 1920x1080+0+0
# OpenGL硬件加速
$ glxinfo | grep "OpenGL renderer"
OpenGL renderer string: MTT S50
六、关键经验总结
6.1 兼容性结论
| 组合 | 官方支持 | 实际可行性 | 关键条件 |
|---|---|---|---|
| C86-3G 3350 + 麒麟2303 | ✅ | ✅ | 无特殊要求 |
| C86-3G 3350 + 麒麟2403 | ❌ | ✅ 可行 | 必须关闭IOMMU/Memory Guard/SR-IOV |
| C86-4G + 麒麟2403 | ✅ | ✅ | 无特殊要求 |
6.2 BIOS设置速查表
必须关闭:
✅ IOMMU = Disabled
✅ Hygon Memory Guard = Disabled
✅ SR-IOV = Disabled
✅ Secure Boot = Disabled(建议)
✅ SVM Mode = Disabled(非虚拟化场景)
保持开启:
✅ SMT Mode = Enabled
✅ Core Performance Boost = Enabled
✅ Above 4G Decoding = Enabled(默认)
6.3 摩尔线程MTT S50驱动要点
- 驱动版本 3.1.0 在麒麟2403 + 海光3350上直接可用
- 依赖
libgles2,需先修复再安装 resize bar和above 4G可能主板默认开启,无需手动设置- 支持OpenGL硬件加速,1920x1080输出正常
七、参考命令汇总
# BIOS调试后验证系统状态
lscpu | grep -i hygon # 确认CPU识别
lspci | grep -i vga # 确认显卡识别
lsmod | grep mtgpu # 确认显卡驱动加载
mthreads-gmi # 显卡详细信息
xrandr # 显示输出状态
glxinfo | grep "OpenGL renderer" # 确认3D加速
# 磁盘与分区查看
lsblk # 块设备树
sudo fdisk -l /dev/nvme0n1 # 分区表详情
sudo lvdisplay # LVM逻辑卷详情
sudo pvdisplay # LVM物理卷详情
# 驱动安装排错
sudo apt-get install -f # 修复依赖
sudo dpkg -i --force-depends musa_*.deb # 强制安装(不推荐)
sudo dkms status # 查看DKMS模块状态
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)