$Id: //streamstor/Documents/install.txt#21 $ LINUX INSTALLATION INSTRUCTIONS FOR STREAMSTOR SDK Version 9.2 NOTE: The installation must be performed as "root" since hardware device drivers must be installed. Programs linked with a StreamStor SDK API (libssapi.a) from SDK releases prior to SDK 9.0 are not compatible with SDK 9.x. To use SDK 9.x, you must recompile your programs with the new API. You must also execute ssflash to flash the new SDK 9.x firmware your StreamStor (see below). 1. Create a directory to hold the StreamStor files and sub-directories, for example, /usr/local/streamstor. 2. Change directory to the installation directory, for example, cd /usr/local/streamstor. 3. Extract the StreamStor files: tar xvzf /mnt/cdrom/linux/XXX.tgz (or other path if not CDROM) where XXX is the basename of the .tgz file (e.g., sslinux92.tgz). 4. The driver, windrvr6.o, is a kernel module. It must be recompiled for every kernel version on which it is loaded. IMPORTANT: In order to recompile windrvr6, you must have the Linux kernel source installed on your system. After you have ensured that the kernel source is installed, recompile windrvr6.o. To do so, cd to the linux/driver/redist directory then enter: ./configure --disable-usb-support chmod 755 setup_inst_dir chmod 755 wdreg make install ****************************************************************** * Note the above "--disable-usb-support" option for configure * * command. This is new beginning with SDK 8.3. * ****************************************************************** The shared library, libwdapi1031.so will be installed in /usr/lib. Your application code must link to this library. Note that the "configure" program will generate the driver makefile. You must run "configure" to create a new makefile and then rebuild the driver whenever you upgrade your Linux operating system. 5. Follow instructions that are output by the install script to load the driver module on startup and to set permissions on /dev/windrvr6. Note that instructions for installing the WinDriver kernel module may change from release to release, so please be sure to read them. 6. Set the environment variable "STREAMSTOR_BIB_PATH" to the location of the StreamStor local bib directory. For example, if you have installed the StreamStor files in /usr/local/streamstor/linux: STREAMSTOR_BIB_PATH=/usr/local/streamstor/linux/bib export STREAMSTOR_BIB_PATH 7. Run ssflash to upgrade the firmware, etc. on your system. Instructions are below, in the section called "FLASH INSTRUCTIONS FOR UPGRADING." 8. Run the utility program sstest to verify operation of the StreamStor. Note that sstest will erase all StreamStor data. For compatibility with older versions of gcc, SDK 9.x has two versions of the utility programs. .../streamstor/linux/util contains programs built with gcc 4.x. .../streamstor/linux/lib/gcc_v3/util contains programs built with gcc 3.x. 9. The directory linux/example contains the source code for several examples. Examine the example.mk file in that directory and change the STREAMSTOR path variable (if necessary) in the makefile to point to the path where you have installed the StreamStor API. Then, "make" the example and run it to verify that the StreamStor library and headers have been installed correctly. 10. SDK 9.x includes two versions of the StreamStor SDK library: - libssapi.a built with a 4.1.2 version of gcc (under linux/lib/gcc_v4) - libssapi.a built with a 3.4.6 version of gcc (under linux/lib/gcc_v3) You will need to link your software to the appropriate version of libssapi.a, depending on what version of gcc your system has installed and whether or not you have installed compatibility libraries (such as Fedora's compat-libstdc++-33-3.2.3-61.) To determine the version of gcc that your system has installed, enter: gcc -v Depending on your specific Linux distribution, you may need to link your applications with the realtime library (i.e., "-lrt") to resolve references to clock_gettime(). FLASH INSTRUCTIONS FOR UPGRADING IMPORTANT: As part of the upgrade process, firmware code may need to be flashed (rather than downloaded) onto your StreamStor boards. The StreamStor utility function ssflash can be executed to flash boards that are "Generation 4" or newer. (Boards that are older than Generation 4 include the PXI-808, PCI-816XF2, PCI-816VXF2, and the PCI-V100.) For Generation 4 or newer boards, when you install a new SDK, you should evaluate whether or not you want to upgrade the firmware on your boards with the versions provided in the new SDK. If you choose to upgrade, then you must run ssflash. If you run ssflash on your StreamStor boards, you may not be able to revert to older versions of flashed code unless you return your board to Conduant for re-flashing. Therefore, please make sure that you want to permanently upgrade your StreamStor boards prior to executing ssflash. NEW for SDK 9.0: To run ssflash to upgrade your system, follow these instructions. In the instructions below, refers to the directory where you extracted the StreamStor files. 1. Set and export STREAMSTOR_BIB_PATH as described above. 2. Change directory to the ssflash directory: For the gcc v4 version of ssflash: cd /util For the gcc v3 version of ssflash: cd /lib/gcc_v3/util 3. Execute ssflash, providing it the name of the upgrade file (i.e., SDK9.2.ssf) and the "-u" option as follows, where is the index of the card to flash. To execute the gcc v4 version of ssflash to upgrade a system: ./ssflash -i -u SDK9.2.ssf To execute the gcc v3 version of ssflash to upgrade a system: ./ssflash -i -u /util/SDK9.2.ssf For example: ./ssflash -i2 -u SDK9.2.ssf If your StreamStor system has only one StreamStor card, you can omit the "-i ", since card index 1 is flashed by default. 4. Run ssflash for each StreamStor card you want to upgrade.