2013年7月13日 星期六

Linux下新增與移除驅動程式/模組

模組相關指令:
depmod - generate modules.dep and map files
insmod - insert a module into the Linux Kernel
lsmod - show the status of modules in the Linux Kernel
modinfo - show information about a Linux Kernel module
modprobe - add and remove modules from the Linux Kernel
rmmod - remove a module from the Linux Kernel
通常Linux Kernel模組是存放在/lib/modules/$(uname -r) 目錄下,可以透下面指令查看:
$ ls /lib/modules/$(uname -r)
# 注意: 此目錄下會有一個modules.dep檔案,用於記載模組相依性訊息。
透下面指令列出所有裝置的驅動程式模組:
$ ls /lib/modules/$(uname -r)/kernel/drivers/
示範insmod手動載入一支Ethernet dongle driver的模組:
# 指令語法:insmod <module-file>
$ sudo insmod /lib/modules/$(uname -r)/kernel/drivers/net/usb/dm9601.ko
# 注意:使用insmod不會主動檢查與載入相依模組,建議使用modprobe。
示範modprobe手動載入一支Ethernet dongle driver的模組:
# 指令語法:modprobe <module-name>
$ sudo modprobe dm9601
# 注意:與insmod差別在於載入的模組有相依性存在時,modprobe會依據modules.dep主動載入相依模組。
移除一支Ethernet dongle driver的模組:
# 指令語法:rmmod <module-name>
$ sudo rmmod dm9601
# 或是,指令語法:modprobe -r <module-name>
$ sudo modprobe -r dm9601
查看模組相關資訊:
# 指令語法:modinfo <module-name>
$ modinfo dm9601
顯示目前Kernel載入的模組:
$ lsmod
其它參考網址: 
1. Click me.

沒有留言:

張貼留言