I am running OpenSuse 13.2 on an acer aspire. There is an error during boot which says “ata2 Comrest failed”. This wouldn’t be a problem, but the machine takes a minute trying to connect to it every time, holding up the boot. (The error says “Comreset error-16”).
I brought this up in a previous post, and tried a few options, but the real solution seems to be the above patch allowing me to disable ata2.
I hoped that it would be applied by 13.2 so I wouldn’t have to do anything about it (when I tried myself, I killed my installation so thought patience would be a virtue).
So…the question I’m asking. Can anyone tell me how and where this patch is to be applied? The files it seems to refer to don’t appear on my system.
Alternatively, does anyone think this patch has been applied to OpenSuse 13.2 and I’ve got another problem?
I’m not sure whether exactly this patch has been applied to openSUSE’s 13.2’s (or the upstream) kernel, but according to kernel-parameters.txt from the 3.16 git branch the option you are looking for should be available in Kernel 3.16.7 at least (and probably also the 3.16.6 in openSUSE 13.2):
libata.force=
[LIBATA] Force configurations. The format is comma
separated list of “[ID:]VAL” where ID is
PORT.DEVICE]. PORT and DEVICE are decimal numbers
matching port, link or device. Basically, it matches
the ATA ID string printed on console by libata. If
the whole ID part is omitted, the last PORT and DEVICE
values are used. If ID hasn’t been specified yet, the
configuration applies to all ports, links and devices.
If only DEVICE is omitted, the parameter applies to
the port and all links and devices behind it. DEVICE
number of 0 either selects the first device or the
first fan-out link behind PMP device. It does not
select the host link. DEVICE number of 15 selects the
host link and device attached to it.
The VAL specifies the configuration to force. As long
as there’s no ambiguity shortcut notation is allowed.
For example, both 1.5 and 1.5G would work for 1.5Gbps.
The following configurations can be forced.
* Cable type: 40c, 80c, short40c, unk, ign or sata.
Any ID with matching PORT is used.
* SATA link speed limit: 1.5Gbps or 3.0Gbps.
Transfer mode: pio[0-7], mwdma[0-4] and udma[0-7].
udma/][16,25,33,44,66,100,133] notation is also
allowed.
* [no]ncq: Turn on or off NCQ.
* nohrst, nosrst, norst: suppress hard, soft
and both resets.
* rstonce: only attempt one reset during
hot-unplug link recovery
* dump_id: dump IDENTIFY data.
* atapi_dmadir: Enable ATAPI DMADIR bridge support
* disable: Disable this device.
If there are multiple matching configurations changing
the same attribute, the last one is used.
So what kernel option do you pass exactly that doesn’t work?
Or am I misunderstanding you?
You’re understanding perfectly, I think. This is my ‘Optional Kernel Command Line Parameter:’ in the Boot Loader Settings, which is where I understood it would go. I’ve got libata.force=2.00:disable in there.
The real problem for me, being it still probes it 3 times on boot up (and waking from sleep, I think. It takes a long time, but doesn’t write to screen). The long number before the ata2 changes each time, so I don’t think I can refer to that in any way.
Thanks for looking at this. Is there any other information I can supply?
Well, that option seems to work fine here (standard 3.16.6 kernel as shipped with 13.2).
I just tried adding “libata.force=3.01:disable” to my boot options made my system drop to “emergency mode” as expected. (3.01 is my second hard disk which contains a Windows partition that’s mounted in the fstab and the swap)
That should be correct.
But I still get:
57.496824] ata2: COMRESET failed (errno=-16)
The real problem for me, being it still probes it 3 times on boot up (and waking from sleep, I think. It takes a long time, but doesn’t write to screen).
Hm, maybe you should try to disable the whole port? I.e. “libata.force=2:disable”.
The error message is about “ata2”, not “ata2.00”.
Or maybe you can disable that port/drive in the BIOS?
Or maybe one of the other options will help, too. E.g. “norst”.
Is this a SATA or PATA drive?
In case of PATA, you normally have two drives on one cable.
If one of them is misbehaving, this can also disturb the other one.
The long number before the ata2 changes each time, so I don’t think I can refer to that in any way.
That “long number before the ata2” is the timestamp, i.e. how many seconds after starting the boot has this happened.
Thanks for looking at this. Is there any other information I can supply?
Well, I have to admit that I’m not really an expert regarding this.
But at least I can tell that applying that patch won’t help you (and it would not even be possible, as the functionality is already included apparently).
I’ll have a play around with some of your other suggestions and do some more research. It’s a really great help to know that the patch doesn’t need applying, as I’ve been thinking I was waiting for that.
has got rid of the actual error message about COMRESET. But the screen seems to pause at the same place and my dmesg includes:
ata2.00: qc timeout (cmd 0xec)
7.704102] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
8.006908] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
17.999819] ata2.00: qc timeout (cmd 0xec)
17.999837] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
17.999845] ata2: limiting SATA link speed to 1.5 Gbps
18.302609] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
48.281343] ata2.00: qc timeout (cmd 0xec)
48.281361] ata2.00: failed to IDENTIFY (I/O error, err_mask=0x4)
48.584140] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
The good news is wake from sleep is practically instant, whereas that used to take ages, and I assume that it was checking ata2 for that.
The bad news is that once my laptop has slept, waking it and then sleeping it again doesn’t sleep the machine, but the screen goes blank and doesn’t wake up. That may have been a previous problem that I hadn’t noticed as wasn’t using sleep often as it took the same time to reboot, essentially. That is for another post. I will follow up here if I sort out the rest of the ata2 problem.