Visible to Intel only — GUID: GUID-34258084-5912-44DF-8541-4409DBD75620
Visible to Intel only — GUID: GUID-34258084-5912-44DF-8541-4409DBD75620
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
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
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
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
Copy the configuration file to your folder, and rename it .config:
cp /boot/config-$(uname -r) ./.config
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
Compile the kernel, and create the Debian* kernel packages:
make -j4 deb-pkg
NOTE:- 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
Install the new Debian* kernel packages:
cd ../ && sudo dpkg -i linux-*.deb
Configure the system to use the new kernel version.
Open the GRUB.
sudo cp /etc/default/grub /etc/default/grub.bak sudo vi /etc/default/grub
Change the value of GRUB_DEFAULT from GRUB_DEFAULT=0 to GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.15.35".
Update the GRUB.
cd /tmp sudo update-grub
Reboot your system.
sync sudo reboot -fn
Check your kernel version after reboot.
uname -r
Build the 5G Module Kernel Modules
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
If you already have it cloned, remove the focal/ folder:
rm -rf focal/
Run the kernel module install script:
./01_docker_sdk_env/artifacts/01_amr/amr_5G_wwan/wwan_module_install.sh
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.)
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.
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.
Launch the WWAN 5G module container by opening a new terminal on the same system:
docker exec -it amr-wwan-5g-modem bash
Set up a 5G network connection.
./network_init.sh
Follow the on-screen instructions to enter the APN and IP route of your 5G private network.
Test the 5G network connection by pinging the IP address of the server.
Disconnect the 5G network connection and disable the 5G module from within the WWAN 5G module container.
Obtain the 5G module index number:
mmcli -L
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
NOTE: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.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.
Did you find the information on this page useful?
Feedback Message
Characters remaining: