楼主的OpenWrt编译环境是centos,OpenWrt 18.06,内核版本是4.14.113的
打开内核源码文件 option.c(我的路径为 /openwrt-18.06/build_dir/target-mipsel_24kc_musl/linux-ramips_mt7620/linux-4.14.113/drivers/usb/serial/option.c);
搜索0x1c9e,找到LONGCHEER_VENDOR_ID,这是默认就有的VID,VID指的是某个厂商的编号
PID是厂商的某个产品型号,U9300C 为0x9b3c
模块 U9300/U9507C/W,如果客户平台不使用 adb 口,即 ttyUSB0,在 option.c中将该口过
滤掉。过滤方法如下:
找到函数option_probe
添加以下内容
//Do not use adb for 0th
if(serial->dev->descriptor.idVendor == LONGCHEER_VENDOR_ID &&
serial->dev->descriptor.idProduct == Longsung_U9300_PRODUCT_ID &&
serial->interface->cur_altsetting->desc.bInterfaceNumber == 0){
printk("GZZ Discover the 0th interface for longsun U9300 ndis\n");
return -ENODEV;
}
由于USB串口跟netdev都属于非标准CDC设备,需要防止NDIS口被USB串口驱动加
载而导致无法正常加载NDIS口驱动。
在option_ids数组中
添加龙尚驱动的内容,设置 interface 4 不加载 otpion 驱动
{
USB_DEVICE(LONGCHEER_VENDOR_ID, Longsung_U9300_PRODUCT_ID),
.driver_info=BIT(4),
},//longsun u9300c
Gobinet 驱动加载
驱动地址:https://github.com/DiUS/sierra-gobi-drivers
1.源码环境根目录下,进入package目录,新建“gobinet”目录,并进入其中,新建“src”目录和Makefile文件;Makefile文件内容如下
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=gobinet
PKG_RELEASE:=1
include $(INCLUDE_DIR)/package.mk
define KernelPackage/gobinet
SUBMENU:=Other modules
TITLE:=Support Module for gobinet
DEPENDS:=+kmod-usb-core +kmod-usb-net
FILES:=$(PKG_BUILD_DIR)/GobiNet.ko
AUTOLOAD:=$(call AutoLoad,81,GobiNet)
endef
define KernelPackage/gobinet/description
This is a gobinet drivers
endef
MAKE_OPTS:=ARCH="$(LINUX_KARCH)" \
CROSS_COMPILE="$(TARGET_CROSS)" \
SUBDIRS="$(PKG_BUILD_DIR)"
define Build/Prepare
mkdir -p $(PKG_BUILD_DIR)/
$(CP) -R ./src/* $(PKG_BUILD_DIR)/
endef
define Build/Compile
$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) modules
endef
$(eval $(call KernelPackage,gobinet))
2.进入src目录,将驱动源码中的GobiNet文件夹中的内容放入其中
3.make menuconfig,确定以下内容选中
然后make V=s