华为me909s

您所在的位置:网站首页 apn代码添加 华为me909s

华为me909s

2023-07-23 04:03| 来源: 网络整理| 查看: 265

首先介绍一下华为me909s-821,它是华为海思芯片4G模块,第一个LTE CAT4模块基于高科技车规级芯片,支持中国联通4G ,3G ,2G,中国移动4G,3G, 2G,中国电信4G,不支持中国电信3G,2G。具体参数如下:

LTE(FDD): B1,B3,B8; LTE(TDD): B39,B40,B41(38), all bands with diversity DC-HSPA+: B1,B9,B5,B8; TD-SCDMA: B34, B39, all bands with diversity EDGE/GPRS/GSM: 1800/900MHz MIMO LTE: DL 2*2 MIMO HSPA+/DC-HSPA+: DL 2*2 MIMO Output Power LTE: +23dBm (3GPP TS 36.101 R8 Class 3) WCDMA/HSPA+: +24dBm (Power Class 3) TD-SCDMA/HSPA:+24dBm (Power class 2) EDGE 1800MHz: +26dBm (Power Class E2) EDGE 900MHz: +27dBm (Power Class E2) GSM/GPRS 1800MHz: +30dBm (Power Class 1) GSM/GPRS 900MHz: +33dBm (Power Class 4) USIM (Class B and Class C) Power supply 3.2 V to 4.2V (typical: 3.8V) Temperature range Operational: -30°C to 70°C Extended: -40°C to 85°C* Dimensions: 51 mm x 30.4 mm x 3.57 mm Weight: approx. 12g AT commands 3GPP TS 27.007 and 27.005 Huawei extended AT command OS: Linux, Android, WinCE, Windows 8/10

我手里的这个模块是MiniPCIe封装,加了一个转USB的转换卡,带sim卡槽,可以直接插在windows10电脑上上网用。不过这里我是要插在openwrt路由器上上网,选用GL-inet6416,AR9331处理器。

第一步 准备编译openwrt环境

准备一台Ubuntu18.04系统电脑,最好不要低于这个版本,不然python版本不够高,无法编译。然后在终端按顺序执行以下命令。

sudo apt-get update sudo apt-get install gcc g++ build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch flex bison make autoconf texinfo unzip sharutils subversion ncurses-term zlib1g-dev ccache upx lib32gcc1 libc6-dev-i386 uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev libglib2.0-dev xmlto qemu-utils automake libtool -y #安装openwrt编译需要的环境 mkdir openwrt #新建一个目录 sudo chmod 777 openwrt #修改权限(重要) cd openwrt #进入目录 git clone https://github.com/openwrt/openwrt.git source #下载源代码 cd source ./scripts/feeds update -a #更新软件 ./scripts/feeds install -a make defconfig #测试编译环境第二步 添加me909s-821模块驱动

要使openwrt能够驱动me909s-821,必须添加相应的驱动,可以在编译的时候从源代码添加。找到build_dir/target-mips_24kc_musl/linux-ar71xx_generic/linux-4.14.160/drivers/usb/serial/option.c,target-mips_24kc_musl/linux-ar71xx_generic这一段路经要根据你的路由器处理器型号有所不同。编辑option.c,在如下位置添加代码。

static const struct usb_device_id option_ids[] = { ...... { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x78) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x79) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7A) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7B) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7C) }, /*在这里开始添加HUAWEI ME909S-821驱动代码*/ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0x02, 0x06, 0x10) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0x0a, 0x06, 0x11) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x10) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x13) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x12) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x06) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x15c1, 0xff, 0x06, 0x1b) }, /*添加的代码结束*/ ...... };第三步 添加必要的组件并编译

执行make menuconfig选中如下设置项:

Kernel modules -->USB Support --> kmod-usb-net --> kmod-usb-net-cdc-ether --> kmod-usb-serial --> kmod-usb-serial-option

这里补充一点,不要安装usb-modeswitch,否则无法正确识别模块为网卡。执行make -j1 V=s,开始编译,编译完成后将openwrt-ar71xx-generic-gl-inet-6416A-v1-squashfs-sysupgrade.bin刷入路由器。

第四步 添加拨号脚本,拨号上网

将模块插入刷好固件的路由器USB口,插上电源。SSH登录路由器(原版openwrt默认192.168.1.1,root密码为空),执行ifconfig -a,可一看到如下图所示新增了wwan0网口,在低版本openwrt里会是usb0。

再执行ls /dev,如下图ttyUSB0~ttyUSB4,这些即为me909s-821的端口,不过只有ttyUSB0能用来4G拨号上网。

这里我们就可以确认模块已经被正常识别。下面还要添加拨号脚本。将以下脚本代码存入/etc/init.d/4g文件。

#!/bin/sh /etc/rc.common # Example script # Copyright (C) 2007 OpenWrt.org START=99 start() { # commands to launch application if [ -f /sys/devices/platform/ehci-platform/usb1/1-1/idProduct ]; then idProduct=`sed -n 1p /sys/devices/platform/ehci-platform/usb1/1-1/idProduct` idVendor=`sed -n 1p /sys/devices/platform/ehci-platform/usb1/1-1/idVendor` if [ $? -eq 0 -a -n "$idProduct" -a "$idProduct" == "15c1" -a -n "$idVendor" -a "$idVendor" == "12d1" ]; then ifup 4g sleep 1 echo -en "AT^SYSCFGEX=\"030201\",3FFFFFFF,0,2,7FFFFFFFFFFFFFFF,,\r\n" > /dev/ttyUSB0 sleep 1 echo -en "AT+CGDCONT=1,\"IPV4V6\",\"\"\r\n" > /dev/ttyUSB0 sleep 1 echo -en 'AT^NDISDUP=1,1\r\n' > /dev/ttyUSB0 fi fi } stop() { if [ -f /sys/devices/platform/ehci-platform/usb1/1-1/idProduct ]; then idProduct=`sed -n 1p /sys/devices/platform/ehci-platform/usb1/1-1/idProduct` idVendor=`sed -n 1p /sys/devices/platform/ehci-platform/usb1/1-1/idVendor` if [ $? -eq 0 -a -n "$idProduct" -a "$idProduct" == "15c1" -a -n "$idVendor" -a "$idVendor" == "12d1" ]; then echo -en 'AT^NDISDUP=1,0\r\n' > /dev/ttyUSB0 sleep 1 ifdown 4g fi fi }

SSH终端执行以下命令。

chmod -R 777 /etc/init.d/4g #添加可执行权限 /etc/init.d/4g enable #激活开机启动,以后每次打开路由器会自动拨号上网 /etc/init.d/4g start #手动拨号上网

到这里还不能上网,还需要进入Luci界面进行进一步设置。打开“网络-->接口”,编辑WAN接口,按照下图进行设置。

保存并应用后,稍等一会就会发现WAN接口获取到了IP地址。再测试网络会发现已经可以正常联网了。但是也有一个问题还没有解决,IPV6地址无法获取,设置WAN6接口也无济于事,以后找到解决办法再行更新。最后再讲下AT指令,这个模块就是通过AT指令拨号的,上面的拨号脚本就是执行AT指令,如何单独执行AT指令,可以登录路由器SSH,执行echo -en "AT^NDISSTATQRY?">/dev/ttyUSB0,再执行cat /dev/ttyUSB0 | awk '{if($0!="")print}'得到下图结果:

AT^NDISSTATQRY 命令用于查询连接状态,图中所示IPV4和IPV6都已经连接成功(但是IPV6地址还知道如何获取,AT^DHCPV6?指令也无法获取V6地址)。更多AT指令可以查阅《华为me909s-821 AT命令手册》。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3