This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM64X: Need help on Network Manager and Modem Manager

Part Number: PROCESSOR-SDK-AM64X
Other Parts Discussed in Thread: WI-SUN,

Dear TI Engineers and Experts,

I am configuring my AM64x Start Kit with the Wi-SUN software on it and they are working well.

https://www.ti.com/tool/SK-AM64


PROCESSOR-SDK-LINUX-AM64X — Processor SDK Linux for AM64x

Version: 08.05.00.21
Release date: 14 Dec 2022

Then, I continue my journey by plugging in an USB powering mobile LTE dialup modem onto my AM64X Start Kit board.

This modem did show up when I issued command:

lsusb

also when I issued command  lsmod, I saw these modules were loaded:

usb_wwan

In order to configure my lte modem to function, I still need qmi_wwan and also the Linux Network Manager and/or Modem Manager binary which is named as

nmcli and so on.

Can you suggest a simple so that I can include Network Manager and Modem Manager binaries into my AM64x Start Kit SD card image.

Yours faithfully,

Timmy

  • Hello Timmy,

    I am not familiar with the Wi-SUN software. Can you tell me a bit more about what you are doing?

    Regards,

    Nick

  • Hello Nick,

    Wi-SUN is another protocol which is quite irrelevant to my LTE modem issue.

    What I want to do is to dialup to internet with my Qualcomm compatible LTE modem from command lines from within AM64x Start Kit.

    It seems that the default image of AM64x lacks packages needed to manage LTE modem.  The default image and software of Processor SDK Linux for AM64x Version: 08.05.00.21 even cannot load the qmi_wwan module.

    Please advice.

  • Hello Tim,

    Just to set expectations, this sounds like a "how do I get Qualcomm compatible LTE modem running on a Linux processor" issue instead of an issue specifically with TI hardware or TI software. If your question is not specific to TI hardware or TI software, we will not be able to support the question.

    I am going to reassign your thread to our Linux USB driver owner in case you have a question specifically about TI's USB software or hardware.

    Regards,

    Nick

  • Nick,

    I know how to make my modem work under Raspberry Pi.

    However, when I work on TI AM64x Start Kit with its own TI official image installed, there is no way to install extra packages.

    Is there any documentation on installing extra Linux packages on TI AM64x Starter Kit?

  • Hi Tim,

    The SDK filesysm is based on Yocto, so I think you would have to enable the NM package in the Yocto config and build the new filesystem.

    I am routing your query to our Yocto expert for comments.

  • Hello Bin,

    Yes, I need help on installing extra Linux packages on PROCESSOR-SDK-AM64X.

    Since, TI Wi-Sun stack recommends AM64x Start Kit as border router, and Wi-Sun is a long range (km) outdoor wireless connection technology, a remote site's wi-sun border router benefits from a dialup modem.

    In particular, I am looking for Linux packages:

    libqmi-utils udhcpc

    In Raspberry Pi, it is simple. In Processor SDK Linux for AM64x, I still cannot find the way.  I know that repackaging Yocto is a lengthy procedure. Disappointed

  • Hello Bin,

    I found this very old post about Modem Manager.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/387461/modem-manager-in-linux-sdk

    Could you please provide updated similar information about Processor SDK Linux for AM64x?

  • Hi Tim,

    you can get the functionality you need to re-configuring and re-building the AM64x SDK image through Yocto. It's really not that bad/hard to do. You just follow the steps in the current AM64x SDK documentation under https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/08_05_00_21/exports/docs/linux/Overview_Building_the_SDK.html and on top of that modify the conf/local.conf file by adding the below lines to the end of that conf file:

    # Add extra packages that provide udhcpd functionality (via BusyBox) and
    # libqmi which is roughly equivalent to the Debian libqmi-utils package
    IMAGE_INSTALL_append = " busybox-udhcpd libqmi"

    After you do the build you can find filesystem images ready to flash and rootfs tarballs as well all under arago-tmp-external-arm-glibc/deploy/images/am64xx-evm/ 

    Doing a quick check on the generated rootfs tarball for when creating a tisdk-base-image with the updated configuration reveals several files regarding the packages you are looking for have gotten included. Note that this is just from a quick check what the Debian packages you referenced do and trying to re-create something similar in Yocto. It may or may not be all you need. If you have anything very specific you need that is missing it may require adding new recipes to Yocto or updating existing recipes but it is hard for me to know/do without being familiar with the packages you want to use and how to use them on a system-level.

    ~/tisdk/am64xx-evm/build (dev)
    $ tar -tvf arago-tmp-external-arm-glibc/deploy/images/am64xx-evm/tisdk-base-image-am64xx-evm-20230210212813.rootfs.tar.xz | grep -e udhcpd -e libqmi -e qmicli
    -rwxr-xr-x 0/0             115 2023-02-10 15:29 ./etc/default/udhcpd
    -rwxr-xr-x 0/0            1042 2023-01-18 15:36 ./etc/init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc0.d/K20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc1.d/K20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc2.d/S20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc3.d/S20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc4.d/S20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc5.d/S20busybox-udhcpd -> ../init.d/busybox-udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./etc/rc6.d/K20busybox-udhcpd -> ../init.d/busybox-udhcpd
    -rwxr-xr-x 0/0          403544 2023-02-10 15:30 ./usr/bin/qmicli
    lrwxrwxrwx 0/0               0 2023-02-10 15:30 ./usr/lib/libqmi-glib.so.5 -> libqmi-glib.so.5.6.0
    -rwxr-xr-x 0/0         2679672 2023-02-10 15:30 ./usr/lib/libqmi-glib.so.5.6.0
    -rw-r--r-- 0/0              40 2023-02-10 15:38 ./usr/lib/opkg/alternatives/udhcpd
    lrwxrwxrwx 0/0               0 2023-02-10 15:38 ./usr/sbin/udhcpd -> /bin/busybox.nosuid
    -rw-r--r-- 0/0              20 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd-conf.conffiles
    -rw-r--r-- 0/0             398 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd-conf.control
    -rw-r--r-- 0/0              60 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd-conf.list
    -rw-r--r-- 0/0             948 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd.control
    -rw-r--r-- 0/0              35 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd.list
    -rwxr-xr-x 0/0             211 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd.postinst
    -rwxr-xr-x 0/0             212 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd.postrm
    -rwxr-xr-x 0/0             157 2023-02-10 15:38 ./var/lib/opkg/info/busybox-udhcpd.prerm
    -rw-r--r-- 0/0             589 2023-02-10 15:38 ./var/lib/opkg/info/libqmi.control
    -rw-r--r-- 0/0             214 2023-02-10 15:38 ./var/lib/opkg/info/libqmi.list
    -rwxr-xr-x 0/0              97 2023-02-10 15:38 ./var/lib/opkg/info/libqmi.postinst
    

    Also on a more forward-looking note we are working on supporting Debian-based distributions for our Sitara platforms. Once this arrives you should be able to install/add packages over the network just like you can do on any other Debian-based system. I don't have a date for when this will all be available (not soon) but I wanted to provide you with a heads-up anyways.

    Regards, Andreas

  • Andreas,

    Yes, your tips work.  Ater 6 hours compilation, I finally got my customised tisdk-default-image.  Disappointed

    Another issue is:

    Whenever I issued node.js commands from within AM64x Start Kit with the tisdk-default-image installed, it will show lots of warnings (or errors).  I am not very sure whether these warning could slow down the whole command procedure.  Please advice.

    root@am64xx-evm:~#	npm	--version
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    8.1.2
    
    root@am64xx-evm:~#	npx	mqtt version
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    node:	/usr/lib/libstdc++.so.6:	no	version	information	available	(required	by	node)
    MQTT.js	version:	4.3.7

  • These extra packages work!  Thanks.

  • This issue seems to be solved by adding the glibc-utils package.

  • Hi Tim,

    thanks for posting your findings/feedback here. I'm going to close this E2E ticket for now as the original concern seems to be resolved. Anything not directly related to enabling this in Yocto please open a new ticket.

    Regards, Andreas

  • Hello Andreas,

    May I suggest you to add these extra packages to the tisdk-default-image:

    IMAGE_INSTALL_append = " glibc-utils python3-pip "

    glibc-utils seems to be related to some nodejs warning and locales issues, while python3-pip helps developers to test and deploy huge numbers of python3 applications in short time.

    Furthermore, TI SDK developers do not need to spend extra hours and power consumption on compilation.

    Yours faithfully.

  • Hi Tim,

    thanks for the suggestion, and I understand your point, and I agree esp. with the rational around pip, as it can be a good enabler for an improved out-of-box experience. I've created an internal requirement (SITREQ-2831) for our software team to track and take this feedback into consideration.

    Regards, Andreas