iio oscilloscope cross compilation

Hi,

I tried to cross compile iio oscilloscope application on Zynq ultrascale+ MPSoC board.

But I tend to get errors as below:

LD osc
libosc.so: undefined reference to `json_loads'
libosc.so: undefined reference to `json_array_size'
libosc.so: undefined reference to `json_string_value'
libosc.so: undefined reference to `Mat_VarFree'
libosc.so: undefined reference to `fftw_execute'
libosc.so: undefined reference to `gdk_pixbuf_get_from_drawable'
libosc.so: undefined reference to `GTK_SIGNAL_FUNC'
libosc.so: undefined reference to `fftw_plan_dft_r2c_1d'
libosc.so: undefined reference to `Mat_CreateVer'
libosc.so: undefined reference to `fftw_cleanup'
libosc.so: undefined reference to `Mat_VarWrite'
libosc.so: undefined reference to `GTK_OBJECT'
libosc.so: undefined reference to `json_array_get'
libosc.so: undefined reference to `fftw_plan_dft_1d'
libosc.so: undefined reference to `gtk_combo_box_get_active_text'
libosc.so: undefined reference to `json_delete'
libosc.so: undefined reference to `parse_FRU'
libosc.so: undefined reference to `fftw_malloc'
libosc.so: undefined reference to `gdk_colormap_get_system'
libosc.so: undefined reference to `Mat_Close'
libosc.so: undefined reference to `min2date'
libosc.so: undefined reference to `GDK_DRAWABLE'
libosc.so: undefined reference to `fftw_free'
libosc.so: undefined reference to `Mat_VarCreate'
libosc.so: undefined reference to `fftw_destroy_plan'
libosc.so: undefined reference to `json_object_get'
libosc.so: undefined reference to `gtk_signal_connect_object'
collect2: error: ld returned 1 exit status
Makefile:214: recipe for target 'osc' failed
make: *** [osc] Error 1

Please let me know the steps to run iio oscilloscope on  Zynq ultrascale+ MPSoC board.

Thanks

  • 0
    •  Analog Employees 
    on Oct 1, 2019 3:32 PM over 1 year ago

    When you cross-compile you need all the dependencies built in the architecture of your target. 

    The easiest possible thing would be to just compile IIO-Scope on the board itself. Our standard SD card includes compilers and IIO-Scope is provided by default as well.

    -Travis

  • We tried to boot the board using the external rootfs present to in the SD card provided by Analog devices.And used BOOT.BIN, image.ub and system.bit that we built.
    But after booting we are getting the following error:

    Mount failed for selinuxfs on /sys/fs/selinux: No such file or directory
    [ OK ]ting up X socket directories...
    * STARTDISTCC is set to false in /etc/default/distcc
    * /usr/bin/distccd not starting
    * Starting IIO Daemon iiod mkdir: cannot create directory '/sys/kernel/config/usb_gadget/ffs/functions/acm.usb0': No such file or directory
    ln: failed to create symbolic link '/sys/kernel/config/usb_gadget/ffs/configs/c.1/acm.usb0': No such file or directory
    [ OK ]

    Last login: Tue Dec 1 14:08:02 UTC 2037 on tty1
    Welcome to Linaro 14.04 (GNU/Linux 4.14.0 aarch64)

    * Documentation: https://wiki.analog.com/ https://ez.analog.com/

    [ OK ]nalog:~# * Setting up X socket directories...
    * STARTDISTCC is set to false in /etc/default/distcc
    * /usr/bin/distccd not starting

    How do I solve this? Can I use external rootfs available for Zynq Ultrascale+ MpSoC(kernel 4.14) platform?

    Thanks

  • 0
    •  Analog Employees 
    on Oct 11, 2019 1:27 PM over 1 year ago in reply to VMohan530

    Ignore those messages.

    Once you see "root@analog:~#", you are ready to go.

    Dragos

  • Hi,

    Thanks for the reply.
    I was able to get the prompt:
    root@analog:~#
    But when I connected the hdmi device and booted the board. I was not able to see the iio-oscilloscope window on hdmi device.

    But I observed that the application is compiled for 32 bit machine:
    root@analog:~# file /usr/local/bin/osc
    /usr/local/bin/osc: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=b51751b82bd1274c6d683ba28892c255a5c27ed

    But we are using Zynq Ultrascale + MPSoC platform, which is 64 bit. Is the reason for not able to run the application?

    Is the application tested on 64 bit machine?

    or is the below errors affecting the application?

    Starting IIO Daemon iiod mkdir: cannot create directory '/sys/kernel/config/usb_gadget/ffs/functions/acm.usb0': No such file or directory
    ln: failed to create symbolic link '/sys/kernel/config/usb_gadget/ffs/configs/c.1/acm.usb0': No such file or directory

    We downloaded the image from https://wiki.analog.com/resources/tools-software/linux-software/zynq_images/linux_hosts
    We are only able to see "_ " in the hdmi display.

    Thanks

  • Hi,

    We actually don't need to plot the real time data of ADC.

    In our case ADC data is captured by FPGA and stored in SATA. Using IIO- Oscilloscope we need to plot the captured data , that is stored in files of SATA. 

    Can we use IIo oscilloscope application to meet this requirement?

    Thanks