Информация об изменениях

Сообщение Отладка ядра гостевой винды ARM64 под QEMU в WiDbg на хосте от 16.01.2023 22:17

Изменено 17.01.2023 9:57 Евгений Музыченко

Отладка ядра гостевой винды ARM64 под QEMU через в WiDbg на хосте
Нашел где-то на просторах интернета образ диска с установленной Win 10.0.17134.0 ARM64, гоняю его под QEMU
Автор: Евгений Музыченко
Дата: 05.01.23
. Для связи с хостом по сети прикрутил драйвер virtio
Автор: Евгений Музыченко
Дата: 11.01.23
, через него же гоняю удаленную отладку пользовательского кода в WinDbg.

Долго пытался настроить отладку ядра через device/serial и chardev/pipe, но QEMU явно заточен под линуксовые pipes — оно вроде и подключается после запуска к каналу, созданному WinDbg, но затем намертво виснет.

Поскольку оказалось, что в ARM64-версии винды нет драйверов E1000, RTL8139 и NE2000, я как-то даже и не пытался поднять отладку через kdnet.dll. А сегодня вдруг подумалось, что даже если MS специально и переделывал kdnet под типовые сетевые адаптеры ARM-планшетов, то там вполне могла остаться и реализация для E1000. Настроил, запустил — а оно возьми и заработай.

Так что, ежели кому вдруг будет надо — ставьте в параметры QEMU "-nic user,model=e1000", задавайте в hostip гостевой системы адрес, на котором слушает WinDbg, и вперед.
Отладка ядра гостевой винды ARM64 под QEMU в WiDbg на хосте
Нашел где-то на просторах интернета образ диска с установленной Win 10.0.17134.0 ARM64, гоняю его под QEMU
Автор: Евгений Музыченко
Дата: 05.01.23
. Для связи с хостом по сети прикрутил драйвер virtio
Автор: Евгений Музыченко
Дата: 11.01.23
, через него же гоняю удаленную отладку пользовательского кода в WinDbg.

Долго пытался настроить отладку ядра через device/serial и chardev/pipe, но QEMU явно заточен под линуксовые pipes — оно вроде и подключается после запуска к каналу, созданному WinDbg, но затем намертво виснет.

Поскольку оказалось, что в ARM64-версии винды нет драйверов E1000, RTL8139 и NE2000, я как-то даже и не пытался поднять отладку через kdnet.dll. А сегодня вдруг подумалось, что даже если MS специально и переделывал kdnet под типовые сетевые адаптеры ARM-планшетов, то там вполне могла остаться и реализация для E1000. Настроил, запустил — а оно возьми и заработай.

Так что, ежели кому вдруг будет надо — ставьте в параметры QEMU "-nic user,model=e1000", задавайте в hostip гостевой системы адрес, на котором слушает WinDbg, и вперед.