LINUX.ORG.RU

kernel panic при закрытии крышки ноутбука


0

0

Когда закрываю крышку ноутбука, получаю kernel panic:

BUG: unable to handle kernel NULL pointer dereference at 0000000000000000

BUG: unable to handle kernel paging request at 0000000000030001

дальше бектрейс (иногда) и содержимое регистров

Конкретные адреса и функции всегда разные. Но всегда "unable to handle kernel NULL pointer dereference".

Происходит это всё на Debian Lenny (с последними апдейтами). Ядро дистрибутивное 2.6.25-2-amd64 SMP. Также пробовал собрать 2.6.26 -- тоже kernel panic, только сообщения другие. Ноутбук HP Compaq 6720s.

Сижу думаю как бы отладить это дело, выяснить в чём причина. Там уже видно будет -- или дистрибутив надо фиксить, или разработчикам ядра или acpid багрепорт писать.

Нашёл (кажется) скрипт, который acpid запускает, когда получает ивент про закрытие крышки. Думаю, что-то плохое наверное делает, поэтому паника. Вписал в тот скрипт "exit 0" в начало -- паника.

Остановил acpid вообще -- тоже паника.

В общем, не понимаю что именно приводит к панике. Неужели в самом ядре что-то так плохо реагирует на нажатие lid button? Тогда бы наверное lkml уже был бы переполнен багрепортами. А я поискал -- ничего подобного не нашёл.

anonymous

Учитывая, что тоже HP : у тебя, случайно, драйвер видео intel ? Есть впечатление, что он ломает acpi.

hexenlord
()

> BUG: unable to handle kernel NULL pointer dereference at 0000000000000000

Это -- или баг ядра, или кривая DSDT. Если у производителя есть более новая версия BIOS, стоит попробовать.

> Остановил acpid вообще -- тоже паника.

Можно ещё попробовать остановить dbus/hal и иже с ними.

> В общем, не понимаю что именно приводит к панике. Неужели в самом ядре что-то так плохо реагирует на нажатие lid button? Тогда бы наверное lkml уже был бы переполнен багрепортами.

Не факт. Если каждый вот так мнётся -- а сообщить ли, или может таки забить, то никакого переполнения не будет.

> А я поискал -- ничего подобного не нашёл.

Значит, таки пишите.

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

> Если у производителя есть более новая версия BIOS, стоит попробовать.

Обновил -- не помогло.

> Если каждый вот так мнётся -- а сообщить ли, или может таки забить, то никакого переполнения не будет.

Да как же не сообщить... Это происходит при каждом закрытии крышки. Чтобы перенести ноутбук приходится его выключать.

> Можно ещё попробовать остановить dbus/hal и иже с ними.

Загрузился в single-user mode, вообще ничего кроме шелла не стартавало -- всё равно паника.

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

Я повыключал многие ненужные вещи из дефолтного дебиановского конфига, собрал его с ядром 2.6.26, и больше не вижу паники.

Однако, у меня есть другой конфиг для 2.6.26, где паника всё-таки есть. Решил я отладить её, включил в этом кинфиге отладочную информацию (CONFIG_DEBUG_INFO=Y) -- и в ядре с отладочной информацией паники не наблюдается! Также выяснил, что если в этом же же глючном конфиге отключить SMP, то паники тоже нет.

Сейчас попробую скомпилировать снова без отладочной информации и попробую декодировать сообщение (в каком файле в какой строке ошибка).

anonymous
()
Ответ на: комментарий от baaba

Сегодня ночью бинарным поиском включения/выключения опций конфига выяснил, что виновата опция CONFIG_ACPI_VIDEO.  Сейчас готовлю более подробный багрепорт чтобы отправить в LKML.

[   43.269029] BUG: unable to handle kernel NULL pointer dereference at 0000000000000046
[   43.269206] IP: [<ffff88007db9b9d8>] 0xffff88007db9b9d8
[   43.269321] PGD 0 
[   43.269432] Oops: 0000 [1] SMP 
[   43.269589] CPU 1 
[   43.269691] Modules linked in: loop iTCO_wdt intel_agp sg sr_mod cdrom sd_mod ata_piix ata_generic ahci libata scsi_mod
[   43.270360] Pid: 0, comm: swapper Not tainted 2.6.27-rc1-3aug2008-3 #1
[   43.270423] RIP: 029f:[<0000000000000000>]  [<0000000000000000>] 0x0
[   43.270533] RSP: 0000:0000000000000800  EFLAGS: 00000000
[   43.270596] RAX: ffff88007f1b5b58 RBX: ffffffff805fda00 RCX: 000000017f1b5a10
[   43.270661] RDX: ffff88000101f480 RSI: 0000000000000000 RDI: ffff88000101f4f0
[   43.270725] RBP: ffffffff805fda00 R08: 000000027f1b5a10 R09: ffff88007f1b5b6c
[   43.270789] R10: ffff88007f1b5b40 R11: ffff8800010144f8 R12: 0000000000000008
[   43.270853] R13: ffffffff805fda00 R14: ffffffff805fda08 R15: ffffffff8022f18c
[   43.270918] FS:  0000000000000000(0000) GS:ffff88007f03fe88(0000) knlGS:0000000000000000
[   43.270994] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[   43.271056] CR2: 0000000000000046 CR3: 0000000000201000 CR4: 00000000000006e0
[   43.271120] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   43.271185] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[   43.271249] Process swapper (pid: 0, threadinfo ffff88007f0ba000, task ffff88007f0ac6b0)
[   43.271323] 
[   43.271380] RIP  [<0000000000000000>] 0x0
[   43.271487]  RSP <0000000000000800>
[   43.271546] CR2: 0000000000000046
[   43.273767] ---[ end trace 0cde237b1ec345ee ]---
[   43.273861] Kernel panic - not syncing: Attempted to kill the idle task!

Кто-нибудь может подсказать что я ещё могу сделать с таким oops'ом без бектрейса?  Ведь у разработчиков ядра тоже хрустальных шаров нет, эти голые адреса им вряд ли помогут.

Посмотрел я эти адреса в System.map и /proc/kallsyms -- их там нет (естественно я искал +/- число).

anonymous
()

Передавай привет foxcon-подобным мудакам, подсовывающим ОС из биоса кривой dsdt.

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