проблемы с hp pavilion dv5021

Здрасте,

Этот ноут имеет некоторые проблемы. Может кто нибудь из вас сталкивался с подобными и посоветует как можно их решить.

1) в DSDT не определена SLPB sleep кнопка. соответственно acpi событие по ее нажатии не посылается. Система определяет только SLPF кнопку, а такие обычно не шлют события. На клаве эта кнопка Fn-F5. Может мне кто подсоветует как мне оживить эту комбинацию в линуксе. Идеальный вариант это слегка дописать DSDT код. Но как? Просто описание ее я добавлял

Device (SLPB)
{
Name (_HID, EisaId ("PNP0C0E"))
}

и она появлялась, но естественно событие не слала. Может как то можно заставить (систему или биос) генерировать ее код? Хотя конечно acpi событие было бы идеальнее.

2) Эта проблема которая меня очень беспокоит: acpi возвращает температуру проца всегда 0 С. Я пытался найти корни в DSDT коде (ну как мог:) ) и мне кажется что их там нет.

Method (_TMP, 0, NotSerialized)
{
If (\_SB.PCI0.LPC0.ECOK ())
{
Multiply (\_SB.PCI0.LPC0.EC0.THEM, 0x0A, Local0)
Add (Local0, 0x0AAC, Local0)
Return (Local0)
}
Return (0x0BBA)
}

Поскольку 0x0BBA в кельвинах не есть 0 С, то значит проблема в _SB.PCI0.LPC0.EC0.THEM который всегда 0.
Мне кажется, что это может сказаться на работе ноута. Скажем, вдруг он перегревается, но я не знаю. Особенно при работе от батареи: кулеры срабатывают реже в целях экономии - все может быть, или нет?

Да, компиляция DSDT кода идет без ошибок.

Заранее спасибо.

Аватар пользователя apple_rom

1. Для начала было бы правильней снять и выложить биос, ибо качать двухметровый файл с сайта и потом выколупывать из него сам биос не шибко приятно. Дабы, собственно, лицезрить врага в лицо.
2. Как минимум, это касается самой DSDT - дабы реально глянуть, что там есть и чего нет.
3. Опять же - на каком чипсете построен этот, похоже из не самых старых, ноутбук. Короче, стандартно - "умный" вопрос, а телепатический модуль не прилагается.

Добавлено спустя 15 минут 11 секунд:

Device (\_SB.SLPB) 
{ 
        Name (_HID, EisaId ("PNP0C0E")) 
        // Просыпание
        Name (_PRW, Package(0x02){0x??, 0x??}) // Вопросы вычисляются в телепатическом модуле
        // Засыпание
        Method(_STA, 0x00, NotSerialized)
           {
               Return(0x0B)
           }
}

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

00:00.0 Host bridge: ATI Technologies Inc RS480 Host Bridge (rev 01)
Subsystem: Hewlett-Packard Company Unknown device 30ae
00:01.0 PCI bridge: ATI Technologies Inc RS480 PCI Bridge (prog-if 00 [Normal decode])
00:05.0 PCI bridge: ATI Technologies Inc Unknown device 5a37 (prog-if 00 [Normal decode])
00:13.0 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (prog-if 10 [OHCI])
Subsystem: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.1 USB Controller: ATI Technologies Inc IXP SB400 USB Host Controller (prog-if 10 [OHCI])
Subsystem: ATI Technologies Inc IXP SB400 USB Host Controller
00:13.2 USB Controller: ATI Technologies Inc IXP SB400 USB2 Host Controller (prog-if 20 [EHCI])
Subsystem: ATI Technologies Inc IXP SB400 USB2 Host Controller


00:14.0 SMBus: ATI Technologies Inc IXP SB400 SMBus Controller (rev 11)
Subsystem: Hewlett-Packard Company Unknown device 30ae
00:14.1 IDE interface: ATI Technologies Inc Standard Dual Channel PCI IDE Controller ATI (prog-if 8a [Master SecP PriP])
Subsystem: Hewlett-Packard Company Unknown device 30ae
00:14.3 ISA bridge: ATI Technologies Inc IXP SB400 PCI-ISA Bridge
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop-
00:14.4 PCI bridge: ATI Technologies Inc IXP SB400 PCI-PCI Bridge (prog-if 01 [Subtractive decode])
00:14.5 Multimedia audio controller: ATI Technologies Inc IXP SB400 AC'97 Audio Controller (rev 02)
Subsystem: Hewlett-Packard Company Unknown device 30ae
00:14.6 Modem: ATI Technologies Inc ATI SB400 - AC'97 Modem Controller (rev 02) (prog-if 00 [Generic])
Subsystem: Hewlett-Packard Company Unknown device 30ae
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc ATI Radeon XPRESS 200M 5955 (PCIE) (prog-if 00 [VGA])
Subsystem: Hewlett-Packard Company Unknown device 30ae
06:02.0 Network controller: Broadcom Corporation BCM4318 [AirForce One 54g] 802.11g Wireless LAN Controller (rev 02)
Subsystem: Hewlett-Packard Company Unknown device 1355
06:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Hewlett-Packard Company Unknown device 30a4

Редактировал apple_rom.
Отредактировать надо было лишнюю инфу, которая лишь зря забивает смысл темы.

Добавлено спустя 3 минуты 28 секунд:

я порыл еще в инете про dsdt и нашел что то типа вашего кода. но што же пошлет acpi сообщение? я думал, что надо вызвать где-то Notify (\_SB.SLPB, 0x80) для этого. и вопрос где? Или может я вообще не прав?

Аватар пользователя icbook

Что же так многословно и беспорядочно? SERR и PERR вряд ли помогут. Может, стоило бы подредактировать текст?

Аватар пользователя apple_rom

Верно, редактировать просьба самостоятельно.:)
В ноуте за обслуживание кнопок отвечает встроенный контроллер - Device(EC0).
Он выставляет в свою область биты состояний. После эти биты в \GPE и передают события ОС.
Итого, сначала определимся - _что_ "должна" делать кнопка?:)

я бы предпочел получить acpi сообщение типа button/sleep SLPB....
В итоге я бы переловил его в системе, так же как перелавливаю PWRB, только буду посылать ноут в sleep (системной операцией), а не в shutdown. Я и сейчас могу послать в sleep, но хочу настроить эту операцию на эту кнопку. На крайняк, меня бы устроило и генерация кода этой кнопкой, но acpi событие конечно лучше. И потом sleep состояний есть аж 4 у меня (S1, S3, S4, S5). Возможно даже S5 и глюкавое к примеру, S4 точно ок, поэтому хотелось бы посылать системой, ибо это состояние тогда всегда можно выбрать то, которое более стабильное.

И извините за бардак, вчера у меня просто были проблемы со связью у анитекса. Все притормаживало и я часто жал на "Отправить":)

Аватар пользователя icbook

apple_rom писал(-а):
В ноуте за обслуживание кнопок отвечает встроенный контроллер - Device(EC0).

Совершенно верно: EC - это Embedded Contoller типа Hitachi H8 (он же - Renesas), или Winbond W83L950D. М.Б. существует некий софт (понятно, что под MS) для этого? Или еще как...
Странно, однако, на HP такое должно работать без проблем...

все Fn кнопки работают, кроме sleеp: яркость панели, www, мультимедия кнопки и тд. Нужна просто обработка типа как POWER работает. Когда на нее жмешь, то она шлет acpi event.

Аватар пользователя icbook

Непросто сообразить, но если все события на клавиатуре обслуживаются Embedded-контроллером (а доказательство в том, что Fn работает), то кнопка Sleep может быть подключена мимо EC на системную плату. Там ведь тоже такая функциональность предусмотрена? Если так, то в этом направлении и искать придется...

P.S. Судя по следующему постингу - не придется:)

Аватар пользователя apple_rom

Попробуем рассуждать трезво.:)
Кнопки "живут" во встроенном контроллере. При приходе сообщения от него взводится бит в \GPE:

 Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_GPE, 0x1A)
...

Соответственно, чтобы генерировалось событие при нажатии на кнопку, нужно в области контроллера найти бит, который устанавливается при этом. Смотрим поля ERAM:
                    OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
                    Field (ERAM, ByteAcc, Lock, Preserve)
                    {
                                Offset (0x02),
                        MCER,   8,
                                Offset (0x10),
                        BMFN,   72,
                                Offset (0x20),
                            ,   4,
                        BMF1,   3,
                        BTY1,   1,
                        BST1,   8,
                        BRC1,   16,
                        BSTM,   16,
...

Находим область:
                        FDD,    1,
                        SBTN,   1, // <---
                        VIDO,   1,
                        VOLD,   1,
                        VOLU,   1,
                        MUTE,   1,
...

Можно предположить, что это и есть искомая SleepBuTtoN. /*А заодно следующие - VOLumeDown, VOLumeUp и т.д.*/

Теперь самое интересное - нужно к чему-то "прилепить" опрос этого поля, т.к. как соотнести генерацию _Qxx с ним я пока не знаю.:)
Могу временно предложить засунуть это прямо в \EC0._REG - интересно, что получится.

Я не совсем может понял, что добавить, но добавил следущее в _REG:

If (\_SB.PCI0.LPC0.EC0.SBTN)
{
       Notify(\_SB.SLPB, 0x80) // Notify OS of event
       Store (0x00, \_SB.PCI0.LPC0.EC0.SBTN)
}

и ничего не просходит.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей