Я пытаюсь перезаписать определенные части в памяти ядра (Linux 2.6.31, Ubuntu 9.10) на виртуальной машине (используя VirtualBox) через модуль ядра. Всякий раз, когда я делаю это я получаю эту ошибкуНевозможно записать в память ядра через модуль ядра Linux (Ubuntu)
[27154,303726] Ошибка: не в состоянии обработать запрос ядра подкачки на 0xc05769bc
Мой код:
unsigned char *p = (unsigned char *) c05769bc;
p[1] = (addr & 0x000000ff);
p[2] = (addr & 0x0000ff00) >> 8;
p[3] = (addr & 0x00ff0000) >> 16;
p[4] = (addr & 0xff000000) >> 24;
Адрес прав и мой код записи. Я просто использую указатель для записи в память ядра. Мне было интересно, почему я получаю это сообщение, поскольку страница памяти этого адреса определенно находится в памяти.
Имеет ли это поведение какое-либо отношение к виртуальной машине? Или у последнего ядра есть встроенная защита? Надеюсь, кто-то подскажет мне кое-что.
Проблема, похоже, связана с Ubuntu, поскольку тот же код не сбой с использованием Debian.
TIA!
Willem
Debian в VM или автономном режиме? –
Debian также в VM (VirtualBox) – 2010-03-03 20:52:16