Tak otvírám takovou menší poradnu, jelikož by mě to taky tak trošku zajímalo..... :-D
Co přesně dělaj příkazy:
noapic =
nolapic =
acpi=off
acpi=force???
Zajímá mě to hlavně zdůvu rozchození notebooku ASUS F3M, nějak zamrzá :-/
Tak začneme:
ACPI (Advanced Configuration and Power Interface) je rozhraní, pomocí kterého operační systém přistupuje k pokročilým funkcím správy napájení a dalších rozšiřujících věciček jako je třeba uspávání jednotlivých komponent, suspend to ram, speciální klávesy na noteboocích. ACPI jistě slouží také k uspávání, šetření proudem, zobrazení stavu baterky apod...
Ale naprosto nejdůležitější úlohou ACPI v dnešních PC je spolupráce při nahození vysokých IRQček přes APIC. (Druhou možností, jak dosáhnout téhož, je rozhraní MPS.)
ACPI je v rámci BIOSu. Obsahuje několik tabulek, které popisují daný Motherboard. Routování IRQček se týká jakési tabulky MADT.
Typickým důvodem, proč na některém hardwaru Linux běží jedině s acpi=off, je binec v APICových IRQčkách: zmrvený obsah MADT nebo stará verze ACPI v této oblasti, nebo stará verze "ACPI kompilátoru" od Intelu, který byl použit při vytváření BIOSu. Obvykle skutečně pomůže update BIOSu.
Linux umí routovat IRQčka několika způsoby: přes ACPI, přes MPS, nebo "po staru" bez APICu.
Pokud holému přežití Linuxu na Vašem hardwaru pomáhá acpi=off, ale přitom potřebujete některé další funkce ACPI (power management), můžete zkusit některé "méně invazivní" command-line argumenty, které ovlivňují routování IRQček:
pci=noacpi pci=routeirq irqpoll
Pokud se Vám povede nabootovat, ať už s acpi=off nebo jinak, mrkněte se pro zajímavost na výpis /proc/interrupts, jestli se objevila IRQčka nad 15 (tj. 16 a vyšší, typicky buď 16-23, nebo nějaká vysoká numera, jako třeba 193 nebo 209). Pokud jedete jenom s klasickým AT PICem bez APICu, tj. vidíte jenom IRQčka 0-15, budete mít asi na dnešním notebooku vysoký stupeň sdílení IRQ, což není vhodné (zvyšuje to zátěž CPU, snižuje to průchodnost různých periferií).
Pustím si přez terminál cat /proc/interrupts
black@black-asus:~$ cat /proc/interrupts
CPU0
0: 427908 IO-APIC-edge timer
1: 319 IO-APIC-edge i8042
2: 0 XT-PIC-XT cascade
5: 172290 IO-APIC-fasteoi ohci1394, HDA Intel, eth0
7: 20 IO-APIC-fasteoi ehci_hcd:usb2
8: 3 IO-APIC-edge rtc
9: 2473 IO-APIC-edge acpi
10: 10095 IO-APIC-fasteoi libata, sdhci:slot0
11: 180241 IO-APIC-fasteoi ohci_hcd:usb1, wifi0, nvidia
12: 116 IO-APIC-edge i8042
15: 14862 IO-APIC-edge ide1
NMI: 0
LOC: 427778
ERR: 1
MIS: 2
black@black-asus:~$