diff --git a/prod/doc/index.html b/prod/doc/index.html
index 527fa18..a3a636c 100644
--- a/prod/doc/index.html
+++ b/prod/doc/index.html
@@ -29,9 +29,6 @@ Devices accepted for further use can then be packaged for shipping.
Defective devices can be discarded or retained for a deeper analysis.
-
-
-
Terminology
@@ -76,89 +73,16 @@ Defective devices can be discarded or retained for a deeper analysis.
-
-
-
-Software setup
-
-Before performing any production tests, various pieces of software
-need to be installed on Ben and PC, and configuration settings
-@@@
-
-
-
-
+Setup
PC software installation
-
-@@@
-
-Install ben-wpan tools
-
-@@@
-
-Register Ben host name
-
-To simplify accessing the Ben via TCP/IP, its IP address should be
-registered in the hosts file on the PC. If the Ben is running OpenWrt,
-use the following command:
-
-echo 192.168.254.101 ben >>/etc/hosts
-
-
-If the Ben is running Jlime, the address would be as follows:
-
-echo 192.168.1.202 ben >>/etc/hosts
-
-
-If using the same PC with Bens running OpenWrt and Jlime, one may choose
-different host names depending on the distribution, and adapt the commands
-used in the production and testing process accordingly. For example,
-
-echo 192.168.254.101 ben >>/etc/hosts
-echo 192.168.1.202 jlime >>/etc/hosts
-
-
-
-
-
-
-Ben software setup
-
-This needs to be done each time the Ben is booted.
-
-Enable network access
-Silence other 8:10 card users
-
-
-
-
-
Ben software installation
-
-Password-less remote access
-
-To enable password-less remote access from the PC, setup to betwork
-access to the Ben and run the following command:
-
-ssh ben 'cat >>/etc/dropbear/authorized_keys' <~/.ssh/id_rsa.pub
-
-
-
-
-
-
+Ben software setup
Test profiles
-
-
-
Flashing (atusb only)
-
-
-
Flashing the boot loader
@@ -166,9 +90,6 @@ ssh ben 'cat >>/etc/dropbear/authorized_keys' <~/.ssh/id_rsa.pub
-
-
-
Flashing the application
@@ -176,53 +97,28 @@ ssh ben 'cat >>/etc/dropbear/authorized_keys' <~/.ssh/id_rsa.pub
-
-
-
Functional test
-
-
-
Test setup for atben
-
-
-
Test setup for atusb
-
-
-
Test procedure
-
-
-
-
Fault analysis
-
-
-
Component placement and orientation
-
-
-
Supply voltages
-
-
-
Clock frequency
The flawless performance of the crystal oscillator is crucial for
diff --git a/tools/atrf-proxy/atrf-proxy.c b/tools/atrf-proxy/atrf-proxy.c
index 1a95150..4d776f8 100644
--- a/tools/atrf-proxy/atrf-proxy.c
+++ b/tools/atrf-proxy/atrf-proxy.c
@@ -23,6 +23,7 @@
#include "atrf.h"
#include "netio.h"
+#include "daemon.h"
#define DEFAULT_PORT 0x1540 /* 5440 */
@@ -303,7 +304,13 @@ static void loop(const char *driver, int port)
static void usage(const char *name)
{
- fprintf(stderr, "usage: %s [-d driver[:arg]] [-v ...] [port]\n", name);
+ fprintf(stderr,
+"usage: %s [-b] [-d driver[:arg]] [-v ...] [port]\n\n"
+" port listen on the specified port (default: %d)\n\n"
+" -b background the process after initialization\n"
+" -d driver[:arg] use the specified driver (default: %s)\n"
+" -v ... increase verbosity level\n"
+ , name, DEFAULT_PORT, atrf_default_driver_name());
exit(1);
}
@@ -312,11 +319,15 @@ int main(int argc, char **argv)
{
unsigned long port = DEFAULT_PORT;
const char *driver = NULL;
+ int foreground = 1;
char *end;
int c;
- while ((c = getopt(argc, argv, "d:v")) != EOF)
+ while ((c = getopt(argc, argv, "bd:v")) != EOF)
switch (c) {
+ case 'b':
+ foreground = 0;
+ break;
case 'd':
driver = optarg;
break;
@@ -340,7 +351,8 @@ int main(int argc, char **argv)
usage(*argv);
}
- loop(driver, port);
+ if (foreground || !daemonize())
+ loop(driver, port);
return 0;
}