Installing CSS

From GlueXWiki
Jump to: navigation, search


  • These are some notes on installing CSS on my personal notebook running 32-bit Ubuntu 10.04 LTS. Installing on other distros of Linux should not be very different, but the directory name may vary.
  • There are more than version of CSS suite which can be downloaded. Some of them configured in pretty sophisticated ways requiring different packages.
  • The simplest way to run CSS is to download either CSS Basic EPICS, CSS Office from SNS, or CSS Island from DESY. These three versions easily connect to the EPICS PVs served through channel access. I also tried CSS NSLS2, and it connects to CA as well.
  • SNS Control room only provides source, and I did not want to get into building it. CSS DESY version did not work, it would start a small second screen and never went forward.
  • Since CSS is eclipse-based, you need to install eclipse-sdk package. You may also have to install java-1.6.0-sun package.

CSS Basic EPICS Binary Installation

  • Download the zip-file of the binaries from, copy it to the desired directory ( I copied to /usr/local/epics/extensions/) and unzip it.
  • Go into the new directory and run the css executable.
  • In CSS->Preferences->CSS Core->EPICS configure CA address list, and restart CSS. After this CSS will connect to PVs served over CAs.
  • To use the Hall D share Workspace area one would need to take the following steps:
  1. Start CSS
  2. in the Navigator window do RightClick->NewProject, and select General->Project->Next and call a new project Hall-D and click Finish.
  3. In the Navigator window RightClick->Hall-D->Other, select General->Folder->Next. Then click on Advanced button where check the Link to alternate location (Linked Folder radio-button. Then click on the Browse button and select the directory to use as shared workspace (/group/halld/Online/controls/epics/css/Default), and click on Finish button. In a couple of seconds the Dafault Hall D CSS projects will show up in the Navigator under Hall-D->Default .

CSS Island Binary Installation

  • Download the zip-file from, copy it to the desired directory and unzip it.
  • Go into the new directory and run the cssIskand executable.
  • In CSS->Preferences->CSS Core->EPICS configure CA address list, and restart CSS. After this CSS will connect to PVs served over CAs.

Compiling CSS Basic with SVN repository enabled

  • Download the zip-file with the SNS source snapshot from, copy it to the desired directory ( I copied to /home/hovanes/CSS/source) and unzip it, name it appropriately.
  • Install Eclipse RCP from [Eclipse website].
    Do not try to use the Eclipse installation that came with Linux, even if it includes RCP.
    Make sure you are using the same Eclipse version that the version of the SNS CSS you are drying to recompile yourself. They should match, otherwise there might be problems compiling the code.
  • Install Subversive plugins into Eclipse.
    Note that while installing the eclipse plugins, one may need to assign the right proxy if behind JLab firewall. It is in Windows->Properties->General->NetworkConnections, select "Manual" provider and in the HTTP schema add jprox as host and 8082 as the port number.
  • Open Eclipse RCP and import the source code of the SNS into the workspace. Wait for the workspace to get built.
  • Open /org.csstudio.basic.epics.product/CSS.product product file in the package list, go to the Dependencies tab and add the follwing features.
Some of these features may not be necessary for the SVN plugin, but they wold not hurt either.
  • Go back to the Overview tab, synchronize, try to launch Eclipse application. If successful, build the code using the export wizard.
    While exporting uncheck "Generate metadata repository" option.
    You will need to specify the destination directory and the root directory. The product file with be called tha same way as the root directory.

Compiling CSS Basic with BEAST enabled and dummy authorization

  • Make sure you completed steps in Installing_CSS#Compiling_CSS_Basic_with_SVN_repository_enabled.
  • Go to SVN Repository Exploration perspective and add repository location
  • Check out org.csstudio.sns.feature.jlabcore feature from the Hall D repository into the workspace.
  • Go back to the Plugin Development perspective and into the Overview tab of the org.csstudio.sns.feature.jlabcore.feature.xml file. The synchronize and export the plugin feature.
  • In the dependencies of org.csstudio.basic.epics.product/CSS.product add org.csstudio.sns.feature.jlabcore and org.csstudio.alarm.beast.ui.feature.
  • Synchronize and launch and Eclipse application. If succesfull, export the application using the Export Wizard.
  • Launch the newly build executable. To be able to use the dummy authorization, go to Edit->Preferences->CSS Core->JAAS Authentication, select File login configuration source, and change the configuration file entry to Dummy.
  • Restart CSS.

Some other packages that are not needed for a simple configuration

These are items that we may need to install for a more complete and sophisticate setup with ChannelFinder etc. These were not needed in order to simply start CSS and to connect to ChannelAccess.

Installing MySQL

  • Install mysql-server package from the distribution repository.
  • If there is a need to reset the MySQL root password, do as follows:
sudo /etc/init.d/mysql stop
sudo mysqld --skip-grant-tables &
mysql -u root mysql
  • After changing the MySQL password restart MySQL server

Installing LDAP

I followed the instruction from the various web sites, mainly from, and I set the LDAP password directly modifying /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif file setting olcRootPW: key. I had a hard time figuring out how to change the LDAP password or access config database without password.

  • Install LDAP server
    sudo apt-get install slapd ldap-utils
  • Run the following command to add all the LDAP schemas in the slapd package to your cn=config (by default only core is added):
    ls /etc/ldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
  • As an example create a database the LDAP server. Note that Karmic uses the EXTERNAL SASL binding to communicate with the LDAP server. There is no admin user or password here:
    sudo ldapadd -Y EXTERNAL -H ldapi:/// -f db.ldif
  • Add people to database we just created. Since we have created our own access control lists for the dc=home,dc=local database, we must change the binding method (i.e. auth with the admin user and password). Add the data for the directory via the following command:
    sudo ldapadd -x -D cn=admin,dc=home,dc=local -w admin -f people.ldif
  • Check to see if you can read the database:
    ldapsearch -x -b dc=home,dc=local

Installing GlassFish

  • Follow the instructions from to download install GlassFish on Ubuntu.
  • I skipped the part on security part dealing with iptables, probably it can be configured later. You will be able to start (and stop) GlassFish using
    /home/glassfish/bin/asadmin start-domain domain1
  • I also did not uninstall openjdk, although I did have sun-java6 as well.

Installing ChannelFinder