mercoledì 2 luglio 2014

Linux ModemManager Blacklist


Linux ModemManager Blacklist

(OpenSuse 11.4)


Networkmanager ha un modulo che si chiama modem-manager che prova a configurare modem su qualsiasi USB-Serial compaia: [http://comments.gmane.org/gmane.linux.network.networkmanager.devel/17250]

Per escludere alcune porte ho creato /etc/udev/rules.d/77-mm-usb-device-blacklist.rules:

  # Disabilita alcuni dispositivi dall'essere rilevati e interrogati da modem-manager
  
  ACTION!="add|change", GOTO="mm_usb_device_blacklist_end"
  SUBSYSTEM!="tty", GOTO="mm_usb_device_blacklist_end"
  
  SUBSYSTEMS=="usb", GOTO="mm_usb_device_blacklist_vendorcheck"
  GOTO="mm_usb_device_blacklist_end"
  
  LABEL="mm_usb_device_blacklist_vendorcheck"
  
  SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDOCOXM", ENV{ID_MM_DEVICE_IGNORE}="1"
  SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDOCOXM", ENV{ID_MM_PORT_BLACKLISTED}="1"
  
  LABEL="mm_usb_device_blacklist_end"

Il file di esempio qui sopra aggiunge alla black list di dispositivi da non configurare l'adattatore USB con serial nr. "FTDOCOXM".
Per evitare che modemmanager faccia anche solo il probe iniziale delle porte, e' stato necessario compilare la patch che ho trovato qui: [http://bugzilla-attachments.gnome.org/attachment.cgi?id=154215]

copiare il plugin generic
  # cp ./plugins/.libs/libmm-plugin-generic.so /usr/lib/ModemManager

e aggiungere le regole come:
  SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTDOCOXM", ENV{ID_MM_PORT_BLACKLISTED}="1"

Per esempio, il probe di modemmanager mi attivava l'alimentazione dispositivo su di un programmatore LPC900icp

Per rilevare ATTRS{idVendor}, ATTRS{idProduct} e ATTRS{serial} dei dispositivi USB:
  # tail -f /var/log/messages

Nota: gli adattatori USB Serial con chipset Prolific NON sembrano avere serial nr, quindi non e' possibile utilizzare questo metodo. I chipset FTDI invece sono OK.

Nessun commento:

Posta un commento