1. 程式人生 > >驅動模組載入、解除安裝遇到的問題總結

驅動模組載入、解除安裝遇到的問題總結

1、rmmod: chdir(/lib/modules): No such file or directory 解決方法
1.建立 /lib/modules/$(uname -r) 空目錄就行了

2.使用如下原始碼生成rmmod命令,就可以沒有任何提示的解除安裝ko模組了[luther.gliethttp]
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <errno.h>

int main(int argc, char *argv[])
{
    const char *modname = argv[1];
    int ret = -1;
    int maxtry = 10;

    while (maxtry-- > 0) {
        ret = delete_module(modname, O_NONBLOCK | O_EXCL);//系統呼叫sys_delete_module

        if (ret < 0 && errno == EAGAIN)
            usleep(500000);
        else
            break;
    }

    if (ret != 0)
        printf("Unable to unload driver module /"%s/": %s/n",
             modname, strerror(errno));
}
3.把生成的命令複製到檔案系統
# arm-linux-gcc -static -o rmmod rmmod.c 
# arm-linux-strip -s rmmod
# cp rmmod /nfs/