QMICLI/symbol lookup error

Sebastian Sjoholm sebastian.sjoholm at gmail.com
Sun Mar 13 15:10:24 UTC 2016


> On Mar 13, 2016, at 11:52 , Aleksander Morgado <aleksander at aleksander.es> wrote:
> 
> On Sun, Mar 13, 2016 at 8:48 AM, Sebastian Sjoholm
> <sebastian.sjoholm at gmail.com> wrote:
>> Regarding the issue with qmicli. I have removed the apt installed qmicli package and compiled from GIT master the latest version.
>> 
>>> 
>>> Looks like qmicli from git master, trying to use libqmi-glib from your
>>> system-installed package. If you installed libqmi somewhere else not
>>> in /usr, you'll need LD_LIBRARY_PATH; e.g.:
>>> 
>>> $ LD_LIBRARY_PATH=/path/somewhere/lib /path/somewhere/bin/qmicli --version
>>> 
>> 
>> 
>> root at SBC13:/opt/libqmi# qmicli -d /dev/cdc-wdm0 -e -v
>> [13 Mar 2016, 08:22:38] [Debug] [/dev/cdc-wdm0] Opening device with flags 'none'...
>> [13 Mar 2016, 08:22:38] [Debug] QMI Device at '/dev/cdc-wdm0' ready
>> [13 Mar 2016, 08:22:38] [Debug] Getting expected WWAN data format this control port...
>> qmicli: symbol lookup error: qmicli: undefined symbol: qmi_device_get_expected_data_format
>> root at SBC05:~#
>> 
>> When using the “LD_LIBRARY_PATH” in front, then it will work as specified.
>> 
>> root at SBC05:~# LD_LIBRARY_PATH=/usr/lib/ /usr/bin/qmicli -d /dev/cdc-wdm0 -e
>> 802-3
>> root at SBC05:~#
>> 
>> So basically by setting the LD_LIBRARY_PATH like:
>> 
>> export LD_LIBRARY_PATH=/usr/lib/
>> 
>> will fix it.
> 
> This is really an issue with your own setup, not something we can fix
> in libqmi. A mixup with where lib/cli are installed or something.
> 
> What's the output of this? This should tell you where qmicli is
> looking for libqmi by default.
> $ ldd /usr/bin/qmicli | grep libqmi
> 


yes, you are right, it is my setup. As the lld printout show, it seems to be pointed to a directory with old version of the file. 

root at SBC05:/opt/libqmi# ldd /usr/bin/qmicli | grep libqmi
        libqmi-glib.so.1 => /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1 (0x76c10000)
root at SBC05:/opt/libqmi#

root at SBC05:/opt/libqmi# ls -la /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1
lrwxrwxrwx 1 root root 20 Sep 17  2014 /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1 -> libqmi-glib.so.1.2.0
root at SBC05:/opt/libqmi#

The new version is located at /usr/lib/

root at SBC05:/opt/libqmi# ls -la /usr/lib/libqmi-glib.so.1
lrwxrwxrwx 1 root root 20 Mar 10 11:47 /usr/lib/libqmi-glib.so.1 -> libqmi-glib.so.1.3.0
root at SBC05:/opt/libqmi#

After some digging, I added the “—libdir” parameter to the autogen command, like following;

$ ./autogen.sh --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf/

root at SBC05:/opt/libqmi# ldd /usr/bin/qmicli | grep libqmi
        libqmi-glib.so.1 => /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1 (0x76c91000)
root at SBC05:/opt/libqmi#

Now I can see that new version is located in the directory which the ldd printout is pointed to.

root at SBC05:/opt/libqmi# ls -la /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1
lrwxrwxrwx 1 root root 20 Mar 13 16:01 /usr/lib/arm-linux-gnueabihf/libqmi-glib.so.1 -> libqmi-glib.so.1.3.0
root at SBC05:/opt/libqmi#

And qmicli is working as it should.

root at SBC05:/opt/libqmi# /usr/bin/qmicli -d /dev/cdc-wdm0 -e
802-3
root at SBC05:/opt/libqmi#

Thank you for all help. I guess I have learned a thing or two :)

-Sebastian




More information about the libqmi-devel mailing list