1

I've added PCIe ASMedia SATA controller to my PC. It's working fine under win10 but not with ubuntu.

lspci returned that:

01:00.0 IDE interface: ASMedia Technology Inc. Device 0624 (rev 01) (prog-if 85 [PCI native mode-only controller, supports bus mastering])
Subsystem: ASMedia Technology Inc. Device 1060
Flags: fast devsel, IRQ 16
I/O ports at e040 [size=8]
I/O ports at e030 [size=4]
I/O ports at e020 [size=8]
I/O ports at e010 [size=4]
I/O ports at e000 [size=16]
Memory at df180000 (32-bit, non-prefetchable) [size=8K]
Expansion ROM at df100000 [disabled] [size=512K]
Capabilities: <access denied>
Kernel modules: pata_acpi

Motherboard controller works fine under ahci:

00:17.0 SATA controller: Intel Corporation Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode] (rev 31) (prog-if 01 [AHCI 1.0])
Subsystem: Elitegroup Computer Systems Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode]
Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 124
Memory at df228000 (32-bit, non-prefetchable) [size=8K]
Memory at df22d000 (32-bit, non-prefetchable) [size=256]
I/O ports at f090 [size=8]
I/O ports at f080 [size=4]
I/O ports at f060 [size=32]
Memory at df22c000 (32-bit, non-prefetchable) [size=2K]
Capabilities: <access denied>
Kernel driver in use: ahci
Kernel modules: ahci

Any ideas what can I do to make it work?

19bartek92
  • 11
  • 1
  • 2

2 Answers2

2

For some reason, the pata_acpi module gets matched to the controller first, before the ahci module gets a chance to try.

Edit (or create) /etc/modprobe.d/blacklist.conf and add the following line to it:

blacklist pata_acpi

Then run sudo update-initramfs -u to propagate the change to the initramfs file.

Alternatively, edit /etc/default/grub to add blacklist=pata_acpi to the value of GRUB_CMDLINE_LINUX. In other words, find a line like:

GRUB_CMDLINE_LINUX=""

then change it to:

GRUB_CMDLINE_LINUX="blacklist=pata_acpi"

If there are already something inside the double quotes, add blacklist=pata_acpi within the quotes, separated from the existing part with a space, i.e. if you find:

GRUB_CMDLINE_LINUX="something=else"

then change it to:

GRUB_CMDLINE_LINUX="something=else blacklist=pata_acpi"

In both cases, after making the change, run sudo update-grub to regenerate the actual GRUB configuration file.

On the next boot, the pata_acpi module should not be loaded for the ASMedia SATA controller, and so the ahci module will get a chance to claim it.

telcoM
  • 87,318
  • 3
  • 112
  • 232
1

According to https://linux-hardware.org/index.php?id=pci:1b21-0612-1b21-1060, an ASMedia SATA controller 106x is a SATA controller, not a PATA device.

Therefore it works with AHCI.

I think the question is, how to set the kernel to use ahci driver instead of pata_acpi. Thanks.

Jeremy Boden
  • 1,290
  • 11
  • 21