Search

Language:  
Search for:

Available article translations:

How to create driver disk for Parallels Server Bare Metal installation

APPLIES TO:
  • Parallels Server Bare Metal

Symptoms

Parallels Server Bare Metal installer does not see available hard disk drives if they require a custom driver, e.g., RAID driver.

Cause

The Parallels Server Bare Metal installation disk includes hardware drivers that were verified by Red Hat and re-compiled for the Parallels Server Bare Metal kernel.

Parallels Server Bare Metal 4.0 uses drivers provided in CentOS/RHEL 5.3.
Parallels Server Bare Metal 5.0 uses drivers provided in CentOS/RHEL 6.2.

 
Click here to expand the list of included drivers.

Sometimes, a storage device requires either a newer driver or even an absolutely custom driver that is not present on the disk.

Resolution

In such cases, it is necessary to create a driver disk and use it during Parallels Server Bare Metal installation.

Below is an example of creating a driver disk for the kernel on parallels-server-753-4.0.5612.577097-x86_64.iso for the ARC-1880-ix-16 RAID controller.

Prerequisites

1. Install Parallels Server Bare Metal to another physical host or virtual machine.
2. Connect to it via SSH.
3. Edit /etc/yum.repos.d/Centos-Base.repo to contain all necessary repositories.
4. Install all necessary packages:
~#yum install autoconf213 psutils patchutils rpm-build rpm-python gcc gcc-c++ gcc-gnat gcc-java gcc-objc gdb openjade openssl-perl patch tetex tetex-latex tetex-dvips libtool automake14 automake15 automake16 automake17 cpp cvs passivetex texinfo dejagnu gettext flex dos2unix doxygen distcache bc bison byacc gperf docbook-style-xsl xmlto strace docbook-dtds tetex-latex tetex-dvips xmltex gnutls-devel apr-devel apr-util-devel gd-devel cups-devel curl-devel db4-devel rpm-devel distcache-devel python-devel gettext-devel glib-devel glib2-devel gmp-devel gettext-devel expect-devel bzip2-devel beecrypt-devel httpd-devel kudzu-devel libattr-devel libacl-devel hesiod-devel krb5-devel libselinux-devel libgcrypt-devel libgpg-error-devel audit-libs-devel libusb-devel zlib-devel unixODBC-devel sendmail-devel tcl-devel pam-devel readline-devel slang-devel libtiff-devel libxml2-devel libxslt-devel ncurses-devel net-snmp-devel newt-devel openssl-devel libpng-devel freetype-devel fontconfig-devel libgcj-devel mkisofs make

5. Download driver sources:

~# mkdir arcmsr
~# cd arcmsr
~# wget -c http://www.areca.us/support/s_linux/driver/arcmsr.1.20.0X.15-110330.zip

IMPORTANT: For Parallels Server 4 Bare Metal, it is necessary to use CentOS 5.3/RHEL 5.3 drivers; for Parallels Server 5 Bare Metal, CentOS 6.2/RHEL 6.2 drivers will be necessary.

Compile driver for Parallels Server Bare Metal kernel

1. Extract driver sources:

~# unzip arcmsr.1.20.0X.15-110330.zip

2. Compile the driver:
~# cd arcmsr.1.20.0X.15-110330/
~# make all

NOTE: It is possible to compile the driver without booting to the target kernel; it is only necessary to install the target kernel RPM and the kernel-devel RPM for the target kernel, and to specify the environment variable $KVER:
~#KVER=2.6.18-028stab070.5 make all

NOTE: In some cases, driver compilation requires additional actions and make all may not be sufficient for correct driver compilation. Refer to readme files provided by the driver vendor for more details.

3. Verify that the driver was compiled successfully for the required version of the kernel:
~# modinfo arcmsr.ko
filename:       arcmsr.ko
license:        Dual BSD/GPL
version:        Driver Version 1.20.0X.15.110330
description:    Areca (ARC11xx/12xx/16xx/18XX) SATA/SAS RAID Host Bus Adapter Driver
author:         Nick Cheng<support@areca.com.tw>
srcversion:     CEB2D3544DAD1D9B8CB2625
alias:          pci:v000017D3d00001880sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001681sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001680sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001280sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001270sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001260sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001230sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001220sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001210sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001202sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001201sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001200sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001170sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001160sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001130sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001120sv*sd*bc*sc*i*
alias:          pci:v000017D3d00001110sv*sd*bc*sc*i*
depends:        scsi_mod
vermagic:       2.6.18-028stab070.5 SMP mod_unload gcc-4.1
parm:           timeout:scsi cmd timeout value(0 - 120) (int)

4. It also makes sense to try loading the driver:
~# insmod arcmsr.ko
~# lsmod | grep arcmsr
arcmsr 68200 0
scsi_mod 197528 6 arcmsr,scsi_dh,sr_mod,sg,libata,sd_mod

Create driver disk

1. Download the driver disk provided by the vendor:
~# cd ~/arcmsr
~# wget -c http://www.areca.us/support/s_linux/driver/rhel/5_3.zip
~# unzip 5_3.zip

2. Mount the disk image:
~# mount -o loop 5_3/driver.img /mnt/

3. Unpack modules.cgz to determine the image structure:
~# mkdir modules
~# cd modules
~# gzip -cd /mnt/modules.cgz | cpio -id ~# ls -lR ./
./:
total 4
drwxr-xr-x 4 root root 4096 Jun 3 14:59 2.6.18-128.el5

./2.6.18-128.el5:
total 8
drwxr-xr-x 2 root root 4096 Jun 3 14:59 i686
drwxr-xr-x 2 root root 4096 Jun 3 14:59 x86_64

./2.6.18-128.el5/i686:
total 268
-rw-r--r-- 1 root root 266885 Jun 3 14:59 arcmsr.ko

./2.6.18-128.el5/x86_64:
total 396
-rw-r--r-- 1 root root 398186 Jun 3 14:59 arcmsr.ko
4. Create a similar structure for the Parallels Server Bare Metal kernel:
~# mkdir 2.6.18-028stab070.5
~# mkdir 2.6.18-028stab070.5/x86_64
~# cp ~/arcmsr/arcmsr.1.20.0X.15-110330/arcmsr.ko 2.6.18-028stab070.5/x86_64/

5. Pack modules.cgz:
~# echo 2.6.18-028stab070.5/x86_64/arcmsr.ko > file.lst
~# cpio -o <file.lst > modules.cpio
~# gzip -c modules.cpio > modules.cgz

6. Replace old modules.cgz:
~# cp modules.cgz /mnt/modules.cgz
cp: overwrite `/mnt/modules.cgz'? y

7. Unmount driver.img, which is now ready to be used for booting.

NOTE: In some cases, it is necessary to modify other driver disk files, e.g., modules.alias, which is why it is strongly recommended to refer to the driver vendor documentation for more details.

IMPORTANT: You will need to recompile the driver each time you install a Parallels Server Bare Metal core update, before rebooting into the new kernel:

111113 How to compile custom drivers for PVC kernel

Additional information

In the case of an unattended PXE installation, it is possible to use the driver disk created per this article, after adding the corresponding driverdisk directive to the kickstart file.

For more information about PXE installation, refer to the PXE Installation Guide.

For more information about the purpose of the driver disk, please refer to the corresponding documentation pages provided by Red Hat:
Chapter 7. Updating drivers during installation on Intel and AMD systems



ca05eaf5b843fbd53589c90d7228a6df 38b350a8e16219ab065862b865a4acb0 2897d76d56d2010f4e3a28f864d69223

FEEDBACK
Was this article helpful?
Tell us how we may improve it.
Yes No
 
 
 
 
 
 
Desktop Virtualization
- Parallels Desktop 8 for Mac
- Parallels Transporter
- Parallels Desktop Switch to Mac Edition
- Parallels Desktop for Mac Enterprise Edition
- Parallels Management-Mac for Microsoft SCCM
Server Virtualization
- Parallels Cloud Server
- Parallels Containers for Windows 6.0 Beta
- Parallels Virtuozzo Containers
Automation
- Parallels Automation
- Parallels Automation for Cloud Infrastructure
- Parallels Business Automation Standard
- Parallels Virtual Automation
- Parallels Plesk Panel Suite
- Web Presence Builder
- Parallels Plesk Automation
- Parallels Small Business Panel
- Value-added Services for Hosters
- Parallels Partner Storefront
Services & Resources
- Cloud Acceleration Services
- Professional Services
- Support Services
- Training & Certification