Traduzioni: English - Castellano - Français - Italiano


Questa pagina descrive come connettere un dispositivo iOS (es., iPhone, iPod Touch, iPad, AppleTV) ad un sistema Debian Squeeze o Debian Wheezy, usando libimobiledevice. Ciò abilita il trasferimento di musica ed altri file tra un iPhone e un computer Debian, così come altre funzionalità (vedere più sotto "Cosa contiene e cosa non contiene questo documento").

I termini "iPod" e "iPhone" sono usati in modo intercambiabile in questo documento, e lo stesso vale per "iPad" e "Apple TV".

Cosa contiene e cosa non contiene questo documento

iPods più vecchi

Modelli di iPod più datati su cui non è in esecuzione iOS sono ben supportati da una semplice installazione di gtkpod : non è necessario fare tutto questo sforzo per connettere un iPod vecchio modello e trasferire musica.

Sistema operativo Debian sull'iPhone?

* No. Non viene discusso qui. Questa pagina parla di come connettere un iPhone con in esecuzione iOS di Apple ad un computer Debian.

Tethering?

* Qui non si parla di tethering; tuttavia se si desidera fare il tethering via USB può essere richiesta la configurazione di libimobiledevice e perciò parte delle istruzioni qui descritte potrebbe essere utile. Per il tethering via bluetooth libimobiledevice non è utile e perciò neanche questo documento lo è. * Il wiki di Arch Linux ha un ottimo articolo sul Tethering con iPhone. Sarebbe bello debianizzare e integrare tali informazioni in questa pagina oppure suddividere questa pagina in diverse pagine dedicate a Debian e iPhone/iOS.

Dettagli su libimobiledevice

* Dalla pagina web di libimobiledevice:

* Gli autori di questo documento desideravano soprattutto copiare musica tra un iPhone e un computer Debian. libimobiledevice però permette molte più funzionalità, ma tali funzionalità non vengono trattate in questo documento che può tuttavia aiutare a impostare libimobiledevice in modo che funzioni e comunichi con il proprio iPhone.

Necessari aggiornamenti?

* Questo documento è stato aggiornato in modo significativo l'ultima volta nel febbraio 2012, per libimobiledevice 1.1.1-3 e iOS 5. Da allora è passato un bel po' di tempo e quella versione di libimobiledevice può funzionare, come no, con le versioni più recenti di iOS. Queste istruzioni tuttavia possono comunque essere ancora utili per installare le versioni successive di libimobiledevice e di altro software. (In effetti le istruzioni su come fare il backport possono essere utili come riferimento per configurare software che non ha nulla a che vedere con questo.)

Iniziare: fare il backup dei propri dati

* Queste istruzioni spiegano come impostare il proprio iPhone in modo da poterlo sincronizzare (copiare musica) da Debian Squeeze o Wheezy usando un programma come gtkpod, Rhythmbox, amarok o banshee. Ciò non dovrebbe disturbare la sincronizzazione con iTunes: anche dopo l'aggiunta di musica, si dovrebbe sempre essere in grado di accedere al dispositivo usando iTunes. Detto questo, tenere a mente che: 1. questo è software libero; 2. viene fornito senza alcuna garanzia e 3. è possibile che vi sia un bug che causi la cancellazione della musica e di altri file. La maggioranza degli utilizzatori non ha avuto tali problemi, ma viene consigliato di fare il backup dei propri dati prima di iniziare.

Configurare l'iPhone, parte 1

* Una volta configurato, l'iPhone dovrebbe funzionare con qualsiasi macchina GNU/Linux, senza la necessità di rifare questa configurazione. (A patto che la macchina GNU/Linux abbia i pacchetti necessari installati.)

* Se l'iPhone ha già della musica sopra, si può saltare al passo successivo

  1. Creare un database audio iniziale, se non ne esiste già uno.
    1. Connettere l'iPhone ad un computer MS Windows o Mac OS X
    2. Far partire iTunes
    3. Aggiungere almeno una canzone o podcast libero all'iPhone.

* Questo inizializza un database sull'iPhone che è necessario per il corretto funzionamento delle istruzioni seguenti.

[Potrebbe esserci un modo di copiare un file di database iniziale usando solamente Debian; se lo si consosce, modificare questa pagina del wiki.
La pagina web di libimobiledevice parla di un progetto chiamato ideviceactivate.]

Connettere l'iPhone

* Se l'iPhone ha una versione recente di iOS (5 o successiva? Forse 4.3? 4.2.1?) allora sarà necessaria libimobiledevice 1.1.1 o successiva, disponibile in Wheezy. Squeeze ha libimobiledevice 1.0.2, che non funziona con le versioni recenti di iOS. Esiste un backport, descritto in seguito piuttosto complicato. Probabilmente è una buona idea procedere dapprima con l'installazione normale, prima di provare con il backport. Se l'installazione normale non funziona (oggigiorno normalmente per un errore "unhandled lockdown error"), allora si può provare il backport.

  1. Installare diversi pacchetti:
    • aptitude install libimobiledevice-utils gvfs-backends gvfs-bin gvfs-fuse

  2. Da root, modificare il file /etc/fuse.conf:
    Decommentare (rimuovendo il simbolo # davanti a) #user_allow_other alla fine del file.
    Se non si riesce a trovare quella riga, crearne semplicemente un'altra alla fine del file contenente user_allow_other.
    Salvare il file! Se non si è l'utente root non si può salvare il file ed è necessario rifare la modifica, come utente root.

  3. Assicurarsi che il proprio utente sia un membro del gruppo fuse: da utente normale digitare groups e cercare "fuse". Se non appare, allora:

    1. Aggiungere il proprio utente al gruppo fuse. Verrà usato il nome "mario" come esempio di utente, sostituire "mario" con il proprio nome utente.

      usermod -aG fuse mario
      [Questo va fatto per ciascun utente nel sistema che deve essere in grado di connettere un iPhone al computer]
      [In alternativa si può usare uno strumento con interfaccia grafica come Sistema → Amministrazione → Utenti e gruppi in Gnome]

    2. Dopo aver aggiunto l'utente al gruppo fuse, fare il log out e quindi di nuovo il login. Se la sessione GNOME (o un'altra sessione desktop) è stata avviata prima dell'aggiunta dell'utente al gruppo "fuse", allora l'ambiente utente non contiene ancora il gruppo fuse; perciò non si possono usare i programmi che richiedono i permessi del gruppo "fuse".
  4. Pregare. :-) Se il prossimo passo non funziona allora ci si trova davanti ad una sfida dfficile.

  5. Connettere l'iPhone.
  6. Scegliere Annulla se viene chiesto di aprirlo come una fotocamera per l'importazione di fotografie;

  7. In alternativa, si può ottenere un'opzione per fare un AFC o montare la musica, allora è possibile fare quello.
  8. Se si è fortunati, l'iPhone appare sul desktop, con il proprio nome (es. "iPhone di Mario").
  9. In modo predefinito, viene montato in ~/.gvfs (es. per mario, /home/mario/.gvfs/iPhone di Mario)

  10. Se non si è così fortunati, cioè se non si vede nulla sul desktop e ~/.gvfs/iPhone non esiste, allora si deve fare un po' di sforzo per identificare il problema.
    Può essere possibile che semplicemente non si sta usando un demone per il montaggio automatico, oppure il problema può essere più complesso. Andare alla Sezione sulla risoluzione dei problemi di montaggio.
    Suggerimento: se si preferisce montare dalla riga di comando invece che con i demoni di montaggio automatico, vedere lo script di mount.

Configurare l'iPhone, parte 2

* Se si sta usando Wheezy o successive, ciò che è descritto in seguito avviene in modo automatico, e si può passare alla prossima sezione.

* Avviare un terminale: questa sezione prevede l'uso della riga di comando. Si deve essere un utente normale, non root e senza l'uso di sudo.

  1. Dapprima scaricare e impostare lo script di mount e poi tornare a questa sezione.

  2. Assegnare il numero seriale dell'iPhone ad una variabile chiamata $serial. Notare che serial= è corretto, mentre, $serial= non funziona

    serial=$(./mount-iphone.sh echo_serial)

  3. Verificare che la variabile sia stata assegnata in modo corretto

    echo $serial
    Se questo comando non mostra il numero seriale, tornare alle istruzioni precedenti altrimenti i passi successivi non funzioneranno..

  4. usare cd per spostarsi nella propria cartella home. (Se si digita semplicemente "cd", ciò porta alla propria cartella home)

    cd

  5. spostarsi con cd nella cartella del punto di mount dell'iphone

    cd .gvfs
    cd "iPhone di Mario"
    Nota: le virgolette doppie sono importanti se il nome contiene spazi, apostrofi o altri caratteri speciali
    Suggerimento: l'autocompletamento con il tasto Tab è uno strumento comodo nel terminale. Digitare cd iP e poi premere il tasto TAB.

  6. procedendo...

    cd iTunes_Control
    ls

  7. Il comando ls mostra una directory chiamata Device?

    1. Se così non fosse, allora eseguire

      mkdir Device

  8. Ritornare alla directory superiore (es. "~/.gvfs/iPhone di Mario")

    cd ..

  9. Assicurarsi di essere nella directory base dell'iPhone

    pwd
    Il comando precedente dovrebbe mostrare in output qualcosa di simile a:
    /home/mario/.gvfs/iPhone di Mario
    Se così non fosse, allora spostarsi in tale directory. Il prossimo passo dipende da ciò.

  10. Usare il comando seguente (da libgpod-common) per creare iTunes_Control/Device/SysInfoExtended:
    ipod-read-sysinfo-extended $serial $PWD

  11. Controllare il nuovo file

    ls -l iTunes_Control/Device/SysInfoExtended

* L'iPhone è ora pronto per interfacciarsi con libgpod e tutti gli strumenti che lo usano, come gtkpod, rhythmbox, amarok, banshee, ecc.! Questi strumenti possono essere usati su qualsiasi computer Linux moderno per aggiungere e cancellare musica dal proprio iPhone, oltre al computer per la sincronizzazione iTunes, senza distruggere la scaletta.

Usare Rhythmbox

  1. Come prima cosa, installarlo:

    aptitude install rhythmbox rhythmbox-plugins

  2. Fare il log out e poi di nuovo il login.

    (Non è chiaro perché ciò sia necessario, ma potrebbe risolvere il problema se si ottiene, quando si cerca di fare il mount, un errore simile a:
    "Error: DBus error org.freedesktop.DBus.Error.ServiceUnknown: The name :1.41 was not provided by any .service files".
    )

  3. Avviare Rhythmbox:

    Applicazioni → Audio e video → Rhythmbox

  4. Trovare l'iPhone nel pannello a sinistra
  5. Fare clic sull'iPhone per vedere quale musica contenga
  6. Si possono quindi trascinare e rilasciare file tra l'iPhone e la propria raccolta musicale di rhythmbox, in modo simile a ciò che si farebbe con iTunes e altri programmi.

* NOTA: Versioni più vecchie di rhythmbox potrebbero avere un po' di problemi a sincronizzare l'iPhone in maniera corretta. Alcuni hanno avuto delle serie difficoltà con musica nel dispositivo che non è mai mostrata. Gtkpod sembra fare la sincronizzazione in modo più affidabile.

* Quanto segue potrebbe aiutare:

  1. Usare il menu contestuale del tasto destro di rhythmbox per espellere l'iPhone, aspettare un po' mentre si sincronizza
  2. Connettere l'iPhone al proprio computer iTunes e annulare l'operazione "cancel sync"
  3. Installare gstreamer1.0-plugins-* (tutti... questo sembra essere stato d'aiuto per alcuni)
  4. ??? non si sa cos'altro suggerire

script mount-iphone.sh

* Alcuni non hanno un demone di montaggio automatico nel proprio ambiente desktop, altri semplicemente preferiscono montare le cose a mano.

* Questo script è molto utile anche per la sezione "Configurare l'iPhone, parte 2"

  1. Lo script è qui: mount-iphone.sh
    (facendo clic sul collegamento si ottiene una "Pagina dell'allegato" da cui si può "Scaricare" lo script)

  2. Aprire un terminale
  3. Spostarsi nella directory in cui è stato salvato lo script
  4. Impostare il bit di esecuzione:

    chmod +x mount-iphone.sh

* Per coloro che preferiscono semplicemente copiare qualche comando, lo script fondamentalmente fa quanto segue:

* Ora è arrivato il momento di provare ad eseguire lo script.

  1. Dapprima eseguirlo senza parametri, per vedere se rileva l'iPhone

    ./mount-iphone.sh
    Se si vede qualcosa di simile a,

    • fb9961044533cd317cb6f2bce3424c2771ae16d6 is mounted
      o
      fb9961044533cd317cb6f2bce3424c2771ae16d6 is not mounted
      ...allora è tutto a posto!

  2. Se non è stato ancora montato, lo si può fare con:

    ./mount-iphone.sh mount

  3. Se tutto va bene, appare un messaggio simile a:

    mounted iphone with serial fb9961044533cd317cb6f2bce3424c2771ae16d6
    (notare che il numero seriale sarà diverso)

  4. In alternativa si potrebbe vedere un antipatico messaggio di errore come il seguente:

    Unhandled lockdown error (-5)
    Se si ottiene un errore, andare alla Sezione sulla risoluzione dei problemi di montaggio.

* Se tutto ha funzionato correttamente, si può tornare a Configurare l'iPhone, parte 2.

Ecco il testo dello script, per comodità di consultazione: (saltare alla Sezione successiva)

# il wiki debian sembra proibire una sezione di codice che inizi con #! perciò eliminare le due righe prima di #!/bin/bash ;)
#
#!/bin/sh
#
# mount-iphone.sh
# This script attempts to mount or unmount the first connected ipod/iphone.
# Usage: ./mount-iphone.sh [mount | umount | echo_serial]
# It should be dash-friendly
#
# Written by Mohamed Ahmed, Dec 2010
#
# Refactored and extended by David Emerson, Feb 2012
#
# You can configure send_msg to use either a console echo, or notify-send.
# notify-send is part of the debian package, libnotify-bin
# The apple pictures in /usr/share/pixmaps are part of the gnome-desktop-data package
#
# uncomment the following if you want to see the mount command used:
# show_mount_cmd=1

# you can uncomment this line to see all the commands sh executes:
# set -x

show_msg ()
{
  # notify-send -t 4000 -u normal "mount-iphone" "$1" -i "/usr/share/pixmaps/apple-$2.png"
  echo "$1" >&2
}

get_device_ids ()
{
  # get the Apple vendor id (idVendor) from lsusb
  idVendor=$(lsusb -v 2>/dev/null | awk '/idVendor.*Apple/{print $2; exit}')
  [ -z "$idVendor" ] && { show_msg "Cannot find any Apple device" "red"; exit 1; }
  # get the device serial number (iSerial)
  iSerial=$(lsusb -v -d $idVendor: 2>/dev/null | awk '/iSerial/{print $3; exit}')
  [ -z "$iSerial" ] && { show_msg "Cannot find serial number of Apple device $idVendor" "red"; exit 1; }
}

is_mounted ()
{
  gvfs-mount -l | grep -i "mount.*$1" >/dev/null
}

mount_iphone ()
{
  [ -z $show_mount_cmd ] || echo gvfs-mount afc://$1/ >&2
  if gvfs-mount afc://$1/; then
    show_msg "mounted iphone with serial $1" "green"
  else
    show_msg "iphone mount failed" "red"
    exit 1
  fi
}

unmount_iphone ()
{
  ## now gvfs unmount the device
  [ -z $show_mount_cmd ] || echo gvfs-mount -u afc://$1/ >&2
  if gvfs-mount -u afc://$1/; then
    show_msg "unmounted iphone with serial $1" "red"
  else
    show_msg "iphone umount failed" "red"
    exit 1
  fi
}

case $1 in
  mount)
    get_device_ids
    is_mounted && { show_msg "$iSerial is already mounted" 'green'; exit; }
    mount_iphone $iSerial
    ;;
  umount|unmount)
    get_device_ids
    is_mounted || { show_msg "$iSerial is not mounted" 'red'; exit; }
    unmount_iphone $iSerial
    ;;
  echo_serial)
    get_device_ids
    echo $iSerial
    ;;
  '')
    get_device_ids
    is_mounted && show_msg "$iSerial is mounted" 'green' || show_msg "$iSerial is not mounted" 'red'
    ;;
  *)
    echo "Usage: $0 [mount | umount | echo_serial]"
    exit 1
    ;;
esac

exit 0

Risoluzione dei problemi di montaggio

* Se si sta leggendo questa sezione, allora probabilmente si hanno problemi nel montare il dispositivo. Se non è così, allora non è necessario leggere questa sezione...

  1. La prima cosa da fare per risolvere il problema è impostare lo script di montaggio indicato sopra. Farlo!

  2. Provare a montare con

    ./mount-iphone.sh mount

* If you get an Unhandled lockdown error, the cause for this error can be varied:

* Se si ottiene un errore Unhandled lockdown error le cause possono essere diverse:

* Se si sta usando squeeze:

* Altri errori... contributi al wiki sono i benvenuti!

Fare il backport di libimobiledevice 1.1.1 in Squeeze

Avvertimenti sui backport

* Alla data di marzo 2014 non esiste un backport ufficiale. Sarebbe meraviglioso se esistesse! Si dovrebbe controllare se ne esiste uno prima di fare ciò che segue. Veramente. http://backports.debian.org/Packages/ - cercare libimobiledevice in squeeze-backports e squeeze-backports-sloppy

* Se qualcuno ha fatto il backport di libimobiledevice 1.1.1, allora è invitato ad indicarlo in questa pagina.

* Però non cancellare questa sezione, dato che potrebbe essere comunque utile per qualcuno in futuro, per ragioni al momento sconosciute o inattese.

* Sfortunatamente, dopo aver fatto questo backport, rhythmbox di Squeeze ha sempre qualche problema e non è molto affidabile nel mettere la musica sull'iPod. Notare i problemi indicati nella sezione su rhythmbox. Tuttavia, lo si può decisamente usare per ottenere musica DALL'iPod!

* gtkpod di Squeeze non sembra funzionare per nulla. Tuttavia è relativamente facile compilare gtkpod 2.0.2 da snapshot.debian.org e ciò sembra funzionare piuttosto bene con iOS 5!

* Per poter procedere con la compilazione di questo backport, si deve essere a proprio agio nella:

  1. manipolazione di /etc/sources.list, facendo diverse modifiche
  2. modificazione di file sorgenti
  3. compilazione di pacchetti debian usando dpkg-buildpackage
  4. installazione di deb
  5. esecuzione paziente di tutti i passi in ordine

* NOTARE: questo funziona con libimobiledevice 1.1.1-3, disponibile al 16 febbraio 2012. Se, al momento in cui si provano queste istruzioni, wheezy è passata ad una versione successiva di libimobiledevice e non funziona, allora la cosa migliore da fare potrebbe essere ottenere libimobiledevice 1.1.1 da http://snapshot.debian.org; fare riferimento alle istruzioni per gtkpod 2.0.2 di seguito.

* Bene, se si è pronti, si parte...

Istruzioni passo-passo per fare il backport

* Come si può vedere, fare questo backport non è roba da deboli di cuore. Buona fortuna!

Elenco dei programmi

Elenco degli strumenti

Strumenti e programmi utili per gli utenti di iPhone in Debian

Orfano:


CategoryPhone