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即可访问到固件里面的服务。