Portál AbcLinuxu, 10. května 2025 05:36
usb 3-2: new full speed USB device using uhci_hcd and address 5 usb 3-2: configuration #1 chosen from 1 choice usb 3-2: USB disconnect, address 5Proto mě napadlo, že by se dalo přes dbus (asi) zařídit, že při odpojení bluetooth se spustí jeden skript a při připojení druhý, které zařídí to s wifi. Pravděpodobně bude ještě potřeba identifikovat to bluetooth zařízení
udev
em, ale já se v tom tolik nevyznám, proto Vás žádám o radu, klidně jiný řešení, důležitý je výsledek [smajchl@smajlik ~]$ udevinfo -a -n /dev/usbdev2.46_ep00 looking at device '/class/usb_endpoint/usbdev2.46_ep00': KERNEL=="usbdev2.46_ep00" SUBSYSTEM=="usb_endpoint" DRIVER=="" ATTR{dev}=="253:12" ATTR{bLength}=="07" ATTR{bEndpointAddress}=="00" ATTR{bmAttributes}=="00" ATTR{bInterval}=="00" ATTR{wMaxPacketSize}=="0040" ATTR{interval}=="0ms" ATTR{type}=="Control" ATTR{direction}=="both"Vytvořil jsem teda udev pravidlo pro připojení:
ACTION=="add", KERNEL=="usbdev2.*", SUBSYSTEM=="usb_endpoint", ATTR{dev}=="253:12", RUN+="/opt/moje_skripty/udev"to funguje, ale pravidlo pro odpojení:
ACTION=="remove", KERNEL=="usbdev2.*", SUBSYSTEM=="usb_endpoint", ATTR{dev}=="253:12", RUN+="/opt/moje_skripty/udev"nefunguje, pokud vynechám
ATTR{dev}=="253:12"
, tak to funguje (zmizí několik takových zařízení z /dev a několikrát se spustí skript)
Co je v tom odpojovacím pravilu špatně?
ACTION=="add", KERNEL=="usbdev2.[0-9]*_ep02", SUBSYSTEM=="usb_endpoint", ATTR{dev}=="253:15", RUN+="/opt/moje_skripty/udev" ACTION=="remove", KERNEL=="usbdev2.[0-9]*_ep02", SUBSYSTEM=="usb_endpoint", RUN+="/opt/moje_skripty/udev"v /dev je totiž po stisknutí tlačítka toto:
[smajchl@smajlik ~]$ ls /dev | grep usbdev usbdev1.1_ep00 usbdev1.1_ep81 usbdev1.5_ep00 usbdev1.5_ep81 usbdev2.119_ep00 usbdev2.119_ep02 usbdev2.119_ep03 usbdev2.119_ep04 usbdev2.119_ep81 usbdev2.119_ep82 usbdev2.119_ep83 usbdev2.119_ep84 usbdev2.1_ep00 usbdev2.1_ep81 usbdev3.1_ep00 usbdev3.1_ep81 usbdev4.1_ep00 usbdev4.1_ep81 usbdev5.1_ep00 usbdev5.1_ep81a usbdev2.119* je ten bluetooth modul, otázka zní, jestli je to "bezpečné" udělat detekci takhle jen na název v /dev, jestli nemůže nastat situace, kdy se takhle bude jmenovat něco jinýho než ten bluetooth modul???
ATTR{dev}
se od minule změnil, takže jsem ho dal pryč, to funguje, ale pokud je ve skriptu příkaz iwlist wlan0 scan
, tak nevrátí žádný řetězec, ani lspci
nic nevrátí (zkoušel jsem to přesměrováním do souboru), takže nenastavím wifinu, protože nejdřív testuju, jestli je síť k dispozici
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.