Path-based kernel module blacklisting
George Notaras
gnot at g-loaded.eu
Mon Sep 21 14:02:21 EEST 2009
Papaioannou Giannis wrote:
> Quoting George Notaras <gnot at g-loaded.eu>:
>
> Για να μην σβήνεις στο ξεκάρφωτο
> find /lib/modules/$(uname -r)/kernel/drivers/usb/ -name \*.ko| sed
> 's%^.*/\(.*\)\.ko%blacklist \1%g' > /etc/modprobe.d/blacklist_all_usb
Με την ευκαιρία, να πω ότι καλό είναι, όταν θέλουμε να κάνουμε
πραγματικό blacklisting σε ένα module, δηλαδή αυτό να μην φορτώνεται όσο
πολύ κι αν το χρειάζεται κάποιο πρόγραμμα/service, καλό είναι να
χρησιμοποιούμε την εντολή "install" στο modprobe.conf, όπως παρακάτω:
install my_module /bin/true
Με αυτόν τον τρόπο, αντί να φορτωθεί το module, θα εκτελεστεί η
/bin/true, η οποία στην ουσία δεν κάτι τίποτα.
Σημείωση: αν και η χρήση της /bin/false θα φάνταζε πιο λογική, καθώς θα
σήμαινε ότι το φόρτωμα του module απέτυχε, στην πράξη δεν δούλεψε όταν
το δοκίμασα (αν θυμάμαι καλά).
Αν και στο man page modprobe.conf(5) δεν το γράφει πολύ αναλυτικά, η
εντολή "blacklist" σημαίνει πιο πολύ "ignore" παρά "blacklist" και
υπάρχει κυρίως για να μπορούν να αγνοούνται modules ή aliases σε
περιπτώσεις όπου η ίδια συσκευή υποστηρίζεται από δύο ή περισσότερα
modules. Αν η συσκευή υποστηρίζεται μόνο από ένα module, τότε το αυτό θα
φορτωθεί, παρόλο που είναι blacklisted. Γι' αυτό και μερικές φορές το
"blacklist my_module" δείχνει να μην δουλεύει. Δουλεύει, αλλά όχι όπως
θα περίμενε κανείς.
Οπότε θα μου επιτρέψεις να κάνω μια αλλαγή στο μακρυνάρι (το οποίο btw
είναι άψογο):
find /lib/modules/$(uname -r)/kernel/drivers/usb/ -name \*.ko| sed
's%^.*/\(.*\)\.ko%install \1 /bin/true%g' >
/etc/modprobe.d/blacklist_all_usb
More information about the Linux-greek-users
mailing list