LINUX.ORG.RU

Надо поймать багу в ядре


0

0

У меня есть блютус-гарнитура, уже почти год. Через неё я слушаю музыку с ноута. Помимо прослушивания музыки, голосовых звонков, *она умеет безотказно ронять систему* (если произвести с гарнитурой определенные действия, конечно).

Время и обновления не излечили эту багу.

Мне нужно узнать, что за пакеты по блютусу шлет гарнитура компу, перед тем, как система падает (только Alt+SysRq+B работает). У меня есть qemu, который почему-то не может загрузить 64-битное ядро, gdb и башка.

Как?

★★★★★

что за пакеты шлет система можно узнать с помощбю tcpdump, wireshark и пр.

anonymous
()

гм, попробуй собрать с отладочной информацией.

AFAIR, спомощью gdb можно отлаживать ядро (правда в память ядра писать ничего нельзя).

generatorglukoff ★★
()

прежде всего откомпилируете ядро с отладочной информацией(по максимуму), дабы оно интеллектуально срало в лог, если чего случиться. при появлении баги, перезагружаетесь и смотрите в логе дапм стека вызовов. а дальше kgdb вам в помощь.

asgard
()

Если сбой не аппаратный, то ИМХО, проще всего найти в ядре то место, где обрабатывается или складывается в буфер принятый пакет. И просто вывести его с помощью printk(). Потом включить вывод сообщений от ядра на экран (через Alt+SysRq+0) и "уронить" систему.

mky ★★★★★
()

AFAIR можно загрузить два ядра с помощью kexec (обычное и crash), поделить между ними память и сделать так, чтобы если падает первое, грузилось второе. Если сделать это правильно, то второе не затрёт память первого и можно будет с помощью kgdb изучать, что пошло не так.

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

Сдается мне что определенные пакеты тут совсем не причем. Ты бы бектрейс сюда положил и посмотрели где оно действительно падает и почему. А так это гадание на кофейной гуще...

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