- 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
- Supported Architectures
- i386
- x86_64 (AMD64, Intel EM64T)
- Supported Adapters
- ATTO ExpressSAS H1280
- ATTO ExpressSAS H1208
- ATTO ExpressSAS H120F
- ATTO ExpressSAS H12F0
- ATTO ExpressSAS H1244
- ATTO ExpressSAS H1248
- ATTO ExpressSAS H1288
- 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.
- Unzip and untar the driver files with
tar xfz lnx_drv_esas4hba_XXX.tgz
- Enter the
lnx_drv_esas4hba_XXX directory and run the install script install.sh.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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