Hallo
Ich habe diese Regel geschrieben: [code] cat /etc/udev/rules.d/51-my-fairphone2.rules # my fairphone 2 SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", ATTR{idProduct}=="9039", GROUP="plugdev", ENV{adb_user}=="yes", RUN+="/home/md/Software/Linux/Maint_u_Skripte/Fairphone2/Desktop_2_Fairphone2_rsync.bash" [/code]
Darin steht [code] cat /home/md/Software/Linux/Maint_u_Skripte/Fairphone2/Desktop_2_Fairphone2_rsync.bash #!/bin/bash
ULBIN_EXECS=/usr/local/bin/execs.source if [ -f "$ULBIN_EXECS" ] ;then . "$ULBIN_EXECS" else echo "$0 $ULBIN_EXECS nicht gefunden" exit 200 fi
if [ -f "$LOG_FUNC" ] ; then . "$LOG_FUNC" else echo "$0 $LOG_FUNC nicht gefunden" exit 201 fi
open_log
if ! [ "${UID}" = 0 ] ; then echo "Do operate $0 as root exclusively" close_on_error fi
set -x set -v set +e ADB=/usr/bin/adb DESKTOP=/home/md/Schreibtisch/
set -u #o pipefail IFS=$'\n\t'
MYPHONE=/home/md/.myphone if [ -f "$MYPHONE" ] then . "$MYPHONE" else echo "Datei $MYPHONE nicht gefunden" close_on_error fi
if [ "$(lsusb -d "$VENDOR":"$PRODUCT" )" ] ; then echo "Fairphone2 found" echo "Fairphone / Menu / Einstellungen / Suche 'USB' / Dateiübertragung wählen" echo "Fairphone / Menu / Einstellungen / System / Erweitert / Entwickleroptionen / USB-Debugging / ON" sleep 1 if [ "$($ADB get-serialno)" != "$SERIAL" ] ; then echo "not your Phone" close_on_error fi else echo "Fairphone2 not connected" close_on_error fi
#adb shell am start -n com.package.name/com.package.name.ActivityName $ADB shell ps com.termux || \ $ADB shell am start -n com.termux/.HomeActivity
adb forward tcp:8022 tcp:8022
$RSYNC -e 'ssh -p 8022' --delete -av $DESKTOP user@127.0.0.1:/data/data/com.termux/files/home/storage/documents/
for DIR in DCIM/Camera Pictures Movies DCIM Screenshots ; do #$RSYNC -e 'ssh -p 8022' --delete -av user@127.0.0.1:/data/data/com.termux/files/home/storage/dcim/ /home/md/Sofortupload/DCIM/Camera/${DIR}/
$RSYNC -e 'ssh -p 8022' -av user@127.0.0.1:/data/data/com.termux/files/home/storage/${DIR@L} /home/md/Sofortupload/${DIR}/ done
$ADB shell -user user am pkill termux
close_log_exit exit 0 [/code]
ULBIN_EXECS=/usr/local/bin/execs.source stellen eine Menge shortcuts für bash bereit (auch $LOG_FUNC) und $LOG_FUNC stellt eine automatisierte log Umgebung bereit mit open_log, close_log und close_on_error
Problem : die udev regel wird anscheinend zweimal unmittelbar hintereinander aufgerufen so dass ich bei jeden Anstecken des fairphones zwei logs bekommen. [code] ls -tl insgesamt 340 -rw-r--r-- 1 root root 8859 25. Jul 13:03 Desktop_2_Fairphone2_rsync.log -rw-r--r-- 1 root root 2439 25. Jul 13:02 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:02:58 -rw-r--r-- 1 root root 30403 25. Jul 13:00 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:00:08 -rw-r--r-- 1 root root 30536 25. Jul 13:00 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:00:02 -rw-r--r-- 1 root root 30168 23. Jul 13:24 Desktop_2_Fairphone2_rsync.log.2026-07-23_13:24:40 -rw-r--r-- 1 root root 2451 23. Jul 13:24 Desktop_2_Fairphone2_rsync.log.2026-07-23_13:24:35 -rw-r--r-- 1 root root 30259 23. Jul 01:04 Desktop_2_Fairphone2_rsync.log.2026-07-23_01:04:27 -rw-r--r-- 1 root root 30317 23. Jul 01:04 Desktop_2_Fairphone2_rsync.log.2026-07-23_01:04:20 -rw-r--r-- 1 root root 34842 23. Jul 00:47 Desktop_2_Fairphone2_rsync.log.2026-07-23_00:47:03 -rw-r--r-- 1 root root 34899 23. Jul 00:46 Desktop_2_Fairphone2_rsync.log.2026-07-23_00:46:47 [/code]
[code] locate -i fairphone | grep rules /etc/udev/rules.d/51-my-fairphone2.rules /home/md/Hardware/Fairphone2/rules.txt [/code]
[code] /lib/udev/rules.d # grep -iA2 fairphone * 51-android.rules:# Fairphone 2 51-android.rules-SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", ENV{adb_user}="yes" 51-android.rules- 51-android.rules:# Fairphone 2 aka Qualcomm, Inc. 51-android.rules-SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="901d", ENV{adb_user}="yes" 51-android.rules- [/code]
Wie kann ich den Grund für den doppelten Aufruf der udev Regel erkennen und beseitigen?
Das werden zwei verschiedene Events sein, die beide auf die Regel passen. Bei USB Geräten können da mehrere feuern. Da kannst du zB mit ENV{DEVTYPE}=="usb_device" weiter einschränken.
Erich Minderlein wrote (at 2026-07-25 11:43 +0000):
Hallo
Ich habe diese Regel geschrieben: [code] cat /etc/udev/rules.d/51-my-fairphone2.rules # my fairphone 2 SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", ATTR{idProduct}=="9039", GROUP="plugdev", ENV{adb_user}=="yes", RUN+="/home/md/Software/Linux/Maint_u_Skripte/Fairphone2/Desktop_2_Fairphone2_rsync.bash" [/code]
Darin steht [code] cat /home/md/Software/Linux/Maint_u_Skripte/Fairphone2/Desktop_2_Fairphone2_rsync.bash #!/bin/bash
ULBIN_EXECS=/usr/local/bin/execs.source if [ -f "$ULBIN_EXECS" ] ;then . "$ULBIN_EXECS" else echo "$0 $ULBIN_EXECS nicht gefunden" exit 200 fi
if [ -f "$LOG_FUNC" ] ; then . "$LOG_FUNC" else echo "$0 $LOG_FUNC nicht gefunden" exit 201 fi
open_log
if ! [ "${UID}" = 0 ] ; then echo "Do operate $0 as root exclusively" close_on_error fi
set -x set -v set +e ADB=/usr/bin/adb DESKTOP=/home/md/Schreibtisch/
set -u #o pipefail IFS=$'\n\t'
MYPHONE=/home/md/.myphone if [ -f "$MYPHONE" ] then . "$MYPHONE" else echo "Datei $MYPHONE nicht gefunden" close_on_error fi
if [ "$(lsusb -d "$VENDOR":"$PRODUCT" )" ] ; then echo "Fairphone2 found" echo "Fairphone / Menu / Einstellungen / Suche 'USB' / Dateiübertragung wählen" echo "Fairphone / Menu / Einstellungen / System / Erweitert / Entwickleroptionen / USB-Debugging / ON" sleep 1 if [ "$($ADB get-serialno)" != "$SERIAL" ] ; then echo "not your Phone" close_on_error fi else echo "Fairphone2 not connected" close_on_error fi
#adb shell am start -n com.package.name/com.package.name.ActivityName $ADB shell ps com.termux || \ $ADB shell am start -n com.termux/.HomeActivity
adb forward tcp:8022 tcp:8022
$RSYNC -e 'ssh -p 8022' --delete -av $DESKTOP user@127.0.0.1:/data/data/com.termux/files/home/storage/documents/
for DIR in DCIM/Camera Pictures Movies DCIM Screenshots ; do #$RSYNC -e 'ssh -p 8022' --delete -av user@127.0.0.1:/data/data/com.termux/files/home/storage/dcim/ /home/md/Sofortupload/DCIM/Camera/${DIR}/
$RSYNC -e 'ssh -p 8022' -avuser@127.0.0.1:/data/data/com.termux/files/home/storage/${DIR@L} /home/md/Sofortupload/${DIR}/ done
$ADB shell -user user am pkill termux
close_log_exit exit 0 [/code]
ULBIN_EXECS=/usr/local/bin/execs.source stellen eine Menge shortcuts für bash bereit (auch $LOG_FUNC) und $LOG_FUNC stellt eine automatisierte log Umgebung bereit mit open_log, close_log und close_on_error
Problem : die udev regel wird anscheinend zweimal unmittelbar hintereinander aufgerufen so dass ich bei jeden Anstecken des fairphones zwei logs bekommen. [code] ls -tl insgesamt 340 -rw-r--r-- 1 root root 8859 25. Jul 13:03 Desktop_2_Fairphone2_rsync.log -rw-r--r-- 1 root root 2439 25. Jul 13:02 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:02:58 -rw-r--r-- 1 root root 30403 25. Jul 13:00 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:00:08 -rw-r--r-- 1 root root 30536 25. Jul 13:00 Desktop_2_Fairphone2_rsync.log.2026-07-25_13:00:02 -rw-r--r-- 1 root root 30168 23. Jul 13:24 Desktop_2_Fairphone2_rsync.log.2026-07-23_13:24:40 -rw-r--r-- 1 root root 2451 23. Jul 13:24 Desktop_2_Fairphone2_rsync.log.2026-07-23_13:24:35 -rw-r--r-- 1 root root 30259 23. Jul 01:04 Desktop_2_Fairphone2_rsync.log.2026-07-23_01:04:27 -rw-r--r-- 1 root root 30317 23. Jul 01:04 Desktop_2_Fairphone2_rsync.log.2026-07-23_01:04:20 -rw-r--r-- 1 root root 34842 23. Jul 00:47 Desktop_2_Fairphone2_rsync.log.2026-07-23_00:47:03 -rw-r--r-- 1 root root 34899 23. Jul 00:46 Desktop_2_Fairphone2_rsync.log.2026-07-23_00:46:47 [/code]
[code] locate -i fairphone | grep rules /etc/udev/rules.d/51-my-fairphone2.rules /home/md/Hardware/Fairphone2/rules.txt [/code]
[code] /lib/udev/rules.d # grep -iA2 fairphone * 51-android.rules:# Fairphone 2 51-android.rules-SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", ENV{adb_user}="yes" 51-android.rules- 51-android.rules:# Fairphone 2 aka Qualcomm, Inc. 51-android.rules-SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="901d", ENV{adb_user}="yes" 51-android.rules- [/code]
Wie kann ich den Grund für den doppelten Aufruf der udev Regel erkennen und beseitigen?
-- mit freundlichen Grüßen with the beste regards
cordialement
Erich |/|inderlei||
https://www.theregister.com/2024/06/28/windows_insecure_by_design/
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=958390
Sorglos-Software ist halt immer auch Hilflos-Software. https://european-alternatives.eu/
Hallo,
On 2026-07-26 13:00, Holger Klawitter wrote:
Das werden zwei verschiedene Events sein, die beide auf die Regel passen. Bei USB Geräten können da mehrere feuern. Da kannst du zB mit ENV{DEVTYPE}=="usb_device" weiter einschränken.
mit
udevadm monitor
kannst Du mitloggen, welche udev-Events feuern. Das sollte auch beim Einschränken helfen.
Liebe Grüße Uwe
Hallo
Das Anlegen eines lock files hat keine Besserung gebracht, da die Aufrufe des /etc/udev/rules.d/51-my-fairphone2.rules hintereinander erfolgen, d.h. das erste log-Protokoll wird geschlossen, bevor das 2. log-protocol geöffnet wird.
Jedoch konnte ich feststellen, dass mit den Stecken des fairphone2 2 verschiedene devices angelegt werden
udevadm monitor : calling: monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent
KERNEL[687038.987918] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) KERNEL[687038.991273] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb) KERNEL[687038.991996] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1 (usb) KERNEL[687038.992149] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) UDEV [687040.456221] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) UDEV [687040.458365] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb) UDEV [687040.461318] add /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1 (usb) UDEV [687041.730823] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) ^C#
ls -dl /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.? drwxr-xr-x 7 root root 0 28. Jul 14:34 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 drwxr-xr-x 6 root root 0 28. Jul 14:34 /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1
Wenn ich das FP2 abziehe, werden beide devices wider entfernt. Die obige Regel in /etc/ passt also auf beide devices. nach abziehen des Apparates von USB: root@thinkstation ~ # ls -dl /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.? zsh: no matches found: /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.?
der Kernel ist der Täter. 1!!!elf!einhundertelf! Der Kernel führt jeweils nur eine Entdeckung aus
grep -E 'Product: FP2' kern.log ... 2026-07-28T13:36:17.833649+02:00 thinkstation kernel: [687032.261650] usb 1-4: Product: FP2 2026-07-28T14:02:13.865692+02:00 thinkstation kernel: [688588.277372] usb 1-4: Product: FP2 2026-07-28T14:24:56.321685+02:00 thinkstation kernel: [689950.717688] usb 1-4: Product: FP2 2026-07-28T14:34:19.641643+02:00 thinkstation kernel: [690514.031205] usb 1-4: Product: FP2
und legt dann zwei usb-devices an.siehe oben.
diff -swBy -W 211 --suppress-common-lines /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/interface /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1/interface MTP | ADB Interface
Jedes dieser Ereignisse triggert anscheinend meine Regel. Da ich für mein Synchronisieren von android Fairphone2 adb brauche, sollte beim Einrichten des MTP meine Regel nicht triggern.
Eventuell noch einen Filter in die regel /etc/udev/rules.d/51-my-fairphone2.rules einbauen ?
Am 27.07.26 um 18:42 schrieb Uwe Kleine-König:
Hallo,
On 2026-07-26 13:00, Holger Klawitter wrote:
Das werden zwei verschiedene Events sein, die beide auf die Regel passen. Bei USB Geräten können da mehrere feuern. Da kannst du zB mit ENV{DEVTYPE}=="usb_device" weiter einschränken.
mit
udevadm monitor
kannst Du mitloggen, welche udev-Events feuern. Das sollte auch beim Einschränken helfen.
Liebe Grüße Uwe
Hallo
die Lösung war eine Änderung der Regel [code] cat /etc/udev/rules.d/51-my-fairphone2.rules # my fairphone 2 SUBSYSTEM=="usb", ATTR{idVendor}=="2ae5", ATTR{idProduct}=="9039", ATTRS{serial}=="3477fc2b", ACTION=="add", GROUP="plugdev", ENV{adb_user}=="yes", ENV{DEVTYPE}=="usb_device", RUN+="/home/md/Software/Linux/Maint_u_Skripte/Fairphone2/Desktop_2_Fairphone2_rsync.bash" [/code] Es wurde ACTION=="add" hinzugefügt, so dass jetzt nur noch ein Aufruf stattfindet.
Am 28.07.26 um 15:54 schrieb Erich Minderlein:
Hallo
Das Anlegen eines lock files hat keine Besserung gebracht, da die Aufrufe des /etc/udev/rules.d/51-my-fairphone2.rules hintereinander erfolgen, d.h. das erste log-Protokoll wird geschlossen, bevor das 2. log-protocol geöffnet wird.
Jedoch konnte ich feststellen, dass mit den Stecken des fairphone2 2 verschiedene devices angelegt werden
udevadm monitor : calling: monitor monitor will print the received events for: UDEV - the event which udev sends out after rule processing KERNEL - the kernel uevent
KERNEL[687038.987918] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) KERNEL[687038.991273] add /devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.0 (usb) KERNEL[687038.991996] add /devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.1 (usb) KERNEL[687038.992149] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) UDEV [687040.456221] add /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) UDEV [687040.458365] add /devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.0 (usb) UDEV [687040.461318] add /devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.1 (usb) UDEV [687041.730823] bind /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb) ^C#
ls -dl /sys/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.? drwxr-xr-x 7 root root 0 28. Jul 14:34 /sys/devices/ pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 drwxr-xr-x 6 root root 0 28. Jul 14:34 /sys/devices/ pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1
Wenn ich das FP2 abziehe, werden beide devices wider entfernt. Die obige Regel in /etc/ passt also auf beide devices. nach abziehen des Apparates von USB: root@thinkstation ~ # ls -dl /sys/devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.? zsh: no matches found: /sys/devices/pci0000:00/0000:00:14.0/ usb1/1-4/1-4:1.?
der Kernel ist der Täter. 1!!!elf!einhundertelf! Der Kernel führt jeweils nur eine Entdeckung aus
grep -E 'Product: FP2' kern.log ... 2026-07-28T13:36:17.833649+02:00 thinkstation kernel: [687032.261650] usb 1-4: Product: FP2 2026-07-28T14:02:13.865692+02:00 thinkstation kernel: [688588.277372] usb 1-4: Product: FP2 2026-07-28T14:24:56.321685+02:00 thinkstation kernel: [689950.717688] usb 1-4: Product: FP2 2026-07-28T14:34:19.641643+02:00 thinkstation kernel: [690514.031205] usb 1-4: Product: FP2
und legt dann zwei usb-devices an.siehe oben.
diff -swBy -W 211 --suppress-common-lines /sys/devices/ pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/interface /sys/devices/ pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.1/interface MTP | ADB Interface
Jedes dieser Ereignisse triggert anscheinend meine Regel. Da ich für mein Synchronisieren von android Fairphone2 adb brauche, sollte beim Einrichten des MTP meine Regel nicht triggern.
Eventuell noch einen Filter in die regel /etc/udev/rules.d/51-my-fairphone2.rules einbauen ?
Am 27.07.26 um 18:42 schrieb Uwe Kleine-König:
Hallo,
On 2026-07-26 13:00, Holger Klawitter wrote:
Das werden zwei verschiedene Events sein, die beide auf die Regel passen. Bei USB Geräten können da mehrere feuern. Da kannst du zB mit ENV{DEVTYPE}=="usb_device" weiter einschränken.
mit
udevadm monitor
kannst Du mitloggen, welche udev-Events feuern. Das sollte auch beim Einschränken helfen.
Liebe Grüße Uwe