4. QEMU MIPS Malta板卡启动
任务说明
本案例目标为:使用QEMU模拟MIPS Malta开发板,启动Linux内核,并通过串口输出验证系统运行状态。Malta是MIPS架构经典参考板,QEMU对其支持成熟,适合作为MIPS Linux仿真入门实验。
实现方案
采用QEMU内置的malta机器类型,搭配MIPS32或MIPS64内核。为简化流程,直接使用Debian提供的MIPS内核与initramfs(或从内核源码交叉编译)。本案例选用QEMU自带测试内核vmlinux(来自qemu-system-mips包),该内核为MIPS32 big-endian格式,可直接启动并输出到串口。
操作步骤
首先确认QEMU MIPS系统模拟器已安装:
qemu-system-mips --version
若未安装,在Debian/Ubuntu下执行:
sudo apt install qemu-system-mips
启动Malta板卡仿真,使用malta机器类型,分配128MB内存,加载内核镜像:
qemu-system-mips \
-M malta \
-m 128M \
-kernel vmlinux \
-nographic \
-no-reboot
其中vmlinux为MIPS32内核文件。若当前目录无此文件,可从QEMU源码测试目录获取,或使用以下命令下载预编译内核:
wget https://people.debian.org/~aurel32/qemu/mips/vmlinux-2.6.32-5-4kc-malta
下载后重命名为vmlinux再执行上述启动命令。
串口输出验证
启动后,QEMU的-nographic选项将串口重定向到当前终端。预期在终端看到Linux内核启动日志,包括CPU识别、内存信息、内核版本等。最终出现init进程或Kernel panic - not syncing均属正常——前者表示完整启动,后者表示内核已成功运行但缺少根文件系统。两种结果均证明CPU、内存、串口和内核执行链路正常。
预期输出与判定标准
执行启动命令后,终端应输出类似以下内容(节选):
Linux version 2.6.32-5-4kc-malta (buildd@)
CPU revision is: 00018400 (MIPS 24Kc)
Determined physical RAM map:
memory: 0000000000001000 @ 0000000000000000 (reserved)
memory: 00000000000ef000 @ 0000000000001000 (usable)
...
console [ttyS0] enabled
...
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
判定标准:
- 出现
Linux version行——内核已成功解压并开始执行; - 出现
console [ttyS0] enabled——串口驱动初始化成功,输出路径验证通过; - 出现
Kernel panic(因无根文件系统)——属预期行为,证明CPU、内存、定时器、串口等核心外设均工作正常。
若终端无输出或报错,请检查:内核文件是否为MIPS格式(可用file vmlinux确认)、-M malta参数是否拼写正确、内存大小是否充足(建议≥64M)。