Libimobiledevice: Fehler: undefinierter Verweis auf `usbmuxd_save_pair_record_with_device_id'

Erstellt am 3. Okt. 2018  ·  27Kommentare  ·  Quelle: libimobiledevice/libimobiledevice

Hi,
Ich habe dieses Skript verwendet: http://pastebin.com/6u0TEhjz , um die neuesten Versionen zu installieren und ./autogen.sh --enable-debug-code auszuführen, führt zu:

../src/.libs/libimobiledevice.so: undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
Makefile:653: recipe for target 'idevice_id' failed

Ich habe ein grep auf usbmuxd_save_pair_record_with_device_id gemacht , was zu

/usr/local/include $ grep -irn "usbmuxd_save_pair_record_with_device_id" .
./usbmuxd.h:221:int usbmuxd_save_pair_record_with_device_id(const char* record_id, uint32_t device_id, const char *record_data, uint32_t record_size);

Hilfreichster Kommentar

Ich habe es gerade auf meinem Raspberry Pi 3 mit den folgenden Befehlen installiert:

mkdir limd
cd limd
sudo apt-get install git build-essential libtool autoconf automake libusb-1.0-0-dev libssl-dev
git clone https://github.com/libimobiledevice/libplist.git
git clone https://github.com/libimobiledevice/libusbmuxd.git
git clone https://github.com/libimobiledevice/libimobiledevice.git
git clone https://github.com/libimobiledevice/usbmuxd.git
cd libplist
./autogen.sh
make && sudo make install
cd ..
cd libusbmuxd
./autogen.sh
make && sudo make install
cd ..
cd libimobiledevice
./autogen.sh --enable-debug-code
make && sudo make install
cd ..
cd usbmuxd
./autogen.sh
make && sudo make install

# one-time setup only:
sudo groupadd -r usbmux
sudo useradd -r -c 'USBMux user' -g usbmux -d /nonexistant -s /sbin/nologin usbmux
sudo ldconfig
sudo /etc/init.d/udev restart

Angeschlossenes Gerät, vertrauenswürdiger Computer, dann:

$ idevice_id -l
4918**********************
$ ideviceinfo -k ProductVersion
12.1.2

Alle funktionieren. Ich sehe nicht, was da schief läuft.

Alle 27 Kommentare

Lösung:

  1. $ sudo vim /etc/ld.so.conf

Dateiinhalt:

/usr/local/lib

  1. sudo ldconfig
  2. make && sudo make install

Ich erhalte das gleiche, wenn ich auf OSX 10.14 Mojave baue

Ich hatte das gleiche Problem mit den neuesten Builds. Nachdem ich auf fb71aeef10488ed7b0e60a1c8a553193301428c0 zurückgerollt war, konnte ich ohne Probleme kompilieren.

Leider hat die von dir genannte Problemumgehung bei mir nicht funktioniert. Meine (von git aktualisierten) usbmuxd-Header befinden sich in /usr/include. Ich habe das und /usr/local/lib angewendet, ohne dass sich das Problem geändert hat.

Arch x64, linux-lts 4.14.69, gcc 8.2.1

Configuration for libimobiledevice 1.2.1:
  Install prefix: .........: /usr
  Debug code ..............: no
  Python bindings .........: no
  SSL support backend .....: OpenSSL
Making all in tools
make[2]: Entering directory '/home/user/build/libimobiledevice-git/src/libimobiledevice/tools'
  CCLD     idevice_id
  CCLD     ideviceinfo
  CCLD     idevicename
  CCLD     idevicepair
/usr/bin/ld: ../src/.libs/libimobiledevice.so: undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:697: idevicename] Error 1
make[2]: *** Waiting for unfinished jobs....
/usr/bin/ld: ../common/.libs/libinternalcommon.a(userpref.o): in function `userpref_save_pair_record':
userpref.c:(.text+0x37f): undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
/usr/bin/ld: ../src/.libs/libimobiledevice.so: undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:705: idevicepair] Error 1
make[2]: *** [Makefile:653: idevice_id] Error 1
/usr/bin/ld: ../src/.libs/libimobiledevice.so: undefined reference to `usbmuxd_save_pair_record_with_device_id'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:693: ideviceinfo] Error 1
make[2]: Leaving directory '/home/user/build/libimobiledevice-git/src/libimobiledevice/tools'
make[1]: *** [Makefile:455: all-recursive] Error 1
make[1]: Leaving directory '/home/user/build/libimobiledevice-git/src/libimobiledevice'
make: *** [Makefile:385: all] Error 2

Versuchen Sie, das Paket zu entfernen, das von der Distribution von libusbmuxd bereitgestellt wird. Dann sollte das Kompilieren von https://github.com/libimobiledice/libusbmuxd und die Verwendung der Lösung von @mcplectrum funktionieren.

Das gleiche erhalte ich, wenn ich auf Raspberry Pi 3B+ baue (Raspbian GNU/Linux 9.1 (stretch))

Ich habe auch auf fb71aee zurückgerollt ,das ist ok

Falls das etwas hilft: Ich habe hier auf Arch ein ähnliches Problem (allerdings nur auf einem meiner Systeme trotz ähnlicher Konfigurationen). Ich bekam immer wieder Systemfehler, die sagten "Failed to start Daemon for power management" , die die gesamte Maschine verlangsamten und es unmöglich machten, damit zu arbeiten. Ich habe dann den upower.service-Status überprüft, der mir einen Fehler gegeben hat und sagte "/usr/lib/upowerd: symbol lookup error: /usr/lib/libimobiledevice.so.6: undefined symbol: usbmuxd_save_pair_record_with_device_id".
Nachdem ich diesen Fehlerbericht gefunden hatte, habe ich von libimobiledevice-1.2.0+87+g92c5462-1-x86_64 auf libimobiledevice-1.2.0+66+g5a85432-2-x86_64 herabgestuft, wodurch das Problem vorerst behoben wurde.

Hier gilt das gleiche. Raspberry Pi 3B+ mit Rasbian (Stretch). Die Problemumgehung von @mcplectrum hat bei mir auch nicht funktioniert, aber das Zurücksetzen auf

Edit: Ich nehme es zurück. Ich habe gerade eine saubere Installation gemacht und es hat funktioniert. Ich hatte einige der Bibliotheken und usbmuxd, die von einer früheren apt-get-Installation installiert wurden, herumliegen. Diese zu entfernen und usbmuxd neu zu kompilieren hat funktioniert.

Bearbeiten 2: Ein Jahr später musste ich es neu kompilieren und bekam den gleichen Fehler bei einer Neuinstallation. Diesmal hat der Workaround von @mcplectrum !!!

Danke Zinnwespe! Nach dem Update von Arch auf 4.20.0 hatte ich mehrere Probleme mit xfce, einschließlich upower konnte nicht gestartet werden. Das Downgrade von libimobiledevice hat meine Probleme gelöst. Vielen Dank

Hallo zusammen:

ich bin neu im libimobiledevice-Forum.

Wie Ethanas versuche ich auch, die libimobiledevice-Suite auf dem Raspberry PI 3B+ (Stretch Lite mit Openbox) zu installieren. Linux SSbase 4.14.79-v7+ #1159 SMP So 4. November 17:50:20 GMT 2018 armv7l GNU/Linux.

Ich bekomme auch den gleichen Fehler:

CC idevice_id-idevice_id.o
CCLD-idevice_id
../src/.libs/libimobiledevice.so: undefinierter Verweis auf `usbmuxd_save_pair_record_with_device_id'
Collect2: Fehler: ld hat 1 Exit-Status zurückgegeben

Ich folge den Schritten von: raspbian-install.sh auf https://gist.github.com/kfatehi/8922430#file -raspbian-install-sh-L13.

Kann mich bitte jemand anleiten, um das Problem zu lösen?
Soll ich den Zweig https://github.com/libimobiledevice/libimobiledevice/tree/1.1.7 für alle zugehörigen Pakete verwenden?

Ich weiß Ihre Hilfe sehr zu schätzen.

Vielen Dank

Sie scheinen ein älteres libusbmuxd-Paket installiert zu haben. Stellen Sie sicher, dass Sie das entfernen.

Ich habe versucht, sudo apt-get remove libusbmuxd libimobiledevice zu entfernen
und bekam
Paket für beide nicht gefunden.
Dies ist das erste Mal, dass ich diese Pakete auf Raspbian Stretch Lite installiere.

In diesem Fall haben Sie es irgendwie geschafft, eine ältere Version von libusbmuxd zu installieren.

Wie installiere ich das richtige?

Ich bin gerade dem Skript raspbian-install.sh gefolgt
https://gist.github.com/kfatehi/8922430#file -raspbian-install-sh-L13.

Danke für Ihre schnelle Antwort. Ich muss die Suite installieren, damit ein Benutzer, wenn er das iOS-Gerät mit dem RPI3 B+ verbindet, zumindest vorerst mit Informationen über das gehostete iOS-Gerät benachrichtigt wird.

IGNORIEREN SIE DIESE NACHRICHT. Überprüfen Sie die @nikias- Nachricht unten.

Nur für diejenigen, die nicht wissen, was das bedeutet:

Ich hatte das gleiche Problem mit den neuesten Builds. Nachdem ich auf fb71aee zurückgerollt war, konnte ich ohne

$ git clone https://github.com/libimobiledevice/libimobiledevice.git
$ cd libimobiledevice
$ git reset --hard fb71aeef10488ed7b0e60a1c8a553193301428c0

@TitanFighter das ist nicht der richtige Ansatz. Das Symbol, das es nicht finden kann, wurde libusbmuxd am 15. September mit dem Commit https://github.com/libimobiledevice/libusbmuxd/commit/07a493a570ddef69f5c424795345813fc9c32d6d hinzugefügt und libimobiledevice wurde aktualisiert, um es am 29. September mit dem Commit https://github.com zu verwenden /libimobiledevice/libimobiledevice/commit/f1ee0fd8b2b1dd65c64f5a67e208efc708295caa.
Ich verwende den neuesten Git-Kopf und es funktioniert gut.

Ich habe es gerade auf meinem Raspberry Pi 3 mit den folgenden Befehlen installiert:

mkdir limd
cd limd
sudo apt-get install git build-essential libtool autoconf automake libusb-1.0-0-dev libssl-dev
git clone https://github.com/libimobiledevice/libplist.git
git clone https://github.com/libimobiledevice/libusbmuxd.git
git clone https://github.com/libimobiledevice/libimobiledevice.git
git clone https://github.com/libimobiledevice/usbmuxd.git
cd libplist
./autogen.sh
make && sudo make install
cd ..
cd libusbmuxd
./autogen.sh
make && sudo make install
cd ..
cd libimobiledevice
./autogen.sh --enable-debug-code
make && sudo make install
cd ..
cd usbmuxd
./autogen.sh
make && sudo make install

# one-time setup only:
sudo groupadd -r usbmux
sudo useradd -r -c 'USBMux user' -g usbmux -d /nonexistant -s /sbin/nologin usbmux
sudo ldconfig
sudo /etc/init.d/udev restart

Angeschlossenes Gerät, vertrauenswürdiger Computer, dann:

$ idevice_id -l
4918**********************
$ ideviceinfo -k ProductVersion
12.1.2

Alle funktionieren. Ich sehe nicht, was da schief läuft.

@rajpancha1 überprüfe, ob du noch andere libusbmuxd-Reste hast:

$ find /usr -name "libusbmuxd*"
/usr/local/lib/libusbmuxd.so
/usr/local/lib/libusbmuxd.so.4
/usr/local/lib/libusbmuxd.a
/usr/local/lib/pkgconfig/libusbmuxd.pc
/usr/local/lib/libusbmuxd.so.4.1.0
/usr/local/lib/libusbmuxd.la

Das ist meine Ausgabe. Nur eine Bibliothek da.

Danke TitanFighter und Nikias.

Dem Vorschlag von TitanFighter folgend, habe ich das libimobile Gerät umgebaut.

Dann folgt Nikias Vorschlag, hier ist die Ausgabe:
$ ls -ltra find /usr -name "libusbmuxd*"
-rw-r--r-- 1 root root 86 4. Juni 2016 /usr/share/lintian/overrides/libusbmuxd4
lrwxrwxrwx 1 root root 19. Juni 2016 /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4 -> libusbmuxd.so.4.0.0
-rw-r--r-- 1 root root 30316 9. Juni 2016 /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4.0.0
-rwxr-xr-x 1 Root-Mitarbeiter 96812 18. Jan. 08:25 /usr/local/lib/libusbmuxd.so.4.1.0
lrwxrwxrwx 1 Root-Mitarbeiter 19 Jan 18 08:25 /usr/local/lib/libusbmuxd.so.4 -> libusbmuxd.so.4.1.0
lrwxrwxrwx 1 Root-Mitarbeiter 19 Jan 18 08:25 /usr/local/lib/libusbmuxd.so -> libusbmuxd.so.4.1.0
-rwxr-xr-x 1 Root-Mitarbeiter 1015 18. Jan. 08:25 /usr/local/lib/libusbmuxd.la
-rw-r--r-- 1 Root-Mitarbeiter 116154 Jan 18 08:25 /usr/local/lib/libusbmuxd.a
-rw-r--r-- 1 Root-Mitarbeiter 276 18. Jan. 08:25 /usr/local/lib/pkgconfig/libusbmuxd.pc

/usr/share/doc/libusbmuxd4:
insgesamt 64
-rw-r--r-- 1 root root 2898 4. Juni 2016 copyright
-rw-r--r-- 1 root root 516 4. Juni 2016 changelog.Debian.gz
drwxr-xr-x 2 root root 4096 18. August 13:23 .
drwxr-xr-x 1351 root root 49152 Jan 18 09:22 ..

@rajpancha1 Danke für die Schritt-für-Schritt-Befehle. Auch in meinem Fall der Befehl:
ideviceinfo -k ProductVersion
angesprochenes Problem
ERROR: Could not connect to lockdownd, error code -2 .

Habe die Lösung hier gefunden , dh libimobiledevice muss so generiert werden ./autogen.sh --enable-openssl

PS Ubuntu 18.10 64bit.

@rajpancha1 wie Sie sehen, haben Sie eine ältere Version von 2016:

lrwxrwxrwx 1 root root     19 Jun 9 2016 /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4 -> libusbmuxd.so.4.0.0
-rw-r--r-- 1 root root  30316 Jun 9 2016 /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4.0.0

Beim Verknüpfen von libimobiledevice wird also dieses verwendet. Es gibt auch

/usr/share/lintian/overrides/libusbmuxd4

Dies bedeutet, dass ein anderes Paket als Standardpaket ausgewählt wurde.
Versuchen Sie, libusbmuxd4 und die anderen Pakete zu entfernen:

sudo apt-get remove libplist3 libusbmuxd4 libimobiledevice6

Wenn das Paket immer noch nicht installiert ist, entfernen Sie die Dateien manuell:

sudo rm /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4 /usr/lib/arm-linux-gnueabihf/libusbmuxd.so.4.0.0

Entfernen Sie auch die lintian-Datei:

sudo rm /usr/share/lintian/overrides/libusbmuxd4

Viel Glück.

@TitanFighter Sie müssen --enable-openssl wenn Sie libssl-dev installiert haben, da es standardmäßig OpenSSL auswählt (es sei denn, Sie haben es zuvor für die Verwendung von GnuTLS konfiguriert). Der gleiche Sperrfehler wird übrigens auch ausgegeben, wenn Sie dem Computer auf dem Gerät noch nicht vertraut haben.

Ich habe gerade damit begonnen, den Blitz von meiner Reise vor dem libimobilen Gerät wiederherzustellen.
Ich werde die Neuinstallation basierend auf der Anleitung von Ihnen beiden neu starten.
Ich hatte libssl-dev installiert.

Ich melde mich bald.
Vielen Dank

Ich habe gerade damit begonnen, den Blitz von meiner Reise vor dem libimobilen Gerät wiederherzustellen.
Ich werde die Neuinstallation basierend auf der Anleitung von Ihnen beiden neu starten.
Ich hatte libssl-dev installiert.

Ich melde mich bald.
Vielen Dank

Groß! Es klappt!
Danke TitanFighter und Nikias für deine Hilfe.
Noch eine Frage. Wie erstelle ich eine Benachrichtigung, wenn ein Gerät verbunden ist?

sudo service usbmuxd start
sudo service usbmuxd-status
$ sudo service usbmuxd-status
? usbmuxd.service - Socket-Daemon für das usbmux-Protokoll, das von Apple-Geräten verwendet wird
Geladen: geladen (/lib/systemd/system/usbmuxd.service; statisch; Herstellervoreinstellung: aktiviert)
Aktiv: aktiv (laufend) seit Fr 18.01.2019 19:56:01 CST; Vor 10 Minuten
Dokumente :
Haupt-PID: 2220 (usbmuxd)
CGroup: /system.slice/usbmuxd.service
mq2220 /usr/local/sbin/usbmuxd --user usbmux --systemd
....
....
$ idevice_id -l
11a00339c2da93672ae1b56c393a49921b4e109d

$ ideviceinfo -k Produktversion
9.3.5
$ idevicename
Darshanas iPad

Nach der Installation der libimobiledevice-Suite bemerke ich, dass Maus und Tastatur einfrieren.
Ist dieses Verhalten auch noch jemandem aufgefallen?

@rajpancha1 Ich habe nie Maus oder Tastatur an das RPi angeschlossen, aber ich bezweifle irgendwie, dass dies in irgendeiner Weise zusammenhängt. Tritt dies auch auf, wenn kein iOS-Gerät angeschlossen ist? Wenn Sie die Prozessliste für usbmuxd überprüfen:

ps axgu |grep usbmuxd

Wenn nichts angezeigt wird (außer einer Zeile mit grep usbmuxd ), dann liegt es definitiv nicht an libimobiledevice, da nichts läuft, was HID stören könnte.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

tmyroadctfig picture tmyroadctfig  ·  5Kommentare

lianzisong picture lianzisong  ·  4Kommentare

alxjandroszlv picture alxjandroszlv  ·  3Kommentare

pablichjenkov picture pablichjenkov  ·  5Kommentare

Hiepars picture Hiepars  ·  3Kommentare