usbmuxd broken in 11.4

Hi there everyone,

Did my 11.4 upgrade today, and so far things have been going pretty good, but I’m having a slight problem with my iPhone4 being “seen” correctly by my desktop environment, and I was hoping someone would be able to answer a question or two for me.

In the 11.4 RPM for usbmuxd, a udev rule is installed which controls the “mounting” and “unmounting” of the iOS device. The udev rule expects a certain username and group to be present, as it runs under that specfic username (but unfortunately the RPM doesn’t create the username and group, and neither are created at install time). This prevents iOS devices from being seen correctly by programs like banshee, amarok, etc.

Logging in as ‘root’ and spawning the ‘usbmuxd’ process as root works fine, but it doesn’t work so well for other non-root users.

Does anyone have any idea(s) as to what group, etc that the “usbmuxd” user should be in?

Once I get this working, I’d be happy to write up a FAQ for getting the iPhone working under openSUSE … .this is something that has been hit or miss for me with OS (and has worked pretty well with some other distros)…

Thanks…

In the 11.4 RPM for usbmuxd, a udev rule is installed which controls the “mounting” and “unmounting” of the iOS device. The udev rule expects a certain username and group to be present, as it runs under that specfic username (but unfortunately the RPM doesn’t create the username and group, and neither are created at install time).

Have you had a look at the particular udev rule to see what the pertinent group is?

To get a list of files installed for this package (including any udev rule)

rpm -ql usbmuxd

I’m using 11.3, but for reference, I get

/lib/udev/rules.d/85-usbmuxd.rules

However, my rule doesn’t set any group

cat /lib/udev/rules.d/85-usbmuxd.rules
# usbmuxd (iPhone "Apple Mobile Device" MUXer listening on /var/run/usbmuxd)

# Forces iPhone 1.0, 3G, 3GS, iPodTouch 1/2 and iPad to USB configuration 3 and run usbmuxd
ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="129[0-9a]", ENV{USBMUX_SUPPORTED}="1", ATTR{bConfigurationValue}!="$attr{bNumConfigurations}", ATTR{bConfigurationValue}="$attr{bNumConfigurations}", RUN+="/usr/sbin/usbmuxd -u"

# Exit usbmuxd when the last device is removed
ACTION=="remove", SUBSYSTEM=="usb", ENV{PRODUCT}=="5ac/129[0-9a]/*", ENV{INTERFACE}=="255/*", RUN+="/usr/sbin/usbmuxd -x"

How does yours compare? (Unfortunately I don’t have an iPhone or similar to test with so my advice can only be general here).

Re-opened. My mistake?

FWIW, RH bug reports:

https://bugzilla.redhat.com/show_bug.cgi?id=593494

https://bugzilla.redhat.com/show_bug.cgi?id=597320

Yeah, I caught those. The udev rule has a run command at the end “/usr/sbin/usbmuxd -u -U usbmux” so it’s trying to run the “usbmuxd” binary as user “usbmux”. Guess this was added at some point for security reasons.

I changed the udev rule to be like 11.3 and usbmuxd runs now … but now I’m having an issue with amarok. I’m getting further along …

I filed a bug report as well with Novell.

There will soon be an official update for 11.4 to fix this issue. For the meantime it is possible to upgrade usbmuxd from this repository.

I just installed 11.4, plugged in the Iphone 4 and nothing.
Next I loaded the libmobiledevice files and still nothing.
Now, changing my usbmux.rules to those listed for 11.3 does the trick. I mounted my iPhone and connected with with Banshee and F-Spot.
I just upgrade to Gnome 3.0 I don’t know if that has anything to do with it.
thanks for the tips!