[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: autoloading of kernel modules in the udev area ?!

Bill Nottingham wrote:
Hans de Goede (j w r degoede hhs nl) said:
I'm basing my work on the i2c-tools specfile from Suse (one of the lm_sensors project lead works for Suse).

This specfile contains in %files:
%attr(660, root, root) %dev(c, 89, 0) /lib/udev/devices/i2c-0

This causes a /dev/i2c-0 char device to be effectively statically created. If I then also add the proper alias to modprobe.conf.dist, tools like i2cdump which need the i2c-dev kernel module loaded will automagically work.

Is this ok / the best way todo this. Also I will be adding i2c-0 to i2c-3 then, as there are many cases where there is more then 1 i2c bus (some motherboards have 2 on the board and many graphics / tv cards have i2c busses).

What are the modules that live behind that device?

The module / driver behind it us i2c-dev, which gives userspace access to one ore more i2c-busses. So the chain basically is:
-userspace app (i2cdump for example) -> i2c-dev -> i2c master driver (i2c-i801
 for example).

Notice that under normal circumstances userspace access to the i2c busses is not used, its main use is as a debugging / development technique.

I just thought the same problem exists for non hardware backed devices like loop. Then I noticed that loop.ko is loaded, removing it and then trying a mount -o loop will cause mount to fail because it cannot find /dev/loop#.

Who / what is responsible for loop.ko getting loaded by default, wouldn't it be better to use a similar trick with a static /dev entry and module autoloading, this would probably save both boottime and memory.

loop is created by /etc/udev/makedev.d/50-udev.nodes.


Interesting this seems to be different from adding entries under /lib/udev/devices, as as said on my system after dev the loop module gets loaded, while I assume its not used during boot. Wouldn't it be better (faster, less memory use) for the loop-devices to sit under /lib/udev/devices, so that no module gets loaded?



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]