Unexpected behavior of usbmuxd+udev
I have installed Alpine Linux desktop (xorg+dwm) on a laptop (baremetal). After installing
libimobiledevice-progs packages, I get the following behavior:
- boot the system, (notice that usbmuxd was already running right after the boot) attach iPhone via USB and run
idevice_id -l, it does not list the device.
- kill usbmuxd process, reattach iPhone, a new instance of usbmuxd will automatically spin up. At this point run
idevice_id -land it lists the device.
So after the boot, I have to kill usbmuxd (once), and it detects one or more iPhone just fine until the next boot.
It seems like a timing problem that the udev rule runs usbmuxd process earlier at the point where it is expecting certain kernel module to be loaded, then usbmuxd does not reattempt to inspect the system and stays alive.
If someone has better insights what is going on or best place to fix it, please chime in. :)
ps - on systemd-based OS, usbmuxd uses service instead of the udev rule. Maybe we can ditch the udev rule and add openrc initd script for it to resolve this?