Re: Schreibzugriff auf Module unter /lib/modules/
Hi,
On Sun, 01 Jul 2007 15:20:08 +0200 Wolf Wiegand wrote:
> Hallo,
>
> Simon Brandmair wrote:
>
>> ich habe ein bißchen mit inotify rumgespielt und darüber jetzt
>> festgestellt, dass z.B. beim Nachladen des Modules usbmouse schreibend auf
>> Module zugegriffen wird:
>> /lib/modules/2.6.18/kernel/drivers/usb/core/usbcore.ko CLOSE_WRITE,CLOSE
>
> Ja, ist hier auch so.
>
>> Mir fehlt es dabei etwas am Grundlagenwissen. Wieso muss beim Laden eines
>> Modules mit Schreibrechten darauf zugegriffen werden? Ich wäre um jeden
>> Hinweis dankbar.
>
> Offenbar ist dieser Code aus
> module-init-tools-3.3-pre11/build-tree/module-init-tools-3.3-pre11/modprobe.c
> dafür verantwortlich:
>
> static int lock_file(const char *filename)
> {
> int fd = open(filename, O_RDWR, 0);
>
> if (fd >= 0) {
> struct flock lock;
> lock.l_type = F_WRLCK;
> lock.l_whence = SEEK_SET;
> lock.l_start = 0;
> lock.l_len = 1;
> fcntl(fd, F_SETLKW, &lock);
> } else
> /* Read-only filesystem? There goes locking... */
> fd = open(filename, O_RDONLY, 0);
> return fd;
> }
>
> Wenn ich das richtig verstehe, wird ein Write Lock auf das Modul
> gesetzt, um zu verhindern, dass das Modul während des Ladens modifiziert
> wird. Dafür muss wohl die Datei R/W geöffnet werden.
Super. Vielen Dank für die Antwort. Leuchtet mir ein, jetzt blicke ich
wenigstens etwas besser durch. (Y)
Cheers,
Simon
Reply to: