EMUX固件模拟系统使用(2)
上一节讲述了EMUX系统的基本用法,最终能够模拟一个固件的启动过程,这一节将介绍如何添加指定的固件进行模拟。
根据说明文档可以知道,固件目录在以下路径:
| EMUX根目录-> files -> emux |

那么如果我们需要添加一个新固件也是需要在这个目录操作。
这里示例采用的是Netgear公司的WNAP320 AP 产品进行模拟,本文使用固件的版本是2.0.3,我们把下载的固件进行解包(这里可以使用本站的固件分析工具),可以看出设备支持MIPS big endian的CPU架构。

右键复制上面的链接,可以直接在Ubuntu系统中下载并解包,适当处理一下目录,新建名字为WNAP320的目录,并将解包的文件目录放入其中:

WNAP320 目录里面包含几个文件和目录:

| 序号 | 名称 | 说明 |
| 1 | 内核目录 kernel | 用于存放启动系统的内核文件 |
| 2 | 文件系统目录 rootfs | 用于存放固件解包后的文件系统 |
| 3 | 启动配置文件 config | 用于配置启动的参数 |
config文件编写如下所示:

除了以上几个基本文件和目录以外,还能增加一个目录preload,它的作用是在启动系统前进行某些操作,如so提前加载等等,如下图ARCHERC9型号的设备,多了一个preload目录和nvram_C9.ini,分别用于存放libnvram-armx.so提前加载nvram和nvram实际的配置内容,另外文件系统rootfs目录也可以打包为.tar.bz2文件用于减少占用空间。


固件目录准备好之后,需要在devices文件中加一条记录,用于EMUX系统添加一个菜单项。因为这款设备是mips big endian的,所以可以选择qemu-system-mips-xxx作为模拟器:

最后进入EMUX根目录,重新执行这几条命令:
| ./build-emux-volume ./build-emux-docker ./run-emux-docker |
进入选择菜单,选择8,按回车进入

选择1,进入系统

输入root进入模拟

最终模拟成功,在Ubuntu的浏览器里输入http://127.0.0.1:20080即可访问到固件里面的服务。
