Modprobe載入驅動問題

2021-10-21 13:27:23 字數 2276 閱讀 3298

1、linux驅動動態載入的兩種方式

linux裝置驅動的動態載入可以使用insmod或modprobe兩種方式,insmod一次只能載入乙個特定的驅動,且需要驅動的絕對路徑,而modprobe則可以一次性將有依賴關係的驅動全部載入到核心,不需要驅動的具體位址。但需要將驅動拷貝到/lib/modules/$(uname -r)/目錄下。

示例:insmod ***.ko

modprobe ***.ko12

2、modprobe載入驅動時的問題

modprobe ***.ko

modprobe: can't change directory to '/lib/modules': no such file or directory12

3這裡提示找不到/lib/modules目錄,和前面介紹的一樣,它需要在指定目錄下載入ko。

解決:建立/lib/modules目錄:

mkdir /lib/modules

1重新執行上面的指令:

modprobe ***.ko

modprobe: can't change directory to '4.4.194': no such file or directory12

3這裡提示找不到4.4.194目錄,它對應linux核心的名稱,可以使用uname –r指令查詢。

uname -r

4.4.19412

3解決:建立4.4.194目錄

cd /lib/modules/

mkdir 4.4.19412

重新執行載入命令:

modprobe ***.ko

modprobe: can't open 'modules.dep': no such file or directory12

3這裡提示找不到modules.dep檔案。我們不需要手動建立該檔案,使用depmod指令即可自動生成。

depmod

-sh: depmod: command not found12

3這裡提示depmod指令找不到,這是因為預設情況下根檔案系統不支援該指令,需要我們自己新增。

depmod可以通過配置busybox來新增這個功能。但是我們是用buildroot自動完成根檔案系統的製作,busybox也隨之自動生成,這時和一般的配置就有所區別了:

1、進入buildroot目錄下,執行make menuconfig,發現第一欄有關於busybox的配置選項,如下圖所示:

cd buildroot/

make menuconfig12

可見,我們只需要配置完busybox後,儲存到這裡就可以了。在busybox的編譯目錄配置完成後,用busybox當前目錄的配置檔案.config替換掉package/busybox/busybox.config檔案就可以了。

2、找到output下的busybox目錄,我的是output/rockchip_rk1808/build/busybox-1.27.2/,進入目錄並執行make menuconfig進行busybox的配置:

cd output/rockchip_rk1808/build/busybox-1.27.2/

make menuconfig12

選中depmod,這裡選中modinfo是為了後面方便檢視ko的依賴關係,配置完成後,儲存退出,然後將當前目錄下的.config檔案覆蓋掉buildroot/package/busybox/busybox.config檔案,之後重新編譯buildroot,busybox將會自動更新並打包到檔案系統映象裡面。

3、測試depmod

將最新的檔案系統燒寫到開發板後,我們就可以使用depmod指令了。在沒有執行該指令時,在/lib/modules/ 4.4.194下是沒有任何檔案的,執行depmod命令後,該目錄下將會生成三個檔案:

modules.alias    modules.dep      modules.symbols

1我們再嘗試執行modprobe指令載入驅動:

modprobe ***.ko

modprobe: module x4412-beep.ko not found in modules.dep12

3這裡提示在modules.dep檔案中沒有發現我們載入的ko檔案,我們嘗試檢視一下modules.dep的內容:

cat modules.dep

1可見,裡面的內容為空。實際上,depmod指令會自動分析/lib/modules/$(uname -r)目錄下的可載入模組,並按照固定的格式填入modules.dep中。因此,我們可以先將需要載入的ko檔案拷貝到對應的目錄,再執行depmod指令就ok了。

————————————————

Qt載入MySql5 6驅動問題

作業系統 windows xp qt版本 qt opensource 4.8.5 開發軟體 vs2010 mysql的版本 5.6 安裝路徑 c program files mysql qt的安裝路徑 c qt 4.8.5 步驟一 安裝好vs2010,qt4.8.5,以及mysql5.6 詳細過程不...

mysql jdbc驅動問題

1 建立了乙個j2ee專案。2 將mysql的jdbc驅動拷貝到webcontent web inf lib 目錄下。3 在驅動jar包上點右鍵將jar包新增到構建路徑中。4 然後編寫與資料庫相關的 5 在實現類中新增main方法進行單元測試,各個方法都能正常執行。6 建立jsp頁面在其中建立物件呼...

QT SQLITE 驅動問題

在,使用sqlite時,發生,driver not load,錯誤。是因為,沒有找到,qsqlite 外掛程式的問題,在,qt學習中,會有一些功能以外掛程式的形式出現的,如,jpeg,mng,等。如果,大家有在使用qt creator 可以看看,它的目錄,其中就有,sqldrivers,imagef...