我有一个非常简单的udev
规则,当 USB 插入我的 Debian 机器时就会执行:
SUBSYSTEMS=="usb", KERNEL=="sd?", ACTION=="add", RUN+="/usr/local/bin/USB/t.sh \
%k"
Myt.sh
也非常简单,它做两件事:
- 将 helloworld 打印
udev.out
到桌面 - 使用简单的方法将模块加载
foo.ko
到内核insmod foo.ko
或者具体来说,t.sh
是:
#!/bin/bash
echo 'Hello World!' >>"/home/salman/Desktop/udev.out"
insmod helloworld.ko
exit
当我插入 USB 时,udev.out
桌面上正确打印,但以下行insmod helloworld.ko
无法加载内核中的模块。
我检查过了lsmod | grep helloworld
,但它没有显示helloworld
已加载到内核。
我在 Virtual Box 中运行一台 Debian 机器。
答案1
您是否尝试过使用完整路径/sbin/insmod
和完整路径helloworld.ko
?