5G模块的使用-FIBOCOM FX650

5G模块的使用-FIBOCOM FX650

ubuntu 使用5G模块

拿到FIBOCOM FX650 的评估板接入ubuntu 20.04 的虚拟机中

编译option.c的驱动

option.ko的驱动需要修改,然后重新编译
从github中下载option.c
usb-wwan.h
makefile 文件如下

obj-m := option.o

PWD := $(shell pwd)
OUTPUTDIR=/lib/modules/`uname -r`/kernel/drivers/usb/serial

ifeq ($(ARCH),)
ARCH := $(shell uname -m)
endif
ifeq ($(CROSS_COMPILE),)
CROSS_COMPILE :=
endif
ifeq ($(KDIR),)
KDIR := /lib/modules/$(shell uname -r)/build
endif

default:
	ln -sf makefile Makefile
	$(MAKE) ARCH=${ARCH} CROSS_COMPILE=${CROSS_COMPILE} -C $(KDIR) M=$(PWD) modules

install: default
	rm -rf Makefile
	rm -rf *.o *~ core .depend .*.cmd *.mod.c .tmp_versions Module.* modules.order
	mkdir -p $(OUTPUTDIR)
	cp -f option.ko $(OUTPUTDIR)
	depmod
	modprobe -r option
	modprobe option

clean:
	rm -rf Makefile
	rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module.* modules.order

修改option.c

static const struct usb_device_id option_ids[] = {

		{ USB_DEVICE(0x2cb7, 0x0a04) ,
		.driver_info = RSVD(0) | RSVD(1) | RSVD(5) }, // fibocom ecm
		{ USB_DEVICE(0x2cb7, 0x0a05) ,
		.driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, // fibocom ncm
		{ USB_DEVICE(0x2cb7, 0x0a06) ,
		.driver_info = RSVD(0) | RSVD(1) | RSVD(6) }, // fibocom rndis

	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
	{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
	.......
}

把option.ck ,usb-wwan.h,makefile 放在同一目录 ,打开终端运行

make

生成option.ko

安装驱动

安装对应的驱动

export KVERSION=`uname -r`
sudo insmod /lib/modules/$KVERSION/kernel/drivers/usb/serial/usbserial.ko
sudo insmod /lib/modules/$KVERSION/kernel/drivers/usb/serial/usb_wwan.ko
sudo insmod option.ko  #刚刚编译好的模块

usbserial.ko 与usb_wwan.ko 为操作系统的模块

使用

驱动安装后,需要等待几秒,会在/dev/下生成ttyUSB0-4 的节点,一般ttyUSB0对应的串口为发送AT指令的口。
执行如下脚本

#/bin/bash
MODULE_PORT=/dev/ttyUSB0
#check   module  USB port:
function checkModuleport(){

until [ -c $MODULE_PORT ]
do
echo  -e  "wait module port\r\n"
sleep 1
done
}


checkModuleport
echo -e "ATE0\r\n" >  $MODULE_PORT
echo -e "AT+GTUSBMODE=35\r\n" >  $MODULE_PORT
echo -e "AT+GTRAT?" >  $MODULE_PORT
echo -e "AT+CGDCONT?" >  $MODULE_PORT
echo -e "AT+COPS?" >  $MODULE_PORT

#查询当前注册的运营商和制式,11、12、13是5G,7是4G、2是3G、0是2G
echo -e "AT+COPS?\r\n" > $MODULE_PORT
#释放上次拨号的IP,当没IP时报ERROR
echo -e "AT+GTRNDIS=0,1\r\n" >  $MODULE_PORT
sleep 1
#ECM拨号,有IP时报错
echo -e "AT+GTRNDIS=1,1\r\n" > $MODULE_PORT
#配置Linux系统设备的路由
ifconfig usb0 up
udhcpc -i usb0


运行后可以上网。
可以ping www.baidu.com来验证是否可以连接外网(前提是有接SIM,sim可以上网)。

注意事项

执行脚本或者对/dev/ttyUSB0等节点进行操作时需要以root用户进行,仅仅修改chmod 777 /dev/ttyUSB0 或者chown 命令操作时会有问题。

arm板上使用5G模块

硬件环境的初始化

arm板上的5g,与ubuntu使用评估板不一样,一般都有独立电源控制,要先初始化电源或者GPIO
在这里插入图片描述

内核配置与使用

CONFIG_USB_NET_CDCETHER=y
CONFIG_USB_USBNET=y
CONFIG_USB_NET_RNDIS_HOST = y
编译好内核后与ubuntu 下一样,执行上述脚本,可以正常连网使用。

注意事项

echo -e “ATE0\r\n” > /dev/ttyUSB0 为关于回显的AT指令,如果cat /dev/ttyUSB0 一直返回ERROR的信息,要输入这条指令才能对其它指令进行操作。
同时注意些模块输入echo -e “ATE0\r\n” > /dev/ttyUSB0 后续如果有AT指令格式错误还是会一直报ERRO,所以建议在发AT指令前先执行此条指令。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值