- 12 Jan, 2005 1 commit
-
-
Timothy Stack authored
Fix some robot related stuff that I broke with the last checkin and add in some other tweaks. * robots/primotion/garcia-pilot.cc, robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc: Broadcast any goto/stop commands to clients observing the robot. * robots/rmcd/rmcd.c: Change the behavior to reorient the robot as the last step in a goto, so we avoid doing unnecessary pivots. Need to send an init packet to the robot so it knows who is talking to it. * robots/vmcd/vmc-client.c: Oops, supposed to use M_PI_2, not M_PI, when translating from camera coords to world. * www/telemetry.php3: Make the size of the applet a little bigger. * www/garcia-telemetry/GarciaTelemetry.java, www/garcia-telemetry/UpdateThread.java, www/garcia-telemetry/main.xml: Display a log of goto/stop commands sent to the robot.
-
- 11 Jan, 2005 7 commits
-
-
Robert Ricci authored
that is both in the experimental and control nets.
-
Mike Hibler authored
rules (fw-rules), a script to populate the DB from those rules, and a script to initialize the firewall variables. This is not part of any standard make, it is used in a one-time fashion either at install or during the next update. Still need to write the instructions for this.
-
Mike Hibler authored
Also, reflect new way of populating default_firewall_rules (not done here anymore, done in the new firewall subdirectory)
-
Mike Hibler authored
-
Mike Hibler authored
them up!
-
Leigh B. Stoller authored
* New database table to store obstacles, in the usual coord system; x1,y1, is the upper left corner. * New web page to dump the entire obstacle list https://www.emulab.net/obstacle_list.php3 * New web page to dump a single obstacle, referenced by the above list page, and by the floormap generator. * Hack up the floormap code to add obstacles to the areamap, so that when you mouse over them, you get a ballon showing the description, and a link to the above mentioned page.
-
Robert Ricci authored
-
- 10 Jan, 2005 10 commits
-
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
* Add new DB table "webcams" which hold the id of the webcam, the server it is attached to, and the last update time. * Add new sitevars webcam/anyone_can_view and webcam/admins_can_view. Should be obvious what they mean. * Add trivial script grabwebcams (invoked from cron) to grab the images from the servers and stash in /usr/testbed/webcams. The images are grabbed with scp, protected by a 5 second timeout. Fine for a couple of cameras. * Add web page stuff to display webcams, linked from the robot mape page. Permission to view the webcams is currently admin, or in a project that is allowed to use a robot. We can tighten this up later as needed.
-
Jay Lepreau authored
that text will get emailed with the "postpone" menu selection.
-
Mike Hibler authored
-
Mike Hibler authored
The checkpoint driver can return a list of blocks that have been modified since its startup. If you use "imagezip -C /dev/shd0 -s 1 /dev/ad0 foo.ndz" imagezip will make an ioctl call on the shd device to get the modified blocks it needs to save (rather than parsing the filesystem). It then creates an image using those blocks. The end result should be an "incremental" image that can be put down on the disk by frisbee after the original image has been loaded. This is all a theory right now (including the ioctl :-) but should get tested RSN.
-
Leigh B. Stoller authored
to override from the NS file. In your NS file: namespace eval TBCOMPAT { set elabinelab_fixnodes("boss") pc171 set elabinelab_hardware("boss") pc2000 set elabinelab_hardware("ops") pc2000 }
-
Timothy Stack authored
environment.
-
Timothy Stack authored
-
Timothy Stack authored
A bunch of engineering on the robot code. I'm sure I've broken something, but the majority of it is done and I wanted to get a checkpoint in. * GNUmakerules: Add rpcgen rules. * Makeconf.in: Add PATH and host_cpu variables so cross-compilation works properly. Add JAVAC and JAR for java compilation. Add BRAINSTEM_DIR that refers to a brainstem build directory to be used for the robot build. * configure, configure.in: Prepend the arm cross-compile dir to PATH. Detect java for building applets. Add --with-brainstem to specify the brainstem build dir. Add --enable-mezzanine to turn on the mezzanine build. * robots/GNUmakefile.in: Add client target that builds the subdirs. * robots/emc/GNUmakefile.in, robots/emc/emcd.h, robots/emc/emcd.c, test_emcd.sh.in, robots/rmcd/GNUmakefile.in, robots/rmcd/rmcd.c, robots/rmcd/test_rmcd.sh.in, robots/vmcd/test_vmc-client.sh.in, robots/vmcd/test_vmcd.sh.in, robots/vmcd/test_vmcd2.sh, robots/vmcd/test_vmcd3.sh, robots/vmcd/test_vmcd4.sh, robots/vmcd/vmc-client.c, robots/vmcd/vmcd.c: Updates for the mtp switch to using rpcgen. * robots/emc/test_emcd.config: Restore missing config line. * robots/mtp/GNUmakefile.in, robots/mtp/global_bound.java, robots/mtp/mtp.h, robots/mtp/mtp.c, robots/mtp/mtp.java, robots/mtp/mtp.x, robots/mtp/mtp_command_goto.java, robots/mtp/mtp_command_stop.java, robots/mtp/mtp_config_rmc.java, robots/mtp/mtp_config_vmc.java, robots/mtp/mtp_control.java, robots/mtp/mtp_dump.c, robots/mtp/mtp_garcia_telemetry.java, robots/mtp/mtp_opcode_t.java, robots/mtp/mtp_packet.java, robots/mtp/mtp_payload.java, robots/mtp/mtp_recv.c, robots/mtp/mtp_request_id.java, robots/mtp/mtp_request_position.java, robots/mtp/mtp_robot_type_t.java, robots/mtp/mtp_role_t.java, robots/mtp/mtp_send.c, robots/mtp/mtp_status_t.java, robots/mtp/mtp_telemetry.java, robots/mtp/mtp_update_id.java, robots/mtp/mtp_update_position.java, robots/mtp/robot_config.java, robots/mtp/robot_position.java, robots/mtp/test_mtp.sh: Replace hand-generated stubs with xdr stubs for C and java. Java stubs were generated by "remotetea's" jrpcgen. * robots/primotion/GNUmakefile.in, robots/primotion/buttonManager.hh, robots/primotion/buttonManager.cc, robots/primotion/dashboard.hh, robots/primotion/dashboard.cc, robots/primotion/flash-user-led.cc, robots/primotion/garcia-pilot.cc, robots/primotion/garciaUtil.hh, robots/primotion/garciaUtil.cc, robots/primotion/ledManager.hh, robots/primotion/ledManager.cc, robots/primotion/pilotButtonCallback.hh, robots/primotion/pilotButtonCallback.cc, robots/primotion/pilotClient.hh, robots/primotion/pilotClient.cc, robots/primotion/watch-user-button.cc, robots/primotion/wheelManager.hh, robots/primotion/wheelManager.cc: Replace gorobot with garcia-pilot, a beefed up daemon for controlling the robots. Improvements include: making use of the user LED and button to give some feedback and let the wrangler run a test sequence, reboot, and shutdown the robot; Logging of the battery level, how often the robot has moved and for how long, and the distance traveled; telemetry is sent back to emulab clients; movements are now just pivot-move instead of pivot-move-pivot, since the second pivot ends up being extra work most of the time; the robot will move backwards to cut down on the amount of rotation; and just generic cleanups to the code. * robots/primotion/garcia.config: The configuration file currently used on the garcias. * www/GNUmakefile.in: Add garcia-telemetry subdir to the build. * www/dbdefs.php3.in: Add TBNodeClass and TBNodeStatus functions. * www/garcia-telemetry/Base64.java, www/garcia-telemetry/GNUmakefile.in, www/garcia-telemetry/GarciaTelemetry.java, www/garcia-telemetry/UpdateThread.java, www/garcia-telemetry/main.xml: A telemetry applet for the garcia, it displays readouts for the various sensors and other bits of data gathered by the garcia-pilot daemon. Hopefully, it will make a handy debugging tool. * www/garcia-telemetry.jar, www/mtp.jar, www/oncrpc.jar, www/thinlet.jar: Java jars used by the robot telemetry applet. * www/servicepipe.php3: A slightly enhanced version of ledpipe.php3 that can be used for other services, like robot telemetry. * www/shownode.php3: Add "Show Telemetry" menu item to robot nodes. * www/telemetry.php3: Telemetry page for the garcia-telemetry applet.
-
Leigh B. Stoller authored
boss node, which were coming from my home dir. Take them from the source tree instead in /proj.
-
- 07 Jan, 2005 11 commits
-
-
Mike Hibler authored
Try my hand at modifying named config creation. Allows for "fs" to be different than ops/users. Also tried to eliminate some redundant output. We still generate multiple A records for some IPs (e.g., "ops" and "users") and don't (I think) generate MX records consistently.
-
Mike Hibler authored
FSNODE_IP EXTERNAL_FSNODE_IP which default to ops' IP address if not set. This allows for separate ops/fs nodes, a config Aero has. Also push some IP addresses (boss, ops, fs) into config.h so they can be used in C programs. Specifically tmcd for returning values of "firewall variables" that can be used in default firewall rules. But I will likely wind up putting the var/value pairs in the DB rather than compiling them into tmcd.
-
Leigh B. Stoller authored
-
Leigh B. Stoller authored
when the node reboots.
-
Leigh B. Stoller authored
read in all of the bootlog data.
-
Leigh B. Stoller authored
* Do not exit from the cdboot, just return!
-
Mike Hibler authored
-
Leigh B. Stoller authored
-
Siddharth Aggarwal authored
-
Leigh B. Stoller authored
request, beef up named setup so that sites like DETER are handled properly. I have added 4 new defs variables: # # If your boss/ops nodes are multihomed (and typically, one of the # networks is a public routable network, and the other is an internal # unroutable network), then define the the external addresses here (and # the internal addresses above). # EXTERNAL_BOSSNODE_IP=$BOSSNODE_IP EXTERNAL_USERNODE_IP=$USERNODE_IP # # As above, if you have internal and external networks, define the # external network here, and the internal network above. # EXTERNAL_TESTBED_NETWORK=$TESTBED_NETWORK EXTERNAL_TESTBED_NETMASK=$TESTBED_NETMASK which if not set default to the internal values. When the external and internal networks are different, generate two sets of reverse zone files and two forward files (one internal and one external).
-
Leigh B. Stoller authored
-
- 06 Jan, 2005 7 commits
-
-
Robert Ricci authored
all ports that have been specified.
-
Robert Ricci authored
made my last commit. Re-apply my changes to the right version of the file.
-
Robert Ricci authored
-
Siddharth Aggarwal authored
-
Siddharth Aggarwal authored
-
Leigh B. Stoller authored
* Add boot_errno to the nodes table so that nodes can report in a subcode to indicate what went wrong. At present, we do not report any real error codes; that is going to take some time to work out since it will reqiure a bunch of changes to the boot scripts. * Add new table node_bootlogs to store logs provided by the nodes. Not a full console log, but a log of the tmcd client side part. We can make it a full log if we want though; just means mucking about with the boot phase a bit. * Add new state transition to NORMALv2 and PCVM state machines. "TBFAILED" is a new state that is sent (after TBSETUP) if a node fails somewhere in the tmcd client side. * Change TBNodeStateWait() to take a list of states (instead of single state) and an optional pass by reference parameter to return the actual state that the node landed in. Change all calls to TBNodeStateWait() of course. * Change os_setup (and libreboot in wait mode) to look for both TBFAILED and ISUP. If a TBFAILED event is seen, we can terminate the wait early and not retry os_setup on physical nodes (although still retry virtual nodes). The nice thing about this is that the wait should terminate much earlier (rather then waiting for timeout), especially for virtual nodes which can take a really long time when there are a couple of hundred. * Add new routines dobooterrno() and dobootlog() to tmcd. Bump version number and increase the buffer size to allow for the larger packets that a console log wikk generate (added MAXTMCDPACKET variable, set to 0x4000). * Add new -f option to tmcc to specify a datafile to send along as the last argument to tmcd. This is more pleasing then trying to send a console log in on the command line. For example: "tmcc -f /tmp/log BOOTLOG" will send a BOOTLOG command along with the contents of /tmp/log. Also close the write side of the pipe so that server sees EOF on read. See aside comment below. * Changes to rc.bootsetup: 1. Use perl tricks to capture all output, duping to the console and to a log file in /var/emulab/logs. 2. On any error, send a status code (boot_errno) and the bootlog to tmcd. 3. Generate a TBFAILED state transition. * Changes to rc.injail: 1. Same as rc.bootsetup, but do not send log files; that would pummel boss. Leave them on the physical node. * Change vnodesetup (which calls mkjail) to watch for any error and send a TBFAILED state transition. This should catch almost all errors, and dramatically reduce waiting when something fails. * Changes to rc.cdboot are essentially the same as rc.bootsetup, although a bootlog is sent all the time (success or failure), and I do not generate a boot_errno yet. Also, instead of TBFAILED, generate a PXEFAILED state since the CDROM is actually operating within the PXEFBSD opmode. I have yet to work this into the rest of the system though; waiting to get a new CD built and actually experiment with it. * Add new menu option and web page to display the node bootlog. We store only the lastest bootlog, but maybe someday store more then one. Display boot_errno on node page. Aside: I made a big mistake in the tmcd protocol; I did not envision passing more then a small amount of data (one fragment) and so I do not include a record terminator (ie: close of the write side on the client sends EOF) or a size field at the beginning. No big deal since small requests are sent in one fragment and the server sees the entire thing. Well, with a large console log, that will end up as multiple fragments, and the server will often not get the entire thing on the first read, and there are no subsequent reads (with no EOF or known size, it would block forever). Well, fixing this in a backwards compatable manner (for old images) was way too much pain. Instead, tmcc now closes the write side, and the server does subsequent reads *only* in the new dobbootlog() routine. Note that it *is* possible to fix this in a backwards compatable manner, but I did not want to go down that path just yet.
-
Leigh B. Stoller authored
-
- 05 Jan, 2005 2 commits
-
-
Mike Hibler authored
Bump version # to 22 as a result.
-
Mike Hibler authored
-
- 04 Jan, 2005 2 commits