# Building and installing SCST ## Prerequisites If the following packages have not yet been installed, install these now: bzip2 gcc kernel-devel or kernel-default-devel kernel-modules-extra (only on Fedora) libelf-dev, libelf-devel or elfutils-libelf-devel libperl-dev or perl-devel make perl perl-Data-Dumper perl-ExtUtils-MakeMaker (not needed on Debian systems) rpm-build (only on RPM-based systems) tar ## Building SCST The next step is to build and install SCST. How to do that depends on whether or not your Linux distribution supports a package manager: make release if rpm -q glibc >/dev/null 2>&1; then rm -rf {,scstadmin/}rpmbuilddir make rpm sudo rpm -U $PWD/{,scstadmin/}rpmbuilddir/RPMS/*/*.rpm elif dpkg-query -s libc-bin >/dev/null 2>&1; then sudo apt install build-essential debhelper devscripts gcc make lintian quilt sudo apt install linux-headers-$(uname -r) || sudo apt install pve-headers-$(uname -r) make dpkg sudo dpkg -i $PWD/dpkg/{scst,iscsi-scst,scstadmin}_*.deb else make 2release BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y make all sudo BUILD_2X_MODULE=y CONFIG_SCSI_QLA_FC=y CONFIG_SCSI_QLA2XXX_TARGET=y make -C "$PWD" install fi Since the above step installs several kernel modules into directory /lib/modules/$(uname -r), that step has to be repeated every time a new kernel or a kernel update has been installed. If you want to avoid this, install the scst-dkms package instead of the scst package. That will cause SCST to be rebuilt and installed every time a kernel version is booted for which the SCST kernel modules had not yet been built. ## Configuring SCST The easiest way to configure SCST is to create a configuration file /etc/scst.conf and by using scstadmin to load that configuration file. The /etc/init.d/scst script uses scstadmin to load the /etc/scst.conf file. The following information is present in /etc/scst.conf: * Which local storage has to be exported by SCST, e.g. a file, block device or SCSI device. * Through which storage adapter ports SCST allows access to the local storage. * Which initiator systems are allowed to log in. For more information about scst.conf, see also scstadmin/scstadmin.sysfs/man5/scst.conf.5. Loading the SCST kernel modules and applying the /etc/scst.conf configuration file is possible as follows: /etc/init.d/scst restart After SCST has been loaded, configuration changes can be applied without unloading and reloading the SCST kernel modules: scstadmin -config /etc/scst.conf After the SCST configuration has been changed via scstadmin or by modifying the SCST sysfs attributes, the new configuration can be saved e.g. as follows: scstadmin -write_config /etc/scst.conf.new More information about the device handler and target driver sysfs attributes can be found in the scst/README document. More detailed instructions about iSCSI, QLogic FC, SRP and FCoE configuration can be found in the following documents: * iscsi-scst/README * qla2x00t/doc/qla2x00t-howto.html * srpt/README * fcst/README