Developer Guide

  • 2022.3
  • 10/25/2022
  • Public Content
Contents

Fibocom’s FM350 5G Module Integration

This tutorial covers how to build, install, and run Wireless Wide Area Network (WWAN) 5G private network with Linux* components on Ubuntu for Intel IoT platforms.
Prerequisites:
  • Fibocom’s FM350 5G module installed on the compute system
  • A 5G private network infrastructure
  • The APN of the 5G private network

Update the Ubuntu* Kernel Version 5.13 to 5.15

  1. Clone Intel’s kernel 5.15.35 repository from GitHub*.
    git clone https://git.launchpad.net/~canonical-kernel/ubuntu/+source/linux-intel-iotg/+git/focal/ cd focal
  2. Reset HEAD to the
    Ubuntu-intel-iotg-5.15-5.15.0-1010.14_20.04.1
    branch:
    git reset --hard Ubuntu-intel-iotg-5.15-5.15.0-1010.14_20.04.1
  3. Install the necessary packages and
    gcc
    dependencies:
    sudo apt-get -y install build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev dwarves zstd
  4. Copy the configuration file to your folder, and rename it
    .config
    :
    cp /boot/config-$(uname -r) ./.config
  5. Change these kernel configuration values:
    make olddefconfig scripts/config --set-str SYSTEM_TRUSTED_KEYS "" scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS "" scripts/config --enable WWAN scripts/config --module CONFIG_MTK_T7XX
  6. Compile the kernel, and create the Debian* kernel packages:
    make -j4 deb-pkg
    This kernel compilation step takes a long time to complete:
    • approximately one hour on systems with 32 GB of RAM
    • two to three hours on systems with 8 GB of RAM
  7. Install the new Debian* kernel packages:
    cd ../ && sudo dpkg -i linux-*.deb
  8. Configure the system to use the new kernel version.
    1. Open the GRUB.
      sudo cp /etc/default/grub /etc/default/grub.bak sudo vi /etc/default/grub
    2. Change the value of
      GRUB_DEFAULT
      from
      GRUB_DEFAULT=0
      to
      GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.35"
      .
    3. Update the GRUB.
      cd /tmp sudo update-grub
  9. Reboot your system.
    sync sudo reboot -fn
  10. Check your kernel version after reboot.
    uname -r

Build the 5G Module Kernel Modules

  1. Go to the
    AMR_containers
    folder, and change the permissions of the install script:
    cd Edge_Insights_for_Autonomous_Mobile_Robots_*/AMR_containers/ sudo chmod 775 ./01_docker_sdk_env/artifacts/01_amr/amr_5G_wwan/wwan_module_install.sh
  2. If you already have it cloned, remove the focal/ folder:
    rm -rf focal/
  3. Run the kernel module install script:
    ./01_docker_sdk_env/artifacts/01_amr/amr_5G_wwan/wwan_module_install.sh
  4. Follow the on-screen instructions to fetch the kernel source files and build and load the kernel modules. (The patches are self-healing, so errors that appear in the patches are fixed by subsequent patches.)
  5. Prepare the environment setup:
    source 01_docker_sdk_env/docker_compose/common/docker_compose.source
    If you get a “some variables not defined” error message, see Troubleshooting.
  6. Run the WWAN 5G module container:
    CHOOSE_USER=root docker-compose -f 01_docker_sdk_env/docker_compose/05_tutorials/wwan_5G_modem_tutorial.yml up
    If you get a “some variables not defined” error message, see Troubleshooting.
  7. Launch the WWAN 5G module container by opening a new terminal on the same system:
    docker exec -it amr-wwan-5g-modem bash
  8. Set up a 5G network connection.
    ./network_init.sh
  9. Follow the on-screen instructions to enter the APN and IP route of your 5G private network.
  10. Test the 5G network connection by pinging the IP address of the server.
  11. Disconnect the 5G network connection and disable the 5G module from within the WWAN 5G module container.
    1. Obtain the 5G module index number:
      mmcli -L
    2. Disconnect the 5G network connection and disable the 5G module (this example uses
      0
      for the 5G module index number):
      mmcli -m 0 --simple-disconnect mmcli -m 0 -d
    If you only stop the WWAN 5G module container, the 5G network is still available because the 5G module is still enabled and has an active connection.
  12. Stop the WWAN 5G module container:
    docker stop amr-wwan-5g-modem

Troubleshooting

  • If you see an error message that
    docker-compose
    fails with some variables not defined, add the environment variables to
    .bashrc
    so that they are available to all terminals:
    export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 export DOCKER_HOSTNAME=$(hostname) export DOCKER_USER_ID=$(id -u) export DOCKER_GROUP_ID=$(id -g) export DOCKER_USER=$(whoami) # Check with command env | grep DOCKER
  • During execution of
    wwan_module_install.sh
    , the following errors may be encountered:
    INFO: Checking git dependencies... ERROR: git config user.name not present ERROR: Invalid git configuration Aborting...
    To fix this, add your username and email address to the git configuration:
    git config --global user.name "yournamme" git config --global user.email "youremail"
  • During execution of
    network_init.sh
    , the following error may be encountered:
    INFO: Simple Connect... mmcli -m 0 --simple-connect=apn=internet, ip-type=ipv4v6 error: couldn't connect the modem: 'Timeout was reached'
    In
    network_init.sh
    ’s log, check the module status. If
    state
    is
    enabled
    , reboot the EI for AMR host, and repeat Build the 5G Module Kernel Modules.
    Status | lock: sim-pin2 | unlock retries: sim-pin2 (3) | state: enabled | power state: on | signal quality: 41% (cached)
  • For general robot issues, go to: Troubleshooting for Robot Tutorials.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.