From DD-WRT Wiki

Revision as of 18:05, 13 August 2007 by Togo (Talk | contribs)
Jump to: navigation, search

Wiviz, an open source GPL project, allows you to use your WRT to see other networks. Using a dynamic Javascript-based interface it scans for networks and then shows signal strength and effects of antenna adjustment in real time. Thanks to Lament who has ported Wiviz to DD-WRT!

Now the talk is on about a NEW VERSION wiviz2 !

[1] And work is done on integrating it in future DD-WRT releases [2]

However no evidence has been found that an installable package is available yet!



The latest version of DD-WRT (23 sp2 mini) does not seem work with Wiwiz! There seems to be a change in the web interface to the WL tool. Please see the relevant discussion on the talk page for further details. Desweitern scheint die Seite im Firefox nicht richtig zu funktionieren !

First enable jffs2, and clean jffs2, found under the administration tab/management tab of the web DD-WRT Control Interface, if you have not done so already.

Use telnet or SSH (if enabled) to log in as root on the router. If using Windows XP, you can type 'telnet' from a run command, and use the command 'open' (assuming your router ip is, to gain access to the router. Type 'root' as username, and your router password, as the password.

Next type the following commands (in bold).

cd /jffs/ This puts us in the jffs directory from root directory

wget http://lament.rutka.net/wiviz-jffs.tar.gz This downloads the permanent (ie, stored in jffs file structure) program

tar -xvzf wiviz-jffs.tar.gz This extracts files

ln -s /jffs/www /tmp/ This makes the symlink. Please note that there are 3 spaces in this line

If the symbolic link already exists the command   ln -s /jffs/www /tmp/   will fail  and you will first have to use : 
 rm -r /tmp/www  and then  ln -s /jffs/www /tmp/ 

That should allow your browser to see the wiviz page at or http://routerip/user/wiviz/wiviz.html

Finally clean up by typing

rm wiviz-jffs.tar.gz This will remove the downloaded compressed file

USING A SAMBA SHARE INSTEAD OF JFFS If you lack the space necessary to install on JFFS (Using a large installation on a WRT54G is the usual reason) you can simulate JFFS using a network share. See jffs on WRT54G.

You will need to create a subdirectory /jffs/etc/ if it doesn't already exist.

ls /jffs/ List the jffs/ directory to see if etc/ exists.

If not, then mkdir /jffs/etc Makes the new subdirectory etc/

mkdir /jffs/etc/config Creates a new subdirectory to /jffs/etc/ of config/ echo "rm -r /tmp/www" > /jffs/etc/config/wi-viz.startup Creates startup file with first line echo "ln -s /jffs/www /tmp/" >> /jffs/etc/config/wi-viz.startup Appends second line chmod 700 /jffs/etc/config/wi-viz.startup Sets file permissions

In order to get around not being able to change to channel hopping, you can manually create a wiviz config file.

echo "channelsel=hop&hopseq=1,6,11" > /tmp/wiviz-cfg

channelsel = Either the word "hop" or the channel number to monitor. The default is to monitor the channel already in use by the card. hopseq = A comma seperated list of channels to hop through in the order of your choice.

Note: The wiviz page only displays output - the input settings do not function with DD-WRT.
Note: Channel hopping does NOT work when in AP mode.


  • Integrate Wiviz by means of links into the routers HTTP system
  • Graphical signal strength and noise plot function
  • List stations mode with their signal strength graph on the side (to allow to identifiy directions when scanning using directional antennae)
  • Automate antenna comparison by using the firmware antenna selector function
  • IPs be extracted from the packets?

Minor GUI Fix

  • Network icons drift out of the screen and everything shifts out of sight:

-> Solution: Replace the declump function in wiviz.js Java Script with this:

function declump() {
	var c = 0;
	var top = 150,bottom = -350,left = 550,right = -550;
	for (i = 0; i < hosts.length; i++) {
 	  for (j = 0; j < hosts.length; j++) {
	    if (i == j) continue;
			e1 = document.getElementById(hosts[i].mnem);
			e2 = document.getElementById(hosts[j].mnem);
			if (!e1 || !e2) continue;
			x1 = parseInt(e1.style.left);
			x2 = parseInt(e2.style.left);
			y1 = parseInt(e1.style.top);
			y2 = parseInt(e2.style.top);
			ox = x2;
			oy = y2;
			if (x2 > left) x2 = left;
			if (x2 < right) x2 = right;
			if (y2 > top) y2 = top;
			if (y2 < bottom) y2 = bottom;
			dist = Math.sqrt(Math.pow((x1-x2), 2) + Math.pow((y1-y2), 2));
			if (dist == 0) {
				x2 += Math.random() * 5;
				y2 += Math.random() * 5;
				dist = 10;
			if (dist < 100) {
				cx = (x1-x2) * 5 / (dist / 3);
				cy = (y1-y2) * 5 / (dist / 3);
				x2 -= cx;
				y2 -= cy;
			if (hosts[j].apmnem == hosts[i].mnem
					|| hosts[i].apmnem == hosts[j].mnem) {
			 	if (dist > 150) {
				  cx = (x1-x2) * 5 / (dist / 3);
			  	  cy = (y1-y2) * 5 / (dist / 3);
				  x2 += cx;
				  y2 += cy;
			if (Math.abs(ox-x2) > 2 || Math.abs(oy-y2) > 2) {
				e2.style.left = parseInt(x2);
				e2.style.top = parseInt(y2);

External Links

http://devices.natetrue.com/wiviz/ Wiviz Official Site
http://forum.bsr-clan.de/viewtopic.php?p=26257 See Forum Post