Die beiden Scripte sind OK so, aber diese Regel hat einen Fehler:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sr1", ATTRS{idVendor}=="057c", ATTRS{idProduct}=="62ff", RUN+="/sbin/modprobe -r sr1"
Der Ansatz ist so gesehen OK, aber es gibt kein Kernelmodul “sr1”, das ist in diesem Fall der Name des Gerätes (sog. “device node”).
Des Weiteren ist die Regel auf der “Wenn”-Seite so OK, aber stell Dir vor, es wäre noch ein weiteres CDROM-Laufwerk vorhanden, das könnte ein weiterer USB-Stick sein, der ebenfalls ein virtuelles CDROM enthält (wie z.B. diverse Surfsticks oder auch ein USB-Massenspeicher, da sind teilweise solche virtuellen CDROM-Laufwerke drauf), dann könnte dieses (je nach Reihenfolge des Anstöpselns) /dev/sr1 heissen (/dev/sr0 ist das eingebaute CD-Laufwerk) und der Fritz-Stick wäre z.B. /dev/sr2, dann greift die Regel so nicht mehr.
Deshalb würde es Sinn machen, die “Wenn-Seite” mit einem Platzhalter zu versehen, also so:
ACTION=="add", SUBSYSTEM=="block", KERNEL=="**sr***", ATTRS{idVendor}=="057c", ATTRS{idProduct}=="62ff",
Als Aktion soll das Gerät ignoriert werden und es sollen keine weiteren Regeln mehr zu diesem Gerät abgearbeitet werden.
Also zusammengefasst:
ACTION=="add", SUBSYSTEM=="block", KERNEL==**"sr***", ATTRS{idVendor}=="057c", ATTRS{idProduct}=="62ff", **OPTIONS+="ignore_device", OPTIONS+="last_rule"**
Damit wird dieses virtuelle CDROM zwar erkannt (daran kann man udev nicht hindern, würde auch keinen Sinn machen, denn udev muss ja wissen, was er damit zu tun hat), aber anschließend wird udev dafür sorgen, daß im System dieses Gerät nicht mehr vorhanden ist.
Wenn also dieses virtuelle CDROM-Laufwerk der Störenfried ist, welcher beim Herausziehen des Sticks dafür sorgt, daß ndiswrapper nicht schnell genug entladen werden kann, dann hätte man das verhindert, weil es nun dieses Gerät nicht mehr gibt.
Es war übrigens eine gute Idee hier auch "KERNEL==“sr*” zu setzen, dazu ein Beispiel aus meiner Hardwaresammlung.
Ich bin hier gerade über einen UMTS-Stick online, der auch so ein -unter Linux nutzloses- virtuelles CDROM-Laufwerk hat, allerdings ist zusätzlich auch ein Steckplatz für eine SD-Karte vorhanden.
Je nachdem, ob vorher schon einer meiner USB-Speichersticks angeschlossen ist, wird der Steckplatz für die SD-Karte als sdb, sdc usw. erkannt, das virtuelle CDROM als sr1.
Das dazugehörige “parent device” (der Surfstick) hat die USB-ID 12d1:1003, diese Regel würde beide Speichermedien “ausknipsen”,
ACTION=="add", SUBSYSTEM=="block", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003", OPTIONS+="ignore_device", OPTIONS+="last_rule"
denn es passt auf das CDROM und den Steckplatz für die SD-Karte (beides sind blockorientierte Geräte).
Sollte ich eines Tages eine SD-Karte in dem Stick “versenken”, gäbe es eine böse Überraschung, denn ich könnte damit nichts anfangen, deshalb sieht meine Regel so aus:
ACTION=="add", SUBSYSTEM=="block", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003", KERNEL=="sr*", OPTIONS+="ignore_device", OPTIONS+="last_rule"