Saya mencoba untuk mencegah manajer modem dari berjalan ketika saya pasang ponsel saya ke port USB.
Saya telah mencoba menambahkan aturan khusus dengan udev, tetapi aturan khusus saya tampaknya diabaikan. Saya membuat file /etc/udev/rules.d/99-mm-usb-device-blacklist.rules
yang berisi
# LG Phone
ATTRS{idVendor}=="1004", ENV{ID_MM_DEVICE_IGNORE}="1"
Namun ketika saya mencolokkan telepon dan memeriksa dmesg, inilah yang saya dapatkan:
[ 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
Saya juga mencoba mengedit /lib/udev/rules.dev/77-mm-usb-device-blacklist.rules
tetapi ini tidak berhasil. Apa yang saya lewatkan? Apa yang akan menjadi langkah membantu dalam men-debug ini?
Pembaruan: Menjalankan udevadm info --export-db
menunjukkan aturan udev sedang diperbarui. Output yang relevan adalah:
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
Jadi manajer modem harus mengabaikan perangkat. Namun komputer saya terus mencoba menginisialisasi jaringan yang terhubung melalui telepon saya setiap kali saya tancapkan ke port USB. Apakah ada program lain yang diluncurkan udev?
sumber
ID_MM_CANDIDATE
tidak muncul dalam output perangkat USB, tetapi ada entri terpisah dalam output database untuk perangkat TTY, dan ini memiliki keduanyaID_MM_CANDIDATE=1
danID_MM_DEVICE_IGNORE=1
. Log debug Manajer Modem menunjukkan bahwa ia memang sedang menyelidiki perangkat.Jawaban:
Meskipun mungkin ada cara untuk melakukan hal ini dengan
udev
, saya menemukan solusi kerja yang lebih sederhana di AskUbuntu ini pertanyaan .Untuk meringkas, Anda dapat memberi tahu Network Manager untuk tidak mengelola perangkat tertentu dengan menambahkan baris ke file .conf-nya.
Pertama, temukan alamat mac ponsel Anda. Jalankan
dmesg
dari terminal setelah Anda menghubungkannya; salah satu hasil cetak harus memiliki mac. Garis untuk saya adalah:Selanjutnya, buka
/etc/NetworkManager/NetworkManager.conf
dengan hak istimewa pengguna super, dan tambahkan mac ponsel Anda sebagai perangkat yang tidak dikelola. Ini milik sayaNetworkManager.conf
; Saya menambahkan dua baris terakhir.sumber
Modem Manager dapat dikonfigurasi untuk menggunakan kebijakan filter yang berbeda , dan tag udev seperti
ID_MM_DEVICE_IGNORE
tidak berpengaruh di bawahstrict
kebijakan filter.Anda dapat menentukan kebijakan yang digunakan Modem Manager di sistem Anda dengan melihat statusnya:
Ini juga menunjukkan bahwa file layanan yang relevan adalah
/lib/systemd/system/ModemManager.service
. Kami dapat mengedit file ini dengan berbagai cara untuk menonaktifkan probing perangkat tertentu.Untuk menggunakan kebijakan lain yang merujuk pada aturan blacklist udev, kita dapat mengubah perintah di layanan:
Pilihannya adalah
default
(cukup gunakan aturan daftar hitam) atauparanoid
(sepertistrict
tetapi juga gunakan aturan daftar hitam). The dokumentasi menyebutkan ini tidak dianjurkan sebagai dukungan untuk aturan daftar hitam dapat usang di masa depan.Pilihan lain adalah memfilter kelas perangkat menggunakan salah satu dari beberapa variabel lingkungan spesifik-TTY . Ini dapat dicapai dengan menambahkan baris ke
[Service]
bagian file layanan. Misalnya, untuk melarang menyelidik perangkat ACM TTY:Setelah mengubah file layanan, muat ulang
systemctl
konfigurasi dan mulai kembali ModemManager:Untuk keperluan debugging, mungkin berguna untuk menonton log manajer modem saat menghubungkan perangkat Anda. Untuk mengaktifkan debug logging, jalankan:
Untuk menonton pesan log filter, jalankan:
Sekarang ketika Anda menghubungkan perangkat Anda, Anda akan melihat garis seperti:
Untuk mengembalikan logging ModemManager ke kondisi sebelumnya, jalankan:
sumber
(Hanya demi ilmu pengetahuan, karena Anda sudah menyelesaikan masalah Anda ...)
udev membaca / menjalankan aturannya dalam urutan abjad [1].
Ini bisa berarti bahwa pengaturan Anda harus ditimpa menjadi NetworkManager, itu aturan Anda tidak berguna.
Jika Anda mengubah nama aturan Anda dari
99-
ke99999-
apakah perubahan ini membantu Anda?[1] /unix/204979/why-do-the-rules-in-udev-rules-d-have-numbers-in-front-of-mereka
sumber
Ini adalah solusi bantu saya untuk ModemManager 1.10.0 (Ubuntu 18.04)
ModemManager -V
Anda dapat mempelajari lebih lanjut: Tag udev umum
Buat file
/etc/udev/rules.d/49-stm32.rules
dan tambahkan ini:Setelah menyimpan file dan jalankan:
sudo udevadm control --reload-rules
dan (mungkin itu tidak perlu):
sudo systemctl restart ModemManager.service
Setelah menghubungkan kembali perangkat USB (tarik secara fisik dan tarik ke dalam port USB) dan nikmati.
sumber