Hallo Forum, bin etwas am verzweifeln, beim Compilieren von liblxi bzw. lxi-tools. Habe es schon auf anderen Rechnern etliche male problemlos gemacht aber jetzt habe ich das Problem wenn ich liblxi compiliere und installiere, dass beim Compilieren von lxi-tools ums verrecken die liblxi nicht gefunden wird. Steht bei mir unter /usr/local/lib64. Habe mich heute wieder hingesetzt und mir das Verzeichnis der Sourcen der liblxi durchgesehen und dort das test Verzeichnis gefunden. Dachte mir, dass das Testprogramm doch wenigstens laufen müsste, wenn liblxi fehlerfrei compilert und installiert wird. Vorweg habe ich mit ldd geschaut, ob der Lib irgendwelche libs fehlen - das ist nicht der Fall, alles sieht ok aus. >ldd /usr/local/lib64/liblxi.so | gerp -i found liefert keinen Output. Den Output ohne grep erspare ich Euch. Versuche ich das Testprogramm zu compilieren, erhalte ich vom Linker 'undefined reference to ...' Fehler >gcc -o scpi scpi.c -llxi /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `clnt_create' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_char' ..... /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_void' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_int' collect2: error: ld returned 1 exit status Suche ich hingegen mit objdump in der Lib nach den Symbolen, so finde ich diese %-) >objdump -x /usr/local/lib64/liblxi.so | grep 'xdr_char' 0000000000000000 UND 0000000000000000 xdr_char mw@linux-kwm1:/dev/shm/liblxi/test >objdump -x /usr/local/lib64/liblxi.so | grep 'xdr_void' 0000000000000000 UND 0000000000000000 xdr_void Allerdings sind die Einsprungadressen Null! Wo liegt mein Problem? Hat jemand eine Idee. Wollte eigentlich für einen anderen Thread meine Oszi-Screenshots machen und nicht beim der lxi Installation Zeit verschwenden. Wäre für Eure Hilfe dankbar. LG Markus
In /usr/local/lib einen Symlink auf dein Library anlegen und anschließend einmal ldconfig aufrufen (natürlich mit root-Privilegien!) Danach sollte es gehen.
Hallo Harry,
danke für die schnelle Antwort.
Werde ich gleich ausprobieren, verstehe aber Deinen Lösungs-
vorschlag nicht, da der Linker bei mir an der richtigen Stelle
sucht - s.u. "/usr/local/lib64/liblxi.so"
Markus
>gcc -llxi -o scpi scpi.c
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `clnt_create'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_char'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_bool'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_int'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_enum'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_char'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_short'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_string'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_bytes'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_void'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld
: /usr/local/lib64/liblxi.so: undefined reference to `xdr_int'
collect2: error: ld returned 1 exit status
Harry, hat leider nicht geholfen! root@linux-kwm1:/usr/local/lib >ln -s /usr/local/lib64/liblxi.so liblxi.so root@linux-kwm1:/usr/local/lib >ldconfig liblxi.so ldconfig: relative path `liblxi.so' used to build cache mw@linux-kwm1:/dev/shm/liblxi/test >gcc -llxi -o scpi scpi.c /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `clnt_create' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_char' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_bool' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_int' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_enum' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_char' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_u_short' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_string' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_bytes' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_void' /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld : /usr/local/lib64/liblxi.so: undefined reference to `xdr_int' collect2: error: ld returned 1 exit status
Markus W. schrieb: > root@linux-kwm1:/usr/local/lib >>ldconfig liblxi.so > ldconfig: relative path `liblxi.so' used to build cache Du musst ldconfig OHNE Argumente aufrufen. Aber irgendwas scheint da mit deinen rpc-Librarys noch nicht zu stimmen. Evtl. fehlen die dev-Pakete dafür.
Harry, meisten sieht man fehlende dev-Packete beim Aufruf von configure. Ich kann mir es aber kaum vorstellen, wobei ich mich auch irren kann. Wenn ich ldd auf eine Lib oder ein Binary anwende, sehe ich sofort, ob was beim dynamischem Laden fehlt oder nicht. Das hat mir immer gute Dienste bei der Suche nach der Fehlerursache geleistet. Ich könnte mir vorstellen dass das Problem am aktuelle Kernel mit seinen neuen Schnittstellen liegt. Linux linux-kwm1 5.8.7-1-default #1 SMP Sun Sep 6 07:39:46 UTC 2020 (7fc52c0) x86_64 x86_64 x86_64 GNU/Linux Denn auf meinen anderen Rechnern laufen die lxi-tools ohne Probleme. Auf dem zbook17 G3, dass ich seit einiger Zeit habe und mit dem neusten Linux betreibe, tritt das Problem aber auf. Dann bleibt mir nichts weiter übrig als weiter zu suchen. Danke derweil für Deine Mühe. Markus
Hallo zur Info, xdr_ sind RPC Daten Typen die in der usr/include/rpc/xdr.h und mit der Lib libtirpc zusammenhängen. Die Lib ist bei mir zwar installiert aber trotzdem trat der o.g. Fehler auf. Nachdem ich das Compilieren mit dem Schalter -ltirpc aufgerufen habe, konnte ich das Testprogramm der liblxi compilieren und linken. >gcc -llxi -ltirpc scpi.c -o scpi mw@linux-kwm1:/dev/shm/liblxi/test >ls -l total 32 -rwxr-xr-x 1 mw users 20936 Oct 3 13:28 scpi -rw-r--r-- 1 mw users 610 Oct 3 13:19 scpi.c -rw-r--r-- 1 mw users 691 Oct 2 20:11 search.c Nun werde ich nach gleicher Methode beim lxi-tool verfahren. Melde mich später wenn es geklappt hat. Markus
:
Bearbeitet durch User
Weitere nützliche infos zu lxi findet man auch auf EEVBlog. https://www.eevblog.com/forum/testgear/open-source-lxi-tools-and-liblxi-v1-0-released-for-gnulinux/ Markus
Hallo Forum,
Kaum sind zwei Tage vergangen konnte ich einen
Screendump von meinem SDS2k machen.
Mit lxi und lxi-tools hatte ich kein Glück beim
SDS2k Oszi, obwohl beim SSA3k alles gut funktioniert.
Dem SDS2k bin ich mittels Python/usbtmc/pyusb beigekommen.
Lange Rede kurzer Sinn, das Skript um das SCDP Kommando
unter Linux abzusetzen und den Output zu lesen habe ich
angehängt.
Die udev rules lauten
>cat /etc/udev/rules.d/95-siglent.rules
# USBTMC instruments
# Siglent SDS2000X idVendor=f4ec, idProduct=ee3a
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="f4ec",
ATTRS{idProduct}=="ee3a", GROUP="usbtmc", MODE="0660"
Danach als root "udevadm control --reload", damit die Regel wirkt.
Der Dump eines Rechteck-Signals ist auch im Anhang zu sehen.
Gruß
Markus
PS.: Jetzt kann ich mich meinem eigentlichen Problem zuwenden
dem PicoScope das spinnt - das ist aber in einem anderen Thred
zu lesen.
@All, habe ein python3 Skript gemacht, das den Screen-Dump im .bmp [default] .jpg und .png erzeugt. Aufruf screen_copy_sds2k.py ohne Parameter erzeugt es ein "screen_dump.bmp" File mit Parameter -f <File-Name-ohne-ext> erzeugt es File-Name-ohne-ext.bmp mit Parameter -e jpg oder png erzeugt es ein "screen_dump.(jpg|png) File mit beiden Parametern -f <File-Name-ohne-ext> -e jpg oder png entsprechen die Kombination aus beien. Parameter -h bzw --help für den Hilfe Screen. Ich hoffe das ist für den einen oder anderen hilfreich, der auch mit der SDS2KX Serie Dumps machen will. Markus
Noch was! Mir ist noch eingefallen, dass z.B. die SSA's und wahrscheinlich auch die neuen SVA's und SDSxxxx-E, SDSxxxx-X-Plus Serien von haus aus jetzt PNG's als Screen-Dump Format verwenden. Mein Skript hat als Default .bmp was wesentlich größere Files bedeutet und etwas unpraktischer ist. Somit muss man es für die anderen Siglent Geräte so anpassen, dass PNG als default Bild-Format verwendet wird. Könnte man entsprechend des Resultats der *IDN? Abfrage steuern. Für meinen Zweck und für alle anderen, die sie SDS2kX Serien mit dem Blackfin-DSP ohne Linux besitzen, ist das Skript aber durchaus nützlich. Markus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.