ATTO ExpressSAS 12Gb Host Bus Adapter Linux ReadMe

  1. Supported Operating Systems
  2. Supported Architectures
  3. Supported Adapters
  4. Installation Instructions
  5. Loading the Driver
  6. Advanced - Manually Building Drivers
  7. Advanced - Optional Module Parameters
  8. Conflicts with the pm80xx Module
  9. Driver Logging
  10. Contact Information

  1. Supported Operating Systems

    • CentOS 7, 8
    • RHEL 7, 8
    • Fedora 28, 29
    • openSUSE LEAP 42.4, 15.1
    • SLES 12.4, 15.1
    • Ubuntu 16.04, 18.04, 20.04


  2. Supported Architectures

    • i386
    • x86_64 (AMD64, Intel EM64T)


  3. Supported Adapters

    • ATTO ExpressSAS H1280
    • ATTO ExpressSAS H1208
    • ATTO ExpressSAS H120F
    • ATTO ExpressSAS H12F0
    • ATTO ExpressSAS H1244
    • ATTO ExpressSAS H1248
    • ATTO ExpressSAS H1288


  4. Installation Instructions

    NOTE: The kernel header files, make, and gcc must be installed. It is highly recommended to use DKMS to install the driver with the install script. For closed systems that cannot install DKMS an option is provided in the install script to install without the need for DKMS.

    1. Unzip and untar the driver files with tar xfz lnx_drv_esas4hba_XXX.tgz
    2. Enter the lnx_drv_esas4hba_XXX directory and run the install script install.sh.
    3. After the driver is installed, it can be loaded automatically if desired.

    NOTE: In systems with kernels older than version 4.0 (CentOS 6 & 7) it is recommended to add the line IRQBALANCE_ARGS=--hintpolicy=exact to your irqbalance configuration for best performance. The irqbalance configuration file can be found in /etc/sysconfig/irqbalance.

    NOTE: If downgrading the driver to a version prior to 1.43.0, the uninstall script from the most recent driver must be executed to remove all existing installations before proceeding to install the older version.

    NOTE: By default, CLI tools are installed to the user's path at /usr/local/sbin.
    More information can be found by executing a tool with the -h option.

    Included tools:
    • atinfo
    • atflash
    • atdevinfo
    • atsascfg
    • atsasnvr
    • atsasinfo
    • atlocate
    • atpcpro


  5. Loading the Driver

    Type the following to manually load the module:

    $ modprobe esas4hba

    You may receive a warning that the module will taint the kernel.

    On SLES, you may also receive an error message about "unsupported" drivers:

    $ modprobe esas4hba
    FATAL: module '/lib/modules/2.6.27.19-5-default/kernel/drivers/scsi/esas4hba.ko' is unsupported
    Use --allow-unsupported or set allow_unsupported_modules to 1 in
    /etc/modprobe.d/unsupported-modules

    You can fix this problem by loading the driver with modprobe --allow-unsupported esas4hba or editing the file /etc/modprobe.d/unsupported-modules as described.

  6. Advanced - Manually Building Drivers

    Unzip and untar the driver files:

    $ tar xfz lnx_drv_esas4hba_XXX.tgz

    NOTE: Make sure there are no spaces in the path in which you extract the archive. The Linux kernel Makefile may fail if the path name contains a space character.

    Make and install the modules (must be done as root):

    $ cd lnx_drv_esas4hba_XXX.tgz/src
    $ make install

    NOTE: You need the kernel header files installed to build this driver. If the header files are in a non-standard location, you may need to modify the KDIR variable on the make command line, e.g. make install KDIR=/path/to/kernel

    The modules will now be installed and ready to use.

  7. Advanced - Optional Module Parameters

    The following module parameter is supported by this driver:

    • log_level (default 7) Logs error and informative messages to the kernel ring buffer. See Driver logging for more information.

    There are also several other parameters available for tweaking. For documentation on these settings, read the file oswrap.c (look for "Module parameter definitions") or the output of the command modinfo esas4hba.

  8. Conflicts with the pm80xx Module

    In Linux kernel 4.4 and higher, there is built-in support for the PMC 8070 and 8072 chips in a driver named pm80xx.ko. If present, this driver will load automatically for the ExpressSAS 12Gb HBA and prevent the esas4hba driver from loading. The driver installation script will detect the presence of the pm80xx driver and provide the option to unload that driver and rename it to prevent this conflict.

    Alternatively, the conflicting driver can be unloaded using rmmod pm80xx. To permanently remove the pm80xx driver, you can delete the pm80xx kernel module. To find the built-in driver, use the command modinfo pm80xx and look for the "filename" field, then remove that file from the filesystem.

    On many Linux distributions, the pm80xx may also be built in to the initrd boot image. This means that if you reboot after running the driver install script or manually removing the driver from the filesystem, the pm80xx driver may still load from the initrd. To prevent the pm80xx driver from loading on reboot, use the following command to update the initrd image. Consult the system documentation for complete details of this command.

    mkinitrd -f <initrd-image> <kernel-version>

    (ex. mkinitrd -f /boot/initramfs-3.6.10-4.fc18.i686.PAE.img 3.6.10-4.fc18.i686.PAE)

    The initrd-image is typically found in the /boot directory and is named initramfs-<kernel-version>.img or initrd-<kernel-version>. The kernel-version can be found by running uname -r.

    On some versions of openSUSE, the mkinitrd command format is this:

    mkinitrd -M path-to-System.map

    On Ubuntu the command is
    update-initramfs -u

    You can safely ignore warning messages from mkinitrd regarding the pm80xx module. You can also safely ignore any "module not found" errors at startup pertaining to the pm80xx module.

    WARNING: An incorrect or invalid initrd image can render a system unbootable. Care should be taken when modifying this file.

  9. Driver Logging

    Driver logging is controlled by the log_level
    module parameter. log_level starts at 0 and increments to increase the amount of logging. The selected level logs messages for that level and lower.

    Logging level Value Description
    Disabled 0 All logging disabled
    Always 1 Informational, always logged when logging enabled
    Alert 2 Critical error requiring immediate attention
    Critical 3 Critical errors/info that may accompany an alert
    Warning 4 Error that may require attention
    Error 5 All other errors
    Notice 6 Informational message that may require attention
    Info 7 All other informational messages
    Verbose 8+Excessive logging for issue analysis, may reduce performance


















    Note that some events are expected. For example, a SCSI Check Condition error will be reported for the first command sent to a device after power on or a reset condition. Also, certain data underrun errors are normal.

    All events report the adapter number on which the event occurred. The adapter number is simply the order in which Linux initialized the adapter channels and has no relation to PCI slot or adapter port. An initial event is always logged at startup to correlate the adapter number to PCI location.

  10. Contact Information
    ATTO Technology, Inc.
    155 CrossPoint Parkway
    Amherst, New York 14068
    Phone: (716) 691-1999
    Fax: (716) 691-9353
    www.atto.com

    ATTO Technology can also be reached via e-mail at the following addresses:

    Sales Support: sls@atto.com
    Technical Support: techsupp@atto.com