差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
| loongson:qemu:emulate_loongson [2022/09/23 21:12] – 移除 - 外部编辑 (Unknown date) 127.0.0.1 | loongson:qemu:emulate_loongson [2022/09/23 21:13] (当前版本) – ↷ 链接因页面移动而自动修正 mariabombardier | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| + | ====== Emulate Loongson On x86 Machine ====== | ||
| + | 在x86机器上使用QEMU模拟龙芯。 | ||
| + | ===== 前言 ===== | ||
| + | QEMU模拟器拥有“TCG” JIT编译器,可以跨架构模拟CPU。Jiaxun Yang为TCG增加了部分龙芯指令的模拟,现在在QEMU模拟器中,可以完全模拟所有龙芯3A1000的公开指令(Loongson-EXT, | ||
| + | |||
| + | 由于其跨架构的特性,模拟性能较低,因此仅适用于部分开发测试用途。 | ||
| + | |||
| + | ===== 软件版本与状态 ===== | ||
| + | ==== QEMU ==== | ||
| + | * [[https:// | ||
| + | * Mainline – W.I.P. | ||
| + | |||
| + | ==== Guest Kernel ==== | ||
| + | * [[http:// | ||
| + | * Mainline – W.I.P. | ||
| + | |||
| + | ===== Guide ===== | ||
| + | 本教程基于Linux AMD64,对于其他平台的支持目前尚不完善。 | ||
| + | |||
| + | ==== 编译QEMU (可选) ==== | ||
| + | 你可以自行编译QEMU,也可以使用Jiaxun Yang提供的预编译版本,可以在此下载: | ||
| + | |||
| + | <WRAP center round download 60%> | ||
| + | [[http:// | ||
| + | </ | ||
| + | |||
| + | 编译过程以及各个发行版下的依赖请参考QEMU的[[https:// | ||
| + | < | ||
| + | # Get source from FlyGoat' | ||
| + | git clone https:// | ||
| + | # Switch to the QEMU root directory | ||
| + | cd qemu | ||
| + | # Configure QEMU for mips64el only - faster build | ||
| + | # Add " | ||
| + | ./configure --target-list=mips64el-softmmu | ||
| + | # Build in parallel - my system has 6 CPU cores | ||
| + | make -j6 | ||
| + | </ | ||
| + | 你需要编辑文件 “default-configs/ | ||
| + | < | ||
| + | CONFIG_QXL=y | ||
| + | </ | ||
| + | ==== 获取虚拟磁盘镜像 ==== | ||
| + | 你可以在此处获得[[loongson: | ||
| + | < | ||
| + | http:// | ||
| + | </ | ||
| + | 用户名: lemote 密码: loongson | ||
| + | |||
| + | 其它系统暂时没有现成文件,可自行制作。 | ||
| + | |||
| + | 其中所需要的文件是以qcow结尾的磁盘镜像,vmlinuz内核二进制,initramfs内存盘文件以及与镜像对应的启动cmdline。 | ||
| + | |||
| + | ==== 运行 ==== | ||
| + | 将QEMU二进制(qemu-system-mips64el),固件文件夹(pc-bios)以及虚拟磁盘文件放到同一目录下,然后执行: | ||
| + | < | ||
| + | ./ | ||
| + | -device qemu-xhci, | ||
| + | -kernel vmlinuz-5.4.38-1.fc28.lemote.mips64el \ | ||
| + | -initrd initramfs-5.4.38-1.fc28.lemote.mips64el.img \ | ||
| + | -append " | ||
| + | -drive file=./ | ||
| + | -L ./pc-bios | ||
| + | </ | ||
| + | 会弹出一个窗口,窗口中的是模拟器的显示输出,而当前终端中的是模拟器的串口tty输出。 | ||
| + | |||
| + | 由于模拟运行较慢,开机和登录系统时可能有较长时间的黑屏,这是正常现象,此时可以观察串口输出。在较慢的宿主机上,开机可能要耗费长达三分钟。 | ||
| + | |||
| + | 在 -append 后加入 “systemd.unit=runlevel3.target” 可以直接进入控制台界面,避免进入图形界面: | ||
| + | < | ||
| + | -append " | ||
| + | </ | ||
| + | 如出现以下错误: | ||
| + | < | ||
| + | qemu-system-mips64el: | ||
| + | Use -machine help to list supported machines | ||
| + | </ | ||
| + | 可查看当前支持的机型,作出相应的调整: | ||
| + | < | ||
| + | ./ | ||
| + | Supported machines are: | ||
| + | boston | ||
| + | fulong2e | ||
| + | fuloong2e | ||
| + | loongson3-virt | ||
| + | magnum | ||
| + | malta MIPS Malta Core LV (default) | ||
| + | mips mips r4k platform (deprecated) | ||
| + | mipssim | ||
| + | none empty machine | ||
| + | pica61 | ||
| + | </ | ||
| + | QEMU的具体参数设定及含义请参考官方文档。 | ||