Each beam line must have one (and only one) installation of DCSS. The DCSS program must run on a computer that has network access to the computers that will be running the BLU-ICE clients as well as the computers running the Distributed Hardware Servers (DHS's). At SSRL, the DHS's usually run on computers that are on a private network, whereas the BLU-ICE's clients run on computers that are on a more open public network. This architecture implies that the DCSS program must run on a computer that is multi-homed and able to see both the public and private networks.
This document shows an example installation on a Linux computer used for simulation (blctlxx).
[scottm@blctl92 ~]$ tclsh % info tclversion 8.3 % exit [scottm@blctl92 ~]$ %$
blctlxx:/usr/local/dcs > cvs checkout dcss cvs checkout: Updating dcss cvs checkout: Updating dcss/decunix U dcss/decunix/dcss U dcss/decunix/example_database_dump.txt U dcss/decunix/makefile cvs checkout: Updating dcss/examples U dcss/examples/databaseTables.txt U dcss/examples/exampleFullDatabase.txt U dcss/examples/example_bl111sim_dump.txt U dcss/examples/example_bl91sim_dump.txt U dcss/examples/serverPorts.txt cvs checkout: Updating dcss/linux U dcss/linux/dcss U dcss/linux/makefile cvs checkout: Updating dcss/scripts cvs checkout: Updating dcss/scripts/devices U dcss/scripts/devices/attenuation.tcl U dcss/scripts/devices/beam_size_x.tcl U dcss/scripts/devices/beam_size_y.tcl U dcss/scripts/devices/box_size.tcl U dcss/scripts/devices/detector_z_corr.tcl U dcss/scripts/devices/energy_bl11.tcl U dcss/scripts/devices/energy_bl15.tcl U dcss/scripts/devices/energy_bl91.tcl U dcss/scripts/devices/energy_bl92.tcl U dcss/scripts/devices/linear_dac.tcl U dcss/scripts/devices/mirror_chin_gap_bl11.tcl U dcss/scripts/devices/mirror_chin_gap_bl91.tcl U dcss/scripts/devices/mirror_vert_chin_bl11.tcl U dcss/scripts/devices/mirror_vert_chin_bl91.tcl U dcss/scripts/devices/mirror_vert_chin_bl92.tcl U dcss/scripts/devices/mono_piezo.tcl U dcss/scripts/devices/mono_theta.tcl U dcss/scripts/devices/mono_theta_corr_bl92.tcl U dcss/scripts/devices/optimized_energy_bl11.tcl U dcss/scripts/devices/optimized_energy_bl15.tcl U dcss/scripts/devices/optimized_energy_bl91.tcl U dcss/scripts/devices/optimized_energy_bl92.tcl U dcss/scripts/devices/slit_1_horiz.tcl U dcss/scripts/devices/slit_1_horiz_gap.tcl U dcss/scripts/devices/slit_1_vert.tcl U dcss/scripts/devices/slit_1_vert_gap.tcl U dcss/scripts/devices/slit_2_horiz.tcl U dcss/scripts/devices/slit_2_horiz_gap.tcl U dcss/scripts/devices/slit_2_vert.tcl U dcss/scripts/devices/slit_2_vert_gap.tcl U dcss/scripts/devices/standardVirtualMotor.tcl U dcss/scripts/devices/table_2theta.tcl U dcss/scripts/devices/table_h2_z.tcl U dcss/scripts/devices/table_horz.tcl U dcss/scripts/devices/table_pitch.tcl U dcss/scripts/devices/table_slide_z.tcl U dcss/scripts/devices/table_v1_z.tcl U dcss/scripts/devices/table_v2_z.tcl U dcss/scripts/devices/table_vert.tcl U dcss/scripts/devices/table_yaw.tcl cvs checkout: Updating dcss/scripts/engine U dcss/scripts/engine/DcssConnection.tcl U dcss/scripts/engine/configure_motor.tcl U dcss/scripts/engine/dcsSocketClass.tcl U dcss/scripts/engine/hardware_commands.tcl U dcss/scripts/engine/message_handlers.tcl U dcss/scripts/engine/motor_control.tcl U dcss/scripts/engine/scriptingEngine.tcl U dcss/scripts/engine/set.tcl U dcss/scripts/engine/util.tcl cvs checkout: Updating dcss/scripts/operations U dcss/scripts/operations/SequenceDevice.tcl U dcss/scripts/operations/calibration.tcl U dcss/scripts/operations/centerLoop.tcl U dcss/scripts/operations/collectFrame.tcl U dcss/scripts/operations/collectRun.tcl U dcss/scripts/operations/collectRuns.tcl U dcss/scripts/operations/collectStillImage.tcl U dcss/scripts/operations/excitationScan.tcl U dcss/scripts/operations/expose.tcl U dcss/scripts/operations/moveSample.tcl U dcss/scripts/operations/normalize.tcl U dcss/scripts/operations/optimize.tcl U dcss/scripts/operations/optimize_beam.tcl U dcss/scripts/operations/pauseDataCollection.tcl U dcss/scripts/operations/prepareForScan.tcl U dcss/scripts/operations/recoverFromScan.tcl U dcss/scripts/operations/requestCollectedImage.tcl U dcss/scripts/operations/requestExposureTime.tcl U dcss/scripts/operations/sequence.tcl U dcss/scripts/operations/sequenceGetConfig.tcl U dcss/scripts/operations/sequenceSetConfig.tcl cvs checkout: Updating dcss/scripts/strings U dcss/scripts/strings/standardString.tcl cvs checkout: Updating dcss/src U dcss/src/dcss_broadcast.c U dcss/src/dcss_broadcast.h U dcss/src/dcss_client.c U dcss/src/dcss_client.h U dcss/src/dcss_collect.c U dcss/src/dcss_collect.h U dcss/src/dcss_database.c U dcss/src/dcss_database.h U dcss/src/dcss_detector.h U dcss/src/dcss_device.h U dcss/src/dcss_gui_client.c U dcss/src/dcss_gui_client.h U dcss/src/dcss_hardware_client.c U dcss/src/dcss_hardware_client.h U dcss/src/dcss_main.c U dcss/src/dcss_scripting.c U dcss/src/dcss_scripting.h U dcss/src/dcss_users.c U dcss/src/dcss_users.h U dcss/src/tcl_macros.h U dcss/src/wedge.h U dcss/src/wedge4.c blctlxx:/usr/local/dcs >
cd into the linux, decunix,
or irix build directory.
blctlxx:/usr/local/dcs > cd dcss/linux/
make command.
blctlxx:/usr/local/dcs/dcss/linux > make cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_main.c ../src/dcss_main.c: In function `start_server': ../src/dcss_main.c:210: warning: passing arg 2 of `xos_thread_create' from incompatible pointer type ../src/dcss_main.c:222: warning: passing arg 2 of `xos_thread_create' from incompatible pointer type ../src/dcss_main.c:233: warning: passing arg 2 of `xos_thread_create' from incompatible pointer type cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_database.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_client.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_scripting.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_broadcast.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_gui_client.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_hardware_client.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/wedge4.c cc: -lsocket: linker input file unused since linking not done cc -c -pthread -O5 -lsocket -DLINUX -DSEC_BASE -DSEC_NET -I../src -I../../xos//src/ -I/usr/include -I../../auth/src -I/usr/include/mysql -I/usr/include/cxx ../src/dcss_users.c cc: -lsocket: linker input file unused since linking not done cc -o dcss -lz dcss_main.o dcss_database.o dcss_client.o dcss_scripting.o dcss_broadcast.o dcss_gui_client.o dcss_hardware_client.o wedge4.o dcss_users.o -lm -lrt /usr/lib/mysql/libmysqlclient.a ../../xos//linux//xos.a ../../auth/linux/auth.a -lpthread -lc -ltk8.3 -ltcl8.3 -litcl3.1