HighPoint RocketRAID 620 Linux driver
Wednesday, May 27. 2015
I've had my run of bad things with Intel soft-RAID earlier. The constant RAID-verify -runs made me want stop using it. As its my Windows-box, I just wanted something that is hardware-based, reasonably fast and affordable. My choice is HighPoint RocketRAID 620.
For a switch-over -project I had a simple plan:
- Clonezilla the existing RAID into an another drive which I could plug into a motherboard for the duration of the move
- Un-configure the Intel soft-RAID at the motherboard
- Plug in the RocketRAID-card
- Change the hard-drive cables from motherboard RAID-connectors into RocketRAID-card
- Configure a new RAID-1 mirror wit RocketRAID
- Clonezilla the data back to the newly created RAID-1 volume
- Be happy and continue computing
Guess what. Things fell trough at point #6. I was using an USB-bootable Clonezilla live on my first data move and obviously was planning to use it for the second one too. Whichever Linux-distro they use as the base for Clonezilla, they don't have the driver for the RAID-card. Darn!
The next best thing is a commercial distro for Clonezilla, Parted Magic. They used to be free (as in beer and speech), but they went commercial. The price is $9 USD for a single download, so I got it. And guess what again! They don't support Highpoint RocketRAID either.
I did ask about it in their support forums (closed to registered users only, sorry). And they replied:
We do not do "random" out-of-tree drivers because commonly these are supported by their vendors in a haphazard way. E.g. in the HighPoint case the latest driver is 3 versions behind our kernel version.
Luckily the vendor is providing the partial source code for the driver. There is a binary-part of in it and it is kind-of open-source. The biggest problem seems to be, that it doesn't build on any reasonably modern Linux.
By googling, I found that somebody else had the same process of thought and there was a Github project for the upgraded driver. Unfortunately that too was 3 years old and wouldn't build. Also it was for the vendor driver 1.1, and they already had 1.2 out.
In this imperfect world everything that you need to be done properly, you need to do by yourself. So, here it is: https://github.com/HQJaTu/rr62x
You can help yourselves with that one.
This is how it looks on my dmesg:
[ 85.518732] rr62x: module license 'Proprietary' taints kernel.
[ 85.518737] Disabling lock debugging due to kernel taint
[ 85.519709] rr62x:RocketRAID 62x SATA controller driver v1.2 (Jul 1 2012)
[ 85.735773] rr62x:adapter at PCI 3:0:0, IRQ 16
[ 85.950487] rr62x:[0 0 ] start port.
[ 85.950488] rr62x:[0 0 ] start port hard reset (probe 1).
[ 86.150712] rr62x:[0 1 ] start port.
[ 86.150712] rr62x:[0 1 ] start port hard reset (probe 1).
[ 89.093649] rr62x:[0 0 ] start port soft reset (probe 1).
[ 89.841048] rr62x:[0 1 ] start port soft reset (probe 1).
[ 90.501075] rr62x:[0 0 ] port started successfully.
[ 90.501078] rr62x:[0 0 0] device probed successfully.
[ 90.791364] rr62x:[0 1 ] port started successfully.
[ 90.791369] rr62x:[0 1 0] device probed successfully.
[ 90.806570] scsi host13: rr62x
[ 90.806870] scsi 13:0:0:0: Direct-Access HPT DISK_13_0 4.00 PQ: 0 ANSI: 5
[ 90.809711] sd 13:0:0:0: [sdd] 2930114560 512-byte logical blocks: (1.50 TB/1.36 TiB) [ 90.809847] sd 13:0:0:0: [sdd] Write Protect is off
[ 90.809852] sd 13:0:0:0: [sdd] Mode Sense: 2f 00 00 00
[ 90.809909] sd 13:0:0:0: [sdd] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 90.832339] sdd: unknown partition table
[ 90.832903] sd 13:0:0:0: [sdd] Attached SCSI disk
I've tested that with Linux 4.0.4 and 3.19.3. It builds and works on both. Any comments, Github forks, pull requests, etc. are welcome. I will get back to the actual disk cloning project later, the driver won't help unless it is used properly in an operating system.
Steve A on :
Jari Turkia on :
It's a shame how the manufacturer is not supporting Linux properly.
nos_com71 on :
hope u r ok .
Jari Turkia on :
Wait for the bad weather to kick in, I'll be back with computing-projects after that.
Tyler on :
Jari Turkia on :
And back to your question: yes, I've had success running that with quite recent 4-series Linux kernels.
Ross on :
Jari Turkia on :
Max on :
rr62x/osm/linux/install.sh checks for kernel versions of 3. but not 4. on line 13.
Changed this and it worked :), so thanks again!
Yuri Chernyavsky on :
Yuri Chernyavsky on :
hengLiu on :
I can't get the driver compiled successfully for rr62x card ; (
If you are stlling using Linux, would you mind hint me how (I mod my driver set by referring to your package, not working, error ) to modify patched driver set for Rocket 622 620 serie?
My OS: Manjaro Linux x86_64
Kernel: 4.19.60-1-MANJARO
sudo dkms install -m rr62x -v 1.1x
[sudo] password for vanguardo:
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area...
make -j4 KERNELRELEASE=4.19.60-1-MANJARO -C product/rr62x/linux/ KERNELDIR=/lib/modules/4.19.60-1-MANJARO/build...(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.19.60-1-MANJARO (x86_64)
Consult /var/lib/dkms/rr62x/1.1x/build/make.log for more information.
I got diff. errors in make.log...
for example:
:implicit declaration of function 「pci_get_bus_and_slot」; did you mean 「pci_get_domain_bus_and_slot」? [-Werror=implicit-function-declaration]
215 | #define HPT_FIND_SLOT_DEVICE pci_get_bus_and_slot
| ^~~~~~~~~~~~~~~~~~~~
/var/lib/dkms/rr62x/1.1x/build/product/rr62x/linux/.build/os_linux.c:267:28: 附註:in expansion of macro 「HPT_FIND_SLOT_DEVICE」
267 | struct pci_dev *pPciDev = HPT_FIND_SLOT_DEVICE(bus, PCI_DEVFN(dev,func));
| ^~~~~~~~~~~~~~~~~~~~
This also github methoid, not quite working
https://github.com/dsiggi/RocketRAID
get your drivver, unpacked, Patched, hit Make .......>get these errors :
error:implicit declaration of function 「pci_get_bus_and_slot」; did you mean 「pci_get_domain_bus_and_slot」? [-Werror=implicit-function-declaration]
215 | #define HPT_FIND_SLOT_DEVICE pci_get_bus_and_slot
| ^~~~~~~~~~~~~~~~~~~~
/home/user/rr62x-linux-src-v1.2/product/rr62x/linux/.build/os_linux.c:267:28: note:in expansion of macro 「HPT_FIND_SLOT_DEVICE」
267 | struct pci_dev pPciDev = HPT_FIND_SLOT_DEVICE(bus, PCI_DEVFN(dev,func));
| ^~~~~~~~~~~~~~~~~~~~
/home/user/rr62x-linux-src-v1.2/osm/linux/osm_linux.h:215:30: warning:initialization of 「struct pci_dev 」 from 「int」 makes pointer from integer without a cast [-Wint-conversion]
215 | #define HPT_FIND_SLOT_DEVICE pci_get_bus_and_slot
| ^~~~~~~~~~~~~~~~~~~~
.
.
. similar error message for 3, 4 repeats..
.
.
cc1: some warnings being treated as errors
make[2]: ** [scripts/Makefile.build:304: /home/user/rr62x-linux-src-v1.2/product/rr62x/linux/.build/os_linux.o] Error 1
make[1]: ** [Makefile:1517: module/home/user/rr62x-linux-src-v1.2/product/rr62x/linux/.build] Error 2
make[1]: Leaving directory '/usr/lib/modules/4.19.60-1-MANJARO/build'
make: *** [../../../inc/linux/Makefile.def:101: rr62x.ko] Error 2
Can you help me?
lufa on :
Any hope for getting this working 20.04 with kernel 5.4?
Jari Turkia on :