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: , , , ,

21 Responses to “How to build driver-iso for ARECA ARC18XX-series for XenServer”

  1. Mike sier:

    Thank you so much for this article!!

  2. Dave sier:

    Hi There,

    I was wondering how you found the performance of the Areca 1880 card using Xenserver?

    Also, I was wondering if you managed to get the smtp traps working with xenserver?

    How do you find it overall compared to say a standard RAID card found in a HP or DELL?

    Thanks

    • Eivind sier:

      The performance is quite good. Haven’t noticed any decrease in performance compared to the HP-cards. But you MUST have the BBU and Write-back-cache enabled. Haven’t used the smtp-traps.

  3. Eivind sier:

    Hi.

    The performance has been good, can’t say i have noticed any noticeable difference between the ARECA-card and HP’s RAID-cards.

    Haven’t tried the smtp-traps unfortunately.

  4. Stijn sier:

    Hi,

    Thank you for this guide,but i have some troubels. I have completed the compiling of the driver but When i try to load the driver I get a warning like » doesn’t find a compatible driver» we are using xen 6.02 and for compliling the latest ddk. If you want i can e mail you the iso so you can check it out where im wrong.

    Thx

  5. Boy sier:

    Anybody else who experience slow storage with the arcmsr.1.20.0X.15-110622 / 1.20.0X.15-111012 in combination with XenServer 6.0.2?

    • Eivind sier:

      We ended up using only HP-servers, so i don’t have any information to give you on this unfortunately. Have you tried the forums?

  6. Tesar sier:

    Hello, first of all. Thank you. I’ve looking for this a long time. But I have one problem.

    When I use command «make build-iso» .rmps (/usr/src/redhat/RPMS/i386/) are created just fine, but no .iso is created. Can you help me whe do I get «setup.py» and where to put it?

    python setup.py –output=./ –iso –vendor-code=arc «–vendor-name=areca» –label=arcmsr «–text=areca driver» –version=6.2.0 –build=77323c /usr/src/redhat/RPMS/i386/arcmsr-modules-xen-2.6.32.43-0.4.1.xs1.8.0.847.170785-1.30.0X.16-131015.i386.rpm /usr/src/redhat/RPMS/i386/arcmsr-modules-kdump-2.6.32.43-0.4.1.xs1.8.0.847.170785-1.30.0X.16-131015.i386.rpm
    python: can’t open file ‘setup.py’: [Errno 2] No such file or directory

  7. Peter sier:

    Great job.
    But now a question. When I update Xen 6.2 to 6.2 SP1, I have to make a new DDK. No problem with this guide.

    I install the Service Pack 1 using the CLI, have to reboot, and then the problem starts, the Areca driver is gone…

    How can I load the new DDK when I update va CLI? Anyone?

  8. pdion891 sier:

    6.2sp1 and other hotfixes requiring update of driver disks. Look like the Driver Disk installation does not update initrd so server reboot is failing.

    1. apply hotfixes (ex: SP1 or XS62ESP1005)
    2. install updated driver disk
    3. backup new initrd: mv /boot/initrd-2.6.32.43-0.4.1.xs1.8.0.853.170791xen.img /boot/initrd-2.6.32.43-0.4.1.xs1.8.0.853.170791xen.img.orig
    4. rebuild initrd (example for XS62ESP1005): mkinitrd initrd-2.6.32.43-0.4.1.xs1.8.0.853.170791xen.img 2.6.32.43-0.4.1.xs1.8.0.853.170791xen
    4. reboot the xenserver.

  9. Randy Snow sier:

    I just started playing around with Xenserver so am a bit of a novice dealing with it. I have two Areca cards in this setup. I went ahead and installed Xenserver using the Areca ARC-1210 that I had on hand Raid 1 array. I have an additional ARC-1883i card with a Raid 5 array on it. I installed the updated driver but no joy that I can see. Am I assuming correctly that I should be able to see the array at this point in order to create proper partitioning?

  10. XenServer 6.2 with latest Areca drivers 1.30
    # make build-srctarballs
    tar zcvf /usr/src/redhat/SOURCES/Areca-1.30.0X.19.tar.gz Areca-1.30.0X.19
    tar: Areca-1.30.0X.19: Cannot stat: No such file or directory
    tar: Error exit delayed from previous errors
    make: *** [build-srctarballs] Error 2

    The program searches for «Areca-1.30.0X.19.tar.gz» in the path «/usr/src/redhat/SOURCES/»

    As it is, now this tutorial is useless 🙁

  11. hamp sier:

    login to the ddk

    curl -O http://www.areca.us/support/s_linux/driver/arcmsr-1.30.0X.19-20140829.zip

    mkdir ~/driver
    mkdir ~/driver/arcmsr-1.30.0X.19

    cd ~driver/arcmsr-1.30.0X.19

    unzip ~/arcmsr-1.30.0X.19-20140829.zip

    cd ~/driver

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

    edit Makefile and arcmsr.spec

    and build

Leave a Reply