Ubuntu – Playing iPhone (iOS10) music in Rhythmbox on Ubuntu 14.04

14.04gvfsiphonemountrhythmbox

I have been using Rhythmbox on Ubuntu 14.04 to play music from my iPhone for a while now. Sometimes I get the annoying "initialize your iPhone" dialog box, but I just cancel it, unmount and reconnect my phone, and the problem is solved.

Background: Getting things to work with iOS 10

Recently, I updated to iOS 10, and mounting the iPhone stopped working. I somehow fixed this by cloning libplist, libimobiledevice, libusbmuxd, usbmuxd, and ifuse [note: ifuse doesn't seem necessary if you use gvfs], checking out the master branch in each repo, and installing via

./autogen.sh
make
sudo checkinstall

so that the package versions and dependencies could be managed via dpkg.

For libimobiledevice I also did ./autogen.sh --disable-openssl so that I'd use GnuTLS instead.

Because I had originally installed most of these packages via apt-get, I installed libplist as the dpkg package libplist1, libimobiledevice as libimobiledevice4, and libusbmuxd as libusbmuxd2. I also did echo /usr/local/lib > /etc/ld.so.conf.d/libimobiledevice-libs.conf and some extra symlinking when programs complained that /usr/lib/libimobiledevice.so.4 and such were missing.

Getting gvfs to work

ifuse will now successfully mount the iPhone, but my actual goal is to get gvfs to detect and mount the phone so that it'll work with Rhythmbox. I may have needed to do additional symlinking to even get the gvfs-related programs to run, I forget.

If I naively try to plug in my phone at this point, I (with high probability) get the error message Message did not receive a reply (timeout by message bus). I have to run /usr/lib/gvfs-gvfs-afc-volume-monitor 3+ times until I get lucky enough for the phone to mount; this seems very wrong.

Running sudo usbmuxd -f -v spams me with messages like

New client on fd 19
Client 19 connection closed
Disconnecting client fd 19

over and over, plus an instance of Receive from client fd 19 failed: Connection reset by peer and Connection reset by device 4 (3->62078). Basically, I have no idea why mounting only works intermittently. Things seem to work more often when I run usbmuxd in the foreground with -f, but that may just be confirmation bias.

When I finally do get the phone to mount, Rhythmbox will start and display the "initialize your iPhone" dialog, with two problems: (1) it hangs for a long time while loading this dialog (trying to connect with phone, possibly, or maybe Rhythmbox is just ultra slow?) and (2) if I hit "cancel," I can no longer see the phone mounted on Rhythmbox. Before, after cancelling once, I could unmount and reconnect my phone and the dialog would no longer pop up, but this method is far less reliable because I can't reliably mount my phone! So after all this…

Questions

  1. Is there a "more correct" way that I should have gone about the installations from source?
  2. How do I get gvfs to reliably mount my phone on the first try?
  3. Should I stop using gvfs/rhythmbox and start using ifuse+something else?

Best Answer

You can play your iPhone's music by using your laptop/desktop speaker. To accomplish this, please follow the steps below:

  1. Ensure your Ubuntu's laptop/desktop Bluetooth is turned on.
  2. Turn on iPhone Bluetooth and pair with the Laptop/desktop.
  3. Once pairing done connect your iPhone with Ubuntu via Bluetooth.
  4. and play songs on iPhone and all your music buffer on your Ubuntu.
Related Question