Jump to content
  • 0

Can't get Waveforms SDK to work on Linux (Arch and Ubuntu 22.04 VM)


Gen

Question

Hi,

I can't get the Waveforms SDK working. The Waveforms application works fine, and the dwfcmd command as well.

I have tried the AUR packages (waveforms and adept runtime) on Archlinux, and then made a fresh Ubuntu VM (quemu) (from iso: ubuntu-22.04.1-desktop-amd64.iso) where I installed digilent.adept.runtime_2.26.1-amd64.deb and digilent.waveforms_3.19.5_amd64.deb downloaded from the digilent website.

The Python examples, or my own Python scripts using the SDK always throw an error of an undefined symbol.

 File "/usr/share/digilent/waveforms/samples/py/Device_Enumeration.py", line 19, in <module>
    dwf = cdll.LoadLibrary("libdwf.so")
  File "/usr/lib/python3.10/ctypes/__init__.py", line 452, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.10/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /lib/libdwf.so: undefined symbol: DmgtConfigureFPGA

The nm command also says that there are no symbols in /lib/libdwf.so or /usr/lib/libdwf.so. Shouldn't there be some?

I also can't build any C examples, or the dwfcmd command. (I can run the included one, but not compile it myself)

 

When building the dwfcmd with: sudo g++ -ldwf dwfcmd.cpp -o out I get endless warnings and hidden somewhere in them is one error:

dwfcmd.cpp: In function ‘bool FAnalogOutPlay(HDWF, int, int)’:
dwfcmd.cpp:1734:17: error: ordered comparison of pointer with integer zero (‘char*’ and ‘int’)
 1734 |         if(szRun<=0){

after commenting out the code that causes this error, ld complains about not finding symbols.

A bunch more of undefined reference to ...
/usr/bin/ld: dwfcmd.cpp:(.text+0xcce7): undefined reference to `FDwfDigitalIOOutputGet'
/usr/bin/ld: dwfcmd.cpp:(.text+0xcd9e): undefined reference to `FDwfDigitalIOStatus'
/usr/bin/ld: dwfcmd.cpp:(.text+0xcdd7): undefined reference to `FDwfDigitalIOInputInfo'
/usr/bin/ld: dwfcmd.cpp:(.text+0xce10): undefined reference to `FDwfDigitalIOInputStatus'
/usr/bin/ld: /tmp/ccdSlu5O.o: in function `main':
dwfcmd.cpp:(.text+0xd311): undefined reference to `FDwfParamSet'
/usr/bin/ld: dwfcmd.cpp:(.text+0xd930): undefined reference to `FDwfDeviceCloseAll'
collect2: error: ld returned 1 exit status

libusb-1.0.so.0 is present on both Arch and Ubuntu. as verified with ldconfig -p | grep usb.

What could be the problem here?

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Oh, I did read through that thread, but thought that because I already had adept installed, it must be a different problem for me. I didn't see that those links had a newer version. 🤦‍♂️

2.27.7 works without problems!! (on Arch and Ubuntu)

Thanks for the extremely fast response.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...