跳转到主要内容

4G模块使用说明


移远通信LTE Standard EM05系列是一款专为IoT/M2M应用而设计的LTE Cat 4模块。采用节省空间的M.2(NGFF)封装类型,超薄、紧凑的设计使其更易于嵌入到小尺寸产品中。

EM05系列支持最大下行速率150 Mbps,最大上行速率50 Mbps,包含三个型号:EM05-CN、EM05-E和EM05-G。支持LTE-FDD、LTE-TDD、DC-HSDPA、HSPA+、HSDPA、HSUPA、WCDMA和CDMA等多种网络制式。

要在Jetson系列上使用EM-05模块需要重新编译系统内核并刷入新编译的系统。

一、替换新内核

1.1 拉取编译好的资料
1.2 修改设备树配置文件
1.3 移动内核和驱动到指定位置
1.4 应用更改并重启验证

二、编译刷入完整系统

2.1 获取源码和工具链
  • 安装编译依赖工具
sudo apt install build-essential bc
sudo apt-get install git bison flex libssl-dev zip libncurses-dev make git
sudo apt-get install build-essential bc
  • 创建工具链放置目录
mkdir $HOME/l4t-gcc-toolchain
cd $HOME/l4t-gcc-toolchain
  • 下载并解压交叉编译工具链
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2
  • 进入到缓存好的刷机固件目录
cd $HOME/nvidia/nvidia_sdk/JetPack_6.2.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source  #根据实际目录进行修改
 ./source_sync.sh -k -t <release-tag> #<release-tag>替换为你自己的发行版本如 jetpack_36.4.3
2.2 修改内核源码

本部分内容可参考移远Linux&Andriod驱动技术手册

2.3 编译内核

此步骤可能需要进行半个小时以上

    • 创建输出目录
    cd ../../                    
    mkdir kernel_out 
    • 编译安装内核
    export CROSS_COMPILE=$HOME/l4t-gcc-toolchain/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-        #设置交叉编译工具
    make -C kernel                     #构建 Jetson Linux 内核镜像
    sudo -E make install -C kernel     #安装内核模块和树内模块
    • 将内核镜像复制到刷机目录下
    cp kernel/kernel-jammy-src/arch/arm64/boot/Image ../Linux_for_Tegra/kernel/Image
    • 构建NVIDIA树外模块(驱动程序) 
    export CROSS_COMPILE=$HOME/l4t-gcc-toolchain/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
    export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
    make modules
    • 安装到刷机目录下
    export INSTALL_MOD_PATH=$HOME/nvidia/nvidia_sdk/JetPack_6.2.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/rootfs/ #根据实际目录进行修改
    sudo -E make modules_install
    • 开始构建DTB
    export CROSS_COMPILE=$HOME/l4t-gcc-toolchain/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-
    export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
    make dtbs
    • 将生成的dtb文件拷贝到刷机目录
    cp kernel-devicetree/generic-dts/dtbs/* /Linux_for_Tegra/kernel/dtb/
    2.4 刷入系统
    • 进入刷机固件缓存目录
    cd $HOME/nvidia/nvidia_sdk/JetPack_6.2.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source  #根据实际目录进行修改

    使用命令行刷机:

    • super模式
    sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c tools/kernel_flash/flash_l4t_t234_nvme.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" --showlogs --network usb0 jetson-orin-nano-devkit-super internal
    • 普通模式
    sudo ./flash.sh jetson-orin-nano-devkit-nvme internal
    2.5 开机验证
    • 将Quectel_Qconnectmanager上传到开发板
    • 解压并编译
    unizp Quectel_QConnectManager_Linux_V1.6.5.zip
    cd Quectel_QConnectManager_Linux_V1.6.5
    make

    成功运行便可4G拨号上网

    jetson@jetson-desktop:~/Downloads/Quectel_QConnectManager_Linux_V1.6.5$ sudo ./quectel-CM
    [08-08_11:39:04:415] QConnectManager_Linux_V1.6.5
    [08-08_11:39:04:416] Find /sys/bus/usb/devices/1-2.2 idVendor=0x2c7c idProduct=0x125, bus=0x001, dev=0x007
    [08-08_11:39:04:416] Auto find qmichannel = /dev/cdc-wdm0
    [08-08_11:39:04:417] Auto find usbnet_adapter = wwan0
    [08-08_11:39:04:417] netcard driver = qmi_wwan_q, driver version = V1.2.6
    [08-08_11:39:04:417] Modem works in QMI mode
    [08-08_11:39:04:447] cdc_wdm_fd = 7
    [08-08_11:39:04:523] Get clientWDS = 5
    [08-08_11:39:04:557] Get clientDMS = 1
    [08-08_11:39:04:589] Get clientNAS = 2
    [08-08_11:39:04:620] Get clientUIM = 1
    [08-08_11:39:04:653] Get clientWDA = 1
    [08-08_11:39:04:684] requestBaseBandVersion EM05CNFDR08A03M1G_ND
    [08-08_11:39:04:812] requestGetSIMStatus SIMStatus: SIM_READY
    [08-08_11:39:04:876] requestGetProfile[pdp:1 index:1] ctnet///0/IPV4V6
    [08-08_11:39:04:908] requestRegistrationState2 MCC: 460, MNC: 11, PS: Attached, DataCap: LTE
    [08-08_11:39:04:940] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED
    [08-08_11:39:04:941] ip addr flush dev wwan0
    [08-08_11:39:04:947] ip link set dev wwan0 down
    [08-08_11:39:05:003] requestSetupDataCall WdsConnectionIPv4Handle: 0x8723e530
    [08-08_11:39:05:132] ip link set dev wwan0 up
    [08-08_11:39:05:141] No default.script found, it should be in '/usr/share/udhcpc/' or '/etc//udhcpc' depend on your udhcpc version!
    [08-08_11:39:05:142] busybox udhcpc -f -n -q -t 5 -i wwan0
    udhcpc: started, v1.30.1
    udhcpc: sending discover
    udhcpc: sending select for 10.21.181.66
    udhcpc: lease of 10.21.181.66 obtained, lease time 7200
    [08-08_11:39:05:282] ip -4 address flush dev wwan0
    [08-08_11:39:05:286] ip -4 address add 10.21.181.66/30 dev wwan0
    [08-08_11:39:05:292] ip -4 route add default via 10.21.181.65 dev wwan0

    查看网卡信息

    jetson@jetson-desktop:~$  ifconfig wwan0
    wwan0: flags=193<UP,RUNNING,NOARP>  mtu 1500
            inet 10.21.181.66  netmask 255.255.255.252
            inet6 fe80::5804:41ff:feda:ce83  prefixlen 64  scopeid 0x20<link>
            ether 5a:04:41:da:ce:83  txqueuelen 1000  (Ethernet)
            RX packets 9  bytes 2304 (2.3 KB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 22  bytes 1854 (1.8 KB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    

    连接性测试

    ping_test.png