玩openbmc的都知道,仿真对开发起到了很大的辅助作用,不仅在前端开发还有内核调试等,同时还省去很多来回烧写固件所花费的时间,当使用AST2500的ami固件仿真会出现如下情况,启动脚本如下
#!/bin/bash
/home/openbmc/qemu/build/arm-softmmu/qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=/home/openbmc/EPC621D8A_P1.60.00.ima,format=raw,if=mtd -net nic -net user,hostfwd=:192.168.0.106:2222-:22,hostfwd=:192.168.0.106:2443-:443,hostname=qemu
卡在MMC:这个位置不再继续执行,所以考虑应该是仿真没有mmc设备导致,所以注释掉uboot中mmc初始化代码,位于uboot/common/board_r.c
现在uboot可以继续仿真下去,但是在内核初始化ast_sd_init依然会出问题
此时我们只需要注释linux/drivers/mmc/host/sdhci-ast.c的所有函数还有变量,仅留下像hello.ko一样的打印即可,仿真即可继续往下运行。