Pages - Menu

Monday, December 7, 2015

Disable Promise FastTrack FakeRAID on CentOS 7

I have a system with an onboard Promise FastTrack SATA RAID controller. This isn't a "real" RAID controller, but one which relies on the OS to perform some of the RAID work. This is commonly called "FakeRAID" and is not desirable.

Despite setting the controller into AHCI Mode in the BIOS, I still get a disk called  /dev/mapper/pdc_abcdef or similar and cannot use the disk /dev/sdb directly. I wanted the FakeRAID gone.

The FakeRAID is managed by Device-Mapper RAID called "dmraid".

An old CentOS 5 post suggests removing the dmraid package might work, but this wanted to remove anaconda and many other things, so didn't seem a good option.

There is a kernel boot parameter to disable Device-Mapper RAID so I applied this.

In /etc/default/grub add nodmraid to GRUB_CMDLINE_LINUX_DEFAULT:

GRUB_CMDLINE_LINUX_DEFAULT="quiet rhgb nodmraid"

Then re-create the GRUB2 configuration file:

grub2-mkconfig -o /boot/grub2/grub.cfg

Reboot, and no more FakeRAID drive. Success.

Saturday, November 7, 2015

Unknown symbol __dynamic_pr_debug

I was working with the default x86_64 + kvm kernel config and a kernel module which uses the pr_debug() printk logging method.

On load, modprobe prints:

FATAL: Error inserting modulename: Unknown symbol in module, or unknown parameter (see dmesg)

And dmesg contains:

Unknown symbol __dynamic_pr_debug

I do have the CONFIG_DYNAMIC_DEBUG=y parameter set in my .config.

I found reference to this upstream at: https://lkml.org/lkml/2012/8/30/378 where Jim Crombie said "Ok, transient error, went away with a clean build".

I'd done a make; make modules_install; make install and reboot but that didn't work for me.

Like Jim found, a make clean then recompile worked for me.

You need to mount debugfs to use pr_debug(), see dynamic-debug-howto.txt in the kernel Documentation directory.