#57 ✓resolved
Bernardo

ifuse fedora 11 issue

Reported by Bernardo | July 20th, 2009 @ 07:56 AM

Hi everybody,

did someone get ifuse working properly in fedora 11? I tried both the official packages and the fedora-provided packages but they doesn't work at all. I've made some search in the web but it seems that none has the same problem.

It seems ifuse doesen't work only with the last version of fedora. I tried it with fedora 10 and it works properly, the system mount two camera devices, then open a couple of error windows in which it says: "Unable to mont Apple Inc, iPhone 3G, Error initializing camera: -60 unable to lock the device." then it mounts correctly the /var/mobile directory of the iphone as a normal usb device.

In fedora 11 it works the same way, but the system open a third error windows in which it says: "Unable to mont Apple Inc, iPhone 3G, Error initializing camera:- 53 Could not claim the USB device." and show a third not mounted camera device.

I noticed also that usually SELinux prevent ifuse to mount the device in fedora 10, so if you want to use it you have to switch SELinux off, or to configure a custom policy for allow ifuse to mount devices. But when I plug in my phone in fedora 11 SELinux doesn't show any warning.
I think the guys at fedora changed something in the mounting-system of usb devices because the OS does not recognize any more any ipod as a portable player and when you plug a usb device in, the system doesn't show the actual name of the device (like "Mom's-disk" for example) but just an alpha-numeric string.

I made some other investigation on ifuse issue with fedora 11, this is the output of "tail -f /var/log/messages" when I plug my iphone:

Jul 20 09:43:08 bpp kernel: usb 1-1: new high speed USB device using ehci_hcd and address 5

Jul 20 09:43:08 bpp kernel: usb 1-1: New USB device found, idVendor=05ac, idProduct=1292

Jul 20 09:43:08 bpp kernel: usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

Jul 20 09:43:08 bpp kernel: usb 1-1: Product: iPhone

Jul 20 09:43:08 bpp kernel: usb 1-1: Manufacturer: Apple Inc.

Jul 20 09:43:08 bpp kernel: usb 1-1: SerialNumber: cc96da0f73b188ee33c59959104d1f1b723f2a89

Jul 20 09:43:08 bpp kernel: usb 1-1: configuration #1 chosen from 4 choices

Jul 20 09:43:08 bpp pcscd: hotplug_libhal.c:291:get_driver() libhal_device_get_property_int org.freedesktop.Hal.NoSuchDevice: -1220540312

Jul 20 09:43:17 bpp kernel: Marking TSC unstable due to TSC halts in idle

Jul 20 09:44:18 bpp kernel: ath5k phy0: unsupported jumbo

Hope this could help more than my explanation... :)

Thanks

Bernardo

Comments and changes to this ticket

  • Martin S.

    Martin S. July 20th, 2009 @ 09:47 AM

    • State changed from “new” to “open”
    • Tag changed from 11, bug, fedora, ifuse, issue, mount, selinux to 11, bug, fedora, ifuse, issue, mount, packages, selinux

    Thanks for your report.

    Some notes:
    * The errors you see are all caused by bad HAL fdi rules of libgphoto2, this is fixed upstream and has nothing to do with libiphone * Opening three errors means the device is setup correctly with three usb interfaces

    Need the following information from you:

    • Output of: rpm -q libiphone* ifuse libplist* usbmuxd
    • OS Version and Architecture: uname -a
    • Model and OS version of your iPhone
    • Did you try turning of SELinux?
  • Bernardo

    Bernardo July 20th, 2009 @ 10:12 AM

    • Assigned user set to “Martin S.”

    So, this is the output of "rpm -q libiphone ifuse libplist usbmuxd":

    [Be@bpp ~]$ rpm -q libiphone ifuse libplist usbmuxd package libiphone is not installed
    ifuse-0.9.1-8.2.i386
    package libplist
    is not installed
    usbmuxd-0.0.99-1.1.i386

    it says I've no libiphone and libplist installed but when I installed ifuse first, yum installed these components as dependecies.

    I run Fedora 11 on my machine, installed from the official dvd-iso released from the project. The result from "uname -a" is:

    [Be@bpp ~]$ uname -a Linux bpp.bpp 2.6.29.5-191.fc11.i686.PAE #1 SMP Tue Jun 16 23:19:53 EDT 2009 i686 i686 i386 GNU/Linux

    The iPhone I've tested ifuse with is a 16GB iPhone 3G with Jailbroken iPhone OS 3.0 on it. (I tested it with ifuse on Ubuntu Jaunty and Fedora 10 and it mounts fine)

    Yes I've made test with both SELinux switched on and off, it's currently switched off and it seems nothing happend when i plug the iPhone in.

    Many thanks for your help... :)

    Bernardo

  • Martin S.

    Martin S. July 20th, 2009 @ 11:45 AM

    Sorry, of course they are named libiphone0 and libplist0 but this ticketsystem removed my * (star) from the text. Anyways, it appears you are running the latest 0.9.1 releases.

    I'll be updating my packages with the latest version of all components soon and then you should try again.

    What you can try meanwhile is to force uninstall usbmuxd since actually spawning usbmuxd and using libiphone 0.9.1 might not work.
    Also try to check the output of "iphoneinfo" with the phone connected.

  • Bernardo

    Bernardo July 20th, 2009 @ 12:40 PM

    Don't know if this could be helpful, anyway I tryed again the rpm -q command with correct package names, and the output is:

    [Be@bpp ~]$ rpm -q libiphone0 ifuse libplist0 usbmuxd

    package libiphone0 is not installed

    ifuse-0.9.1-8.2.i386

    libplist0-0.13-1.1.i586

    usbmuxd-0.0.99-1.1.i386

    even if libiphone is correctly installed, I've just verified trough the "yum install libiphone" command, this is the output:

    [root@bpp ~]# yum install libiphone

    Loaded plugins: refresh-packagekit

    Setting up Install Process

    Package libiphone-0.9.1-2.fc11.i586 already installed and latest version
    Nothing to do

    I don't know if a .ifuse hidden folder (or something similar) should be present in my /home/Be or /root folder, but in both I can not find anything.
    Could the problem came from a change in the system folders tree introduced in fedora 11?

    Even remove usbmuxd doesn't change anything, I just tryed.

    Is "iphoneinfo" a command? Because it seems not to be present on my system, or there is a specific directory in which I'm supposed to move and execute it?

    Many Thanks

    Bernardo

  • Paul

    Paul July 20th, 2009 @ 07:37 PM

    Hi

    I too have been having similar problems with my new iPhone and ifuse. I have no history of using ifuse with previous versions of Fedora prior to 11.

    I can report that the result of the rpm query on my machine is:

    rpm -q libiphone ifuse libplist usbmux

    libiphone-0.9.1-2.fc11.x86_64
    ifuse-0.9.1-1.fc11.x86_64
    libplist-0.12-3.fc11.x86_64
    package usbmuxd is not installed

    I have noted that the problem appears to be concerned with hal. I have not managed to get any further but note:

    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: new high speed USB device using ehci_hcd and address 7
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: New USB device found, idVendor=05ac, idProduct=1294
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: Product: iPhone
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: Manufacturer: Apple Inc.
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: SerialNumber: .............................
    Jul 20 20:12:58 xxxxxx kernel: usb 1-8: configuration #1 chosen from 4 choices

    The last line looks like the probable cause and is the same message as Bernardo gets. Should I not be using configuration 3? NB my phone is a 3GS model, product id =1294 and I have added the line:

    SUBSYSTEM=="usb", ATTR{idVendor}=="05ac", ATTR{idProduct}=="1294", ACTION=="add", ATTR{bConfigurationValue}="3"

    to /etc/udev/rules.d/89-libiphone.rules after the rules for product ids 1290-3. But lshal tells me:

    udi = '/org/freedesktop/Hal/devices/usb_device....................................'
    info.bus = 'usb_device' (string) info.linux.driver = 'usb' (string) info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_0b_1' (string) info.product = 'iPhone' (string) info.subsystem = 'usb_device' (string) info.udi = '/org/freedesktop/Hal/devices/usb_device
    ....................................' (string) info.vendor = 'Apple, Inc.' (string) linux.device_file = '/dev/bus/usb/001/007' (string) linux.hotplug_type = 2 (0x2) (int) linux.subsystem = 'usb' (string) linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.1/usb1/1-8' (string) usb_device.bus_number = 1 (0x1) (int) usb_device.can_wake_up = false (bool) usb_device.configuration = 'PTP + Apple Mobile Device' (string) usb_device.configuration_value = 3 (0x3) (int) usb_device.device_class = 0 (0x0) (int) usb_device.device_protocol = 0 (0x0) (int) usb_device.device_revision_bcd = 1 (0x1) (int) usb_device.device_subclass = 0 (0x0) (int) usb_device.is_self_powered = true (bool) usb_device.linux.device_number = 7 (0x7) (int) usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.1/usb1/1-8' (string) usb_device.max_power = 500 (0x1f4) (int) usb_device.num_configurations = 4 (0x4) (int) usb_device.num_interfaces = 2 (0x2) (int) usb_device.num_ports = 0 (0x0) (int) usb_device.product = 'iPhone' (string) usb_device.product_id = 4756 (0x1294) (int) usb_device.serial = '....................................' (string) usb_device.speed = 480.0 (480) (double) usb_device.vendor = 'Apple, Inc.' (string) usb_device.vendor_id = 1452 (0x5ac) (int) usb_device.version = 2.0 (2) (double)

    Why am I picking up configuration 1 from 4 choices? The ifuse documentation tells me I must use configuration 3. hal is telling me I should use usb_device.configuration_value = 3. Where am I getting configuration 1 from?

    I had refrained from reporting this as I am not too sure if this is a Fedora problem or an ifuse problem. I was trying to work out which (and getting nowhere) when I saw this post. I hope my input helps.

    Thanks
    Paul

  • Martin S.

    Martin S. July 20th, 2009 @ 09:45 PM

    @Paul: The kernel message is alright. Also HAL reports that your configuration has been set to 3, which is correct aswell and shows that your udev rule works. You have 4 configurations as there is one new extra tethering interface on OS 3.0 devices and a new configuration to enable it. The latest rules in git (now moved into usbmuxd) already use the highest configuration available, thus 4 in this case.

    The issue must be elsewhere. What happens if you try to mount the device manually?

    Please try to run "sudo /sbin/mount.fuse.ifuse ignored /mnt", post the output here and check at /mnt if it has successfully mounted your device.

  • Paul

    Paul July 21st, 2009 @ 06:27 PM

    Martin thanks for your help. I have tried various mount command variations and all result in the same messages.

    The output is:

    [root]# /sbin/mount.fuse.ifuse ignored /mnt
    No iPhone found, is it connected?
    If it is make sure that your user has permissions to access the raw usb device.
    If you're still having issues try unplugging the device and reconnecting it.
    [root]#
    

    Just to let you know I have installed some updates today so now:

    [root]# rpm -q libiphone ifuse libplist usbmuxd
    libiphone-0.9.1-2.fc11.x86_64
    ifuse-0.9.1-8.4.x86_64
    package libplist is not installed
    package usbmuxd is not installed
    [root]#
    

    Everything remains the same. I have also tried two different machines (laptop and desktop) with Fedora 11 installed.

    There is a difference between the machines, the desktop is configured to use the iPhone in Virtual box (so I can use iTunes for now). This uses the standard usbfs mount that most people use to pass any usb device to VirtualBox and was setup before I got the iPhone.

  • Martin S.

    Martin S. July 21st, 2009 @ 06:59 PM

    Ok, this definitely means that libiphone is unable to find the usb device. You also have packages installed from mixed sources.

    The packages with the ".fc11." suffix in their name do not originate from the same repository (my packages for instance have no fc11 suffix). You should check your repository setup or yum respectively and only install the bundle from one repository.

    Also, you can not use the iPhone with libiphone while VirtualBox is accessing/using the usb device aswell. It would result in the mount error above. You might also try to do a "sudo modprobe -r usbfs".

  • Paul

    Paul July 21st, 2009 @ 10:54 PM

    Martin,

    I would never attempt to use a usb device in VirtualBox and Fedora at the same time. I mention it because of the configuration changes. In fact I try not to use a usb device in Fedora after using VirtualBox without a reboot. See below the results of the modprobe.

    I had noticed the mixed package issue myself. I have altered the repositories I am using, making sure I get yours. The problem is caused by using yum to load iFuse and letting yum pick up the dependencies, this causes libiphone to be picked up from the fedora library. Now the packages are from your yum repository:

    [root]# rpm -q libiphone0 ifuse libplist0 usbmuxd
    libiphone0-0.9.1-12.3.x86_64
    ifuse-0.9.1-8.4.x86_64
    libplist0-0.13-2.1.x86_64
    package usbmuxd is not installed
    [root]#
    [root]# modprobe -r usbfs
    WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/.
    FATAL: Module usbfs not found.
    [root]#
    

    I tried your yum repository on the laptop as well as the desktop. This has not got the complications of VirtualBox usb changes. Still no luck, same messages when I try to mount the iPhone. What I have not said so far is that the camera side of the iPhone mounts (as you might expect) without problem.

  • Martin S.

    Martin S. July 22nd, 2009 @ 08:35 AM

    Let's see what USB configuration the device is in...

    Check output of "cat /sys/devices/pci0000:00/0000:00:0b.1/usb1/1-8/bConfigurationValue" (check syslog or lshal output for the right sysfs path).
    Also check ouput of "lsof /dev/bus/usb/001/007" to see who else is using the device.

  • Paul

    Paul July 22nd, 2009 @ 02:28 PM

    Martin

    The device is now at /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5, from lshal:

    udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1294_5a6bdef59b8ebd24957d06f631b07d9a39ffdfb8'
      info.bus = 'usb_device'  (string)
      info.parent = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_1d_7'  (string)
      info.product = 'iPhone'  (string)
      info.subsystem = 'usb_device'  (string)
      info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1294_5a6bdef59b8ebd24957d06f631b07d9a39ffdfb8'  (string)
      info.vendor = 'Apple, Inc.'  (string)
      linux.device_file = '/dev/bus/usb/001/004'  (string)
      linux.hotplug_type = 2  (0x2)  (int)
      linux.subsystem = 'usb'  (string)
      linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
      usb_device.bus_number = 1  (0x1)  (int)
      usb_device.can_wake_up = false  (bool)
      usb_device.configuration_value = 1  (0x1)  (int)
      usb_device.device_class = 0  (0x0)  (int)
      usb_device.device_protocol = 0  (0x0)  (int)
      usb_device.device_revision_bcd = 1  (0x1)  (int)
      usb_device.device_subclass = 0  (0x0)  (int)
      usb_device.is_self_powered = true  (bool)
      usb_device.linux.device_number = 4  (0x4)  (int)
      usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5'  (string)
      usb_device.max_power = 500  (0x1f4)  (int)
      usb_device.num_configurations = 4  (0x4)  (int)
      usb_device.num_interfaces = 1  (0x1)  (int)
      usb_device.num_ports = 0  (0x0)  (int)
      usb_device.product = 'iPhone'  (string)
      usb_device.product_id = 4756  (0x1294)  (int)
      usb_device.serial = '5a6bdef59b8ebd24957d06f631b07d9a39ffdfb8'  (string)
      usb_device.speed = 480.0 (480) (double)
      usb_device.vendor = 'Apple, Inc.'  (string)
      usb_device.vendor_id = 1452  (0x5ac)  (int)
      usb_device.version = 2.0 (2) (double)
    

    The value is now 1! Help I appear to be going mad:

    [root]# cat /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/bConfigurationValue
    1
    [root]# lsof /dev/bus/usb/001/004
    lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/paul/.gvfs
          Output information may be incomplete.
    [root]#
    

    The Warning message is normal. There are no open files.

  • Martin S.

    Martin S. July 22nd, 2009 @ 05:50 PM

    Great, we are getting there. So basically your configuration is still set to 1 which is why libiphone does not work as it needs to have a config enabled in order for a specific (Apple Mobile Device) USB interface to become available.

    You can manually change it like:

    [root]# echo "4" > /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-5/bConfigurationValue
    

    However as release 0.9.1 did not have iPhone 3GS usb ids in the source code, this won't help you much.
    I think you are simply missing the bits for the iPhone 3GS usb id 05ac:1294. We got them in git HEAD but not in a released state yet.
    I backported those into the 0.9.1 packages, so try to upgrade and see if this fixes it for you. The repository is now updated with fresh packages.

  • Paul

    Paul July 22nd, 2009 @ 06:29 PM

    Martin

    You are a star. I can now mount my iPhone 3GS using the updated packages. I am off top play with my iPhone and Linux in a native manner without upsetting Apple or O2.

    If I can be of any further help in testing 3GS stuff or Fedora then let me know.

    Thanks again

  • Martin S.

    Martin S. July 22nd, 2009 @ 08:19 PM

    @Paul: Yes, please show the output of iphoneinfo | grep -P "^(Serial|Model)Number" and also tell me which shell color your iPhone is. Thanks.

    @Bernardo: Can you verify if your problem is solved with the new packages aswell?

  • Paul

    Paul July 22nd, 2009 @ 10:44 PM

    Martin

    [paul]$ iphoneinfo | grep -P "^(Serial|Model)Number"
    ModelNumber: MC131
    SerialNumber: xxxxxxxx3NP
    [paul]$
    

    The shell is black.

  • Bernardo

    Bernardo July 23rd, 2009 @ 07:14 AM

    I updated the packages yesterday night. It still doesn't mount automatically, but with the "sudo /sbin/mount.fuse.ifuse ignored /mnt" command it mounts correctly the iPhone's folders in /mnt.

    I noticed I still have packages from mixed sources, I'll fix this soon and I'll post here the result.

    Anyway, thanks for your fantastic work, before of ifuse I was thinking to sell the iPhone and to switch completely to an Android phone... :D 

    Be'

  • Martin S.

    Martin S. July 23rd, 2009 @ 08:04 AM

    • State changed from “open” to “resolved”

    @Paul: Thanks for the IDs!

    @Bernardo: Great, thanks for the information. It actually shows that libiphone is working fine for you so I set this ticket as resolved. The automounting is known to be broken and might not work everytime you plug in the device. We track the progress in bug #49 and hope to fix it in the final release, feel free to add feedback there. Also if you have a different model than "16GB Black iPhone 3G", I'd like to ask you to supply the output of iphoneinfo | grep -P "^(Serial|Model)Number". It will make music sync possible. Thanks.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A project around supporting the iPhone in Linux.

See http://libimobiledevice.org

People watching this ticket

Pages