Hi,

I'm debugging some problems that have arised when I upgraded the busybox 
and kernel versions of my system. Yesterday I struggled with a PATH 
problem in udev, and today I stumbled upon another PATH problem, this 
time with modprobe, which completely clobbers the module autoloading 
feature of the kernel.

When the kernel wants to load a module, it executes 
/proc/sys/kernel/modprobe, which by default points to /sbin/modprobe. 
The "real" modprobe does everything by itself (resolve dependencies and 
load modules), but busybox's modprobe makes external calls to insmod, 
relying on the PATH to find the insmod executable.

The problem is obvious: the kernel does not set up a PATH variable when 
calling /sbin/modprobe, and thus modprobe fails miserably.

I've done a quick fix by setting the absolute path of insmod and rmmod 
inside modprobe.c, but I'm not sure if this is the best solution.

On one hand, setting the absolute path breaks the freedom of the use to 
choose where to put his binaries.

On the other hand, we are trying to replicate the functionality of the 
"real" modprobe, and it does its work without using external binaries, 
thus with the "real" modprobe the user has no freedom to choose which 
insmod executable to use anyway.

Any suggestions?

Regards.

Nacho.


_______________________________________________
busybox mailing list
[email protected]
http://busybox.net/cgi-bin/mailman/listinfo/busybox

Reply via email to