sábado, 23 de mayo de 2015

Problemas para conectar un iPod con Amarok o GTKPod

Al conectar el iPod, Amarok marca el error:

Conexión a iPhone, iPad o iPod fallida. ("Connecting to iPhone, iPad or iPod touch failed."
--
determined mount-point path to /tmp/kde-USUARIO/amarok/imobiledevice_uuid_XXXXUUIDXXXX
created /tmp/kde-USUARIO/amarok/imobiledevice_uuid_XXXXUUIDXXXX directory
calling `ifuse "-u" "XXXXUUIDXXXX" "-ofsname=afc://XXXXUUIDXXXX" "/tmp/kde-USUARIO/amarok/imobiledevice_uuid_XXXXUUIDXXXX"` with timeout of 10s
ifuse: usbmuxd_get_device_list: error opening socket!
ifuse: No device found, is it connected?
ifuse: If it is make sure that your user has permissions to access the raw usb device.
ifuse: If you're still having issues try unplugging the device and reconnecting it.
ifuse:
command exited with non-zero return code 1
Failed to mount iPhone on /tmp/kde-USUARIO/amarok/imobiledevice_uuid_XXXXUUIDXXXX

amarok --debug no aporta ningún error útil, pero si se conectó el iPod antes de iniciar Amarok, el mismo sufre una violación de segmento.  El backtrace nos dice que el problema es con libgpod:

#6  0x0000003c8803348d in type_check_is_value_type_U (type=133143986208) at gtype.c:4107
#7  g_type_check_value_holds (value=value@entry=0x1fcf5e0, type=type@entry=34428496) at gtype.c:4156
#8  0x00007f38f2296d0a in playcounts_plist_read (fimp=, fimp=, plist_data=0x2134570) at itdb_itunesdb.c:1178
#9  playcounts_init (fimp=0x1fc1600) at itdb_itunesdb.c:1319
#10 itdb_parse_internal (itdb=itdb@entry=0x1fe3950, compressed=compressed@entry=1, error=error@entry=0x7fffe3defac0) at itdb_itunesdb.c:3309

gtkpod también muere con SEGFAULT al tratar de leer el iPod.  Al parecer, el problema sucede cuando libgpod intenta leer las estadísticas de reproducción en 'iTunes_Control/iTunes/PlayCounts.plist', y está arreglado en upstream desde el 2013, pero por alguna razón no lo está así en los repositorios.  En teoría, compilar libgpod a mano debería solucionarlo.  O, si no te importan las estadísticas de reproducción en tu iPod, puedes borrar o renombrar el fichero de las mismas como workaround –después de montar tu iPod:

ifuse /mnt/pda
mv /mnt/pda/iTunes_Control/iTunes/PlayCounts.plist /mnt/pda/iTunes_Control/iTunes/PlayCounts.plist.bak


Y asunto arreglado.