-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
executable file
·261 lines (186 loc) · 10 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
RocketRAID 232x SATA Controller Linux Open Source Driver
Copyright (C) 2008 HighPoint Technologies, Inc. All rights reserved.
1. Overview
2. Build the driver as a kernel module
3. Using the driver as a kernel patch
4. Revision History
5. Technical support and service
#############################################################################
1. Overview
#############################################################################
This package contains Linux driver code for HighPoint RocketRAID 232x
SATA controller. You can use it to build the driver module for custom
Linux kernels.
NO WARRANTY
THE DRIVER SOURCE CODE HIGHPOINT PROVIDED IS FREE OF CHARGE, AND THERE IS
NO WARRANTY FOR THE PROGRAM. THERE ARE NO RESTRICTIONS ON THE USE OF THIS
FREE SOURCE CODE. HIGHPOINT DOES NOT PROVIDE ANY TECHNICAL SUPPORT IF THE
CODE HAS BEEN CHANGED FROM ORIGINAL SOURCE CODE.
LIMITATION OF LIABILITY
IN NO EVENT WILL HIGHPOINT BE LIABLE FOR DIRECT, INDIRECT, SPECIAL,
INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF OR
INABILITY TO USE THIS PRODUCT OR DOCUMENTATION, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. IN PARTICULAR, HIGHPOINT SHALL NOT HAVE
LIABILITY FOR ANY HARDWARE, SOFTWARE, OR DATA STORED USED WITH THE
PRODUCT, INCLUDING THE COSTS OF REPAIRING, REPLACING, OR RECOVERING
SUCH HARDWARE, OR DATA.
#############################################################################
2. Build the driver as a kernel module
#############################################################################
NOTE: The latest tested kernel version: 2.6.25.
1) Install kernel build tools (gcc, binutils, make, etc.)
2) Setup the kernel source/headers
To build driver modules for a specific kernel, you shall use same
configuration for the kernel and the driver. Otherwise, the driver may
be unable to load, or behave abnormally.
- For Linux kernel 2.6 -
On most distributions based on kernel 2.6, an exploded source tree is not
required to build a driver against the currently in-use kernel. As long
as the system has kernel headers setup under /lib/modules/`uname -r`/build,
you can simply run "make" to build the driver.
If you want to build the driver against a custom kernel source, you must
setup the kernel source manually and run "make" under kernel source tree
to setup kernel headers.
- For Linux kernel 2.4 -
You need a full kernel source tree to build the driver. If you are building
a driver for the currently in-use kernel, the kernel source should match
the version of the running kernel. In addition, you must obtain the config
file for the running kernel:
For Red Hat or Fedora Linux, you can find the stock kernel config files
under {kernel-source-dir}/configs, named kernel-*.config. Select the one
matches your hardware and copy it to {kernel-source-dir}/.config.
For SuSE Linux, the config files for current kernel is under /boot dir
so you can the kernel source by
# cd /usr/src/linux-{kernel-version}.SuSE
# cp /boot/vmlinuz.config .config
# cp /boot/vmlinuz.version.h include/linux/version.h
# cp /boot/vmlinuz.autoconf.h include/linux/autoconf.h
For other distributions please refer to the distribution documents to
obtain the config file.
If you are building a custom kernel and a driver, you can setup the kernel
config by yourself, using "make config" or "make menuconfig" commands
under kernel source directory.
Once the kernel config file is ready, run following commands under kernel
source directory to setup kernel headers:
# make oldconfig
# make dep
On some Red Hat versions, {kernel-source-dir}/include/linux/modversions.h
may be incorrect after "make dep", you need check if there is a line
"#include <linux/rhconfig.h>" before "#include <linux/modsetver.h>" in that
file. If not, please add the line manually.
3) Build the driver
After you have configured the kernel source/headers you can build the driver
by following commands (assume you have extracted the driver source under
directory rr232x-linux-src-1.xx):
# cd rr232x-linux-src-1.xx/product/rr232x/linux/
# make
You can append below options to "make" command:
KERNELDIR=...
Specify kernel source directory. If not specified the driver will
use /lib/modules/{kernel-version}/build/ as the default location.
This option is needed if you have a manually configured kernel
source tree.
CROSS_COMPILE=...
Specify cross compiler prefix.
ARCH=...
Specify target system machine architecture.
Currently only i386 and x86_64 is supported.
4) Install/upgrade the driver
If you are building driver for currently in-use kernel you can use
"make install" to install or upgrade the driver:
# cd rr232x-linux-src-1.xx/product/rr232x/linux/
# make install
The KERNELDIR=... parameter may be required, e.g.
# make install KERNELDIR=/usr/src/linux-2.4
"make install" command will copy the driver module to the directory
/lib/modules/`uname -r`/kernel/drivers/scsi, and update the initrd file
if it contains an old version driver.
If your system is installed on the controller, a reboot is required
to make the new driver take effect.
Please note "make install" may not work on some distributions. In that
case you have to install the driver manually.
After the driver is installed, it can be loaded manually by
# modprobe rr232x
To load the driver automatically during system startup, you can either
put it into initrd file or configure a /etc/rc.d script to load it.
#############################################################################
3. Using the driver as a kernel patch
#############################################################################
You must have a full kernel source tree to use the driver as a patch.
To patch a kernel source tree, run the command
# cd rr232x-linux-src-1.xx/product/rr232x/linux/
# make patchkernel KERNELDIR=<kernel-source-dir>
For an unconfigured 2.6 kernel source tree, include/linux/version.h may
not exist so you should add "KERNEL_VER=2.6" to the command:
# make patchkernel KERNELDIR=<kernel-source-dir> KERNEL_VER=2.6
Then you can configure the driver into kernel during the kernel
configuration process (e.g. "make menuconfig"). It is listed under
scsi low level drivers.
Below is an example to make and install a kernel with the driver built-in:
# cd /usr/src/linux-2.6.25
# make menuconfig
Select "Device Drivers --->" and press enter.
Select "SCSI device support", then press 'Y' to make it built-in.
Select "SCSI disk support" then press 'Y' to make it build-in.
Select "SCSI low-level drivers --->" and press enter.
Select "HighPoint RocketRAID 232x support" and press 'Y'.
Exit and save the kernel configuration.
# make
# make modules_install
# make install
Then you can reboot from the new kernel.
#############################################################################
4. Revision History
#############################################################################
v1.10.09.0716 07/16/2009
* Support linux kernel up to 2.6.30.
* Support 48-bit address for ide passthrough.
v1.9.08.0820 08/20/2008
* Fix unnecessary bad sector repair operation since retry cmd always fail.
* Fix rebuild priority issue.
* Fix wrong access on sense buffer pointer.
v1.8.08.0409 04/09/2008
* Fix compatible issue on SR3610.
* Fix RAID50 transform data error on one condition.
* Fix synchronize cache fail when reboot.
* Fix RAID rebuild fail condition if enable Continue Rebuilding on Error.
* Add RAID recovery support.
v1.07 12/21/2007
* Add single disk over 2T support
* Add Spindown Idle Disk support.
* Add Continue Rebuilding on Error support.
v1.06 07/21/2007
* Fix RAID0 member disk over 2T overflow issue.
* Fix an error condition for RAID5 sector repair with cache.
v1.05 02/05/2007
* Fix event log string for sector repair.
* Fix an error condition for RAID5 sector repair.
v1.04 12/04/2006
* Fix drive plug/unplug failure when a rescan operation is pending.
* Add sector repair feature.
v1.03 07/10/2006
* Fix reboot hang on kernel 2.6.17.
* Fix spinlock in hpt_reset.
* Fix WD3200KS detection.
* Add MODULE_DEVICE_TABLE so depmod can find pci device alias.
v1.0202/20/2006
* Add RR2322 support
v1.0111/25/2005
* Add RAID50 support
v1.0 08/20/2005
* First release
#############################################################################
5. Technical support and service
#############################################################################
If you have questions about installing or using your HighPoint product,
check the user's guide or readme file first, and you will find answers to
most of your questions here. If you need further assistance, please
contact us. We offer the following support and information services:
1) The HighPoint Web Site provides information on software upgrades,
answers to common questions, and other topics. The Web Site is
available from Internet 24 hours a day, 7 days a week, at
http://www.highpoint-tech.com.
2) For technical support, send e-mail to [email protected]
NOTE: Before you send an e-mail, please visit our Web Site
(http://www.highpoint-tech.com) to check if there is a new or
updated device driver for your system.