云计算百科
云计算领域专业知识百科平台

Windows 上使用 QEMU 安装 loongarch64 架构银河麒麟 V10 SP1 2403 虚拟机

Windows 上使用 QEMU 安装 loongarch64 架构银河麒麟 V10 SP1 2403 虚拟机(完整实录)

本文记录在 Windows 11(x86_64)宿主机上,用 QEMU 11.0.0 安装并运行「银河麒麟桌面操作系统 V10 SP1 2403 LoongArch64」的全过程。 包括镜像/固件下载、虚拟磁盘创建、启动命令、GRUB 参数、安装后参数固化、避坑与验证。 全程纯 TCG 软件模拟(x86 宿主无法对 LoongArch 使用 KVM),实测可完成安装并进入桌面。


目录

  • 一、最终效果
  • 二、环境说明与所需材料
  • 三、下载镜像、固件和 QEMU
  • 四、安装 QEMU 与目录规划
  • 五、创建虚拟磁盘
  • 六、启动安装:完整命令与参数解释
  • 七、关键一步:在 GRUB 中追加内核参数
  • 八、进入安装器并完成安装
  • 九、安装后的首次启动与参数固化
  • 十、日常启动脚本
  • 十一、验证安装结果
  • 十二、常见问题(踩坑记录)
  • 十三、总结

一、最终效果

安装完成并重启后,系统正常进入银河麒麟桌面,终端中执行 arch 与 lscpu 输出如下:

ky-loong@ky-loong-pc:~$ arch
loongarch64

ky-loong@ky-loong-pc:~$ lscpu
Architecture: loongarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
CPU family: Loongson-64bit
Model name: Loongson-3A5000
BogoMIPS: 4000.00
L1d cache: 256 KiB
L1i cache: 256 KiB
L2 cache: 1 MiB
L3 cache: 16 MiB
NUMA node0 CPU(s): 0-3
Flags: cpucfg lam ual fpu lsx lasx crc32

在这里插入图片描述

可以看到 Architecture 为 loongarch64,CPU 型号被识别为 Loongson-3A5000,说明整套龙芯生态(固件 + 内核 + 用户态)已经在 QEMU 中完整跑起来了。


二、环境说明与所需材料

2.1 宿主机环境

项目配置
操作系统 Windows 11 Enterprise(x86_64)
CPU 支持硬件虚拟化的 x86_64 处理器
内存 建议 16 GB 及以上(客户机分配 4 GB)
磁盘 预留至少 85 GB 空间(虚拟磁盘 80 GB)
QEMU 11.0.0 Windows 版(qemu-w64-setup-20260422.exe)
加速方式 纯 TCG(-accel tcg,thread=multi)

注意:LoongArch 与 x86 指令集完全不同,Windows 宿主上的 QEMU 没有 KVM 可用,只能走 TCG 动态翻译,因此安装和运行都会明显慢于同架构虚拟机。这是正常现象,不是配置错误。

2.2 需要的文件

文件用途大小
Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso 麒麟系统安装镜像 4,694,988,800 字节(约 4.37 GB)
QEMU_EFI.fd LoongArch 平台 UEFI 固件 4,194,304 字节(4 MB)
qemu-w64-setup-20260422.exe Windows 版 QEMU 安装包 约 200 MB

在这里插入图片描述


三、下载镜像、固件和 QEMU

3.1 银河麒麟 V10 SP1 2403 LoongArch64 镜像

官方下载地址(CDN 直链):

https://iso.kylinos.cn/web_pungi/download/cdn/5aVgLwmAlH4Y6CD3uIXP01noizhS8xGE/Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso

下载后建议核对文件大小是否为 4,694,988,800 字节。文件名中的 2403 表示 2024 年 3 月版本,20240506 是构建日期,loongarch64 是目标架构——不要下载成 arm64 或 mips64el 版本。

3.2 LoongArch UEFI 固件

https://github.com/loongson/Firmware/blob/SubmitMultiArch/LoongArchVirtMachine/QEMU_EFI.fd

在 GitHub 页面点击 Download raw file 下载,得到 4 MB 的 QEMU_EFI.fd。

这个固件是 QEMU LoongArch virt 机器的 UEFI 环境,负责初始化内存、PCIe、virtio 设备,然后加载 ISO 中的 GRUB。没有它,qemu-system-loongarch64.exe 无法启动。

3.3 QEMU for Windows

https://qemu.weilnetz.de/w64/qemu-w64-setup-20260422.exe

该网站提供官方 QEMU 的 Windows 编译版,安装包自带 qemu-system-loongarch64.exe 以及全部依赖 DLL,不需要额外配置 MSYS2 环境。


四、安装 QEMU 与目录规划

双击 qemu-w64-setup-20260422.exe,一路默认安装即可。本文将其安装到 E:\\qemu,并按下面的结构组织文件:

E:\\qemu\\
├─ qemu-system-loongarch64.exe # QEMU 主程序
├─ qemu-img.exe # 磁盘镜像工具
├─ bios\\
│ └─ loongarch64\\
│ └─ QEMU_EFI.fd # LoongArch UEFI 固件
├─ soft\\
│ └─ Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso
├─ qvm\\
│ └─ kylin_loongarch64.img # 虚拟磁盘(待创建)
└─ serial.log # 内核串口日志

安装完成后,在 E:\\qemu 目录打开 PowerShell 或 CMD,确认程序可用:

cd /d E:\\qemu
qemu-system-loongarch64.exe –version

预期输出:

QEMU emulator version 11.0.0 (v11.0.0-12122-ga4bb4b10c9)
Copyright (c) 2003-2026 Fabrice Bellard and the QEMU Project Developers


五、创建虚拟磁盘

使用 QEMU 自带的 qemu-img.exe 创建一个 80 GB 的 raw 格式磁盘:

cd /d E:\\qemu
qemu-img.exe create -f raw E:\\qemu\\qvm\\kylin_loongarch64.img 80G

输出:

Formatting 'E:\\qemu\\qvm\\kylin_loongarch64.img', fmt=raw size=85899345920

几点说明:

  • raw 格式:结构最简单,兼容性最好。文件大小显示为 80 GB,但在 NTFS 上是稀疏文件,实际占用随写入增长。
  • 80 GB:麒麟桌面版默认安装约需 20 GB 以上,80 GB 留有充足余量。
  • 如果想节省空间,也可以改用 qcow2 格式,但本文沿用实测通过的 raw 方案。

六、启动安装:完整命令与参数解释

6.1 完整启动命令

在 E:\\qemu 目录下执行下面这条命令(单行,可直接复制到 CMD 或 PowerShell):

qemu-system-loongarch64.exe -m 4G -cpu la464-loongarch-cpu -smp 4 –accel tcg,thread=multi,tb-size=1024 -M virt -bios e:\\qemu\\bios\\loongarch64\\QEMU_EFI.fd -rtc base=localtime -display sdl -device virtio-gpu-pci -device nec-usb-xhci -device usb-tablet -device usb-kbd -drive if=virtio,file=e:\\qemu\\qvm\\kylin_loongarch64.img,id=hd0,format=raw,media=disk -device virtio-scsi-pci,id=scsi -drive if=none,file=e:\\qemu\\soft\\Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso,id=cdrom,media=cdrom -device scsi-cd,drive=cdrom,bus=scsi.0 -netdev user,id=n0,hostfwd=tcp::2223-:22 -device virtio-net-pci,netdev=n0 -serial file:e:\\qemu\\serial.log

6.2 参数逐项说明

参数作用
-m 4G 客户机内存 4 GB。TCG 模式下 4 GB 已足够,加到 8 GB 收益不大
-cpu la464-loongarch-cpu 指定 LoongArch 的 LA464 处理器模型(对应龙芯 3A5000)
-smp 4 4 个 vCPU。关键提速项,不写则只有 1 个 vCPU,thread=multi 会退化为单线程
–accel tcg,thread=multi,tb-size=1024 多线程 TCG + 1 GB 翻译块缓存,显著提升模拟性能
-M virt LoongArch 虚拟机型
-bios …\\QEMU_EFI.fd 加载 LoongArch UEFI 固件
-rtc base=localtime 客户机使用本地时间,避免与宿主机时区不一致
-display sdl 使用 SDL 窗口显示图形界面
-device virtio-gpu-pci 必须使用 virtio 显卡。该内核没有 Bochs VGA 驱动,用 -device VGA 会永久黑屏
-device nec-usb-xhci + usb-tablet + usb-kbd USB 3.0 控制器、绝对定位鼠标、键盘,保证图形界面操作正常
-drive if=virtio,file=… 安装目标磁盘,使用 virtio-blk,安装器中显示为 vda
-device virtio-scsi-pci,id=scsi SCSI 控制器。必须用 -pci 版本,不能用 virtio-scsi-device
-drive if=none,file=…iso,id=cdrom,media=cdrom 挂载安装 ISO
-device scsi-cd,drive=cdrom,bus=scsi.0 把 ISO 作为 SCSI 光驱挂到控制器上
-netdev user,id=n0,hostfwd=tcp::2223-:22 用户态网络,并把宿主机 2223 端口转发到客户机 22 端口,方便 SSH
-device virtio-net-pci,netdev=n0 virtio 网卡
-serial file:e:\\qemu\\serial.log 把虚拟串口输出写入文件,安装/启动异常时用于排障

执行后,QEMU 会打开一个 SDL 窗口,先显示 LoongArch UEFI 固件的启动信息,随后进入麒麟的 GRUB 菜单。


七、关键一步:在 GRUB 中追加内核参数

7.1 为什么要加参数

这个麒麟镜像携带的是面向龙芯 3A5000 整机的板级内核(Linux 5.4.18-110-generic #99-KYLINOS)。内核初始化时会无条件探测 NCT6102 Super I/O、LS7A 硬件监控等只在真实主板上存在的芯片。QEMU 没有这些硬件,驱动读回无效值后会触发地址错异常(ADE),导致 PID 1 死亡并 panic。

更麻烦的是:

  • 该内核在 ACPI 路径下没有注册任何真实控制台,屏幕和串口都没有输出;
  • 内核里没有 Bochs VGA 驱动,所以 -device VGA 永远黑屏。
  • 最终表现就是:选择安装后屏幕全黑,等再久也没反应。这不是 TCG 太慢,而是内核已经 panic。

    在这里插入图片描述

    典型现象:QEMU 窗口没有任何系统画面,只显示 Display output is not active.(或者纯黑),串口日志里也没有内核输出。此时不要再等了,按下面的方案加参数。

    解决办法是加三个要素,缺一不可:

    要素作用
    acpi=off 禁用 ACPI,让内核改走 QEMU 设备树路径,避开板级硬件探测,同时让 8250 串口控制台和 virtio 设备正常注册
    initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init 跳过两个会访问不存在硬件的板级 initcall,避免 ADE → panic
    -device virtio-gpu-pci 内核的 virtio_gpu 模块加载后提供 DRM 帧缓冲,图形界面才能显示

    7.2 在 GRUB 命令行中手动启动

    ISO 里的 grub.cfg 位于只读的光盘上,菜单项参数无法保存修改,所以每次从 ISO 启动都要手动指定一次。

    看到麒麟 GRUB 菜单后:

  • 按 c 键,进入 GRUB 命令行(提示符为 grub>);
  • 依次输入下面三行,每行以回车结束:
  • linux (cd0)/casper/vmlinuz boot=casper ignore_uuid locale=zh_CN fsck.mode=skip acpi=off console=ttyS0,115200 initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init
    initrd (cd0)/casper/initrd.img
    boot

    说明:

    • (cd0) 是光驱设备名,不确定时可在 grub> 下输入 ls,会列出 (memdisk) (cd0)。
    • 第三行 boot 回车后开始加载内核(约 7.6 MB)和 initrd(约 142 MB),TCG 下需要几分钟,期间短暂黑屏属正常。
    • 如果更习惯编辑菜单项:在菜单上按 e,找到以 linux /casper/vmlinuz 开头的那一行,在末尾追加:

    acpi=off console=ttyS0,115200 initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init

    然后按 Ctrl+X 启动。

    小技巧:如果 GRUB 菜单一闪而过,开机后立刻连按 Esc 即可调出菜单,再按 e 或 c。


    八、进入安装器并完成安装

    参数正确时,等待约 3~8 分钟(取决于宿主机性能),会出现麒麟安装器的语言选择界面(1280×800)。看到这个界面就说明:

    • 图形栈正常(virtio-gpu 工作);
    • 内核没有 panic;
    • 串口控制台已注册。

    接下来按向导操作即可:

  • 选择语言(中文简体);
  • 选择时区、键盘布局;
  • 创建用户(本文实测用户名为 ky-loong);
  • 分区页面选择整盘安装,安装器会识别出一块 virtio 磁盘 vda(即 kylin_loongarch64.img);
  • 等待复制文件并完成安装,最后重启。
  • 安装过程中如果想观察进度,可以:

    • 查看 E:\\qemu\\serial.log 中的内核日志;
    • 在 QEMU 窗口中按 Ctrl+Alt+F2 切换到文本终端。

    注意:重启前请在 GRUB 或安装器提示时断开 ISO(或者下次启动命令里删掉光驱相关参数),否则可能又从光盘启动。


    九、安装后的首次启动与参数固化

    9.1 首次启动仍需带参数

    已安装系统的内核与 ISO 里的内核完全相同,板级驱动 panic 的问题依旧存在。因此安装后的系统也必须带同样的内核参数启动,否则又会黑屏。

    首次启动建议:

  • 开机后立刻连按 Esc 调出 GRUB 菜单;
  • 选中麒麟启动项,按 e;
  • 找到 linux 行,在行末追加:
  • acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200 loglevel=7

  • 按 Ctrl+X 启动,即可进入桌面。
  • 下图是安装后系统的 GRUB 编辑界面,可以看到默认的 linux 行只有 quiet splash loglevel=0,没有任何 QEMU 适配参数:

    在这里插入图片描述

    在行末追加参数后,应变成下面这样(acpi=off 和 initcall_blacklist=… 都在同一行内):

    在这里插入图片描述

    9.2 固化参数:一定要改 EFI 分区里的 grub.cfg

    这是本文最容易踩的坑。

    该镜像里存在两份互不相干的 GRUB 配置:

    位置update-grub 是否更新启动时是否使用
    /boot 分区(ext4)的 /grub/grub.cfg ✅ 会更新 ❌ 不使用
    EFI 分区(FAT32)的 /BOOT/EFI/grub.cfg ❌ 不会更新 ✅ 实际启动用的就是这份

    所以,只在 /etc/default/grub 里改参数再执行 update-grub,菜单里看到的仍然是旧参数,重启后照样黑屏。这就是「参数已经固化了却还是黑屏」的真正原因。

    进入系统后,打开终端执行:

    # 1) 确认 EFI 分区挂载点和配置文件真实路径
    lsblk -f
    sudo find /boot/efi -iname 'grub.cfg'

    # 2) 备份真正的启动配置
    sudo cp /boot/efi/boot/EFI/grub.cfg /boot/efi/boot/EFI/grub.cfg.bak

    # 3) 给所有正常启动项统一追加内核参数
    sudo sed -i 's/quiet splash loglevel=0/quiet splash acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200 loglevel=7/g' /boot/efi/boot/EFI/grub.cfg

    # 4) 核对每条 linux 行是否都带上了参数
    sudo grep -n '^[[:space:]]*linux' /boot/efi/boot/EFI/grub.cfg

    典型 find 结果如下:

    • /boot/efi/EFI/kylin/grub.cfg —— 约 89 字节,只是一个跳转桩,不要改;
    • /boot/efi/boot/EFI/grub.cfg —— 约 10.6 KB,真正的启动菜单,改这个。

    vfat 文件系统大小写不敏感,/boot/efi/boot/EFI/grub.cfg 与 /boot/efi/BOOT/EFI/grub.cfg 是同一个文件,用 ls -l 看大小即可区分。

    恢复模式那一行不含 quiet splash loglevel=0,上面的 sed 不会改到它。如需一并处理:

    sudo sed -i 's/single nomodeset/single nomodeset acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200 loglevel=7/' /boot/efi/boot/EFI/grub.cfg

    同时建议把 /etc/default/grub 也改成一致,避免两份配置互相误导:

    sudo cp /etc/default/grub /etc/default/grub.bak
    sudo sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200"/' /etc/default/grub
    sudo update-grub

    9.3 验证参数是否生效

    cat /proc/cmdline

    预期输出应包含:

    … quiet splash acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200 loglevel=7 …

    然后完整重启一次,不要按 e 修改,确认能直接进入桌面即可。

    注意:以后内核升级或再次执行 update-grub 时,EFI 分区里的那份 grub.cfg 不会被自动更新,需要重新执行 9.2 节第 3 步。


    十、日常启动脚本

    安装完成后,把光驱相关参数去掉,整理成一个启动脚本。在 E:\\qemu\\qvm 下新建 start_loongarch64.bat:

    @echo off
    chcp 936 >nul
    setlocal

    REM ============================================================
    REM 银河麒麟 V10 SP1 2403 (LoongArch64) 日常启动脚本
    REM 关键点:
    REM -cpu la464-loongarch-cpu LoongArch 处理器模型
    REM -device virtio-gpu-pci 必须使用 virtio 显卡
    REM -smp 4 + tb-size=1024 多线程 TCG 提速
    REM -serial file:… 保存内核日志,便于排障
    REM 内核参数已固化在 EFI 分区的 grub.cfg 中
    REM ============================================================

    set "QEMU_EXE=%~dp0..\\qemu-system-loongarch64.exe"
    set "FIRMWARE=%~dp0..\\bios\\loongarch64\\QEMU_EFI.fd"
    set "DISK=%~dp0kylin_loongarch64.img"
    set "SERIAL_LOG=%~dp0..\\serial.log"

    if not exist "%QEMU_EXE%" (
    echo [错误] 找不到 QEMU 程序: %QEMU_EXE%
    pause
    exit /b 1
    )
    if not exist "%FIRMWARE%" (
    echo [错误] 找不到 LoongArch 固件: %FIRMWARE%
    pause
    exit /b 1
    )
    if not exist "%DISK%" (
    echo [错误] 找不到系统磁盘: %DISK%
    pause
    exit /b 1
    )

    cd /d "%~dp0.."

    echo 正在启动 银河麒麟 V10 SP1 2403 (LoongArch64) …
    echo 提示: 纯 TCG 模拟启动较慢,请耐心等待。
    echo 内核日志: %SERIAL_LOG%
    echo.

    "%QEMU_EXE%" ^
    -M virt ^
    -cpu la464-loongarch-cpu ^
    -smp 4 ^
    -m 4G ^
    –accel tcg,thread=multi,tb-size=1024 ^
    -bios "%FIRMWARE%" ^
    -rtc base=localtime ^
    -display sdl ^
    -device virtio-gpu-pci ^
    -device nec-usb-xhci ^
    -device usb-tablet ^
    -device usb-kbd ^
    -drive "if=virtio,file=%DISK%,id=hd0,format=raw,media=disk" ^
    -netdev user,id=n0,hostfwd=tcp::2223-:22 ^
    -device virtio-net-pci,netdev=n0 ^
    -serial "file:%SERIAL_LOG%"

    echo.
    echo 虚拟机已退出。
    pause

    日常使用只需双击这个脚本即可。SSH 连接方式:

    ssh -p 2223 ky-loong@127.0.0.1

    前提是客户机内已安装并启动 openssh-server。


    十一、验证安装结果

    11.1 串口日志

    E:\\qemu\\serial.log 中应出现类似内容:

    Kernel command line: … quiet splash acpi=off initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init console=ttyS0,115200 loglevel=7 …
    Console: switching to colour frame buffer device 160×50
    [drm] pci: virtio-gpu-pci detected at 0000:00:01.0
    [drm] Initialized virtio_gpu 0.1.0 0 for virtio0 on minor 0
    virtio_gpu virtio0: fb0: virtio_gpudrmfb frame buffer device
    systemd[1]: Detected architecture loongarch64.
    systemd[1]: Set hostname to <kylin>.
    Started Light Display Manager.
    Started Serial Getty on ttyS0
    Kylin V10 SP1 kylin ttyS0
    kylin login:

    几个关键标志:

    • virtio_gpudrmfb frame buffer device:显卡驱动正常;
    • Detected architecture loongarch64:用户态已正常运行;
    • kylin login::系统进入登录界面;
    • 日志中不再出现 Kernel panic。

    11.2 桌面与 CPU 信息

    进入桌面后打开终端:

    arch
    lscpu

    应分别输出 loongarch64 和 Loongson-3A5000 相关信息,与本文开头的截图一致。

    11.3 磁盘识别

    安装器或系统中应能看到 virtio 磁盘:

    lsblk

    设备名通常是 vda,对应宿主机的 E:\\qemu\\qvm\\kylin_loongarch64.img。


    十二、常见问题(踩坑记录)

    Q1:启动报 A 'virtio-bus' bus was found but is full

    完整报错:

    qemu-system-loongarch64.exe: -device virtio-scsi-device: A 'virtio-bus' bus was found but is full

    原因:virtio-scsi-device 是不带传输层的 MMIO 版设备,需要挂到名为 virtio-bus 的总线上,而每条 virtio 总线只有一个槽位。LoongArch 的 virt 机器不提供 virtio-mmio,QEMU 递归查找时命中的是默认网卡 virtio-net-pci 内部那条已被占满的总线。

    解决:改用 PCI 版本:

    -device virtio-scsi-pci,id=scsi
    -device scsi-cd,drive=cdrom,bus=scsi.0

    Q2:报 No 'virtio-bus' bus found for device 'virtio-scsi-device'

    同样是用了 MMIO 版 virtio 设备。LoongArch virt 没有 virtio-mmio,所有 virtio 设备都要用 -pci 后缀。

    Q3:选择安装后一直黑屏,串口也没有输出

    这是本文的核心坑,原因不是慢,而是内核 panic:

    • 板级驱动 nct6102_gpio_setup、loongson_ls7a_hwmon_init 访问不存在的硬件,触发 ADE;
    • 内核没有注册控制台,所以屏幕和串口都看不到任何信息。

    解决:acpi=off + initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init + -device virtio-gpu-pci。

    如果跳过第一个驱动后又在另一个驱动 panic,在 oops 的 Call Trace 里找到函数名(不带 +0x… 偏移),追加到 initcall_blacklist= 中,逗号分隔。

    Q4:加了 console=ttyS0,115200,但串口日志仍然没有内核输出

    因为没加 acpi=off 时,内核走 ACPI 路径,8250 串口控制台没有注册上(日志里会显示 Console: colour dummy device 80×25)。必须同时加 acpi=off,日志里才会出现 console [ttyS0] enabled。

    Q5:安装后改了参数并执行 update-grub,重启还是黑屏

    update-grub 只更新 /boot 分区里的 /grub/grub.cfg,而实际启动读取的是 EFI 分区的 /boot/efi/boot/EFI/grub.cfg。请按 9.2 节直接修改该文件。

    Q6:-device VGA 为什么不行

    该内核没有 Bochs VGA 驱动(内核镜像中搜不到 bochs 关键字),所以传统 VGA 设备只能得到黑屏。必须用 -device virtio-gpu-pci,让内核的 virtio_gpu 模块提供 DRM 帧缓冲。

    Q7:虚拟机非常慢

    LoongArch 在 x86 宿主上只能纯 TCG 模拟,没有 KVM。可做的优化:

    • 必须写 -smp 4,否则只有单 vCPU;
    • 使用 –accel tcg,thread=multi,tb-size=1024;
    • 内存 4 GB 即可,不必盲目加大;
    • 关闭宿主机上占用 CPU 的其他程序。

    Q8:无法关机 / poweroff 后 QEMU 不退出

    acpi=off 下 ACPI 关机可能不生效。直接在 Windows 侧关闭 QEMU 窗口即可。

    Q9:启动日志里出现 parport_pc 的 ADE 调用栈

    实测串口日志中可能出现一条类似下面的 trace:

    Kernel ade access[#1]:
    …
    Call Trace:
    [<…>] parport_pc_probe_port+0x460/0x15d8 [parport_pc]
    [<…>] parport_pc_init+0x49c/0x568 [parport_pc]
    …
    Kylin V10 SP1 ky-loong-pc ttyS0
    ky-loong-pc login:

    这是系统启动后期加载 parport_pc 模块时探测并口硬件产生的非致命异常,系统仍能正常进入登录界面和桌面。若觉得日志刷屏,可以在 /etc/modprobe.d/ 中把 parport_pc 加入黑名单,但不影响使用,可忽略。

    Q10:SSH 连接 2223 端口被拒绝

    检查启动命令里是否包含:

    -netdev user,id=n0,hostfwd=tcp::2223-:22

    没有 hostfwd 时宿主机不会监听 2223 端口。也可以在 QEMU 窗口中按 Ctrl+Alt+2 进入 monitor,执行:

    hostfwd_add n0 tcp::2223-:22

    再按 Ctrl+Alt+1 返回图形界面。

    Q11:GRUB 菜单一闪而过,来不及操作

    开机后立刻连按 Esc。调出菜单后再按 e(编辑)或 c(命令行)。

    Q12:能否用 KVM 加速

    不能。KVM 只能在同架构(x86 宿主跑 x86 客户机)时使用。LoongArch 客户机在 x86 宿主上只能 TCG 模拟。


    十三、总结

    回顾整个流程,真正容易卡住的只有三点:

  • virtio 设备要用 PCI 版:virtio-scsi-pci、virtio-gpu-pci、virtio-net-pci,不要用 MMIO 版;
  • 安装和启动都必须带内核参数:acpi=off 和 initcall_blacklist=nct6102_gpio_setup,loongson_ls7a_hwmon_init,否则板级驱动会让内核 panic,表现为永久黑屏;
  • 固化参数要改 EFI 分区的 grub.cfg,update-grub 改的那份不生效。
  • 剩下的就是耐心:TCG 模拟龙芯 3A5000 速度有限,安装过程可能需要几十分钟。安装完成后,你就能在 Windows 上得到一个可用的 loongarch64 麒麟桌面环境,用于国产化软件适配、交叉验证或教学演示。

    如果只是想要一个能跑的 LoongArch 环境、不限定麒麟版本,也可以考虑 Arch Linux LoongArch 的 qcow2 镜像或 Debian 12 loong64,它们在 QEMU 上的兼容性更好、开箱即用。但如果你需要的是银河麒麟 V10 SP1 2403 的真实环境,本文这套方案是实测可行的。


    参考链接

    • 银河麒麟 V10 SP1 2403 LoongArch64 ISO: https://iso.kylinos.cn/web_pungi/download/cdn/5aVgLwmAlH4Y6CD3uIXP01noizhS8xGE/Kylin-Desktop-V10-SP1-2403-Release-20240506-loongarch64.iso
    • LoongArch UEFI 固件(loongson/Firmware): https://github.com/loongson/Firmware/blob/SubmitMultiArch/LoongArchVirtMachine/QEMU_EFI.fd
    • QEMU for Windows: https://qemu.weilnetz.de/w64/qemu-w64-setup-20260422.exe
    • QEMU 官方文档:https://www.qemu.org/docs/master/

    标签建议:QEMU、银河麒麟、LoongArch、龙芯、虚拟化、Linux、Windows

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » Windows 上使用 QEMU 安装 loongarch64 架构银河麒麟 V10 SP1 2403 虚拟机
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!