Trying to migrate rcraid to Manjaro

Hi!

I’ve recently swapped Windows 10 to Manjaro and I had a hardware raid 0 set up. Worked fine with RaidXpert 2, well as fine as it can - set up and forget.

I followed the installation manual here

Do I need to do something else on top of this? I clicked the dkms package and I think it installed the driver, but still can’t see the drives.

So in short, followed the installation manual to the dot but I’m now unsure as of what do I do next?

Yes, I am aware that rcraid is not the best of options, but I would like to get this working regardless. I don’t really want to go back to Windows to copy files to another drive and then build a software array in Manjaro, I would rather be able to access the array and then copy everything without booting a copy of Windows.

Hello,

When you see dkms in a package, that means it will require that the system has installed the dkms package and the linux-headers for your installed kernels.

Where did you clicked it? Pamac offers the entire output of an install, either is a package from repos or AUR.

Open up terminal and run:

  • to fully update the system
    sudo pacman-mirrors -f && sudo pacman -Syyu
  • install linux-headers
sudo pacman -S $(pacman -Qsq "^linux" | grep "^linux[0-9]*[-rt]*$" | awk '{print $1"-headers"}' ORS=' ')
  • build the package:
    pamac build rcraid-dkms

Reboot and report back.

This is what I get during building

Building rcraid-dkms…
==> Making package: rcraid-dkms 17.2.1-2 (fri 23. october 2020 16.28.41)
==> Checking runtime dependencies…
==> Checking buildtime dependencies…
==> Retrieving sources…
==> ERROR: Unknown download protocol: manual
Aborting…
Error: Failed to build rcraid-dkms

Could it be a kernel related issue? This is what I have gotten before as well. That’s why I tried the above github one as well.

The latest patch for the rcraid-dkms in AUR is for 5.6 while I’m running 5.8.

Should try editing the build files or try rolling back to 5.6?

No. It is because the rcraid-dkms package is special. Usually the PKGBUILD file contains a URL to the source and it is downloaded automatically.

But in this case, you would need to download the raid_linux_driver_8_01_00_039_public.zip manually and place it in the folder that contains the PKGBUILD file and all other required files.

You can use git to download the PKGBUILD file and all other required files.

git clone https://aur.archlinux.org/rcraid-dkms.git

Git will create a folder, place the raid_linux_driver_8_01_00_039_public.zip in this folder and run

makepkg -si

[larkko@LarkkoManjaro ~]$ git clone https://aur.archlinux.org/rcraid-dkms.git
Cloning into ‘rcraid-dkms’…
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 19 (delta 2), reused 18 (delta 2), pack-reused 0
Unpacking objects: 100% (19/19), 16.29 KiB | 3.26 MiB/s, done.
[larkko@LarkkoManjaro ~]$ cd rcraid-dkms
[larkko@LarkkoManjaro rcraid-dkms]$ makepkg -si
==> Making package: rcraid-dkms 17.2.1-2 (pe 23. lokakuuta 2020 16.45.57)
==> Checking runtime dependencies…
==> Checking buildtime dependencies…
==> Retrieving sources…
==> ERROR: Unknown download protocol: manual
Aborting…

Still getting the same error.

Did you download the raid_linux_driver_8_01_00_039_public.zip file with a Browser and placed it in this new folder?

This is a very important step! Please read the instructions carefully.

Well I’ll be damned!

Live and learn (and read instructions carefully)! Now I know what the error means.

Anyways it built without an error now. I rebooted but can’t see the drives yet.

Any additional steps beyond this?

I would try to load the module.

sudo modprobe rcraid

After that check the dmesg or lsblk if you see new devices.

Oh and as a potentially extremely important sidenote is that the mobo is a MSI B350.

I have an x399 right next to me but can’t use it at the moment. Waiting for a new PSU.

Now, having done some research beforehand I assumed the Raid drivers for different AM4 boards were the same. But it might matter.

Modprobe returns nothing, dmesg however:

[ 0.976064] rcraid: loading out-of-tree module taints kernel.
[ 0.976071] rcraid: module license ‘Proprietary’ taints kernel.
[ 0.976072] Disabling lock debugging due to kernel taint
[ 0.976581] rcraid: module verification failed: signature and/or required key missing - tainting kernel
[ 0.978556] <5>AMD, Inc. rcraid raid driver version 8.1.0 build_number 8.1.0-00039 built oct 23 2020
[ 0.978557] <5>rcraid built on LarkkoManjaro by root on fri 23.10.2020 16.14.15 +0300
[ 0.978559] <5>rcraid: cmd_q_depth 512, tag_q_depth 16, max_xfer 448, use_swl 0xffffffff
[ 0.978655] <5>rcraid_probe_one: vendor = 0x1022 device 0x43bd
[ 0.978658] <5>rcraid_probe_one: vendor = 0x1022 device 0x7916
[ 0.978659] <5>rcraid_probe_one: Total adapters matched 2
[ 0.979112] <5>rcraid: rc_init_adapter 64 bit DMA enabled
[ 0.979124] <6>### rc_init_adapter(): RC_EnableZPODD = 0
[ 0.979175] <3>rcraid:0 request_threaded_irq irq 60
[ 0.979178] <5>rcraid: card 0: AMD, Inc. AHCI

lsblk only lists the OS drive.

I can’t help you with the usage of rcraid. Just how to build the module.

Thanks!

The least so far I learnt how to build a module. :smiley:

I’ll make this work eventually.

Alright so I got it working on the X399.

Did the following:

git-cloned the following:

while trying to build the package got an error

==> ERROR: Cannot find the fakeroot binary.
==> ERROR: Cannot find the strip binary required for object file stripping.

Solved this by

sudo pacman -S base-devel

After that rebuilt the driver without problems. The build phase asks you which kernel you want to build the driver for and I selected the one I’m using which is 5.8. All good.

To finalize this and mount the drives

This is here as a reference for any other Manjaro noob like me wanting to migrate their already set up and chock full RC RAID arrays to Manjaro. This probably works for other arch based distributions as well.

For me, all of the arrays were recognized and mounted properly.

Good luck!

install dkms and base devel
git clone
build with github instructions
makeinitcpio -P

Am I right?