Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Mounting Iphone with Ifuse as User

1,103 views
Skip to first unread message

Alejandro Salas

unread,
Jul 7, 2009, 3:50:21 AM7/7/09
to
Hello everyone,

I'm not sure if this is the correct place to post this. I'm using a fresh install of Debian Squeeze and just installed the IFuse package.

Everything is working fine, I can see the content of the iphone when I mount it as root.. I haven't been able to do it as a normal user. Does anyone knows how to do it? I tried adding a line on the fstab file, and also other things but I keep getting this error when I try as my user:

> 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.

Thank you very much..
Alejandro Salas

Kumar Appaiah

unread,
Jul 7, 2009, 7:00:22 AM7/7/09
to
On Tue, Jul 07, 2009 at 12:48:30AM -0700, Alejandro Salas wrote:
> Everything is working fine, I can see the content of the iphone when I
> mount it as root.. I haven't been able to do it as a normal user. Does
> anyone knows how to do it? I tried adding a line on the fstab file, and
> also other things but I keep getting this error when I try as my user:
>
> > 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.

Please check if you are in the `fuse' group, using the groups
command. For example, for me:

[kumar@bluemoon ~] groups
kumar dialout cdrom floppy audio video plugdev netdev powerdev fuse vboxusers sbuild

If not, then we can investigate further.

HTH.

Kumar
--
Kumar Appaiah

signature.asc

Alejandro Salas

unread,
Jul 7, 2009, 11:20:11 AM7/7/09
to
> Please check if you are in the `fuse' group, using the groups
> command. For example, for me:
>
> [kumar@bluemoon ~] groups
> kumar dialout cdrom floppy audio video plugdev netdev powerdev fuse vboxusers sbuild
>
> If not, then we can investigate further.
>
> HTH.
>
> Kumar

The fuse group didn't even existed. I created it and added my user to the group.
I still get the same error message. :-(. Any ideas?

Thanks for the help.

Kumar Appaiah

unread,
Jul 7, 2009, 11:30:23 AM7/7/09
to

Strange. I'd have asked you to confirm that the fuse module is loaded
into the kernel, but you have already confirmed that by claiming that
you are able to operate successfully as root.

I am almost certain that it is a permissions issue, but not sure where
it could lie. Sorry, but I hope someone else can help you better.

Kumar


--
To UNSUBSCRIBE, email to debian-us...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listm...@lists.debian.org

Florian Kulzer

unread,
Jul 7, 2009, 12:50:08 PM7/7/09
to
On Tue, Jul 07, 2009 at 08:13:22 -0700, Alejandro Salas wrote:
> > Please check if you are in the `fuse' group, using the groups
> > command. For example, for me:
> >
> > [kumar@bluemoon ~] groups
> > kumar dialout cdrom floppy audio video plugdev netdev powerdev fuse vboxusers sbuild
> >
> > If not, then we can investigate further.
>
> The fuse group didn't even existed.

The fuse group should have been created by the post-installation script
of the fuse-utils package.

> I created it and added my user to the group.
> I still get the same error message. :-(. Any ideas?

Check if there are any problems with the fuse-utils package on your
system.

--
Regards, | http://users.icfo.es/Florian.Kulzer
Florian |

Alejandro Salas

unread,
Jul 7, 2009, 2:40:10 PM7/7/09
to
> The fuse group should have been created by the post-installation script
> of the fuse-utils package.
>
>>                                    I created it and added my user to the group.
>> I still get the same error message. :-(. Any ideas?
>
> Check if there are any problems with the fuse-utils package on your
> system.
>
> --
> Regards,            | http://users.icfo.es/Florian.Kulzer
>          Florian  |

I had installed ifuse through aptitude and turns out fuse-utils wasn't installed automatically.
I installed it, but still no luck. I should mention that even before installing fuse-utils I was able to mount the iphone as root.
From websites I have seen, I'm trying to mount it using any the following:

1. ifuse iphone/ -s
2. mount /media/iphone (In fstab: /dev/hda    /media/iphone     fuse.ifuse     user,noauto    0     0)
3. /sbin/mount.fuse.ifuse /dev/hda /media/iphone -s

All of these methods give me the same error message.
Thanks for your help..
Alejandro Salas

Florian Kulzer

unread,
Jul 7, 2009, 3:50:10 PM7/7/09
to
On Tue, Jul 07, 2009 at 11:32:10 -0700, Alejandro Salas wrote:
> > The fuse group should have been created by the post-installation script
> > of the fuse-utils package.
> >
> >> I created it and added my user to the group.
> >> I still get the same error message. :-(. Any ideas?
> >
> > Check if there are any problems with the fuse-utils package on your
> > system.

[...]

> I had installed ifuse through aptitude and turns out fuse-utils wasn't
> installed automatically.
>
> I installed it, but still no luck. I should mention that even before
> installing fuse-utils I was able to mount the iphone as root.
> >From websites I have seen, I'm trying to mount it using any the following:
>
> 1. ifuse iphone/ -s
> 2. mount /media/iphone (In fstab: /dev/hda /media/iphone fuse.ifuse user,noauto 0 0)
> 3. /sbin/mount.fuse.ifuse /dev/hda /media/iphone -s
>
> All of these methods give me the same error message.

Please post the output of the following two commands:

lshal -u $(hal-find-by-property --key "storage.model" --string "iPhone")

lshal -u $(hal-find-by-property --key "volume.label" --string "iPhone")

--
Regards, | http://users.icfo.es/Florian.Kulzer
Florian |

Alejandro Salas

unread,
Jul 7, 2009, 5:30:21 PM7/7/09
to
> On Tue, Jul 07, 2009 at 11:32:10 -0700, Alejandro Salas wrote:
> > > The fuse group should have been created by the post-installation script
> > > of the fuse-utils package.
> > >
> > >>                                    I created it and added my user to the group.
> > >> I still get the same error message. :-(. Any ideas?
> > >
> > > Check if there are any problems with the fuse-utils package on your
> > > system.
>
> [...]
>
> > I had installed ifuse through aptitude and turns out fuse-utils wasn't
> > installed automatically.
> >
> > I installed it, but still no luck. I should mention that even before
> > installing fuse-utils I was able to mount the iphone as root.
> >From websites I have seen, I'm trying to mount it using any the following:
> >
> > 1. ifuse iphone/ -s
> > 2. mount /media/iphone (In fstab: /dev/hda    /media/iphone    fuse.ifuse    user,noauto    0    0)
> > 3. /sbin/mount.fuse.ifuse /dev/hda /media/iphone -s
> >
> > All of these methods give me the same error message.


> Please post the output of the following two commands:
>
> lshal -u $(hal-find-by-property --key "storage.model" --string "iPhone")
>
> lshal -u $(hal-find-by-property --key "volume.label" --string "iPhone")

Here are both outputs..
Thank you for your help!


lshal -u $(hal-find-by-property --key "storage.model" --string "iPhone")
udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4'
  block.device = '/dev/bus/usb/007/003'  (string)
  block.storage_device = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_1d_7'  (string)
  info.addons = {'hald-addon-storage'} (string list)
  info.capabilities = {'block', 'storage'} (string list)
  info.linux.driver = 'usb'  (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_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4'  (string)
  info.vendor = 'Apple, Inc.'  (string)
  linux.device_file = '/dev/bus/usb/007/003'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb7/7-5'  (string)
  storage.automount_enabled_hint = true  (bool)
  storage.hotpluggable = false  (bool)
  storage.model = 'iPhone'  (string)
  storage.removable = true  (bool)
  storage.vendor = 'Apple Computer, Inc.'  (string)
  usb_device.bus_number = 7  (0x7)  (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 = 3  (0x3)  (int)
  usb_device.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb7/7-5'  (string)
  usb_device.max_power = 500  (0x1f4)  (int)
  usb_device.num_configurations = 3  (0x3)  (int)
  usb_device.num_interfaces = 2  (0x2)  (int)
  usb_device.num_ports = 0  (0x0)  (int)
  usb_device.product = 'iPhone'  (string)
  usb_device.product_id = 4752  (0x1290)  (int)
  usb_device.serial = '28b0d03934dc7a3615752383097c47f1fb34a1e4'  (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)



lshal -u $(hal-find-by-property --key "volume.label" --string "iPhone")
udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4_if1'
  block.device = '/dev/bus/usb/007/003'  (string)
  block.storage_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4'  (string)
  info.capabilities = {'block', 'volume', 'afc'} (string list)
  info.interfaces = {'org.freedesktop.Hal.Device.Volume'} (string list)
  info.parent = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4'  (string)
  info.product = 'USB Vendor Specific Interface'  (string)
  info.subsystem = 'usb'  (string)
  info.udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4_if1'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'usb'  (string)
  linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb7/7-5/7-5:3.1'  (string)
  org.freedesktop.Hal.Device.Volume.method_argnames = {'mount_point fstype extra_options', 'extra_options'} (string list)
  org.freedesktop.Hal.Device.Volume.method_execpaths = {'hal-storage-mount', 'hal-storage-unmount'} (string list)
  org.freedesktop.Hal.Device.Volume.method_names = {'Mount', 'Unmount'} (string list)
  org.freedesktop.Hal.Device.Volume.method_signatures = {'ssas', 'as'} (string list)
  usb.bus_number = 7  (0x7)  (int)
  usb.can_wake_up = false  (bool)
  usb.configuration = 'PTP + Apple Mobile Device'  (string)
  usb.configuration_value = 3  (0x3)  (int)
  usb.device_class = 0  (0x0)  (int)
  usb.device_protocol = 0  (0x0)  (int)
  usb.device_revision_bcd = 1  (0x1)  (int)
  usb.device_subclass = 0  (0x0)  (int)
  usb.interface.class = 255  (0xff)  (int)
  usb.interface.number = 1  (0x1)  (int)
  usb.interface.protocol = 2  (0x2)  (int)
  usb.interface.subclass = 254  (0xfe)  (int)
  usb.is_self_powered = true  (bool)
  usb.linux.device_number = 3  (0x3)  (int)
  usb.linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:1d.7/usb7/7-5/7-5:3.1'  (string)
  usb.max_power = 500  (0x1f4)  (int)
  usb.num_configurations = 3  (0x3)  (int)
  usb.num_interfaces = 2  (0x2)  (int)
  usb.num_ports = 0  (0x0)  (int)
  usb.product = 'USB Vendor Specific Interface'  (string)
  usb.product_id = 4752  (0x1290)  (int)
  usb.serial = '28b0d03934dc7a3615752383097c47f1fb34a1e4'  (string)
  usb.speed = 480.0 (480) (double)
  usb.vendor = 'Apple, Inc.'  (string)
  usb.vendor_id = 1452  (0x5ac)  (int)
  usb.version = 2.0 (2) (double)
  volume.fstype = 'fuse.ifuse'  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.ignore = false  (bool)
  volume.label = 'iPhone'  (string)
  volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec'} (string list)
  volume.unmount.valid_options = {'lazy'} (string list)
  volume.uuid = ''  (string)

Florian Kulzer

unread,
Jul 8, 2009, 3:30:21 PM7/8/09
to
On Tue, Jul 07, 2009 at 14:27:38 -0700, Alejandro Salas wrote:
> > On Tue, Jul 07, 2009 at 11:32:10 -0700, Alejandro Salas wrote:
> > > > The fuse group should have been created by the post-installation script
> > > > of the fuse-utils package.
> > > >
> > > >> I created it and added my user to the group.
> > > >> I still get the same error message. :-(. Any ideas?

[...]

> lshal -u $(hal-find-by-property --key "storage.model" --string "iPhone")
> udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4'
> block.device = '/dev/bus/usb/007/003' (string)
> block.storage_device = '/org/freedesktop/Hal/devices/usb_device_1d6b_2_0000_00_1d_7' (string)
> info.addons = {'hald-addon-storage'} (string list)
> info.capabilities = {'block', 'storage'} (string list)

[...]

> storage.automount_enabled_hint = true (bool)
> storage.hotpluggable = false (bool)
> storage.model = 'iPhone' (string)
> storage.removable = true (bool)
> storage.vendor = 'Apple Computer, Inc.' (string)
> usb_device.bus_number = 7 (0x7) (int)
> usb_device.can_wake_up = false (bool)
> usb_device.configuration = 'PTP + Apple Mobile Device' (string)
> usb_device.configuration_value = 3 (0x3) (int)

[...]

> lshal -u $(hal-find-by-property --key "volume.label" --string "iPhone")
> udi = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4_if1'
> block.device = '/dev/bus/usb/007/003' (string)
> block.storage_device = '/org/freedesktop/Hal/devices/usb_device_5ac_1290_28b0d03934dc7a3615752383097c47f1fb34a1e4' (string)
> info.capabilities = {'block', 'volume', 'afc'} (string list)

[...]

> usb.configuration = 'PTP + Apple Mobile Device' (string)
> usb.configuration_value = 3 (0x3) (int)

[...]

> volume.fstype = 'fuse.ifuse' (string)
> volume.fsusage = 'filesystem' (string)
> volume.ignore = false (bool)
> volume.label = 'iPhone' (string)
> volume.mount.valid_options = {'ro', 'sync', 'dirsync', 'noatime', 'nodiratime', 'noexec', 'quiet', 'remount', 'exec'} (string list)
> volume.unmount.valid_options = {'lazy'} (string list)
> volume.uuid = '' (string)

I don't see anything wrong here; it looks like both udev and HAL have
done exactly what they were supposed to be doing.

What output do you get from:

ls -l /dev/fuse

ls -l /dev/bus/usb/*

Alejandro Salas

unread,
Jul 20, 2009, 1:20:09 AM7/20/09
to


----- Forwarded Message ----
From: Alejandro Salas <krie...@yahoo.com>
To: Florian Kulzer <florian.ku...@icfo.es>
Sent: Wednesday, July 8, 2009 3:34:51 PM
Subject: Re: Mounting Iphone with Ifuse as User




From: Florian Kulzer <florian.ku...@icfo.es>
To: debia...@lists.debian.org
Sent: Wednesday, July 8, 2009 2:34:43 PM
Subject: Re: Mounting Iphone with Ifuse as User
Here they are:

ls -l /dev/fuse
crw-rw---- 1 root fuse 10, 229 2009-07-08 10:41 /dev/fuse


ls -l /dev/bus/usb/*
/dev/bus/usb/001:
total 0
crw-rw-r-- 1 root root 189, 0 2009-07-08 06:06 001

/dev/bus/usb/002:
total 0
crw-rw-r-- 1 root root 189, 128 2009-07-08 06:06 001

/dev/bus/usb/003:
total 0
crw-rw-r-- 1 root root 189, 256 2009-07-08 06:06 001
crw-rw-r-- 1 root root 189, 257 2009-07-08 06:06 002

/dev/bus/usb/004:
total 0
crw-rw-r-- 1 root root 189, 384 2009-07-08 06:06 001

/dev/bus/usb/005:
total 0
crw-rw-r-- 1 root root 189, 512 2009-07-08 06:06 001
crw-rw-r-- 1 root root 189, 513 2009-07-08 06:06 002

/dev/bus/usb/006:
total 0
crw-rw-r-- 1 root root 189, 640 2009-07-08 06:06 001

/dev/bus/usb/007:
total 0
crw-rw-r-- 1 root root 189, 768 2009-07-08 06:06 001
crw-rw-r-- 1 root root 189, 770 2009-07-08 15:59 003

The last entry ('003') appeared only after plugging the iphone to a usb port. Everything else remained the same.
Thanks again


Florian Kulzer

unread,
Jul 25, 2009, 7:00:17 AM7/25/09
to
On Sun, Jul 19, 2009 at 22:16:17 -0700, Alejandro Salas wrote:
> ----- Forwarded Message ----
> From: Alejandro Salas
> To: Florian Kulzer
> Sent: Wednesday, July 8, 2009 3:34:51 PM
> Subject: Re: Mounting Iphone with Ifuse as User

Note: I never saw this message due to the aggressive spam filtering that
I have to apply to incoming mail for my "+debian" address.

> From: Florian Kulzer, Sent: Wednesday, July 8, 2009 2:34:43 PM
> On Tue, Jul 07, 2009 at 14:27:38 -0700, Alejandro Salas wrote:
> > > On Tue, Jul 07, 2009 at 11:32:10 -0700, Alejandro Salas wrote:
> > > > > The fuse group should have been created by the post-installation script
> > > > > of the fuse-utils package.
> > > > >
> > > > >> I created it and added my user to the group.
> > > > >> I still get the same error message. :-(. Any ideas?

[...]

> > I don't see anything wrong here; it looks like both udev and HAL have

That looks OK to me, too. I am afraid you will need someone who actually
uses an iPhone under Linux to help you further. (I do not have an iPhone
myself; I had hoped that I would be able to spot something suspicious in
the general device-plugging behavior but that does not seem to be the
case.)

Alejandro Salas

unread,
Jul 25, 2009, 1:00:14 PM7/25/09
to
Thanks for all your help. I got another piece of information from Amain on this blog: http://blog.zoomeren.nl/2009/03/24/mount-iphone-in-linux-using-usb-ifuse-libiphone/comment-page-1/#comment-44

I ran strace and found out that the problem is that my user doesn't have access to the raw usb device. Here's a copy of a few lines of the strace output:

open(”/dev/bus/usb/006/002″, O_RDWR) = -1 EACCES (Permission denied)
open(”/dev/bus/usb/006/002″, O_RDONLY) = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfa67610) = -1 EPERM (Operation not permitted)
close(3) = 0
open(”/dev/bus/usb/006/001″, O_RDWR) = -1 EACCES (Permission denied)
open(”/dev/bus/usb/006/001″, O_RDONLY) = 3
ioctl(3, USBDEVFS_IOCTL, 0xbfa67610) = -1 EPERM (Operation not permitted)
close(3)

Another thing Amain pointed me out is that his usb devices have the following ownerships:

ls -l /dev/bus/usb/001/003
crw-rw-r–+ 1 root plugdev 189, 2 2009-07-24 22:21 /dev/bus/usb/001/003

And his user belongs to the plugdev group. As I posted last time.. my devices belong to root root... could this be the problem? Any ideas? Thanks a lot for your effort


Florian Kulzer

unread,
Jul 25, 2009, 2:50:17 PM7/25/09
to
On Sat, Jul 25, 2009 at 09:50:00 -0700, Alejandro Salas wrote:
> > From: Florian Kulzer, Sent: Wednesday, July 8, 2009 2:34:43 PM
> > On Tue, Jul 07, 2009 at 14:27:38 -0700, Alejandro Salas wrote:

[...]

> I got another piece of information from Amain on this blog:
> http://blog.zoomeren.nl/2009/03/24/mount-iphone-in-linux-using-usb-ifuse-libiphone/comment-page-1/#comment-44
>
> I ran strace and found out that the problem is that my user doesn't
> have access to the raw usb device. Here's a copy of a few lines of the
> strace output:
>
> open(”/dev/bus/usb/006/002″, O_RDWR) = -1 EACCES (Permission denied)
> open(”/dev/bus/usb/006/002″, O_RDONLY) = 3
> ioctl(3, USBDEVFS_IOCTL, 0xbfa67610) = -1 EPERM (Operation not permitted)
> close(3) = 0
> open(”/dev/bus/usb/006/001″, O_RDWR) = -1 EACCES (Permission denied)
> open(”/dev/bus/usb/006/001″, O_RDONLY) = 3
> ioctl(3, USBDEVFS_IOCTL, 0xbfa67610) = -1 EPERM (Operation not permitted)
> close(3)

That is indeed pretty clear; it seems that write access to the raw USB
device is required.

> Another thing Amain pointed me out is that his usb devices have the
> following ownerships:
>
> ls -l /dev/bus/usb/001/003
> crw-rw-r–+ 1 root plugdev 189, 2 2009-07-24 22:21 /dev/bus/usb/001/003

So his Ubuntu changes the group of the iPhone-associated USB (hub?)
device to plugdev. That is one possibility to give write access to a
select group of users. They furthermore seem to have some additional
access control on the device file, as can be seen from the "+" at the
end of the permissions string.

> And his user belongs to the plugdev group. As I posted last time.. my
> devices belong to root root... could this be the problem? Any ideas?

I would add your normal user to the plugdev group if you have not done
so already. Then I would manually (as root) change the group of the
relevant USB device file to plugdev and test if your user can access the
iPhone. If this works then we can try to figure out a udev rule to make
the change to plugdev automatic.

Alejandro Salas

unread,
Jul 25, 2009, 7:30:11 PM7/25/09
to
> I would add your normal user to the plugdev group if you have not done
> so already. Then I would manually (as root) change the group of the
> relevant USB device file to plugdev and test if your user can access the
> iPhone. If this works then we can try to figure out a udev rule to make
> the change to plugdev automatic.

In fact this was the problem.. I changed the group and was able to mount it. I'm now having problems syncing the music, but I have a lot to try before asking for help hehehe. A question I do have, is that I have connected the Iphone a couple of times and a different usb device has been assigned each time. Is there a way to use a single/permanent device each time? I wouldn't like to set the plugdev group to every device.

Thanks

Florian Kulzer

unread,
Jul 26, 2009, 8:10:11 AM7/26/09
to

That is why the next step is to figure out how to make udev assign the
plugdev group automatically for the iPhone USB node. Please post the
output of this command:

udevadm info --attribute-walk --name /dev/bus/usb/007/003

(Replace "007/003" with the node that is associated with the iPhone at
the moment.)

0 new messages