2013-06-22 12 views
5

Piszę ładowalny moduł jądra i próbuję go przetestować. Po włożeniu go próbowałem usunąć, używając polecenia rmmod xxx, ale pojawia się komunikat o błędzie z informacją, że module xxx is in use i moduł utknął i nie mogę go usunąć. Masz pomysł, jak usunąć moduł bez ponownego uruchamiania całego komputera? (Linux Kernel v 3.5.0.)Nie można usunąć ładowalnego modułu jądra.

Uwaga: rmmod -f drukuje Error: device or resource busy

+0

Może 'rmmod -f'? –

+0

'rmmod -f' nie działa, drukuje' BŁĄD: urządzenie lub zasób zajęty' –

+2

Następnie uruchom ponownie. (Pomyśl o graniu z jądrem w maszynie wirtualnej, a nie o głównym hoście.) Ponowne uruchomienie nie jest wtedy problemem.) – Mat

Odpowiedz

8

Dzieje się tak tylko dla mnie, gdy nie jest to błąd w moim kierowcą, który jest przyczyną kodu w module do paniki lub awarii w jakiś sposób . Z mojego doświadczenia wynika, że ​​ponowne uruchomienie jest jedynym możliwym kursem.

Jak powiedziałem, jądro zwykle panikuje więc powinieneś sprawdzić dmesg po włożeniu go czy działa ci aplikację, aby ją wykonywać. Nie jestem pewien, ale może się zdarzyć, że jeśli sterownik nie zwolni muteksu, takie zachowanie również się wydarzy.

1

Sprawdź, czy funkcja module_exit jest właściwa. Być może będziesz musiał skompilować jądro, aby "usunąć moduł bez ponownego uruchamiania całego komputera" za pomocą MODULE_FORCE_UNLOAD = yes.

Powiązane problemy