LINUX.ORG.RU

[dsdt, iasl] Помогите исправить


0

2

На данный момент

# iasl -tc dsdt.dsl;

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20100528 [Feb  3 2011]
Copyright (c) 2000 - 2010 Intel Corporation
Supports ACPI Specification Revision 4.0a

ASL Input:  dsdt.dsl - 10403 lines, 397123 bytes, 4157 keywords
AML Output: dsdt.aml - 41022 bytes, 897 named objects, 3260 executable opcodes

Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Ядро 2.6.32 собрано с исправленным dsdt - CONFIG_ACPI_CUSTOM_DSDT_FILE=«/usr/src/dsdt.hex»

Однако продолжает смущать такое:

dmesg | grep ACPI
(cut)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMI: Excess arguments - needs 1, found 2 (20090903/nspredef-303)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMS: Excess arguments - needs 1, found 2 (20090903/nspredef-303)

Я полагаю что проблема все еще может заключатся в DSDT. Все упоминания MXMI и MXMS в dsdt.dsl на всякий случай приведены ниже :

(cut)

                Device (VGA)
                {
                    Name (_ADR, Zero)

                    Method (MXMI, 1, NotSerialized)
                    {
                        Return (0x21)
                    }

                    Method (MXMS, 1, NotSerialized)
                    {
                        Return (MXM2)
                    }

(cut)
(cut)

                    Device (AMW1)
                    {
                        Name (_HID, "pnp0c14")
                        Name (_UID, "MXM2")
                        Name (_WDG, Buffer (0x3C)
                        {
                            /* 0000 */    0x3C, 0x5C, 0xCB, 0xF6, 0xAE, 0x9C, 0xBD, 0x4E,
                            /* 0008 */    0xB5, 0x77, 0x93, 0x1E, 0xA3, 0x2A, 0x2C, 0xC0,
                            /* 0010 */    0x4D, 0x58, 0x01, 0x02, 0x57, 0x93, 0x8A, 0xF2,
                            /* 0018 */    0x4B, 0xCF, 0x1A, 0x4A, 0x88, 0x93, 0xBB, 0x1F,
                            /* 0020 */    0x58, 0xEE, 0xA1, 0xAF, 0xD1, 0x00, 0x01, 0x08,
                            /* 0028 */    0x21, 0x12, 0x90, 0x05, 0x66, 0xD5, 0xD1, 0x11,
                            /* 0030 */    0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10,
                            /* 0038 */    0x58, 0x4D, 0x01, 0x00
                        })
                        Method (WMMX, 3, NotSerialized)
                        {
                            If (LGreaterEqual (SizeOf (Arg2), 0x04))
                            {
                                CreateDWordField (Arg2, Zero, FUNC)
                                CreateDWordField (Arg2, 0x04, ARGS)
                                If (LEqual (FUNC, 0x494D584D))
                                {
                                    Return (^^PCI0.PEGP.VGA.MXMI(ARGS))
                                }
                                Else
                                {
                                    If (LEqual (FUNC, 0x534D584D))
                                    {
                                        Return (^^PCI0.PEGP.VGA.MXMS(ARGS))
                                    }
                                    Else
                                    {
                                        If (LEqual (FUNC, 0x584D584D))
                                        {
                                            If (LGreaterEqual (SizeOf (Arg2), 0x08))
                                            {
                                                Return (One)
                                            }
                                        }
                                    }
                                }
                            }

                            Return (Zero)
                        }

(cut)

Еще конечно я грешу и на ядро… Тем более, что как бы до сих пор в основной ветке так и не пофиксили То же самое у fedora Ну и подобных тем еще сотни и всплывают они у владельцев самых разных девайсов…

Всемогущий all помоги разобраться с dsdt! Что тебе стоит…

★★★★★

На твой страх и риск.

Excess arguments - needs 1, found 2


Функция задана с двумя параметрами, а передаётся ей только один.

Name (_ADR, Zero)


Либо здесь убрать Zero

Return (^^PCI0.PEGP.VGA.MXMI(ARGS))

Return (^^PCI0.PEGP.VGA.MXMS(ARGS))



Либо здесь нулик вторым аргументом вписать.

PS: не спец, когда-то ковырялся просто из интереса, но это ошибкой не является, а просто предупреждением и ни на что не влияет. Вот если было бы наоборот, у функции задан один параметр, а вызывалась бы она с двумя, было бы печальнее.

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

Функция задана с двумя параметрами, а передаётся ей только один.

Перевести я тоже сумел… Но вот что меня сбивает с толку:

Либо здесь убрать Zero

dsdt.dsl  1836:                     Name (_ADR)
Error    4096 -                               ^ syntax error, unexpected ')', expecting ','

Либо здесь нулик вторым аргументом вписать.

Хоть так

dsdt.dsl  7773:                                     Return (^^PCI0.PEGP.VGA.MXMI (ARGS, Zero))
Error    4003 -                                             Too many arguments ^  (^^PCI0.PEGP.VGA.MXMI requires 1)

Хоть так

dsdt.dsl  7773:                                     Return (^^PCI0.PEGP.VGA.MXMI (ARGS), Zero)
Error    4096 -                            syntax error, unexpected ',', expecting ')' ^

Разницы никакой.

А больше всего сбивает то, что

0 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

типа все дальше уже некуда… И опять же понимаю что оно скорее всего и не важно вовсе… но зло берет.

init_6 ★★★★★ ()

Да еще вот такое в dmesg вижу

ACPI: I/O resource 0000:00:1f.3 [0x1c00-0x1c1f] conflicts with ACPI region SMBI [0x1c00-0x1c0f]

При этом опять же все работает… И на вид кроме самого сообщения вроде бы как проблем и нет вовсе. Возможно что виной этому dsdt?

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

ACPI: resource 0000:00:1f.3 [io 0x0400-0x041f] conflicts with ACPI region SMRG [mem 0x00000400-0x0000040f 64bit disabled]
ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

38-rc4

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

Может кто их хакинтошников что подскажет. Им часто dsdt патчить приходится.

Да вот это

ACPI: I/O resource 0000:00:1f.3 [0x1c00-0x1c1f] conflicts with ACPI region SMBI [0x1c00-0x1c0f]
ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver

из линукса загадки. И все это уже вроде бы было… но ясности так и нет

Ну и да в

lspci -nnvv (cut)
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 03)
	Subsystem: Acer Incorporated [ALI] Device [1025:0175]
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
	Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Interrupt: pin C routed to IRQ 19
	Region 0: Memory at c0800000 (64-bit, non-prefetchable) [size=256]
	Region 4: I/O ports at 1c00 [size=32]
	Kernel modules: i2c-i801

И при том, что

lsmod
Module                  Size  Used by
cifs                  267468  2 
af_packet              18896  2 
coretemp                5294  0 
hwmon                   2032  1 coretemp
fuse                   63747  3 
ipt_REJECT              2301  23 
xt_state                1378  12 
ipt_LOG                 5258  5 
xt_limit                2036  5 
iptable_mangle          3139  1 
iptable_nat             4947  0 
nf_nat                 18583  1 iptable_nat
nf_conntrack_ipv4       6963  15 iptable_nat,nf_nat
nf_defrag_ipv4          1401  1 nf_conntrack_ipv4
iptable_filter          2647  1 
ipt_addrtype            2039  0 
xt_DSCP                 2165  0 
xt_dscp                 1717  0 
xt_string               1514  0 
xt_owner                1170  0 
xt_NFQUEUE              2200  0 
xt_multiport            2618  0 
xt_MARK                  975  0 
xt_mark                  975  0 
xt_iprange              1565  0 
xt_hashlimit            9507  0 
xt_conntrack            2630  0 
xt_CONNMARK             1393  0 
xt_connmark             1233  0 
nf_conntrack           68826  7 xt_state,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_conntrack,xt_CONNMARK,xt_connmark
ip_tables              17349  3 iptable_mangle,iptable_nat,iptable_filter
rfcomm                 37480  0 
l2cap                  33589  3 rfcomm
bluetooth              56322  2 rfcomm,l2cap
snd_seq_dummy           1702  0 
snd_seq_oss            29376  0 
snd_seq_midi_event      6899  1 snd_seq_oss
snd_seq                54478  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          6418  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_pcm_oss            39097  0 
snd_mixer_oss          16396  1 snd_pcm_oss
ipv6                  314801  16 
vboxnetadp              4534  0 
vboxnetflt             16275  0 
vboxdrv              1759776  2 vboxnetadp,vboxnetflt
sdhci                  16928  0 
mmc_core               61630  1 sdhci
pciehp                 31336  0 
pci_hotplug            15690  1 pciehp
nvidia              10273779  31 
snd_hda_codec_nvhdmi    13703  1 
snd_hda_codec_intelhdmi    17611  1 snd_hda_codec_nvhdmi
snd_hda_codec_realtek   289093  1 
snd_hda_intel          24685  1 
snd_hda_codec          85052  4 snd_hda_codec_nvhdmi,snd_hda_codec_intelhdmi,snd_hda_codec_realtek,snd_hda_intel
wl                   2536770  0 
snd_hwdep               6474  1 snd_hda_codec
snd_pcm                82628  3 snd_pcm_oss,snd_hda_intel,snd_hda_codec
uvcvideo               60727  0 
snd_timer              22271  2 snd_seq,snd_pcm
videodev               39910  1 uvcvideo
snd                    68411  14 snd_seq_oss,snd_seq,snd_seq_device,snd_pcm_oss,snd_mixer_oss,snd_hda_codec_intelhdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
v4l1_compat            15537  2 uvcvideo,videodev
sky2                   46458  0 
v4l2_compat_ioctl32    10204  1 videodev
soundcore               7860  1 snd
video                  20310  0 
battery                10432  0 
iTCO_wdt               11388  0 
ac                      3306  0 
thermal                13065  0 
button                  5758  0 
snd_page_alloc          8356  2 snd_hda_intel,snd_pcm
iTCO_vendor_support     2942  1 iTCO_wdt
i2c_i801                8049  0 
unix                   28359  864

Это тоже просто не обращать внимание?

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

Да фиг с ним с SMBus.
Какая от него польза, что без него совсем никак?
Разве что для ноута батарею отслеживать.

Lumi ★★★★★ ()
Ответ на: комментарий от Lumi

Разве что для ноута батарею отслеживать.

Да в том то как раз и дело что ноут…

Там правда инфа устарела. К примеру по поводу картридера - зверек заводится с пол пинка если {нет}/{выгружен}/{заблеклистин} модуль acer_wmi + там еще нужны хаки options pciehp pciehp_force=1 и options sdhci debug_quirks=1 что опять же так или иначе наталкивает на нехорошие мысли об acpi вообще и wmi в частности…

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

> Да в том то как раз и дело что ноут…
Тут уже я пасс.

Lumi ★★★★★ ()

Одну проблему

dmesg | grep ACPI
(cut)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMI: Excess arguments - needs 1, found 2 (20090903/nspredef-303)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMS: Excess arguments - needs 1, found 2 (20090903/nspredef-303)

решил На ответ натолкнуло вот это сообщение

Ну и окончательно все стало ясно после

Accessing MXM ACPI methods via WMI In order to allow access to the new MXM data from user mode and kernel softwareacross Windows*NT O/S’s the following headers shall be included in the graphicsadapter namespace and any other devices that contain MXM methods in order tofacilitate access via WMI. The GUID for WMI MXMX methods is:{F6CB5C3C-9CAE-4EBD-B577-931EA32A2CC0}The WMI GUIID for Notify event 0xD1{F28A9357-CF4B-4A1A-8893-BB1F58EEA1AF}For more details on using WMI to access ACPI methods refer to: http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx

init_6 ★★★★★ ()

Собственно сам примененый фикс

diff -u dsdt.dsl-old dsdt.dsl 
--- dsdt.dsl-old	2011-02-13 12:52:51.000000000 +0200
+++ dsdt.dsl	2011-02-13 12:28:39.693325415 +0200
@@ -1834,15 +1834,6 @@
                 Device (VGA)
                 {
                     Name (_ADR, Zero)
-                    Method (MXMI, 1, NotSerialized)
-                    {
-                        Return (0x21)
-                    }
-
-                    Method (MXMS, 1, NotSerialized)
-                    {
-                        Return (MXM2)
-                    }
 
                     Method (_DOS, 1, NotSerialized)
                     {
@@ -7762,37 +7753,6 @@
                             /* 0030 */    0xB2, 0xF0, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0x10, 
                             /* 0038 */    0x58, 0x4D, 0x01, 0x00
                         })
-                        Method (WMMX, 3, NotSerialized)
-                        {
-                            If (LGreaterEqual (SizeOf (Arg2), 0x04))
-                            {
-                                CreateDWordField (Arg2, Zero, FUNC)
-                                CreateDWordField (Arg2, 0x04, ARGS)
-                                If (LEqual (FUNC, 0x494D584D))
-                                {
-                                    Return (^^PCI0.PEGP.VGA.MXMI (ARGS))
-                                }
-                                Else
-                                {
-                                    If (LEqual (FUNC, 0x534D584D))
-                                    {
-                                        Return (^^PCI0.PEGP.VGA.MXMS (ARGS))
-                                    }
-                                    Else
-                                    {
-                                        If (LEqual (FUNC, 0x584D584D))
-                                        {
-                                            If (LGreaterEqual (SizeOf (Arg2), 0x08))
-                                            {
-                                                Return (One)
-                                            }
-                                        }
-                                    }
-                                }
-                            }
-
-                            Return (Zero)
-                        }
 
                         Name (WQXM, Buffer (0x029C)
                         {

И в новом ядре

dmesg | grep ACPI
[    0.000000]  BIOS-e820: 00000000bfd64000 - 00000000bfd9f000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bfde2000 - 00000000bfdff000 (ACPI data)
[    0.000000]  modified: 00000000bfd64000 - 00000000bfd9f000 (ACPI NVS)
[    0.000000]  modified: 00000000bfde2000 - 00000000bfdff000 (ACPI data)
[    0.000000] ACPI: RSDP 00000000000f7160 00024 (v02 PTLTD )
[    0.000000] ACPI: XSDT 00000000bfdf447d 0005C (v01 ACRSYS ACRPRDCT 06040000 INNA 00000000)
[    0.000000] ACPI: FACP 00000000bfde4000 000F4 (v03 INTEL  CRESTLNE 06040000 ALAN 00000001)
[    0.000000] ACPI: Override [DSDT-CANTIGA ], this is unsafe: tainting kernel
[    0.000000] ACPI: DSDT @ 0x00000000bfde5000 Table override, replaced with:
[    0.000000] ACPI: DSDT ffffffff81733d50 09FA2 (v02 Intel  CANTIGA  06040000 INTL 20100528)
[    0.000000] ACPI: FACS 00000000bfd9efc0 00040
[    0.000000] ACPI: HPET 00000000bfdfed86 00038 (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: MCFG 00000000bfdfedbe 0003C (v01 INTEL  CRESTLNE 06040000 LOHR 0000005A)
[    0.000000] ACPI: SLIC 00000000bfdfedfa 00176 (v01 ACRSYS ACRPRDCT 06040000 ANNI 00000001)
[    0.000000] ACPI: APIC 00000000bfdfef70 00068 (v01 PTLTD  ? APIC   06040000  LTP 00000000)
[    0.000000] ACPI: BOOT 00000000bfdfefd8 00028 (v01 PTLTD  $SBFTBL$ 06040000  LTP 00000001)
[    0.000000] ACPI: SSDT 00000000bfde3000 00655 (v01  PmRef    CpuPm 00003000 INTL 20050624)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000
[    0.006408] ACPI: Core revision 20090903
[    0.130178] ACPI: bus type pci registered
[    0.207822] ACPI: EC: Look up EC in DSDT
[    0.210808] ACPI: BIOS _OSI(Linux) query ignored
[    0.226060] ACPI: Interpreter enabled
[    0.226065] ACPI: (supports S0 S3 S4 S5)
[    0.226089] ACPI: Using IOAPIC for interrupt routing
[    0.239335] ACPI: EC: GPE = 0x17, I/O: command/status = 0x66, data = 0x62
[    0.240022] ACPI: No dock devices found.
[    0.240385] ACPI: PCI Root Bridge [PCI0] (0000:00)
[    0.249567] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.249709] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEGP._PRT]
[    0.249798] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P1._PRT]
[    0.249906] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.249973] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.250042] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP03._PRT]
[    0.250107] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP04._PRT]
[    0.250202] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP05._PRT]
[    0.263863] ACPI: PCI Interrupt Link [LNKA] (IRQs 10 *11)
[    0.263958] ACPI: PCI Interrupt Link [LNKB] (IRQs 10 *11)
[    0.264054] ACPI: PCI Interrupt Link [LNKC] (IRQs *10 11)
[    0.264145] ACPI: PCI Interrupt Link [LNKD] (IRQs *10 11)
[    0.264235] ACPI: PCI Interrupt Link [LNKE] (IRQs 10 *11)
[    0.264325] ACPI: PCI Interrupt Link [LNKF] (IRQs *10 11)
[    0.264414] ACPI: PCI Interrupt Link [LNKG] (IRQs 10 11) *0, disabled.
[    0.264505] ACPI: PCI Interrupt Link [LNKH] (IRQs *10 11)
[    0.264774] PCI: Using ACPI for IRQ routing
[    0.270808] pnp: PnP ACPI init
[    0.270842] ACPI: bus type pnp registered
[    0.272558] pnp: PnP ACPI: found 10 devices
[    0.272561] ACPI: ACPI bus type pnp unregistered
[    0.434973] ACPI: SSDT 00000000bfd1ac20 00265 (v01  PmRef  Cpu0Ist 00003000 INTL 20050624)
[    0.435542] ACPI: SSDT 00000000bfd18620 00549 (v01  PmRef  Cpu0Cst 00003001 INTL 20050624)
[    0.436978] ACPI: SSDT 00000000bfd19ca0 001CF (v01  PmRef    ApIst 00003000 INTL 20050624)
[    0.437382] ACPI: SSDT 00000000bfd19f20 0008D (v01  PmRef    ApCst 00003000 INTL 20050624)
[    8.142540] ACPI: AC Adapter [ADP1] (on-line)
[    8.151356] ACPI: Lid Switch [LID0]
[    8.151495] ACPI: Sleep Button [SLPB]
[    8.151584] ACPI: Power Button [PWRF]
[    8.202191] ACPI: Video Device [VGA] (multi-head: yes  rom: no  post: no)
[    8.204283] ACPI: Thermal Zone [TZS0] (69 C)
[    8.243666] ACPI: I/O resource 0000:00:1f.3 [0x1c00-0x1c1f] conflicts with ACPI region SMBI [0x1c00-0x1c0f]
[    8.243668] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[    8.340460] ACPI: Thermal Zone [TZS1] (70 C)
[    8.358716] ACPI: Battery Slot [BAT0] (battery present)
[    8.965375] HDA Intel 0000:00:1b.0: power state changed by ACPI to D0
[    8.965419] HDA Intel 0000:00:1b.0: power state changed by ACPI to D0

Как видим ворнинга больше нет.

init_6 ★★★★★ ()

Осталось понять чего бы вот с этим

ACPI: I/O resource 0000:00:1f.3 [0x1c00-0x1c1f] conflicts with ACPI region SMBI [0x1c00-0x1c0f]

вытворить

init_6 ★★★★★ ()
Ответ на: комментарий от init_6

Еще по поводу вот этого

dmesg | grep ACPI
(cut)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMI: Excess arguments - needs 1, found 2 (20090903/nspredef-303)
ACPI Warning for \_SB_.PCI0.PEGP.VGA_.MXMS: Excess arguments - needs 1, found 2 (20090903/nspredef-303)
Как оказалось если не поступать столь решительно и не удалять все к чертям а оставить как было… То Warning проявляется исключительно на «дровах» nvidia т.е. на nouveau этого варнинга нет.

Выходит дело в nvidia.

init_6 ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.