[*] Emulating binary name: radvd
[*] Emulator used: qemu-mipsel
[*] Using root directory: /logs/s115_usermode_emulator/firmware/unblob_extracted/firmware_extract/DIR-600_fw_revb5_214b01_ALL_de_20130122/dir600b_v2.14_d1mg.bin_extract/1179788-3612812.squashfs_v4_le_extract (1/1)
[*] Using CPU config: NONE
[*] Emulating binary: /usr/sbin/radvd
[*] Emulating binary ./usr/sbin/radvd with parameter NONE
[*] Emulating binary ./usr/sbin/radvd with parameter -v
[Oct 18 21:10:18] radvd: can't open /etc/radvd.conf: No such file or directory
[Oct 18 21:10:18] radvd: Exiting, permissions on conf_file invalid.
[*] Emulating binary ./usr/sbin/radvd with parameter -V
Version: 1.8
Compiled in settings:
default config file "/etc/radvd.conf"
default pidfile "/var/run/radvd.pid"
default logfile "/var/log/radvd.log"
default syslog facility 24
Please send bug reports or suggestions to Pekka Savola <pekkas@netcore.fi>.
[*] Emulating binary ./usr/sbin/radvd with parameter -h
./usr/sbin/radvd: invalid option -- V
[*] Emulating binary ./usr/sbin/radvd with parameter -help
usage: radvd
-c, --configtest Parse the config file and exit.
-C, --config=PATH Sets the config file. Default is /etc/radvd.conf.
-d, --debug=NUM Sets the debug level. Values can be 1, 2, 3, 4 or 5.
-f, --facility=NUM Sets the logging facility.
-h, --help Show this help screen.
-l, --logfile=PATH Sets the log file.
-m, --logmethod=X Sets the log method to one of: syslog, stderr, stderr_syslog, logfile, or none.
-p, --pidfile=PATH Sets the pid file.
-s, --singleprocess Use privsep.
-t, --chrootdir=PATH Chroot to the specified path.
-u, --username=USER Switch to the specified user.
-v, --version Print the version and quit.
[*] Emulating binary ./usr/sbin/radvd with parameter --help
usage: radvd
-c, --configtest Parse the config file and exit.
-C, --config=PATH Sets the config file. Default is /etc/radvd.conf.
-d, --debug=NUM Sets the debug level. Values can be 1, 2, 3, 4 or 5.
-f, --facility=NUM Sets the logging facility.
-h, --help Show this help screen.
-l, --logfile=PATH Sets the log file.
-m, --logmethod=X Sets the log method to one of: syslog, stderr, stderr_syslog, logfile, or none.
-p, --pidfile=PATH Sets the pid file.
-s, --singleprocess Use privsep.
-t, --chrootdir=PATH Chroot to the specified path.
-u, --username=USER Switch to the specified user.
-v, --version Print the version and quit.
[*] Emulating binary ./usr/sbin/radvd with parameter --version
usage: radvd
-c, --configtest Parse the config file and exit.
-C, --config=PATH Sets the config file. Default is /etc/radvd.conf.
-d, --debug=NUM Sets the debug level. Values can be 1, 2, 3, 4 or 5.
-f, --facility=NUM Sets the logging facility.
-h, --help Show this help screen.
-l, --logfile=PATH Sets the log file.
-m, --logmethod=X Sets the log method to one of: syslog, stderr, stderr_syslog, logfile, or none.
-p, --pidfile=PATH Sets the pid file.
-s, --singleprocess Use privsep.
-t, --chrootdir=PATH Chroot to the specified path.
-u, --username=USER Switch to the specified user.
-v, --version Print the version and quit.
[*] Emulating binary ./usr/sbin/radvd with parameter version
Version: 1.8
Compiled in settings:
default config file "/etc/radvd.conf"
default pidfile "/var/run/radvd.pid"
default logfile "/var/log/radvd.log"
default syslog facility 24
Please send bug reports or suggestions to Pekka Savola <pekkas@netcore.fi>.
[Oct 18 21:10:20] radvd: can't open /etc/radvd.conf: No such file or directory
[Oct 18 21:10:20] radvd: Exiting, permissions on conf_file invalid.
For reproducing the EMBA user-mode emulation mechanism, the following commands could be used as starting point:
- Start EMBA docker container with the firmware directory as log directory:
# EMBA="." FIRMWARE="/home/runner/work/emba/emba/DIR-600_fw_revb5_214b01_ALL_de_20130122.zip" LOG="/absolute/path/to/EMBA/log/directory" docker-compose run emba
- Change your working directory to the root directory of your firmware:
# cd /logs/s115_usermode_emulator/firmware/unblob_extracted/firmware_extract/DIR-600_fw_revb5_214b01_ALL_de_20130122/dir600b_v2.14_d1mg.bin_extract/1179788-3612812.squashfs_v4_le_extract
- Copy the static compiled user-mode emulator to your current working directory
# cp $(which qemu-mipsel) .
- Start the emulation with the following command:
# jchroot . -- ./qemu-mipsel ./usr/sbin/radvd <parameters like -v or --help>
WARNING: EMBA is doing some more magic in the background. Probably it is not that easy, but give it a try.