Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Kernel & Hardware
  • Search

Why is ACPI so troublesome for Linux?

Kernel not recognizing your hardware? Problems with power management or PCMCIA? What hardware is compatible with Gentoo? See here. (Only for kernels supported by Gentoo.)
Post Reply
Advanced search
7 posts • Page 1 of 1
Author
Message
gcasillo
l33t
l33t
User avatar
Posts: 739
Joined: Tue Sep 23, 2003 9:21 pm
Location: Cincinnati, Ohio, USA

Why is ACPI so troublesome for Linux?

  • Quote

Post by gcasillo » Mon Aug 30, 2004 12:45 am

Not trolling, just curious. I know that ACPI allows for power management in computers and that's it. What is it about ACPI that Linux just can't seem to nail down? I have a 865PERL Intel motherboard that won't boot a 2.6.7+ kernel because of buggy ACPI. This is the most prevalent problem I've run into regarding ACPI, but there's always been a laundry list of things I've read that go something like, "Disable ACPI." Why?
Top
Archangel1
Veteran
Veteran
User avatar
Posts: 1212
Joined: Wed Apr 21, 2004 12:29 am
Location: Work

  • Quote

Post by Archangel1 » Mon Aug 30, 2004 2:13 am

I don't really know, but to guess there are a huge number of machines with buggy BIOSes which don't get fixed because they work in Windows and the manufacturers are frankly too damn lazy to do it properly.
I also suspect ACPI must be something that's not terribly well documented, so it's very hard to implement since you're very much guessing at how it works.
Top
d13f00l
n00b
n00b
Posts: 26
Joined: Mon Aug 30, 2004 6:32 am

  • Quote

Post by d13f00l » Mon Aug 30, 2004 7:19 am

I have an nforce2 mobo. Apic/ACPI just started working flawlessly in 2.6.7 or so, so I enabled it. It works like a charm, and is stable. Funny thing is, I can't run it in windows. Enabling it causes IRQL_NOT_LESS_OR_EQUAL errors, BAD_POOL_IO, etc. I've reinstalled XP and 2k. All my hardware tests good. I also have one of the early nforce2 boards, notorious for a buggy APIC.
Top
woodwizzle
Apprentice
Apprentice
Posts: 225
Joined: Sun Nov 30, 2003 7:53 pm

  • Quote

Post by woodwizzle » Mon Aug 30, 2004 8:34 am

i used to be plagued with ACPI problems, but since them i've migrated to a 2.6.7 kernel on an abit AN-7 and it seems to be working flawlessly now.
Top
gcasillo
l33t
l33t
User avatar
Posts: 739
Joined: Tue Sep 23, 2003 9:21 pm
Location: Cincinnati, Ohio, USA

  • Quote

Post by gcasillo » Mon Aug 30, 2004 8:09 pm

Guess I see a trend. 2.6.7 is released, and ACPI support for Intel mobos goes in the crapper. Conversely, all other boards discover the joy of quality ACPI support.

It's just odd that what worked in 2.6.5 now no longer works in 2.6.7+ kernels. At least a bug report has been filed (and reopened) since this is a known issue.
Top
kriz
Apprentice
Apprentice
User avatar
Posts: 231
Joined: Wed Jan 22, 2003 8:54 pm

  • Quote

Post by kriz » Mon Aug 30, 2004 10:19 pm

hi .....
try to path your evxfevnt.c with this diff.

Code: Select all


diff -uNr linux-2.6.8-rc2-org/drivers/acpi/events/evxfevnt.c linux-2.6.8-rc2-fix/drivers/acpi/events/evxfevnt.c
--- linux-2.6.8-rc2-org/drivers/acpi/events/evxfevnt.c	2004-06-15 22:19:03.000000000 -0700
+++ linux-2.6.8-rc2-fix/drivers/acpi/events/evxfevnt.c	2004-07-20 13:23:50.990573272 -0700
@@ -45,9 +45,46 @@
 #include <acpi/acpi.h>
 #include <acpi/acevents.h>
 #include <acpi/acnamesp.h>
+#include <linux/cpumask.h>
+#include <linux/sched.h>
+#include <asm/current.h>
+#include <asm/bitops.h>
 
 #define _COMPONENT          ACPI_EVENTS
 	 ACPI_MODULE_NAME    ("evxfevnt")
+#include <linux/init.h>
+static int acpi_bug;
+
+static int __init acpi_bug_set(char *str)
+{
+	acpi_bug = 1;
+	return 1;
+}
+__setup("acpi_cpu1_bug", acpi_bug_set);
+
+acpi_status
+acpi_hw_set_mode_from_cpu0(void)
+{
+	acpi_status                     status = AE_OK;
+	cpumask_t save_cpus_allowed, new_cpus_allowed;
+
+	save_cpus_allowed = current->cpus_allowed;
+
+	if (acpi_bug) {
+		/* force the CPU 1 bug */
+		new_cpus_allowed = current->cpus_allowed;
+		cpu_clear(0, new_cpus_allowed);
+	} else {
+		cpus_clear(new_cpus_allowed);
+		cpu_set(0, new_cpus_allowed);
+	}
+	set_cpus_allowed(current, new_cpus_allowed);
+
+	status = acpi_hw_set_mode (ACPI_SYS_MODE_ACPI);
+	set_cpus_allowed(current, (save_cpus_allowed));
+
+	return status;
+}
 
 
 /*******************************************************************************
@@ -83,8 +120,8 @@
 	}
 	else {
 		/* Transition to ACPI mode */
-
-		status = acpi_hw_set_mode (ACPI_SYS_MODE_ACPI);
+	//	status = acpi_hw_set_mode (ACPI_SYS_MODE_ACPI);
+		status = acpi_hw_set_mode_from_cpu0();
 		if (ACPI_FAILURE (status)) {
 			ACPI_REPORT_ERROR (("Could not transition to ACPI mode.\n"));
 			return_ACPI_STATUS (status);
this code is developed by Robert Moore (Intel)
hope this helps.

mfg
Top
Bithammer
Tux's lil' helper
Tux's lil' helper
Posts: 100
Joined: Mon Aug 30, 2004 8:34 pm
Location: Mainhatten

  • Quote

Post by Bithammer » Thu Sep 02, 2004 11:51 am

I as well have the Intel Perl Mainboard, which is a gread device, totally stable and very performant. Good support by Intel.

I as well having problems getting kernel 2.6.8.1 acpi to work on my board. I have to boot with acpi = off.

Could i use this patch aswell with a more recent kernel version as mentioned above ?

http://www.kernel.org/pub/linux/kernel/ ... -2.6.9-rc1

Ok as far as i read the kernel change log for the dev 2.6.9-rc1 the fixes for ACPI are included in this one, i will try this at home. I just wonder to meet this problems for such a good mainboard like the Intel Perl device, i thought i had one of the most compatible devices to go with. At least Intel provide the fixes which is nice to see.
Top
Post Reply

7 posts • Page 1 of 1

Return to “Kernel & Hardware”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic