[英]Load linux kernel module at boot
我已經為一個研究項目編寫了一個內核模塊,該模塊是連接到Raspberry Pi的七個分段顯示器的驅動程序(我對內核開發還很陌生)。 我想永久安裝模塊並在編譯時在引導時加載它,因此我將install
目標添加到了我的Makefile
中,該Makefile
允許用戶直接編譯並安裝它。
我發現所有內核模塊都位於/lib/modules/<kernel version>/kernel
內的某個位置,所以我想我只需要將編譯后的模塊復制到一個子目錄中,並在modules.order
和modules.dep
列出該模塊。文件。 但是,這種方法行不通,並且由於我找不到該主題的任何資源,所以我有些絕望。
這是我的Makefile當前的樣子:
# All source files are inside the src directory
obj-m := src/sevenseg.o
all:
make -C /lib/modules/$(shell uname -r)/build EXTRA_CFLAGS=-I$(PWD)/src M=$(PWD) modules
mv src/sevenseg.ko .
install:
make -C /lib/modules/$(shell uname -r)/build EXTRA_CFLAGS=-I$(PWD)/src M=$(PWD) modules
mkdir -p /lib/modules/$(shell uname -r)/kernel/drivers/sevenseg
cp src/sevenseg.ko /lib/modules/$(shell uname -r)/kernel/drivers/sevenseg
echo "kernel/drivers/sevenseg/sevenseg.ko:" >> /lib/modules/$(shell uname -r)/modules.dep
echo "kernel/drivers/sevenseg/sevenseg.ko" >> /lib/modules/$(shell uname -r)/modules.order
insmod src/sevenseg.ko
make clean
clean:
rm -rf src
我如何告訴內核它應該在引導時加載模塊sevenseg.ko
?
tldr;
# echo 'my-module-name' >> /etc/modules
更長的解釋:
請查閱有關insmod
, modprobe
和modprobe.conf
的文檔。
這是一個不錯的教程: https : //www.cyberciti.biz/faq/linux-how-to-load-a-kernel-module-automatically-at-boot-time/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.