Libimobiledevice: Difference between revisions

imported>Onny
Add information on tethering
Klinger (talk | contribs)
mNo edit summary
 
(10 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:libimobiledevice}}
The [https://libimobiledevice.org/ libimobiledevice] project provides libraries and tools to connect and transfer data between iOS devices and Linux machines.


== Usage ==
== Usage ==
Line 4: Line 6:
=== Preparation ===
=== Preparation ===


In order to be able to automatically mount your iOS device (such as an iPhone) when connecting it or to enable USB tehtering, you need to install <code>libimobiledevice</code> and to activate the <code>usbmuxd</code> service.
In order to be able to automatically mount your iOS device (such as an iPhone) when connecting it or to enable USB tethering, you need to install <code>libimobiledevice</code> and to activate the <code>usbmuxd</code> service.


Add the following to your <code>configuration.nix</code>:
Add the following to your <code>configuration.nix</code>:
Line 10: Line 12:
<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
services.usbmuxd.enable = true;
services.usbmuxd.enable = true;
environment.systemPackages = with pkgs; [
environment.systemPackages = with pkgs; [
   libimobiledevice
   libimobiledevice
   ifuse # optional, to mount using 'ifuse'
   ifuse # optional, to mount using 'ifuse'
];
];
</syntaxhighlight>
If you experience issues mounting or pairing your device (for example as described [https://github.com/NixOS/nixpkgs/issues/152592 here]), you can try to switch the <code>usbmuxd</code> daemon package to an alternative more updated implementation, <code>usbmuxd2</code>.
<syntaxhighlight lang="nix">
services.usbmuxd = {
  enable = true;
  package = pkgs.usbmuxd2;
};
</syntaxhighlight>
</syntaxhighlight>


Line 24: Line 36:
$ ifuse /tmp/iphone
$ ifuse /tmp/iphone
</syntaxhighlight>
</syntaxhighlight>
If you get an error about <code>ERROR: No device found!</code>, check the status of <code>usbmuxd</code>:
<syntaxhighlight>
$ sudo systemctl status usbmuxd.service
</syntaxhighlight>
If you see an error
<syntaxhighlight>
ERROR: Could not connect to lockdownd on device [...], lockdown error -8
</syntaxhighlight>
you may need to restart the usbmuxd service as reported [https://github.com/NixOS/nixpkgs/issues/152592 here]:
<syntaxhighlight>
$ sudo systemctl restart usbmuxd.service
</syntaxhighlight>
(it may take a bit of time)


=== Tethering ===
=== Tethering ===
Line 55: Line 47:
Confirm pairing by accepting the connection on your iOS device. After that an ethernet device will appear in your network device list.
Confirm pairing by accepting the connection on your iOS device. After that an ethernet device will appear in your network device list.


== Maintainence ==
== Maintenance ==


=== Factory reset ===
=== Factory reset ===