【发布时间】:2016-02-01 20:38:43
【问题描述】:
我有工作内核模块,我使用 insmod/modprobe 命令手动安装,正如通过阅读本书了解到的那样。但是我想知道是否有办法在编译后自动执行 - 那么基本上如何自动化 insmod/modprobe 命令?
我的 modprobe 也有一个依赖文件 thread_module.o
到目前为止我的制作文件
obj-m := wakeup_counter.o
obj-m += thread_module.o
$INSTALL_MOD_PATH = /lib/modules/2.6.32-5-amd64/
all:
make -C /lib/modules/2.6.32-5-amd64/build M=$(PWD) modules
install:
make $(INSTALL_MOD_PATH) =/build modules_install
clean:
make -C /lib/modules/2.6.32-5-amd64/build M=$(PWD) modules
运行后输出:make install
root@xyz:/home/xyz/Desktop/Drivers/symbols# make install
make -C /lib/modules/2.6.32-5-amd64/build M=/home/xyz/Desktop/Drivers/symbols modules_install
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-5-amd64'
INSTALL /home/xyz/Desktop/Drivers/symbols/thread_module.ko
INSTALL /home/xyz/Desktop/Drivers/symbols/wakeup_counter.ko
DEPMOD 2.6.32-5-amd64
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-5-amd64'
编辑:在通过 cmets 和 https://www.kernel.org/doc/Documentation/kbuild/modules.txt 之后,我尝试添加安装命令,但在构建路径中没有看到任何模块 - 同样在高级别上,我得到了我们在 cmd 提示符下输入的内容,我们在 Makefile 中输入,但如果有人可以举一个例子,它可以帮助我理解很好的基本案例来参考。
【问题讨论】:
-
安装软件通常由
make install命令执行。只需在您的 makefile 中创建“安装”目标并将所有需要的操作放在其配方中。 -
是的,然后打电话给
make … modules_install。 -
任何可以在命令外壳中运行的命令,都可以将该操作添加为 makefile 中目标的规则。
-
@Tsyvarev : 我试过了,但似乎我做错了——我已经用相关信息更新了帖子
-
@AndyShevchenko - 我试过你能看到我做错了什么
标签: makefile kernel linux-device-driver kernel-module insmod