Incompatible R40 driver with Ubuntu 22.04.4, kernel 5.15.136-tegra on Nvidia Jetson Orin NX based carrier board

Hello, I am trying to install the drivers for sierra wireless module EM9191 using the ‘MBPL_DRIVERS_R40_ENG3-usb-pice-src.tar.gz’ file downloaded uisng: Mobile Broadband Package for Linux (SDK, Drivers, Documentation). However, I get a kernel level error when trying to build the drivers using the command ‘make’.
I get the following output log for reference:

$ make
make -C /lib/modules/5.15.136-tegra/build M=/home/drone/repos_3rd_party/sierra_wireless/usb
make[1]: Entering directory ‘/usr/src/linux-headers-5.15.136-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source’
MODPOST /home/drone/repos_3rd_party/sierra_wireless/usb/Module.symvers
ERROR: modpost: “usb_cdc_wdm_register” [/home/drone/repos_3rd_party/sierra_wireless/usb/qmi_wwan.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:133: /home/drone/repos_3rd_party/sierra_wireless/usb/Module.symvers] Error 1
make[2]: *** Deleting file ‘/home/drone/repos_3rd_party/sierra_wireless/usb/Module.symvers’
make[1]: *** [Makefile:1830: modules] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-5.15.136-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source’
make: *** [Makefile:12: all] Error 2

Following is my configuration:

  • Jetson orin NX module with Jetpack 6.0 (rev2)
  • Ubuntu 22.04.4 LTS aarch64
  • Echopilot AI carrier board.
  • 5.15.136-tegra Kernel
    Any assistance or information will be helpful as we haven’t been able to figure how to install the driver for the module. mmcli (modem manager) tool in linux is not able to discover the modem using ‘sudo mmcli -S’ and ''mmcli -L.

I used Ubuntu 20.4.6 with similar kernel version 5.15.091, no problem is found:


owner@ubuntu:~/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb$ sudo make
make -C /lib/modules/5.15.0-91-generic/build M=/home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-91-generic'
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qcserial.o
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/usb_wwan.o
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qmi_wwan.o
  MODPOST /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/Module.symvers
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qcserial.mod.o
  LD [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qcserial.ko
  BTF [M] /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qcserial.ko
Skipping BTF generation for /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qcserial.ko due to unavailability of vmlinux
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qmi_wwan.mod.o
  LD [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qmi_wwan.ko
  BTF [M] /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qmi_wwan.ko
Skipping BTF generation for /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/qmi_wwan.ko due to unavailability of vmlinux
  CC [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/usb_wwan.mod.o
  LD [M]  /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/usb_wwan.ko
  BTF [M] /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/usb_wwan.ko
Skipping BTF generation for /home/owner/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb/usb_wwan.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-91-generic'
owner@ubuntu:~/QMI/MBPL/MBPL_DRIVERS_R40_ENG3-usb-pcie-src/usb$ uname -r
5.15.0-91-generic

Thank you for sharing your logs. Can you share the development platform / PC specs on which you got this result? Also, did you install any specific prerequisites before installing the driver?

it is Ubuntu 20.4.6 in VMware.

You can install build-essential before the compilation

Thanks for sharing this. However, I still get the error after installing build-essential:
$ sudo make
make -C /lib/modules/5.15.136-tegra/build M=/home/drone/repos/sierra_wireless/usb
make[1]: Entering directory ‘/usr/src/linux-headers-5.15.136-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source’
MODPOST /home/drone/repos/sierra_wireless/usb/Module.symvers
ERROR: modpost: “usb_cdc_wdm_register” [/home/drone/repos/sierra_wireless/usb/qmi_wwan.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:133: /home/drone/repos/sierra_wireless/usb/Module.symvers] Error 1
make[2]: *** Deleting file ‘/home/drone/repos/sierra_wireless/usb/Module.symvers’
make[1]: *** [Makefile:1830: modules] Error 2
make[1]: Leaving directory ‘/usr/src/linux-headers-5.15.136-tegra-ubuntu22.04_aarch64/3rdparty/canonical/linux-jammy/kernel-source’
make: *** [Makefile:12: all] Error 2.
Any idea on how to resolve this?

you can try with Ubuntu 20.4.6