Você tentou usar o caminho completo /sbin/insmod e o caminho completo para helloworld.ko ?
Eu tenho uma regra udev bem simples, que é executada quando um USB é conectado à minha máquina Debian:
SUBSYSTEMS=="usb", KERNEL=="sd?", ACTION=="add", RUN+="/usr/local/bin/USB/t.sh \
%k"
Meu t.sh também é bastante simples e faz duas coisas:
udev.out para o Google Desktop foo.ko module no kernel com insmod foo.ko simples
Ou concretamente, t.sh é:
#!/bin/bash
echo 'Hello World!' >>"/home/salman/Desktop/udev.out"
insmod helloworld.ko
exit
Quando eu conecto meu USB, o udev.out é impresso corretamente na área de trabalho, mas a seguinte linha insmod helloworld.ko falha ao carregar o módulo no kernel.
Eu verifiquei com lsmod | grep helloworld , mas ele não mostra helloworld carregado no kernel.
Estou executando uma máquina Debian dentro do Virtual Box.
Você tentou usar o caminho completo /sbin/insmod e o caminho completo para helloworld.ko ?