Post Go back to editing

ERROR: sp_blocking_read_next has timedout

Category: Software
Product Number: libiio
Software Version: 0.26

Hardware/Software:

  • AD-PQMON-SL
  • libiio v0.26
  • Ubuntu Mate 18.04

Code Snippet:

generate_waveform(1, "voltage0");

#include <stdio.h>
#include <iio.h>
#include <time.h>
#include "function.h"

void generate_waveform(unsigned char chnIndex, const char* chnAttr) {
	
	// Step 1: Enable Channel
	struct iio_channel* chnWaveform = iio_device_find_channel(dev, chnAttr, false);
	
	if (!chnWaveform) {
		errorCode = -3;
		fprintf(stderr, "Error -3: Failed to get channel details at channel Index[%i]:%s\n", chnIndex, chnAttr);
		iio_context_destroy(ctx);
	}

	iio_channel_enable(chnWaveform);

	// Step 2: Create Buffer
	struct iio_buffer* buf = iio_device_create_buffer(dev, BUFFER_SIZE, false);
	
	if (!buf) {
		errorCode = -6;
		fprintf(stderr, "Error -6: Failed to create buffer.\n");
	}

	iio_buffer_refill(buf);
	
	// Step 3: Buffer Cleanup
	iio_buffer_destroy(buf);

}

Error Code:

ERROR: sp_blocking_read_next has timedout
ERROR: sp_blocking_read_next has timedout
ERROR: READ LINE: -110

Troubleshooting Steps That I have taken:

  • If remove iio_buffer_refill(buf), the coding can run smoothly without error.
  • Hello, 

    When creating the iio context, which baud rate and port number are you specifying? 

    Have you tried running iio_info for your serial context? Could you share the output ? 

    Thanks,

    Cristina

  • Hi  

    1. When creating the iio context, which baud rate and port number are you specifying?

      • Baud Rate: 921600
      • Port: /dev/ttyACM0
      • URI: serial:/dev/ttyACM0,921600,8n1
    2. Have you tried running iio_info for your serial context? Could you share the output?

    pi@bpi-iot-ros-ai:~/projects/AD-PQMON-SL$ iio_info -u serial:/dev/ttyACM0,115200,8n1
    iio_info version: 0.26 (git tag:a0eca0d2)
    Libiio version: 0.26 (git tag: a0eca0d) backends: local xml ip usb serial
    IIO context created with serial backend.
    Backend version: 1.1 (git tag: 0000000)
    Backend description string: no-OS/projects/eval-pqmon add_event_channels-9b9b3b324
    IIO context has 3 attributes:
            uri: serial:/dev/ttyACM0,115200,8n1n
            serial,port: /dev/ttyACM0
            serial,description: MAX32650 CDC-ACM
    IIO context has 1 devices:
            iio:device0: pqm (buffer capable)
                    11 channels found:
                            current0: ia (input, index: 1, format: be:U16/16>>0)
                            8 channel-specific attributes found:
                                    attr  0: rms value: 0.13
                                    attr  1: angle value: 0
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.01616
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                            voltage0: ua (input, index: 2, format: be:U16/16>>0)
                            15 channel-specific attributes found:
                                    attr  0: rms value: 0.74
                                    attr  1: angle value: 0
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.05501
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                                    attr  8: deviation_under value: 0.74
                                    attr  9: deviation_over value: 229.97
                                    attr 10: pinst value: 0
                                    attr 11: pst value: 0
                                    attr 12: plt value: 0
                                    attr 13: magnitude1012 value: 0
                                    attr 14: maxMagnitude value: 0
                            current1: ib (input, index: 3, format: be:U16/16>>0)
                            8 channel-specific attributes found:
                                    attr  0: rms value: 0.04
                                    attr  1: angle value: 243
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.01616
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                            voltage1: ub (input, index: 4, format: be:U16/16>>0)
                            15 channel-specific attributes found:
                                    attr  0: rms value: 0.30
                                    attr  1: angle value: 0
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.05501
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                                    attr  8: deviation_under value: 0.30
                                    attr  9: deviation_over value: 229.97
                                    attr 10: pinst value: 0
                                    attr 11: pst value: 0
                                    attr 12: plt value: 0
                                    attr 13: magnitude1012 value: 0
                                    attr 14: maxMagnitude value: 0
                            current2: ic (input, index: 5, format: be:U16/16>>0)
                            8 channel-specific attributes found:
                                    attr  0: rms value: 0.05
                                    attr  1: angle value: 15
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.01616
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                            voltage2: uc (input, index: 6, format: be:U16/16>>0)
                            15 channel-specific attributes found:
                                    attr  0: rms value: 0.14
                                    attr  1: angle value: 0
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.05501
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                                    attr  8: deviation_under value: 0.14
                                    attr  9: deviation_over value: 229.97
                                    attr 10: pinst value: 0
                                    attr 11: pst value: 0
                                    attr 12: plt value: 0
                                    attr 13: magnitude1012 value: 0
                                    attr 14: maxMagnitude value: 0
                            current3: in (input, index: 7, format: be:U16/16>>0)
                            8 channel-specific attributes found:
                                    attr  0: rms value: 0.16
                                    attr  1: angle ERROR: Invalid argument (22)
                                    attr  2: harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  3: inter_harmonics value: 0.000000 100.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
                                    attr  4: scale value: 0.01616
                                    attr  5: offset value: 0
                                    attr  6: thd value: 0.000000
                                    attr  7: raw value: 0
                            count0: dips (output, index: 8, format: be:U16/16>>0)
                            5 channel-specific attributes found:
                                    attr  0: countEvent value: 0
                                    attr  1: startTime value: 0 0 0 0 0 0
                                    attr  2: endTime value: 0 0 0 0 0 0
                                    attr  3: durationInCycles value: 0 0 0 0 0 0
                                    attr  4: minMag value: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
                            count1: swells (output, index: 9, format: be:U16/16>>0)
                            5 channel-specific attributes found:
                                    attr  0: countEvent value: 0
                                    attr  1: startTime value: 0 0 0 0 0 0
                                    attr  2: endTime value: 0 0 0 0 0 0
                                    attr  3: durationInCycles value: 0 0 0 0 0 0
                                    attr  4: maxMag value: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
                            count2: rvc (output, index: 10, format: be:U16/16>>0)
                            6 channel-specific attributes found:
                                    attr  0: countEvent value: 0
                                    attr  1: startTime value: 0 0 0 0 0 0
                                    attr  2: endTime value: 0 0 0 0 0 0
                                    attr  3: durationInCycles value: 0 0 0 0 0 0
                                    attr  4: deltaUmax value: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
                                    attr  5: deltaUss value: 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
                            count3: intrpt (output, index: 11, format: be:U16/16>>0)
                            4 channel-specific attributes found:
                                    attr  0: countEvent value: 0
                                    attr  1: startTime value: 0 0 0 0 0 0
                                    attr  2: endTime value: 0 0 0 0 0 0
                                    attr  3: durationInCycles value: 0 0 0 0 0 0
                    34 device-specific attributes found:
                                    attr  0: u2 value: 0.00
                                    attr  1: u0 value: 0.00
                                    attr  2: sneg_voltage value: 0.00
                                    attr  3: spos_voltage value: 0.00
                                    attr  4: szro_voltage value: 0.00
                                    attr  5: i2 value: 0.00
                                    attr  6: i0 value: 0.00
                                    attr  7: sneg_current value: 0.00
                                    attr  8: spos_current value: 0.00
                                    attr  9: szro_current value: 0.00
                                    attr 10: nominal_voltage value: 0.32
                                    attr 11: voltage_scale value: 1001.00
                                    attr 12: current_scale value: 294.00
                                    attr 13: i_consel_en value: 0.00
                                    attr 14: dip_threshold value: 90.00
                                    attr 15: dip_hysteresis value: 2.00
                                    attr 16: swell_threshold value: 110.00
                                    attr 17: swell_hysteresis value: 2.00
                                    attr 18: intrp_threshold value: 5.00
                                    attr 19: intrp_hysteresis value: 2.00
                                    attr 20: rvc_threshold value: 6.00
                                    attr 21: rvc_hysteresis value: 3.00
                                    attr 22: msv_carrier_frequency value: 330.00
                                    attr 23: msv_record_length value: 120.00
                                    attr 24: msv_threshold value: 0.30
                                    attr 25: sampling_frequency value: 0.00
                                    attr 26: v_consel value: 4W_WYE
                                    attr 27: v_consel_available value: 4W_WYE 3W_DELTA_VA_VB_NEGVC 4W_WYE_VB_NEGVA_NEGVC 4W_DELTA_VB_NEGVA 4W_DELTA_VA_VB_VC
                                    attr 28: flicker_model value: 230V_50HZ
                                    attr 29: flicker_model_available value: 230V_50HZ 230V_60HZ 120V_50HZ 120V_60HZ
                                    attr 30: nominal_frequency value: 50
                                    attr 31: nominal_frequency_available value: 50 60
                                    attr 32: process_data value: 1
                                    attr 33: fw_version value: 2.2
                    No trigger on this device
    pi@bpi-iot-ros-ai:~/projects/AD-PQMON-SL$

  • Hi  , sorry for tag you here because I can't message you in inbox. Do you need other information for troubleshooting?

  • Update: I tried to increase timeout but error persisted

    #include <stdio.h>
    #include <iio.h>
    #include <time.h>
    #include "function.h"
    
    #define TIMEOUT_MS 5000
    #define BUFFER_SIZE 1024
    
    struct iio_device* dev; 
    struct iio_context* ctx;
    int errorCode;
    
    void generate_waveform(unsigned char chnIndex, const char* chnAttr) {
        // Step 1: Enable Channel
        struct iio_channel* chnWaveform = iio_device_find_channel(dev, chnAttr, false);
        
        if (!chnWaveform) {
            errorCode = -3;
            fprintf(stderr, "Error -3: Failed to get channel details at channel Index[%i]: %s\n", chnIndex, chnAttr);
            iio_context_destroy(ctx);
            return;
        }
    
        iio_channel_enable(chnWaveform);
    
        // Step 2: Create Buffer
        struct iio_buffer* buf = iio_device_create_buffer(dev, BUFFER_SIZE, false);
        
        if (!buf) {
            errorCode = -6;
            fprintf(stderr, "Error -6: Failed to create buffer.\n");
            iio_context_destroy(ctx);
            return;
        }
    
        // Set a timeout for the context
        int ret = iio_context_set_timeout(ctx, TIMEOUT_MS);
        if (ret < 0) {
            fprintf(stderr, "Error: Failed to set timeout: %d\n", ret);
            iio_buffer_destroy(buf);
            iio_context_destroy(ctx);
            return;
        }
    
        // Step 3: Refill Buffer
        ssize_t refill_ret = iio_buffer_refill(buf);
        if (refill_ret < 0) {
            fprintf(stderr, "Error: Buffer refill failed with error code %zd\n", refill_ret);
            // Assuming -110 is the error code for timeout, which is commonly used in Linux systems
            if (refill_ret == -110) {
                fprintf(stderr, "Error: Buffer refill timed out.\n");
            }
            iio_buffer_destroy(buf);
            iio_context_destroy(ctx);
            return;
        }
    
        // Step 4: Buffer Cleanup
        iio_buffer_destroy(buf);
    }

  • Hi, 

    The issue seems to be related to libserialport, one of libiio's dependencies which is responsible for enabling the serial backend. Did you install libserialport via apt or another package manager ? If so, that version is very very old, and there have been numerous fixes since. 

    On your host computer, could you try the following ? 

    1. Uninstall the existing libserialport: sudo apt-get purge --auto-remove libserialport-dev

    2. Build and install the latest main branch of libserial port : 

            git clone github.com/.../libserialport
            cd libserialport
            ./autogen.sh
            ./configure
            make
            (sudo) make install

    3. Rebuild libiio : 

         cd /path/to/where/you/built/libiio/build

         cmake -DWITH_SERIAL_BACKEND=on ../

         make

         (sudo) make install

    Let me know if this fixes your issue. 

    Thanks,

    Cristina

     

  • Hi  ,

    I didn’t manually install libserialport, maybe it comes with the Banana Pi Ubuntu Mate 18.04 image.

    Result: The libiio failed to rebuild.

    Error Video: 

    Error Log:

    pi@bpi-iot-ros-ai:~$ sudo apt-get purge --auto-remove libserialport-dev
    [sudo] password for pi:
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Package 'libserialport-dev' is not installed, so not removed
    0 upgraded, 0 newly installed, 0 to remove and 565 not upgraded.
    pi@bpi-iot-ros-ai:~$ git clone https://github.com/sigrokproject/libserialport
    Cloning into 'libserialport'...
    remote: Enumerating objects: 1488, done.
    remote: Counting objects: 100% (427/427), done.
    remote: Compressing objects: 100% (51/51), done.
    remote: Total 1488 (delta 396), reused 389 (delta 376), pack-reused 1061 (from 1                                                                                                                                                             )
    Receiving objects: 100% (1488/1488), 384.42 KiB | 2.60 MiB/s, done.
    Resolving deltas: 100% (1005/1005), done.
    pi@bpi-iot-ros-ai:~$ cd libserialport
    pi@bpi-iot-ros-ai:~/libserialport$ ./autogen.sh
    autoreconf: Entering directory `.'
    autoreconf: configure.ac: not using Gettext
    autoreconf: running: aclocal --force -I autostuff
    autoreconf: configure.ac: tracing
    autoreconf: running: libtoolize --copy --force
    libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autostuff'.
    libtoolize: copying file 'autostuff/ltmain.sh'
    libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'autostuff'.
    libtoolize: copying file 'autostuff/libtool.m4'
    libtoolize: copying file 'autostuff/ltoptions.m4'
    libtoolize: copying file 'autostuff/ltsugar.m4'
    libtoolize: copying file 'autostuff/ltversion.m4'
    libtoolize: copying file 'autostuff/lt~obsolete.m4'
    autoreconf: running: /usr/bin/autoconf --force
    autoreconf: running: /usr/bin/autoheader --force
    autoreconf: running: automake --add-missing --copy --force-missing
    configure.ac:46: installing 'autostuff/ar-lib'
    configure.ac:46: installing 'autostuff/compile'
    configure.ac:67: installing 'autostuff/config.guess'
    configure.ac:67: installing 'autostuff/config.sub'
    configure.ac:44: installing 'autostuff/install-sh'
    configure.ac:44: installing 'autostuff/missing'
    Makefile.am: installing './INSTALL'
    Makefile.am: installing 'autostuff/depcomp'
    parallel-tests: installing 'autostuff/test-driver'
    autoreconf: Leaving directory `.'
    pi@bpi-iot-ros-ai:~/libserialport$ ./configure
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... /bin/mkdir -p
    checking for gawk... no
    checking for mawk... mawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking whether make supports nested variables... (cached) yes
    checking for style of include used by make... GNU
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether gcc understands -c and -o together... yes
    checking dependency style of gcc... gcc3
    checking for ar... ar
    checking the archiver (ar) interface... ar
    checking for gcc... (cached) gcc
    checking whether we are using the GNU C compiler... (cached) yes
    checking whether gcc accepts -g... (cached) yes
    checking for gcc option to accept ISO C89... (cached) none needed
    checking whether gcc understands -c and -o together... (cached) yes
    checking dependency style of gcc... (cached) gcc3
    checking whether ln -s works... yes
    checking build system type... aarch64-unknown-linux-gnu
    checking host system type... aarch64-unknown-linux-gnu
    checking how to print strings... printf
    checking for a sed that does not truncate output... /bin/sed
    checking for grep that handles long lines and -e... /bin/grep
    checking for egrep... /bin/grep -E
    checking for fgrep... /bin/grep -F
    checking for ld used by gcc... /usr/bin/ld
    checking if the linker (/usr/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
    checking the name lister (/usr/bin/nm -B) interface... BSD nm
    checking the maximum length of command line arguments... 1572864
    checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
    checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
    checking for /usr/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for archiver @FILE support... @
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for a working dd... /bin/dd
    checking how to truncate binary pipes... /bin/dd bs=4096 count=1
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... gcc -E
    checking for ANSI C header files... yes
    checking for sys/types.h... yes
    checking for sys/stat.h... yes
    checking for stdlib.h... yes
    checking for string.h... yes
    checking for memory.h... yes
    checking for strings.h... yes
    checking for inttypes.h... yes
    checking for stdint.h... yes
    checking for unistd.h... yes
    checking for dlfcn.h... yes
    checking for objdir... .libs
    checking if gcc supports -fno-rtti -fno-exceptions... no
    checking for gcc option to produce PIC... -fPIC -DPIC
    checking if gcc PIC flag -fPIC -DPIC works... yes
    checking if gcc static flag -static works... yes
    checking if gcc supports -c -o file.o... yes
    checking if gcc supports -c -o file.o... (cached) yes
    checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
    checking whether -lc should be explicitly linked in... no
    checking dynamic linker characteristics... GNU/Linux ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... yes
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... yes
    checking for special C compiler options needed for large files... no
    checking for _FILE_OFFSET_BITS value needed for large files... no
    checking for size_t... yes
    checking for struct termios2... yes
    checking for struct termios.c_ispeed... no
    checking for struct termios.c_ospeed... no
    checking for struct termios2.c_ispeed... yes
    checking for struct termios2.c_ospeed... yes
    checking whether BOTHER is declared... yes
    checking for struct serial_struct... yes
    checking for realpath... yes
    checking sys/file.h usability... yes
    checking sys/file.h presence... yes
    checking for sys/file.h... yes
    checking for flock... yes
    checking for clock_gettime... yes
    checking for visibility control... attribute
    checking that generated files are newer than configure... done
    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating libserialport.pc
    config.status: creating config.h
    config.status: executing depfiles commands
    config.status: executing libtool commands
    
    libserialport configuration summary:
    
     - Package version................. 0.1.2
     - Library ABI version............. 1:1:1
     - Prefix.......................... /usr/local
     - Building on..................... aarch64-unknown-linux-gnu
     - Building for.................... aarch64-unknown-linux-gnu
     - Building shared / static........ yes / yes
    
    Compile configuration:
     - C compiler...................... gcc
     - C compiler version.............. gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
     - C compiler flags................ -g -O2
     - Linker flags....................
    
    pi@bpi-iot-ros-ai:~/libserialport$ make
    make  all-am
      CC       serialport.lo
    In file included from libserialport_internal.h:50:0,
                     from serialport.c:24:
    libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
     #define SP_PACKAGE_VERSION_MICRO 1
    
    In file included from libserialport_internal.h:41:0,
                     from serialport.c:24:
    ./config.h:114:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_MICRO 2
    
    In file included from libserialport_internal.h:50:0,
                     from serialport.c:24:
    libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
     #define SP_PACKAGE_VERSION_STRING "0.1.1"
    
    In file included from libserialport_internal.h:41:0,
                     from serialport.c:24:
    ./config.h:120:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_STRING "0.1.2"
    
    In file included from libserialport_internal.h:50:0,
                     from serialport.c:24:
    libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
     #define SP_LIB_VERSION_REVISION 0
    
    In file included from libserialport_internal.h:41:0,
                     from serialport.c:24:
    ./config.h:105:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_REVISION 1
    
    In file included from libserialport_internal.h:50:0,
                     from serialport.c:24:
    libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
     #define SP_LIB_VERSION_STRING "1:0:1"
    
    In file included from libserialport_internal.h:41:0,
                     from serialport.c:24:
    ./config.h:108:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_STRING "1:1:1"
    
      CC       timing.lo
    In file included from libserialport_internal.h:50:0,
                     from timing.c:20:
    libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
     #define SP_PACKAGE_VERSION_MICRO 1
    
    In file included from libserialport_internal.h:41:0,
                     from timing.c:20:
    ./config.h:114:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_MICRO 2
    
    In file included from libserialport_internal.h:50:0,
                     from timing.c:20:
    libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
     #define SP_PACKAGE_VERSION_STRING "0.1.1"
    
    In file included from libserialport_internal.h:41:0,
                     from timing.c:20:
    ./config.h:120:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_STRING "0.1.2"
    
    In file included from libserialport_internal.h:50:0,
                     from timing.c:20:
    libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
     #define SP_LIB_VERSION_REVISION 0
    
    In file included from libserialport_internal.h:41:0,
                     from timing.c:20:
    ./config.h:105:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_REVISION 1
    
    In file included from libserialport_internal.h:50:0,
                     from timing.c:20:
    libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
     #define SP_LIB_VERSION_STRING "1:0:1"
    
    In file included from libserialport_internal.h:41:0,
                     from timing.c:20:
    ./config.h:108:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_STRING "1:1:1"
    
      CC       linux.lo
    In file included from linux.c:22:0:
    libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
     #define SP_PACKAGE_VERSION_MICRO 1
    
    In file included from linux.c:21:0:
    ./config.h:114:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_MICRO 2
    
    In file included from linux.c:22:0:
    libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
     #define SP_PACKAGE_VERSION_STRING "0.1.1"
    
    In file included from linux.c:21:0:
    ./config.h:120:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_STRING "0.1.2"
    
    In file included from linux.c:22:0:
    libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
     #define SP_LIB_VERSION_REVISION 0
    
    In file included from linux.c:21:0:
    ./config.h:105:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_REVISION 1
    
    In file included from linux.c:22:0:
    libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
     #define SP_LIB_VERSION_STRING "1:0:1"
    
    In file included from linux.c:21:0:
    ./config.h:108:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_STRING "1:1:1"
    
    In file included from libserialport_internal.h:41:0,
                     from linux.c:23:
    ./config.h:105:0: warning: "SP_LIB_VERSION_REVISION" redefined
     #define SP_LIB_VERSION_REVISION 1
    
    In file included from linux.c:22:0:
    libserialport.h:1730:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_REVISION 0
    
    In file included from libserialport_internal.h:41:0,
                     from linux.c:23:
    ./config.h:108:0: warning: "SP_LIB_VERSION_STRING" redefined
     #define SP_LIB_VERSION_STRING "1:1:1"
    
    In file included from linux.c:22:0:
    libserialport.h:1736:0: note: this is the location of the previous definition
     #define SP_LIB_VERSION_STRING "1:0:1"
    
    In file included from libserialport_internal.h:41:0,
                     from linux.c:23:
    ./config.h:114:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
     #define SP_PACKAGE_VERSION_MICRO 2
    
    In file included from linux.c:22:0:
    libserialport.h:1717:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_MICRO 1
    
    In file included from libserialport_internal.h:41:0,
                     from linux.c:23:
    ./config.h:120:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
     #define SP_PACKAGE_VERSION_STRING "0.1.2"
    
    In file included from linux.c:22:0:
    libserialport.h:1720:0: note: this is the location of the previous definition
     #define SP_PACKAGE_VERSION_STRING "0.1.1"
    
      CC       linux_termios.lo
      CCLD     libserialport.la
    ar: `u' modifier ignored since `D' is the default (see `U')
    pi@bpi-iot-ros-ai:~/libserialport$ (sudo) make install
    -bash: syntax error near unexpected token `make'
    pi@bpi-iot-ros-ai:~/libserialport$ sudo make install
     /bin/mkdir -p '/usr/local/lib'
     /bin/bash ./libtool --silent  --mode=install /usr/bin/install -c   libserialport.la '/usr/local/lib'
     /bin/mkdir -p '/usr/local/include'
     /usr/bin/install -c -m 644 libserialport.h '/usr/local/include'
     /bin/mkdir -p '/usr/local/lib/pkgconfig'
     /usr/bin/install -c -m 644 libserialport.pc '/usr/local/lib/pkgconfig'
    pi@bpi-iot-ros-ai:~/libserialport$ cd /home/pi/libiio/build
    pi@bpi-iot-ros-ai:~/libiio/build$ cmake -DWITH_SERIAL_BACKEND=on ../
    -- cmake version: 3.10.2
    -- Looking for libserialport : Found
    CMake Error at CMakeLists.txt:295 (file):
      file STRINGS file "/usr/include/libserialport.h" cannot be read.
    
    
    CMake Error at CMakeLists.txt:296 (string):
      string sub-command REGEX, mode REPLACE needs at least 6 arguments total to
      command.
    
    
    CMake Error at CMakeLists.txt:298 (message):
      The installed version of libserialport is too old.  The minimum version
      supported is 0.1.1.
    
    
    -- bin=/usr/bin/python lib= inc=
    -- Features enabled : xml network dns-sd avahi ipv6 serial local local-mmap hwmon usb utils iiod udev-rule c++-bindings iiod-serial iiod-aio iiod-usb man-utils python-bindings
    -- Features disabled: zstd bonjour examples iiod-systemd iiod-sysvinit iiod-upstart doc man c#-bindings
    -- LOG_LEVEL set to "Info"
    -- Configuring incomplete, errors occurred!
    See also "/home/pi/libiio/build/CMakeFiles/CMakeOutput.log".
    pi@bpi-iot-ros-ai:~/libiio/build$ pkg-config --modversion libserialport
    0.1.2
    pi@bpi-iot-ros-ai:~/libiio/build$ pkg-config --variable=prefix libserialport
    /usr/local
    pi@bpi-iot-ros-ai:~/libiio/build$ cmake -DWITH_SERIAL_BACKEND=on ../
    -- cmake version: 3.10.2
    -- Looking for libserialport : Found
    -- bin=/usr/bin/python lib= inc=
    -- Features enabled : xml network dns-sd avahi ipv6 serial local local-mmap hwmon usb utils iiod udev-rule c++-bindings iiod-serial iiod-aio iiod-usb man-utils python-bindings
    -- Features disabled: zstd bonjour examples iiod-systemd iiod-sysvinit iiod-upstart doc man c#-bindings
    -- LOG_LEVEL set to "Info"
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/pi/libiio/build
    pi@bpi-iot-ros-ai:~/libiio/build$ make
    Scanning dependencies of target iio
    [  0%] Building C object CMakeFiles/iio.dir/serial.c.o
    make[2]: *** No rule to make target '/usr/lib/aarch64-linux-gnu/libserialport.so', needed by 'libiio.so.0.26'.  Stop.
    CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/iio.dir/all' failed
    make[1]: *** [CMakeFiles/iio.dir/all] Error 2
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2
    pi@bpi-iot-ros-ai:~/libiio/build$ sudo make install
    make[2]: *** No rule to make target '/usr/lib/aarch64-linux-gnu/libserialport.so', needed by 'libiio.so.0.26'.  Stop.
    CMakeFiles/Makefile2:99: recipe for target 'CMakeFiles/iio.dir/all' failed
    make[1]: *** [CMakeFiles/iio.dir/all] Error 2
    Makefile:129: recipe for target 'all' failed
    make: *** [all] Error 2
    pi@bpi-iot-ros-ai:~/libiio/build$
    

    Abnormal During Executing Steps:

    1. Failed to find libserialport when uninstalling.
      • Confirmed the installation done by verifying the version and location
        1. pkg-config --modversion libserialport
        2. pkg-config --variable=prefix libserialport
    2. Remove () in (sudo) make install
    3. Change LIBSERIALPORT_INCLUDE_DIR:PATH= from </usr/include> to </usr/local/include>
      • /home/pi/libiio/build/CMakeCache.txt
  • Hi, 

    Could you try deleting everything in the build directory of libiio and then do a clean build ? 

    Thanks, 

    Cristina

  • Hi  ,

    1. Could you try deleting everything in the build directory of libiio and then do a clean build ?
      • I tried to reformat whole OS, download again libserialport and libiio successfully without error.
      • But ERROR: sp_blocking_read_next has timedout persisted
      • Using username "pi".
        pi@192.168.0.64's password:
        
         * Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
           directly, see https://bit.ly/ubuntu-containerd or try it now with
        
             snap install microk8s --classic
        
        587 packages can be updated.
        489 updates are security updates.
        
        New release '20.04.6 LTS' available.
        Run 'do-release-upgrade' to upgrade to it.
        
        Last login: Fri Apr  4 14:42:41 2025 from 192.168.0.225
        pi@bpi-iot-ros-ai:~$ git clone https://github.com/sigrokproject/libserialport.git
        Cloning into 'libserialport'...
        remote: Enumerating objects: 1488, done.
        remote: Counting objects: 100% (427/427), done.
        remote: Compressing objects: 100% (51/51), done.
        remote: Total 1488 (delta 396), reused 389 (delta 376), pack-reused 1061 (from 1)
        Receiving objects: 100% (1488/1488), 384.42 KiB | 3.15 MiB/s, done.
        Resolving deltas: 100% (1005/1005), done.
        pi@bpi-iot-ros-ai:~$ cd libserialport
        pi@bpi-iot-ros-ai:~/libserialport$ ./autogen.sh
        autoreconf: Entering directory `.'
        autoreconf: configure.ac: not using Gettext
        autoreconf: running: aclocal --force -I autostuff
        autoreconf: configure.ac: tracing
        autoreconf: running: libtoolize --copy --force
        libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, 'autostuff'.
        libtoolize: copying file 'autostuff/ltmain.sh'
        libtoolize: putting macros in AC_CONFIG_MACRO_DIRS, 'autostuff'.
        libtoolize: copying file 'autostuff/libtool.m4'
        libtoolize: copying file 'autostuff/ltoptions.m4'
        libtoolize: copying file 'autostuff/ltsugar.m4'
        libtoolize: copying file 'autostuff/ltversion.m4'
        libtoolize: copying file 'autostuff/lt~obsolete.m4'
        autoreconf: running: /usr/bin/autoconf --force
        autoreconf: running: /usr/bin/autoheader --force
        autoreconf: running: automake --add-missing --copy --force-missing
        configure.ac:46: installing 'autostuff/ar-lib'
        configure.ac:46: installing 'autostuff/compile'
        configure.ac:67: installing 'autostuff/config.guess'
        configure.ac:67: installing 'autostuff/config.sub'
        configure.ac:44: installing 'autostuff/install-sh'
        configure.ac:44: installing 'autostuff/missing'
        Makefile.am: installing './INSTALL'
        Makefile.am: installing 'autostuff/depcomp'
        parallel-tests: installing 'autostuff/test-driver'
        autoreconf: Leaving directory `.'
        pi@bpi-iot-ros-ai:~/libserialport$ ./configure
        checking for a BSD-compatible install... /usr/bin/install -c
        checking whether build environment is sane... yes
        checking for a thread-safe mkdir -p... /bin/mkdir -p
        checking for gawk... no
        checking for mawk... mawk
        checking whether make sets $(MAKE)... yes
        checking whether make supports nested variables... yes
        checking whether make supports nested variables... (cached) yes
        checking for style of include used by make... GNU
        checking for gcc... gcc
        checking whether the C compiler works... yes
        checking for C compiler default output file name... a.out
        checking for suffix of executables...
        checking whether we are cross compiling... no
        checking for suffix of object files... o
        checking whether we are using the GNU C compiler... yes
        checking whether gcc accepts -g... yes
        checking for gcc option to accept ISO C89... none needed
        checking whether gcc understands -c and -o together... yes
        checking dependency style of gcc... gcc3
        checking for ar... ar
        checking the archiver (ar) interface... ar
        checking for gcc... (cached) gcc
        checking whether we are using the GNU C compiler... (cached) yes
        checking whether gcc accepts -g... (cached) yes
        checking for gcc option to accept ISO C89... (cached) none needed
        checking whether gcc understands -c and -o together... (cached) yes
        checking dependency style of gcc... (cached) gcc3
        checking whether ln -s works... yes
        checking build system type... aarch64-unknown-linux-gnu
        checking host system type... aarch64-unknown-linux-gnu
        checking how to print strings... printf
        checking for a sed that does not truncate output... /bin/sed
        checking for grep that handles long lines and -e... /bin/grep
        checking for egrep... /bin/grep -E
        checking for fgrep... /bin/grep -F
        checking for ld used by gcc... /usr/bin/ld
        checking if the linker (/usr/bin/ld) is GNU ld... yes
        checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
        checking the name lister (/usr/bin/nm -B) interface... BSD nm
        checking the maximum length of command line arguments... 1572864
        checking how to convert aarch64-unknown-linux-gnu file names to aarch64-unknown-linux-gnu format... func_convert_file_noop
        checking how to convert aarch64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop
        checking for /usr/bin/ld option to reload object files... -r
        checking for objdump... objdump
        checking how to recognize dependent libraries... pass_all
        checking for dlltool... no
        checking how to associate runtime and link libraries... printf %s\n
        checking for archiver @FILE support... @
        checking for strip... strip
        checking for ranlib... ranlib
        checking command to parse /usr/bin/nm -B output from gcc object... ok
        checking for sysroot... no
        checking for a working dd... /bin/dd
        checking how to truncate binary pipes... /bin/dd bs=4096 count=1
        checking for mt... mt
        checking if mt is a manifest tool... no
        checking how to run the C preprocessor... gcc -E
        checking for ANSI C header files... yes
        checking for sys/types.h... yes
        checking for sys/stat.h... yes
        checking for stdlib.h... yes
        checking for string.h... yes
        checking for memory.h... yes
        checking for strings.h... yes
        checking for inttypes.h... yes
        checking for stdint.h... yes
        checking for unistd.h... yes
        checking for dlfcn.h... yes
        checking for objdir... .libs
        checking if gcc supports -fno-rtti -fno-exceptions... no
        checking for gcc option to produce PIC... -fPIC -DPIC
        checking if gcc PIC flag -fPIC -DPIC works... yes
        checking if gcc static flag -static works... yes
        checking if gcc supports -c -o file.o... yes
        checking if gcc supports -c -o file.o... (cached) yes
        checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
        checking whether -lc should be explicitly linked in... no
        checking dynamic linker characteristics... GNU/Linux ld.so
        checking how to hardcode library paths into programs... immediate
        checking whether stripping libraries is possible... yes
        checking if libtool supports shared libraries... yes
        checking whether to build shared libraries... yes
        checking whether to build static libraries... yes
        checking for special C compiler options needed for large files... no
        checking for _FILE_OFFSET_BITS value needed for large files... no
        checking for size_t... yes
        checking for struct termios2... yes
        checking for struct termios.c_ispeed... no
        checking for struct termios.c_ospeed... no
        checking for struct termios2.c_ispeed... yes
        checking for struct termios2.c_ospeed... yes
        checking whether BOTHER is declared... yes
        checking for struct serial_struct... yes
        checking for realpath... yes
        checking sys/file.h usability... yes
        checking sys/file.h presence... yes
        checking for sys/file.h... yes
        checking for flock... yes
        checking for clock_gettime... yes
        checking for visibility control... attribute
        checking that generated files are newer than configure... done
        configure: creating ./config.status
        config.status: creating Makefile
        config.status: creating libserialport.pc
        config.status: creating config.h
        config.status: executing depfiles commands
        config.status: executing libtool commands
        
        libserialport configuration summary:
        
         - Package version................. 0.1.2
         - Library ABI version............. 1:1:1
         - Prefix.......................... /usr/local
         - Building on..................... aarch64-unknown-linux-gnu
         - Building for.................... aarch64-unknown-linux-gnu
         - Building shared / static........ yes / yes
        
        Compile configuration:
         - C compiler...................... gcc
         - C compiler version.............. gcc (Ubuntu/Linaro 7.3.0-27ubuntu1~18.04) 7.3.0
         - C compiler flags................ -g -O2
         - Linker flags....................
        
        pi@bpi-iot-ros-ai:~/libserialport$ make
        make  all-am
          CC       serialport.lo
        In file included from libserialport_internal.h:50:0,
                         from serialport.c:24:
        libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
         #define SP_PACKAGE_VERSION_MICRO 1
        
        In file included from libserialport_internal.h:41:0,
                         from serialport.c:24:
        ./config.h:114:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_MICRO 2
        
        In file included from libserialport_internal.h:50:0,
                         from serialport.c:24:
        libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
         #define SP_PACKAGE_VERSION_STRING "0.1.1"
        
        In file included from libserialport_internal.h:41:0,
                         from serialport.c:24:
        ./config.h:120:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_STRING "0.1.2"
        
        In file included from libserialport_internal.h:50:0,
                         from serialport.c:24:
        libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
         #define SP_LIB_VERSION_REVISION 0
        
        In file included from libserialport_internal.h:41:0,
                         from serialport.c:24:
        ./config.h:105:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_REVISION 1
        
        In file included from libserialport_internal.h:50:0,
                         from serialport.c:24:
        libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
         #define SP_LIB_VERSION_STRING "1:0:1"
        
        In file included from libserialport_internal.h:41:0,
                         from serialport.c:24:
        ./config.h:108:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_STRING "1:1:1"
        
          CC       timing.lo
        In file included from libserialport_internal.h:50:0,
                         from timing.c:20:
        libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
         #define SP_PACKAGE_VERSION_MICRO 1
        
        In file included from libserialport_internal.h:41:0,
                         from timing.c:20:
        ./config.h:114:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_MICRO 2
        
        In file included from libserialport_internal.h:50:0,
                         from timing.c:20:
        libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
         #define SP_PACKAGE_VERSION_STRING "0.1.1"
        
        In file included from libserialport_internal.h:41:0,
                         from timing.c:20:
        ./config.h:120:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_STRING "0.1.2"
        
        In file included from libserialport_internal.h:50:0,
                         from timing.c:20:
        libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
         #define SP_LIB_VERSION_REVISION 0
        
        In file included from libserialport_internal.h:41:0,
                         from timing.c:20:
        ./config.h:105:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_REVISION 1
        
        In file included from libserialport_internal.h:50:0,
                         from timing.c:20:
        libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
         #define SP_LIB_VERSION_STRING "1:0:1"
        
        In file included from libserialport_internal.h:41:0,
                         from timing.c:20:
        ./config.h:108:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_STRING "1:1:1"
        
          CC       linux.lo
        In file included from linux.c:22:0:
        libserialport.h:1717:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
         #define SP_PACKAGE_VERSION_MICRO 1
        
        In file included from linux.c:21:0:
        ./config.h:114:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_MICRO 2
        
        In file included from linux.c:22:0:
        libserialport.h:1720:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
         #define SP_PACKAGE_VERSION_STRING "0.1.1"
        
        In file included from linux.c:21:0:
        ./config.h:120:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_STRING "0.1.2"
        
        In file included from linux.c:22:0:
        libserialport.h:1730:0: warning: "SP_LIB_VERSION_REVISION" redefined
         #define SP_LIB_VERSION_REVISION 0
        
        In file included from linux.c:21:0:
        ./config.h:105:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_REVISION 1
        
        In file included from linux.c:22:0:
        libserialport.h:1736:0: warning: "SP_LIB_VERSION_STRING" redefined
         #define SP_LIB_VERSION_STRING "1:0:1"
        
        In file included from linux.c:21:0:
        ./config.h:108:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_STRING "1:1:1"
        
        In file included from libserialport_internal.h:41:0,
                         from linux.c:23:
        ./config.h:105:0: warning: "SP_LIB_VERSION_REVISION" redefined
         #define SP_LIB_VERSION_REVISION 1
        
        In file included from linux.c:22:0:
        libserialport.h:1730:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_REVISION 0
        
        In file included from libserialport_internal.h:41:0,
                         from linux.c:23:
        ./config.h:108:0: warning: "SP_LIB_VERSION_STRING" redefined
         #define SP_LIB_VERSION_STRING "1:1:1"
        
        In file included from linux.c:22:0:
        libserialport.h:1736:0: note: this is the location of the previous definition
         #define SP_LIB_VERSION_STRING "1:0:1"
        
        In file included from libserialport_internal.h:41:0,
                         from linux.c:23:
        ./config.h:114:0: warning: "SP_PACKAGE_VERSION_MICRO" redefined
         #define SP_PACKAGE_VERSION_MICRO 2
        
        In file included from linux.c:22:0:
        libserialport.h:1717:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_MICRO 1
        
        In file included from libserialport_internal.h:41:0,
                         from linux.c:23:
        ./config.h:120:0: warning: "SP_PACKAGE_VERSION_STRING" redefined
         #define SP_PACKAGE_VERSION_STRING "0.1.2"
        
        In file included from linux.c:22:0:
        libserialport.h:1720:0: note: this is the location of the previous definition
         #define SP_PACKAGE_VERSION_STRING "0.1.1"
        
          CC       linux_termios.lo
          CCLD     libserialport.la
        ar: `u' modifier ignored since `D' is the default (see `U')
        pi@bpi-iot-ros-ai:~/libserialport$ sudo make install
        [sudo] password for pi:
         /bin/mkdir -p '/usr/local/lib'
         /bin/bash ./libtool --silent  --mode=install /usr/bin/install -c   libserialport.la '/usr/local/lib'
         /bin/mkdir -p '/usr/local/include'
         /usr/bin/install -c -m 644 libserialport.h '/usr/local/include'
         /bin/mkdir -p '/usr/local/lib/pkgconfig'
         /usr/bin/install -c -m 644 libserialport.pc '/usr/local/lib/pkgconfig'
        
      • Using username "pi".
        pi@192.168.0.64's password:
        
         * Ubuntu's Kubernetes 1.14 distributions can bypass Docker and use containerd
           directly, see https://bit.ly/ubuntu-containerd or try it now with
        
             snap install microk8s --classic
        
        587 packages can be updated.
        489 updates are security updates.
        
        New release '20.04.6 LTS' available.
        Run 'do-release-upgrade' to upgrade to it.
        
        Last login: Fri Apr  4 14:44:24 2025 from 192.168.0.225
        pi@bpi-iot-ros-ai:~$ sudo apt-get update
        [sudo] password for pi:
        Hit:1 http://ports.ubuntu.com bionic InRelease
        Hit:2 http://ports.ubuntu.com bionic-security InRelease
        Hit:3 http://ports.ubuntu.com bionic-updates InRelease
        Hit:4 http://ports.ubuntu.com bionic-backports InRelease
        Reading package lists... Done
        pi@bpi-iot-ros-ai:~$ sudo apt-get install build-essential
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        build-essential is already the newest version (12.4ubuntu1).
        0 upgraded, 0 newly installed, 0 to remove and 582 not upgraded.
        pi@bpi-iot-ros-ai:~$ sudo apt-get install libxml2-dev bison flex libcdk5-dev cma
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        bison is already the newest version (2:3.0.4.dfsg-1build1).
        flex is already the newest version (2.6.4-6).
        The following additional packages will be installed:
          cmake-data gir1.2-harfbuzz-0.0 icu-devtools libcdk5 libglib2.0-0 libglib2.0-bi
          libharfbuzz-gobject0 libicu-dev libicu-le-hb-dev libicu-le-hb0 libicu60 libicu
          libpcre3 libpcre3-dev libpcre32-3 libpcrecpp0v5 librhash0 libtinfo-dev libtinf
        Suggested packages:
          cmake-doc ninja-build libglib2.0-doc libgraphite2-utils icu-doc ncurses-doc
        Recommended packages:
          xdg-user-dirs
        The following NEW packages will be installed:
          cmake cmake-data gir1.2-harfbuzz-0.0 icu-devtools libcdk5 libcdk5-dev libglib2
          libharfbuzz-gobject0 libicu-dev libicu-le-hb-dev libicu-le-hb0 libiculx60 libj
          librhash0 libtinfo-dev libxml2-dev pkg-config zlib1g-dev
        The following packages will be upgraded:
          libglib2.0-0 libglib2.0-bin libicu60 libncurses5 libncursesw5 libpcre3 libtinf
        9 upgraded, 26 newly installed, 0 to remove and 573 not upgraded.
        Need to get 27.5 MB of archives.
        After this operation, 88.4 MB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic-security/main arm64 libncurses5 arm64 6.1-1
        Get:2 http://ports.ubuntu.com bionic-security/main arm64 libtinfo5 arm64 6.1-1ub
        Get:3 http://ports.ubuntu.com bionic-security/main arm64 libncursesw5 arm64 6.1-
        Get:4 http://ports.ubuntu.com bionic-security/main arm64 libpcre3 arm64 2:8.39-9
        Get:5 http://ports.ubuntu.com bionic-security/main arm64 zlib1g arm64 1:1.2.11.d
        Get:6 http://ports.ubuntu.com bionic-security/main arm64 libglib2.0-bin arm64 2.
        Get:7 http://ports.ubuntu.com bionic-security/main arm64 libglib2.0-0 arm64 2.56
        Get:8 http://ports.ubuntu.com bionic-security/main arm64 libicu60 arm64 60.2-3ub
        Get:9 http://ports.ubuntu.com bionic-security/main arm64 libxml2 arm64 2.9.4+dfs
        Get:10 http://ports.ubuntu.com bionic-updates/main arm64 cmake-data all 3.10.2-1
        Get:11 http://ports.ubuntu.com bionic/main arm64 libjsoncpp1 arm64 1.7.4-3 [69.2
        Get:12 http://ports.ubuntu.com bionic/main arm64 librhash0 arm64 1.3.6-2 [71.8 k
        Get:13 http://ports.ubuntu.com bionic-updates/main arm64 cmake arm64 3.10.2-1ubu
        Get:14 http://ports.ubuntu.com bionic/main arm64 gir1.2-harfbuzz-0.0 arm64 1.7.2
        Get:15 http://ports.ubuntu.com bionic-security/main arm64 icu-devtools arm64 60.
        Get:16 http://ports.ubuntu.com bionic/universe arm64 libcdk5 arm64 5.0.20161210-
        Get:17 http://ports.ubuntu.com bionic-security/main arm64 libtinfo-dev arm64 6.1
        Get:18 http://ports.ubuntu.com bionic-security/main arm64 libncurses5-dev arm64
        Get:19 http://ports.ubuntu.com bionic/universe arm64 libcdk5-dev arm64 5.0.20161
        Get:20 http://ports.ubuntu.com bionic-security/main arm64 libglib2.0-dev-bin arm
        Get:21 http://ports.ubuntu.com bionic-security/main arm64 libpcre16-3 arm64 2:8.
        Get:22 http://ports.ubuntu.com bionic-security/main arm64 libpcre32-3 arm64 2:8.
        Get:23 http://ports.ubuntu.com bionic-security/main arm64 libpcrecpp0v5 arm64 2:
        Get:24 http://ports.ubuntu.com bionic-security/main arm64 libpcre3-dev arm64 2:8
        Get:25 http://ports.ubuntu.com bionic/main arm64 pkg-config arm64 0.29.1-0ubuntu
        Get:26 http://ports.ubuntu.com bionic-security/main arm64 zlib1g-dev arm64 1:1.2
        Get:27 http://ports.ubuntu.com bionic-security/main arm64 libglib2.0-dev arm64 2
        Get:28 http://ports.ubuntu.com bionic/main arm64 libgraphite2-dev arm64 1.3.11-2
        Get:29 http://ports.ubuntu.com bionic/main arm64 libharfbuzz-gobject0 arm64 1.7.
        Get:30 http://ports.ubuntu.com bionic/main arm64 libicu-le-hb0 arm64 1.0.3+git16
        Get:31 http://ports.ubuntu.com bionic-security/main arm64 libiculx60 arm64 60.2-
        Get:32 http://ports.ubuntu.com bionic/main arm64 libicu-le-hb-dev arm64 1.0.3+gi
        Get:33 http://ports.ubuntu.com bionic-security/main arm64 libicu-dev arm64 60.2-
        Get:34 http://ports.ubuntu.com bionic/main arm64 libharfbuzz-dev arm64 1.7.2-1ub
        Get:35 http://ports.ubuntu.com bionic-security/main arm64 libxml2-dev arm64 2.9.
        Fetched 27.5 MB in 16s (1,684 kB/s)
        Extracting templates from packages: 100%
        (Reading database ... 148771 files and directories currently installed.)
        Preparing to unpack .../libncurses5_6.1-1ubuntu1.18.04.1_arm64.deb ...
        Unpacking libncurses5:arm64 (6.1-1ubuntu1.18.04.1) over (6.1-1ubuntu1.18.04) ...
        Preparing to unpack .../libtinfo5_6.1-1ubuntu1.18.04.1_arm64.deb ...
        Unpacking libtinfo5:arm64 (6.1-1ubuntu1.18.04.1) over (6.1-1ubuntu1.18.04) ...
        Setting up libtinfo5:arm64 (6.1-1ubuntu1.18.04.1) ...
        (Reading database ... 148771 files and directories currently installed.)
        Preparing to unpack .../libncursesw5_6.1-1ubuntu1.18.04.1_arm64.deb ...
        Unpacking libncursesw5:arm64 (6.1-1ubuntu1.18.04.1) over (6.1-1ubuntu1.18.04) ..
        Setting up libncursesw5:arm64 (6.1-1ubuntu1.18.04.1) ...
        (Reading database ... 148771 files and directories currently installed.)
        Preparing to unpack .../libpcre3_2%3a8.39-9ubuntu0.1_arm64.deb ...
        Unpacking libpcre3:arm64 (2:8.39-9ubuntu0.1) over (2:8.39-9) ...
        Setting up libpcre3:arm64 (2:8.39-9ubuntu0.1) ...
        (Reading database ... 148771 files and directories currently installed.)
        Preparing to unpack .../zlib1g_1%3a1.2.11.dfsg-0ubuntu2.2_arm64.deb ...
        Unpacking zlib1g:arm64 (1:1.2.11.dfsg-0ubuntu2.2) over (1:1.2.11.dfsg-0ubuntu2)
        Setting up zlib1g:arm64 (1:1.2.11.dfsg-0ubuntu2.2) ...
        (Reading database ... 148771 files and directories currently installed.)
        Preparing to unpack .../00-libglib2.0-bin_2.56.4-0ubuntu0.18.04.9_arm64.deb ...
        Unpacking libglib2.0-bin (2.56.4-0ubuntu0.18.04.9) over (2.56.3-0ubuntu0.18.04.1
        Preparing to unpack .../01-libglib2.0-0_2.56.4-0ubuntu0.18.04.9_arm64.deb ...
        Unpacking libglib2.0-0:arm64 (2.56.4-0ubuntu0.18.04.9) over (2.56.3-0ubuntu0.18.
        Preparing to unpack .../02-libicu60_60.2-3ubuntu3.2_arm64.deb ...
        Unpacking libicu60:arm64 (60.2-3ubuntu3.2) over (60.2-3ubuntu3) ...
        Preparing to unpack .../03-libxml2_2.9.4+dfsg1-6.1ubuntu1.9_arm64.deb ...
        Unpacking libxml2:arm64 (2.9.4+dfsg1-6.1ubuntu1.9) over (2.9.4+dfsg1-6.1ubuntu1.
        Selecting previously unselected package cmake-data.
        Preparing to unpack .../04-cmake-data_3.10.2-1ubuntu2.18.04.2_all.deb ...
        Unpacking cmake-data (3.10.2-1ubuntu2.18.04.2) ...
        Selecting previously unselected package libjsoncpp1:arm64.
        Preparing to unpack .../05-libjsoncpp1_1.7.4-3_arm64.deb ...
        Unpacking libjsoncpp1:arm64 (1.7.4-3) ...
        Selecting previously unselected package librhash0:arm64.
        Preparing to unpack .../06-librhash0_1.3.6-2_arm64.deb ...
        Unpacking librhash0:arm64 (1.3.6-2) ...
        Selecting previously unselected package cmake.
        Preparing to unpack .../07-cmake_3.10.2-1ubuntu2.18.04.2_arm64.deb ...
        Unpacking cmake (3.10.2-1ubuntu2.18.04.2) ...
        Selecting previously unselected package gir1.2-harfbuzz-0.0:arm64.
        Preparing to unpack .../08-gir1.2-harfbuzz-0.0_1.7.2-1ubuntu1_arm64.deb ...
        Unpacking gir1.2-harfbuzz-0.0:arm64 (1.7.2-1ubuntu1) ...
        Selecting previously unselected package icu-devtools.
        Preparing to unpack .../09-icu-devtools_60.2-3ubuntu3.2_arm64.deb ...
        Unpacking icu-devtools (60.2-3ubuntu3.2) ...
        Selecting previously unselected package libcdk5:arm64.
        Preparing to unpack .../10-libcdk5_5.0.20161210-5_arm64.deb ...
        Unpacking libcdk5:arm64 (5.0.20161210-5) ...
        Selecting previously unselected package libtinfo-dev:arm64.
        Preparing to unpack .../11-libtinfo-dev_6.1-1ubuntu1.18.04.1_arm64.deb ...
        Unpacking libtinfo-dev:arm64 (6.1-1ubuntu1.18.04.1) ...
        Selecting previously unselected package libncurses5-dev:arm64.
        Preparing to unpack .../12-libncurses5-dev_6.1-1ubuntu1.18.04.1_arm64.deb ...
        Unpacking libncurses5-dev:arm64 (6.1-1ubuntu1.18.04.1) ...
        Selecting previously unselected package libcdk5-dev.
        Preparing to unpack .../13-libcdk5-dev_5.0.20161210-5_arm64.deb ...
        Unpacking libcdk5-dev (5.0.20161210-5) ...
        Selecting previously unselected package libglib2.0-dev-bin.
        Preparing to unpack .../14-libglib2.0-dev-bin_2.56.4-0ubuntu0.18.04.9_arm64.deb
        Unpacking libglib2.0-dev-bin (2.56.4-0ubuntu0.18.04.9) ...
        Selecting previously unselected package libpcre16-3:arm64.
        Preparing to unpack .../15-libpcre16-3_2%3a8.39-9ubuntu0.1_arm64.deb ...
        Unpacking libpcre16-3:arm64 (2:8.39-9ubuntu0.1) ...
        Selecting previously unselected package libpcre32-3:arm64.
        Preparing to unpack .../16-libpcre32-3_2%3a8.39-9ubuntu0.1_arm64.deb ...
        Unpacking libpcre32-3:arm64 (2:8.39-9ubuntu0.1) ...
        Selecting previously unselected package libpcrecpp0v5:arm64.
        Preparing to unpack .../17-libpcrecpp0v5_2%3a8.39-9ubuntu0.1_arm64.deb ...
        Unpacking libpcrecpp0v5:arm64 (2:8.39-9ubuntu0.1) ...
        Selecting previously unselected package libpcre3-dev:arm64.
        Preparing to unpack .../18-libpcre3-dev_2%3a8.39-9ubuntu0.1_arm64.deb ...
        Unpacking libpcre3-dev:arm64 (2:8.39-9ubuntu0.1) ...
        Selecting previously unselected package pkg-config.
        Preparing to unpack .../19-pkg-config_0.29.1-0ubuntu2_arm64.deb ...
        Unpacking pkg-config (0.29.1-0ubuntu2) ...
        Selecting previously unselected package zlib1g-dev:arm64.
        Preparing to unpack .../20-zlib1g-dev_1%3a1.2.11.dfsg-0ubuntu2.2_arm64.deb ...
        Unpacking zlib1g-dev:arm64 (1:1.2.11.dfsg-0ubuntu2.2) ...
        Selecting previously unselected package libglib2.0-dev:arm64.
        Preparing to unpack .../21-libglib2.0-dev_2.56.4-0ubuntu0.18.04.9_arm64.deb ...
        Unpacking libglib2.0-dev:arm64 (2.56.4-0ubuntu0.18.04.9) ...
        Selecting previously unselected package libgraphite2-dev:arm64.
        Preparing to unpack .../22-libgraphite2-dev_1.3.11-2_arm64.deb ...
        Unpacking libgraphite2-dev:arm64 (1.3.11-2) ...
        Selecting previously unselected package libharfbuzz-gobject0:arm64.
        Preparing to unpack .../23-libharfbuzz-gobject0_1.7.2-1ubuntu1_arm64.deb ...
        Unpacking libharfbuzz-gobject0:arm64 (1.7.2-1ubuntu1) ...
        Selecting previously unselected package libicu-le-hb0:arm64.
        Preparing to unpack .../24-libicu-le-hb0_1.0.3+git161113-4_arm64.deb ...
        Unpacking libicu-le-hb0:arm64 (1.0.3+git161113-4) ...
        Selecting previously unselected package libiculx60:arm64.
        Preparing to unpack .../25-libiculx60_60.2-3ubuntu3.2_arm64.deb ...
        Unpacking libiculx60:arm64 (60.2-3ubuntu3.2) ...
        Selecting previously unselected package libicu-le-hb-dev:arm64.
        Preparing to unpack .../26-libicu-le-hb-dev_1.0.3+git161113-4_arm64.deb ...
        Unpacking libicu-le-hb-dev:arm64 (1.0.3+git161113-4) ...
        Selecting previously unselected package libicu-dev.
        Preparing to unpack .../27-libicu-dev_60.2-3ubuntu3.2_arm64.deb ...
        Unpacking libicu-dev (60.2-3ubuntu3.2) ...
        Selecting previously unselected package libharfbuzz-dev:arm64.
        Preparing to unpack .../28-libharfbuzz-dev_1.7.2-1ubuntu1_arm64.deb ...
        Unpacking libharfbuzz-dev:arm64 (1.7.2-1ubuntu1) ...
        Selecting previously unselected package libxml2-dev:arm64.
        Preparing to unpack .../29-libxml2-dev_2.9.4+dfsg1-6.1ubuntu1.9_arm64.deb ...
        Unpacking libxml2-dev:arm64 (2.9.4+dfsg1-6.1ubuntu1.9) ...
        Setting up libncurses5:arm64 (6.1-1ubuntu1.18.04.1) ...
        Setting up libicu60:arm64 (60.2-3ubuntu3.2) ...
        Setting up libcdk5:arm64 (5.0.20161210-5) ...
        Setting up libglib2.0-0:arm64 (2.56.4-0ubuntu0.18.04.9) ...
        Setting up libicu-le-hb0:arm64 (1.0.3+git161113-4) ...
        Setting up libtinfo-dev:arm64 (6.1-1ubuntu1.18.04.1) ...
        Setting up cmake-data (3.10.2-1ubuntu2.18.04.2) ...
        Setting up libxml2:arm64 (2.9.4+dfsg1-6.1ubuntu1.9) ...
        Setting up librhash0:arm64 (1.3.6-2) ...
        Setting up libncurses5-dev:arm64 (6.1-1ubuntu1.18.04.1) ...
        Setting up pkg-config (0.29.1-0ubuntu2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        Setting up gir1.2-harfbuzz-0.0:arm64 (1.7.2-1ubuntu1) ...
        Setting up libiculx60:arm64 (60.2-3ubuntu3.2) ...
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
        Setting up libpcrecpp0v5:arm64 (2:8.39-9ubuntu0.1) ...
        Setting up libpcre32-3:arm64 (2:8.39-9ubuntu0.1) ...
        Setting up icu-devtools (60.2-3ubuntu3.2) ...
        Setting up libpcre16-3:arm64 (2:8.39-9ubuntu0.1) ...
        Setting up libglib2.0-bin (2.56.4-0ubuntu0.18.04.9) ...
        Setting up libgraphite2-dev:arm64 (1.3.11-2) ...
        Setting up libharfbuzz-gobject0:arm64 (1.7.2-1ubuntu1) ...
        Setting up zlib1g-dev:arm64 (1:1.2.11.dfsg-0ubuntu2.2) ...
        Setting up libjsoncpp1:arm64 (1.7.4-3) ...
        Setting up libpcre3-dev:arm64 (2:8.39-9ubuntu0.1) ...
        Setting up libglib2.0-dev-bin (2.56.4-0ubuntu0.18.04.9) ...
        Setting up libcdk5-dev (5.0.20161210-5) ...
        Setting up libglib2.0-dev:arm64 (2.56.4-0ubuntu0.18.04.9) ...
        Setting up cmake (3.10.2-1ubuntu2.18.04.2) ...
        Setting up libicu-dev (60.2-3ubuntu3.2) ...
        Setting up libxml2-dev:arm64 (2.9.4+dfsg1-6.1ubuntu1.9) ...
        Setting up libharfbuzz-dev:arm64 (1.7.2-1ubuntu1) ...
        Setting up libicu-le-hb-dev:arm64 (1.0.3+git161113-4) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        pi@bpi-iot-ros-ai:~$ sudo apt-get install libaio-dev libusb-1.0-0-dev
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        The following additional packages will be installed:
          libaio1
        Recommended packages:
          libusb-1.0-doc
        The following NEW packages will be installed:
          libaio-dev libusb-1.0-0-dev
        The following packages will be upgraded:
          libaio1
        1 upgraded, 2 newly installed, 0 to remove and 572 not upgraded.
        Need to get 75.0 kB of archives.
        After this operation, 326 kB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic-updates/main arm64 libaio1 arm64 0.3.110-5u
        Get:2 http://ports.ubuntu.com bionic-updates/main arm64 libaio-dev arm64 0.3.110
        Get:3 http://ports.ubuntu.com bionic/main arm64 libusb-1.0-0-dev arm64 2:1.0.21-
        Fetched 75.0 kB in 1s (58.9 kB/s)
        (Reading database ... 153193 files and directories currently installed.)
        Preparing to unpack .../libaio1_0.3.110-5ubuntu0.1_arm64.deb ...
        Unpacking libaio1:arm64 (0.3.110-5ubuntu0.1) over (0.3.110-5) ...
        Selecting previously unselected package libaio-dev:arm64.
        Preparing to unpack .../libaio-dev_0.3.110-5ubuntu0.1_arm64.deb ...
        Unpacking libaio-dev:arm64 (0.3.110-5ubuntu0.1) ...
        Selecting previously unselected package libusb-1.0-0-dev:arm64.
        Preparing to unpack .../libusb-1.0-0-dev_2%3a1.0.21-2_arm64.deb ...
        Unpacking libusb-1.0-0-dev:arm64 (2:1.0.21-2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        Setting up libaio1:arm64 (0.3.110-5ubuntu0.1) ...
        Setting up libusb-1.0-0-dev:arm64 (2:1.0.21-2) ...
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
        Setting up libaio-dev:arm64 (0.3.110-5ubuntu0.1) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        pi@bpi-iot-ros-ai:~$ sudo apt-get install libserialport-dev libavahi-client-dev
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        The following additional packages will be installed:
          dbus dbus-x11 libavahi-client3 libavahi-common-dev libavahi-common3 libdbus-1-
        The following NEW packages will be installed:
          libavahi-client-dev libavahi-common-dev libdbus-1-dev libserialport-dev libser
        The following packages will be upgraded:
          dbus dbus-x11 libavahi-client3 libavahi-common3 libdbus-1-3
        5 upgraded, 5 newly installed, 0 to remove and 567 not upgraded.
        Need to get 609 kB of archives.
        After this operation, 1,645 kB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic-security/main arm64 dbus-x11 arm64 1.12.2-1
        Get:2 http://ports.ubuntu.com bionic-security/main arm64 dbus arm64 1.12.2-1ubun
        Get:3 http://ports.ubuntu.com bionic-security/main arm64 libdbus-1-3 arm64 1.12.
        Get:4 http://ports.ubuntu.com bionic-security/main arm64 libavahi-common3 arm64
        Get:5 http://ports.ubuntu.com bionic-security/main arm64 libavahi-client3 arm64
        Get:6 http://ports.ubuntu.com bionic-security/main arm64 libavahi-common-dev arm
        Get:7 http://ports.ubuntu.com bionic-security/main arm64 libdbus-1-dev arm64 1.1
        Get:8 http://ports.ubuntu.com bionic-security/main arm64 libavahi-client-dev arm
        Get:9 http://ports.ubuntu.com bionic/universe arm64 libserialport0 arm64 0.1.1-2
        Get:10 http://ports.ubuntu.com bionic/universe arm64 libserialport-dev arm64 0.1
        Fetched 609 kB in 2s (322 kB/s)
        (Reading database ... 153218 files and directories currently installed.)
        Preparing to unpack .../0-dbus-x11_1.12.2-1ubuntu1.4_arm64.deb ...
        Unpacking dbus-x11 (1.12.2-1ubuntu1.4) over (1.12.2-1ubuntu1) ...
        Preparing to unpack .../1-dbus_1.12.2-1ubuntu1.4_arm64.deb ...
        Unpacking dbus (1.12.2-1ubuntu1.4) over (1.12.2-1ubuntu1) ...
        Preparing to unpack .../2-libdbus-1-3_1.12.2-1ubuntu1.4_arm64.deb ...
        Unpacking libdbus-1-3:arm64 (1.12.2-1ubuntu1.4) over (1.12.2-1ubuntu1) ...
        Preparing to unpack .../3-libavahi-common3_0.7-3.1ubuntu1.3_arm64.deb ...
        Unpacking libavahi-common3:arm64 (0.7-3.1ubuntu1.3) over (0.7-3.1ubuntu1.2) ...
        Preparing to unpack .../4-libavahi-client3_0.7-3.1ubuntu1.3_arm64.deb ...
        Unpacking libavahi-client3:arm64 (0.7-3.1ubuntu1.3) over (0.7-3.1ubuntu1.2) ...
        Selecting previously unselected package libavahi-common-dev:arm64.
        Preparing to unpack .../5-libavahi-common-dev_0.7-3.1ubuntu1.3_arm64.deb ...
        Unpacking libavahi-common-dev:arm64 (0.7-3.1ubuntu1.3) ...
        Selecting previously unselected package libdbus-1-dev:arm64.
        Preparing to unpack .../6-libdbus-1-dev_1.12.2-1ubuntu1.4_arm64.deb ...
        Unpacking libdbus-1-dev:arm64 (1.12.2-1ubuntu1.4) ...
        Selecting previously unselected package libavahi-client-dev:arm64.
        Preparing to unpack .../7-libavahi-client-dev_0.7-3.1ubuntu1.3_arm64.deb ...
        Unpacking libavahi-client-dev:arm64 (0.7-3.1ubuntu1.3) ...
        Selecting previously unselected package libserialport0:arm64.
        Preparing to unpack .../8-libserialport0_0.1.1-2_arm64.deb ...
        Unpacking libserialport0:arm64 (0.1.1-2) ...
        Selecting previously unselected package libserialport-dev:arm64.
        Preparing to unpack .../9-libserialport-dev_0.1.1-2_arm64.deb ...
        Unpacking libserialport-dev:arm64 (0.1.1-2) ...
        Processing triggers for ureadahead (0.100.0-20) ...
        Setting up libserialport0:arm64 (0.1.1-2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        Processing triggers for systemd (237-3ubuntu10.20) ...
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
        Setting up libavahi-common3:arm64 (0.7-3.1ubuntu1.3) ...
        Setting up libserialport-dev:arm64 (0.1.1-2) ...
        Setting up libdbus-1-3:arm64 (1.12.2-1ubuntu1.4) ...
        Setting up libdbus-1-dev:arm64 (1.12.2-1ubuntu1.4) ...
        Setting up libavahi-common-dev:arm64 (0.7-3.1ubuntu1.3) ...
        Setting up libavahi-client3:arm64 (0.7-3.1ubuntu1.3) ...
        Setting up dbus (1.12.2-1ubuntu1.4) ...
        A reboot is required to replace the running dbus-daemon.
        Please reboot the system when convenient.
        Setting up libavahi-client-dev:arm64 (0.7-3.1ubuntu1.3) ...
        Setting up dbus-x11 (1.12.2-1ubuntu1.4) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        pi@bpi-iot-ros-ai:~$ sudo apt-get install doxygen graphviz
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        The following additional packages will be installed:
          libann0 libcdt5 libcgraph6 libclang1-6.0 libgts-0.7-5 libgvc6 libgvpr2 liblab-
        Suggested packages:
          doxygen-latex doxygen-doc doxygen-gui graphviz-doc
        Recommended packages:
          fonts-liberation libgts-bin
        The following NEW packages will be installed:
          doxygen graphviz libann0 libcdt5 libcgraph6 libclang1-6.0 libgts-0.7-5 libgvc6
        0 upgraded, 12 newly installed, 0 to remove and 567 not upgraded.
        Need to get 23.7 MB of archives.
        After this operation, 102 MB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic/main arm64 libllvm6.0 arm64 1:6.0-1ubuntu2
        Get:2 http://ports.ubuntu.com bionic/main arm64 libclang1-6.0 arm64 1:6.0-1ubunt
        Get:3 http://ports.ubuntu.com bionic/main arm64 doxygen arm64 1.8.13-10 [3,582 k
        Get:4 http://ports.ubuntu.com bionic/universe arm64 libann0 arm64 1.1.2+doc-6 [2
        Get:5 http://ports.ubuntu.com bionic/universe arm64 libcdt5 arm64 2.40.1-2 [17.8
        Get:6 http://ports.ubuntu.com bionic/universe arm64 libcgraph6 arm64 2.40.1-2 [3
        Get:7 http://ports.ubuntu.com bionic/universe arm64 libgts-0.7-5 arm64 0.7.6+dar
        Get:8 http://ports.ubuntu.com bionic/universe arm64 libpathplan4 arm64 2.40.1-2
        Get:9 http://ports.ubuntu.com bionic/universe arm64 libgvc6 arm64 2.40.1-2 [505
        Get:10 http://ports.ubuntu.com bionic/universe arm64 libgvpr2 arm64 2.40.1-2 [15
        Get:11 http://ports.ubuntu.com bionic/universe arm64 liblab-gamut1 arm64 2.40.1-
        Get:12 http://ports.ubuntu.com bionic/universe arm64 graphviz arm64 2.40.1-2 [51
        Fetched 23.7 MB in 7s (3,631 kB/s)
        Selecting previously unselected package libllvm6.0:arm64.
        (Reading database ... 153308 files and directories currently installed.)
        Preparing to unpack .../00-libllvm6.0_1%3a6.0-1ubuntu2_arm64.deb ...
        Unpacking libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
        Selecting previously unselected package libclang1-6.0:arm64.
        Preparing to unpack .../01-libclang1-6.0_1%3a6.0-1ubuntu2_arm64.deb ...
        Unpacking libclang1-6.0:arm64 (1:6.0-1ubuntu2) ...
        Selecting previously unselected package doxygen.
        Preparing to unpack .../02-doxygen_1.8.13-10_arm64.deb ...
        Unpacking doxygen (1.8.13-10) ...
        Selecting previously unselected package libann0.
        Preparing to unpack .../03-libann0_1.1.2+doc-6_arm64.deb ...
        Unpacking libann0 (1.1.2+doc-6) ...
        Selecting previously unselected package libcdt5.
        Preparing to unpack .../04-libcdt5_2.40.1-2_arm64.deb ...
        Unpacking libcdt5 (2.40.1-2) ...
        Selecting previously unselected package libcgraph6.
        Preparing to unpack .../05-libcgraph6_2.40.1-2_arm64.deb ...
        Unpacking libcgraph6 (2.40.1-2) ...
        Selecting previously unselected package libgts-0.7-5:arm64.
        Preparing to unpack .../06-libgts-0.7-5_0.7.6+darcs121130-4_arm64.deb ...
        Unpacking libgts-0.7-5:arm64 (0.7.6+darcs121130-4) ...
        Selecting previously unselected package libpathplan4.
        Preparing to unpack .../07-libpathplan4_2.40.1-2_arm64.deb ...
        Unpacking libpathplan4 (2.40.1-2) ...
        Selecting previously unselected package libgvc6.
        Preparing to unpack .../08-libgvc6_2.40.1-2_arm64.deb ...
        Unpacking libgvc6 (2.40.1-2) ...
        Selecting previously unselected package libgvpr2.
        Preparing to unpack .../09-libgvpr2_2.40.1-2_arm64.deb ...
        Unpacking libgvpr2 (2.40.1-2) ...
        Selecting previously unselected package liblab-gamut1.
        Preparing to unpack .../10-liblab-gamut1_2.40.1-2_arm64.deb ...
        Unpacking liblab-gamut1 (2.40.1-2) ...
        Selecting previously unselected package graphviz.
        Preparing to unpack .../11-graphviz_2.40.1-2_arm64.deb ...
        Unpacking graphviz (2.40.1-2) ...
        Setting up libgts-0.7-5:arm64 (0.7.6+darcs121130-4) ...
        Setting up libpathplan4 (2.40.1-2) ...
        Setting up liblab-gamut1 (2.40.1-2) ...
        Setting up libllvm6.0:arm64 (1:6.0-1ubuntu2) ...
        Setting up libclang1-6.0:arm64 (1:6.0-1ubuntu2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        Setting up libann0 (1.1.2+doc-6) ...
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
        Setting up libcdt5 (2.40.1-2) ...
        Setting up libcgraph6 (2.40.1-2) ...
        Setting up libgvc6 (2.40.1-2) ...
        Setting up libgvpr2 (2.40.1-2) ...
        Setting up doxygen (1.8.13-10) ...
        Setting up graphviz (2.40.1-2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        pi@bpi-iot-ros-ai:~$ sudo apt-get install python3 python3-pip python3-setuptools
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        python3 is already the newest version (3.6.7-1~18.04).
        The following additional packages will be installed:
          python-pip-whl python3-pkg-resources
        Suggested packages:
          python-setuptools-doc
        Recommended packages:
          python3-dev python3-wheel
        The following NEW packages will be installed:
          python-pip-whl python3-pip python3-setuptools
        The following packages will be upgraded:
          python3-pkg-resources
        1 upgraded, 3 newly installed, 0 to remove and 566 not upgraded.
        Need to get 2,113 kB of archives.
        After this operation, 3,778 kB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic-security/universe arm64 python-pip-whl all
        Get:2 http://ports.ubuntu.com bionic-security/universe arm64 python3-pip all 9.0
        Get:3 http://ports.ubuntu.com bionic-security/main arm64 python3-pkg-resources a
        Get:4 http://ports.ubuntu.com bionic-security/main arm64 python3-setuptools all
        Fetched 2,113 kB in 3s (835 kB/s)
        Selecting previously unselected package python-pip-whl.
        (Reading database ... 153499 files and directories currently installed.)
        Preparing to unpack .../python-pip-whl_9.0.1-2.3~ubuntu1.18.04.8_all.deb ...
        Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.8) ...
        Selecting previously unselected package python3-pip.
        Preparing to unpack .../python3-pip_9.0.1-2.3~ubuntu1.18.04.8_all.deb ...
        Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.8) ...
        Preparing to unpack .../python3-pkg-resources_39.0.1-2ubuntu0.1_all.deb ...
        Unpacking python3-pkg-resources (39.0.1-2ubuntu0.1) over (39.0.1-2) ...
        Selecting previously unselected package python3-setuptools.
        Preparing to unpack .../python3-setuptools_39.0.1-2ubuntu0.1_all.deb ...
        Unpacking python3-setuptools (39.0.1-2ubuntu0.1) ...
        Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.8) ...
        Setting up python3-pkg-resources (39.0.1-2ubuntu0.1) ...
        Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.8) ...
        Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
        Setting up python3-setuptools (39.0.1-2ubuntu0.1) ...
        pi@bpi-iot-ros-ai:~$ sudo apt install libserialport-dev
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        libserialport-dev is already the newest version (0.1.1-2).
        0 upgraded, 0 newly installed, 0 to remove and 566 not upgraded.
        pi@bpi-iot-ros-ai:~$ sudo apt install libzstd-dev
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        The following additional packages will be installed:
          libzstd1
        The following NEW packages will be installed:
          libzstd-dev
        The following packages will be upgraded:
          libzstd1
        1 upgraded, 1 newly installed, 0 to remove and 565 not upgraded.
        Need to get 366 kB of archives.
        After this operation, 730 kB of additional disk space will be used.
        Do you want to continue? [Y/n] Y
        Get:1 http://ports.ubuntu.com bionic-security/main arm64 libzstd1 arm64 1.3.3+df
        Get:2 http://ports.ubuntu.com bionic-security/main arm64 libzstd-dev arm64 1.3.3
        Fetched 366 kB in 2s (190 kB/s)
        (Reading database ... 153693 files and directories currently installed.)
        Preparing to unpack .../libzstd1_1.3.3+dfsg-2ubuntu1.2_arm64.deb ...
        Unpacking libzstd1:arm64 (1.3.3+dfsg-2ubuntu1.2) over (1.3.3+dfsg-2ubuntu1) ...
        Setting up libzstd1:arm64 (1.3.3+dfsg-2ubuntu1.2) ...
        Selecting previously unselected package libzstd-dev:arm64.
        (Reading database ... 153693 files and directories currently installed.)
        Preparing to unpack .../libzstd-dev_1.3.3+dfsg-2ubuntu1.2_arm64.deb ...
        Unpacking libzstd-dev:arm64 (1.3.3+dfsg-2ubuntu1.2) ...
        Processing triggers for libc-bin (2.27-3ubuntu1) ...
        Setting up libzstd-dev:arm64 (1.3.3+dfsg-2ubuntu1.2) ...
        pi@bpi-iot-ros-ai:~$ git clone --branch v0.26 https://github.com/analogdevicesin
        Cloning into 'libiio'...
        remote: Enumerating objects: 20842, done.
        remote: Counting objects: 100% (563/563), done.
        remote: Compressing objects: 100% (250/250), done.
        remote: Total 20842 (delta 423), reused 315 (delta 312), pack-reused 20279 (from
        Receiving objects: 100% (20842/20842), 20.65 MiB | 6.86 MiB/s, done.
        Resolving deltas: 100% (13960/13960), done.
        Note: checking out 'a0eca0d2bf10326506fb762f0eec14255b27bef5'.
        
        You are in 'detached HEAD' state. You can look around, make experimental
        changes and commit them, and you can discard any commits you make in this
        state without impacting any branches by performing another checkout.
        
        If you want to create a new branch to retain commits you create, you may
        do so (now or later) by using -b with the checkout command again. Example:
        
          git checkout -b <new-branch-name>
        
        pi@bpi-iot-ros-ai:~$ cd libiio
        pi@bpi-iot-ros-ai:~/libiio$ mkdir build
        pi@bpi-iot-ros-ai:~/libiio$ cd build
        pi@bpi-iot-ros-ai:~/libiio/build$ rm -rf *
        pi@bpi-iot-ros-ai:~/libiio/build$ cmake -DWITH_SERIAL_BACKEND=ON -DCPP_BINDINGS=
        -- cmake version: 3.10.2
        -- The C compiler identification is GNU 7.3.0
        -- Check for working C compiler: /usr/bin/cc
        -- Check for working C compiler: /usr/bin/cc -- works
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - done
        -- Detecting C compile features
        -- Detecting C compile features - done
        -- Performing Test HAS_WPEDANTIC
        -- Performing Test HAS_WPEDANTIC - Success
        -- Performing Test HAS_WSHADOW
        -- Performing Test HAS_WSHADOW - Success
        -- Looking for strdup
        -- Looking for strdup - found
        -- Looking for strndup
        -- Looking for strndup - found
        -- Looking for strerror_r
        -- Looking for strerror_r - found
        -- Looking for strtok_r
        -- Looking for strtok_r - found
        -- Looking for newlocale
        -- Looking for newlocale - found
        -- Looking for in6addr_any
        -- Looking for in6addr_any - found
        -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
        -- Checking for module 'libusb-1.0'
        --   Found libusb-1.0, version 1.0.21
        -- Looking for libusb_get_version
        -- Looking for libusb_get_version - found
        -- Found Git: /usr/bin/git (found version "2.17.1")
        -- Looking for libserialport : Found
        -- Performing Test WITH_NETWORK_EVENTFD
        -- Performing Test WITH_NETWORK_EVENTFD - Success
        -- Found LibXml2: /usr/lib/aarch64-linux-gnu/libxml2.so (found version "2.9.4")
        -- The CXX compiler identification is GNU 7.3.0
        -- Check for working CXX compiler: /usr/bin/c++
        -- Check for working CXX compiler: /usr/bin/c++ -- works
        -- Detecting CXX compiler ABI info
        -- Detecting CXX compiler ABI info - done
        -- Detecting CXX compile features
        -- Detecting CXX compile features - done
        -- bin= lib= inc=
        -- Found PythonInterp: /usr/bin/python (found version "2.7.15")
        -- Found BISON: /usr/bin/bison (found version "3.0.4")
        -- Found FLEX: /usr/bin/flex (found version "2.6.4")
        -- Looking for pthread_setname_np
        -- Looking for pthread_setname_np - found
        -- Looking for sys/types.h
        -- Looking for sys/types.h - found
        -- Looking for stdint.h
        -- Looking for stdint.h - found
        -- Looking for stddef.h
        -- Looking for stddef.h - found
        -- Check size of struct usb_functionfs_descs_head_v2
        -- Check size of struct usb_functionfs_descs_head_v2 - done
        -- Features enabled : xml network dns-sd avahi ipv6 serial local local-mmap hwmols python-bindings
        -- Features disabled: zstd bonjour examples iiod-systemd iiod-sysvinit iiod-upst
        -- LOG_LEVEL set to "Info"
        -- Configuring done
        -- Generating done
        -- Build files have been written to: /home/pi/libiio/build
        pi@bpi-iot-ros-ai:~/libiio/build$ make -j$(nproc)
        Scanning dependencies of target libiio-py
        Scanning dependencies of target iio
        [  2%] Building C object CMakeFiles/iio.dir/channel.c.o
        [  4%] Building C object CMakeFiles/iio.dir/backend.c.o
        [  6%] Building C object CMakeFiles/iio.dir/device.c.o
        [  6%] Built target libiio-py
        [  8%] Building C object CMakeFiles/iio.dir/context.c.o
        [ 10%] Building C object CMakeFiles/iio.dir/buffer.c.o
        [ 12%] Building C object CMakeFiles/iio.dir/utilities.c.o
        [ 14%] Building C object CMakeFiles/iio.dir/scan.c.o
        [ 16%] Building C object CMakeFiles/iio.dir/sort.c.o
        [ 18%] Building C object CMakeFiles/iio.dir/usb.c.o
        [ 20%] Building C object CMakeFiles/iio.dir/local.c.o
        [ 22%] Building C object CMakeFiles/iio.dir/deps/libini/libini.c.o
        [ 24%] Building C object CMakeFiles/iio.dir/serial.c.o
        [ 26%] Building C object CMakeFiles/iio.dir/network.c.o
        [ 28%] Building C object CMakeFiles/iio.dir/network-unix.c.o
        [ 30%] Building C object CMakeFiles/iio.dir/dns_sd_avahi.c.o
        [ 32%] Building C object CMakeFiles/iio.dir/dns_sd.c.o
        [ 34%] Building C object CMakeFiles/iio.dir/xml.c.o
        [ 36%] Building C object CMakeFiles/iio.dir/lock.c.o
        [ 38%] Building C object CMakeFiles/iio.dir/iiod-client.c.o
        [ 40%] Linking C shared library libiio.so
        [ 40%] Built target iio
        [ 42%] [BISON][parser] Building parser with bison 3.0.4
        [ 44%] [FLEX][lexer] Building scanner with flex 2.6.4
        Scanning dependencies of target iio_tests_helper
        Scanning dependencies of target iiopp-enum
        [ 46%] Building C object tests/CMakeFiles/iio_tests_helper.dir/iio_common.c.o
        [ 48%] Building CXX object bindings/cpp/CMakeFiles/iiopp-enum.dir/examples/iiopp
        [ 50%] Building C object tests/CMakeFiles/iio_tests_helper.dir/gen_code.c.o
        Scanning dependencies of target iiod
        [ 52%] Building C object iiod/CMakeFiles/iiod.dir/iiod.c.o
        [ 54%] Building C object iiod/CMakeFiles/iiod.dir/ops.c.o
        [ 56%] Linking C static library libiio_tests_helper.a
        [ 56%] Built target iio_tests_helper
        Scanning dependencies of target iio_writedev
        [ 58%] Building C object tests/CMakeFiles/iio_writedev.dir/iio_writedev.c.o
        [ 60%] Building C object iiod/CMakeFiles/iiod.dir/thread-pool.c.o
        [ 62%] Building C object iiod/CMakeFiles/iiod.dir/parser.c.o
        [ 64%] Linking C executable iio_writedev
        [ 64%] Built target iio_writedev
        Scanning dependencies of target iio_genxml
        [ 66%] Building C object tests/CMakeFiles/iio_genxml.dir/iio_genxml.c.o
        [ 68%] Linking C executable iio_genxml
        [ 70%] Building C object iiod/CMakeFiles/iiod.dir/lexer.c.o
        [ 72%] Building C object iiod/CMakeFiles/iiod.dir/usbd.c.o
        [ 72%] Built target iio_genxml
        [ 74%] Building C object iiod/CMakeFiles/iiod.dir/serial.c.o
        [ 76%] Building C object iiod/CMakeFiles/iiod.dir/dns-sd.c.o
        Scanning dependencies of target iio_reg
        [ 78%] Building C object tests/CMakeFiles/iio_reg.dir/iio_reg.c.o
        [ 80%] Linking C executable iio_reg
        Scanning dependencies of target iio_stresstest
        [ 82%] Linking C executable iiod
        [ 84%] Building C object tests/CMakeFiles/iio_stresstest.dir/iio_stresstest.c.o
        [ 84%] Built target iio_reg
        Scanning dependencies of target iio_info
        [ 84%] Built target iiod
        [ 86%] Building C object tests/CMakeFiles/iio_info.dir/iio_info.c.o
        Scanning dependencies of target iio_attr
        [ 88%] Building C object tests/CMakeFiles/iio_attr.dir/iio_attr.c.o
        [ 90%] Linking C executable iio_info
        [ 92%] Linking C executable iio_stresstest
        [ 92%] Built target iio_info
        Scanning dependencies of target iio_readdev
        [ 94%] Building C object tests/CMakeFiles/iio_readdev.dir/iio_readdev.c.o
        [ 94%] Built target iio_stresstest
        [ 96%] Linking C executable iio_attr
        [ 98%] Linking C executable iio_readdev
        [ 98%] Built target iio_attr
        [ 98%] Built target iio_readdev
        [100%] Linking CXX executable iiopp-enum
        [100%] Built target iiopp-enum
        pi@bpi-iot-ros-ai:~/libiio/build$ sudo make install
        [sudo] password for pi:
        [ 40%] Built target iio
        [ 46%] Built target iio_tests_helper
        [ 50%] Built target iio_writedev
        [ 54%] Built target iio_genxml
        [ 58%] Built target iio_reg
        [ 62%] Built target iio_stresstest
        [ 66%] Built target iio_info
        [ 70%] Built target iio_attr
        [ 74%] Built target iio_readdev
        [ 78%] Built target iiopp-enum
        [ 78%] Built target libiio-py
        [100%] Built target iiod
        Install the project...
        -- Install configuration: "RelWithDebInfo"
        -- Installing: /usr/lib/aarch64-linux-gnu/pkgconfig/libiio.pc
        -- Installing: /usr/lib/aarch64-linux-gnu/libiio.so.0.26
        -- Installing: /usr/lib/aarch64-linux-gnu/libiio.so.0
        -- Installing: /usr/lib/aarch64-linux-gnu/libiio.so
        -- Set runtime path of "/usr/lib/aarch64-linux-gnu/libiio.so.0.26" to ""
        -- Installing: /usr/include/iio.h
        -- Installing: /usr/include/iiopp.h
        -- Installing: /lib/udev/rules.d/90-libiio.rules
        -- Installing: /usr/bin/iio_genxml
        -- Set runtime path of "/usr/bin/iio_genxml" to ""
        -- Installing: /usr/bin/iio_info
        -- Set runtime path of "/usr/bin/iio_info" to ""
        -- Installing: /usr/bin/iio_attr
        -- Set runtime path of "/usr/bin/iio_attr" to ""
        -- Installing: /usr/bin/iio_readdev
        -- Set runtime path of "/usr/bin/iio_readdev" to ""
        -- Installing: /usr/bin/iio_reg
        -- Set runtime path of "/usr/bin/iio_reg" to ""
        -- Installing: /usr/bin/iio_writedev
        -- Set runtime path of "/usr/bin/iio_writedev" to ""
        -- Installing: /usr/bin/iio_stresstest
        -- Set runtime path of "/usr/bin/iio_stresstest" to ""
        running install
        running build
        running build_py
        running install_lib
        creating /usr/lib/python2.7/site-packages
        copying build/lib.linux-aarch64-2.7/iio.py -> /usr/lib/python2.7/site-packages
        byte-compiling /usr/lib/python2.7/site-packages/iio.py to iio.pyc
        running install_egg_info
        Writing /usr/lib/python2.7/site-packages/pylibiio-0.26-py2.7.egg-info
        -- Installing: /usr/sbin/iiod
        -- Set runtime path of "/usr/sbin/iiod" to ""
        pi@bpi-iot-ros-ai:~/libiio/build$ cd /
        pi@bpi-iot-ros-ai:/$ which iio_info
        /usr/bin/iio_info
        pi@bpi-iot-ros-ai:/$ cd /usr/bin/iio_info
        -bash: cd: /usr/bin/iio_info: Not a directory
        pi@bpi-iot-ros-ai:/$ cd /usr/bin/
        pi@bpi-iot-ros-ai:/usr/bin$ iio_info
        iio_info version: 0.26 (git tag:a0eca0d2)
        Libiio version: 0.26 (git tag: a0eca0d) backends: local xml ip usb serial
        IIO context created with local backend.
        Backend version: 0.26 (git tag: a0eca0d)
        Backend description string: Linux bpi-iot-ros-ai 4.9.119-BPI-M4-Kernel #6 SMP PR
        IIO context has 2 attributes:
                local,kernel: 4.9.119-BPI-M4-Kernel
                uri: local:
        IIO context has 0 devices:
        
    2. I'm just realized that I manually downloaded libserialport before based on your suggestion Stuck out tongue closed eyes

    pi@bpi-iot-ros-ai:~$ sudo apt install libserialport-dev
    [sudo] password for pi:
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    libserialport-dev is already the newest version (0.1.1-2).
    0 upgraded, 0 newly installed, 0 to remove and 565 not upgraded.