How to build driver-iso for ARECA ARC18XX-series for XenServer

Due to the apparent need for a quick howto for building a driver-iso for the ARECA 18XX-series RAID-cards for XenServer i’ll post one here. It will only be available in English.

Step 1: Setup DDK

  • Download the DDK from http://www.citrix.com/xenserver
  • Mount or extract the iso, use the «import»-function in XenServer to import the ova.xml-file.
  • Start the DDK-appliance, configure network if needed.

Step 2: Driver

  • Login to the DDK Appliance as root.
  • Create a directory called /root/driver:
    mkdir /root/driver

    * Download the source files from ARECA to /root/driver and extract them, and rename the directory:

    wget http://www.areca.us/support/s_linux/driver/arcmsr.1.20.0X.15-110622.zip
    unzip arcmsr.1.20.0X.15-110622.zip
    mv arcmsr.1.20.0X.15-110622 arcmsr-1.20.0X.15

    * Copy the Makefile and the helloworld.spec-file from /root/examples/driver:

    cp /root/examples/driver/Makefile /root/driver/
    cp /root/examples/driver/helloworld.spec /root/driver/arcmsr.spec

    * Modify the Makefile and the arcmsr.spec-file with the correct Vendor names, versions and so on. Should be self-explaining.

    • In the makefile in this example: RPM_VERSION:= 1.20.0X.15 and RPM_RELEASE := 110622
    • In the arcmsr.spec in this example: VERSION: 1.20.0X.15 and Release: 110622

Step 2.1: Modifying the source files from ARECA

  • Due to a small section in the source from ARECA creating issues we have to modify /root/driver/arcmsr-1.20.0X.15/arcmsr.h, remove the following section from the file:
    #if !defined(RHEL_RELEASE_CODE) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 33)
           enum {
                   SCSI_QDEPTH_DEFAULT,    /* default requested change, e.g. from sysfs */
                   SCSI_QDEPTH_QFULL,      /* scsi-ml requested due to queue full */
                   SCSI_QDEPTH_RAMP_UP,    /* scsi-ml requested due to threshhold event */
           };
    #endif

     Step 2.2: Building the drivers

  • Now it’s time to build:
    cd /root/driver
    make build-srctarballs
    make build-iso

    * Now you should have a working driver-iso in /root/driver/arcmsr.iso, this can be loaded as a supplemental pack during the installation of XenServer.

Tags: , , , ,