as regras do udev parecem ignoradas; não pode impedir que o gerenciador de modem capture o dispositivo

6

Estou tentando impedir que o gerenciador de modem seja executado quando conecto meu celular a uma porta USB.

Eu tentei adicionar uma regra personalizada com o udev, mas minhas regras personalizadas parecem ignoradas. Eu criei um arquivo /etc/udev/rules.d/99-mm-usb-device-blacklist.rules que contém

# LG Phone
ATTRS{idVendor}=="1004", ENV{ID_MM_DEVICE_IGNORE}="1"

E, no entanto, quando eu conecto o telefone e verifico o dmesg, é isso que eu recebo:

[ 1809.761940] usb 3-1: new high-speed USB device number 11 using xhci_hcd
[ 1809.778662] usb 3-1: New USB device found, idVendor=1004, idProduct=61fc
[ 1809.778670] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1809.778674] usb 3-1: Product: B Project USB Device
[ 1809.778677] usb 3-1: Manufacturer: LG Electronics. Inc
[ 1809.778680] usb 3-1: SerialNumber: XXXXXXXXXXXXXXXXX
[ 1809.779501] cdc_acm 3-1:1.0: This device cannot do calls on its own. It is not a modem.
[ 1809.779584] cdc_acm 3-1:1.0: ttyACM0: USB ACM device
[ 1809.780899] cdc_ether 3-1:1.3 usb0: register 'cdc_ether' at usb-0000:00:14.0-1, CDC Ethernet Device, 6e:34:73:4f:68:4c
[ 1809.781454] scsi8 : usb-storage 3-1:1.5
[ 1809.807331] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 1809.816566] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 1809.816759] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready

Eu também tentei editar /lib/udev/rules.dev/77-mm-usb-device-blacklist.rules , mas isso também não funcionou. o que estou perdendo? Qual seria um passo útil para depurar isso?

Atualização: A execução de udevadm info --export-db mostra que a regra do udev está sendo atualizada. A saída relevante é:

P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7
N: bus/usb/002/012
E: BUSNUM=002
E: DEVNAME=/dev/bus/usb/002/012
E: DEVNUM=012
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.7
E: DEVTYPE=usb_device
E: DRIVER=usb
E: ID_BUS=usb
E: ID_MM_DEVICE_IGNORE=1
E: ID_MODEL=B_Project_USB_Device
E: ID_MODEL_ENC=B\x20Project\x20USB\x20Device
E: ID_MODEL_ID=61fc
E: ID_REVISION=0216
E: ID_SERIAL=LG_Electronics._Inc_B_Project_USB_Device_XXXXXXXXXXXXX
E: ID_SERIAL_SHORT=XXXXXXXXXXXX
E: ID_USB_INTERFACES=:020201:0a0000:ffffff:020600:080650:
E: ID_VENDOR=LG_Electronics._Inc
E: ID_VENDOR_ENC=LG\x20Electronics.\x20Inc
E: ID_VENDOR_ID=1004
E: MAJOR=189
E: MINOR=139
E: PRODUCT=1004/61fc/216
E: SUBSYSTEM=usb
E: TYPE=239/2/1
E: UDEV_LOG=7
E: USEC_INITIALIZED=5987581808

Portanto, o gerenciador de modem deve estar ignorando o dispositivo. E ainda meu computador continua tentando inicializar uma conexão de rede através do meu telefone sempre que eu ligá-lo à porta USB. Existe outro programa que o udev está lançando?

    
por superdesk 03.01.2014 / 04:37

1 resposta

1

Embora possa haver uma maneira de fazer isso com udev , eu encontrei uma solução de trabalho muito mais simples neste AskUbuntu pergunta .

Para resumir, você pode dizer ao Network Manager para não gerenciar certos dispositivos adicionando uma linha ao arquivo .conf.

Primeiro, encontre o endereço MAC do seu celular. Execute dmesg do terminal depois de conectá-lo; uma das impressões deve ter o mac. A linha para mim foi:

[ 4691.112016] cdc_ether 3-1:1.3 usb0: register 'cdc_ether' at usb-0000:00:14.0-1, CDC Ethernet Device, de:1a:28:c7:db:e6

Em seguida, abra /etc/NetworkManager/NetworkManager.conf com privilégios de superusuário e adicione o mac de seu telefone como um dispositivo não gerenciado. Este é o meu NetworkManager.conf ; Eu adicionei as duas últimas linhas.

[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=false

[keyfile]
unmanaged-devices=mac:de:1a:28:c7:db:e6
    
por superdesk 06.01.2014 / 17:25