Enable -display to be used to specify the /devb/fbX framebuffer device
when using fb driver. Also, when using fb driver, FRAMEBUFFER will be
used if set.

Order of precedence: -display, then FRAMEBUFFER, then /dev/fb0

James 2015.02

diff -ur links-2.9/default.c links-new/default.c
--- links-2.9/default.c	2014-11-06 06:25:50.000000000 +1100
+++ links-new/default.c	2015-02-28 10:52:00.000000000 +1100
@@ -1502,7 +1502,8 @@
 "  For Xwindow it is size of a window in format WIDTHxHEIGHT.\n"
 "\n"
 " -display <x-display>\n"
-"  Set Xwindow display.\n"
+"  Set Xwindow display. For fb driver, set the framebuffer (/dev/fbX) to use.\n"
+"  Framebuffer can also be set using environment FRAMEBUFFER.\n"
 "\n"
 " -force-html\n"
 "  Treat files with unknown type as html rather than text.\n"
diff -ur links-2.9/framebuf.c links-new/framebuf.c
--- links-2.9/framebuf.c	2014-12-04 05:30:35.000000000 +1100
+++ links-new/framebuf.c	2015-02-28 10:48:22.000000000 +1100
@@ -123,6 +123,7 @@
 static void fb_draw_bitmap(struct graphics_device *dev,struct bitmap* hndl, int x, int y);
 
 static unsigned char *fb_driver_param;
+static unsigned char *fb_fbdev; /* /dev/fbXXX fbdev to use */
 extern struct graphics_driver fb_driver;
 static int have_cmap;
 static volatile int fb_active;
@@ -1176,7 +1177,7 @@
 	/* don't check error */
 }
 
-static unsigned char *fb_init_driver(unsigned char *param, unsigned char *ignore)
+static unsigned char *fb_init_driver(unsigned char *param, unsigned char *fbdev)
 {
 	unsigned char *e;
 	struct stat st;
@@ -1259,12 +1260,17 @@
 		return e;
 	}
 
-	EINTRLOOP(fb_handle, open("/dev/fb0", O_RDWR));
+	/* james: choose which fbdev to use */
+	if (fbdev && *fbdev) fb_fbdev=stracpy(fbdev);
+	else fb_fbdev=stracpy(cast_uchar getenv("FRAMEBUFFER"));
+	if (!fb_fbdev || !*fb_fbdev) fb_fbdev=stracpy(cast_uchar "/dev/fb0");
+	
+	EINTRLOOP(fb_handle, open(fb_fbdev, O_RDWR));
 	if (fb_handle==-1) {
 		fb_switch_shutdown();
 		if(fb_driver_param) { mem_free(fb_driver_param); fb_driver_param=NULL; }
 		fb_show_cursor();
-		return stracpy(cast_uchar "Cannot open /dev/fb0.\n");
+		return stracpy(cast_uchar "Cannot open framebuffer device.\n");
 	}
 
 	EINTRLOOP(rs, ioctl(fb_handle, FBIOGET_VSCREENINFO, &vi));
diff -ur links-2.9/links.1 links-new/links.1
--- links-2.9/links.1	2014-11-06 06:25:51.000000000 +1100
+++ links-new/links.1	2015-02-28 10:53:01.000000000 +1100
@@ -64,7 +64,8 @@
 
 .TP
 \f3-display \f2<x-display>\f1
-Set Xwindow display.
+Set Xwindow display. For fb driver, set the framebuffer (/dev/fbX) to use.
+Framebuffer can also be set using environment FRAMEBUFFER.
 
 .TP
 \f3-force-html\f1
