欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

openwrt添加USB网卡驱动(SIERRA)

程序员文章站 2024-03-23 21:01:52
...

从SIERRA公司搞了一个7455的LTE模块和对应的DEVKIT,DEVKIT接口是USB3.0,可以通过USB3.0连接我另一个openwrt开发板,然后openwrt开发板加载相应的驱动,虚拟网卡和串口,实现了USB网卡的功能,废话不多说,下面是添加步骤:

到sierra官网找到7455USB驱动并下载,地址如下:

https://source.sierrawireless.com/devices/em-series/em7455/

openwrt添加USB网卡驱动(SIERRA)

openwrt添加USB网卡驱动(SIERRA)

添加USB网卡驱动:

1、在package/kernel下创建gobinet目录,进入gobinet目录,创建Makefile和src目录,Makefile内容如下:

#
# Copyright (C) 2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

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:=gobinet for sierra
  DEPENDS:=+kmod-usb-core kmod-usb-net    //记得添加依赖
  FILES:=$(PKG_BUILD_DIR)/gobinet.ko
  KCONFIG:=
  AUTOLOAD:=$(call AutoLoad,50,gobinet)    //自动加载
endef

define KernelPackage/gobinet/description
  Kernel module for Sierra USB
endef

EXTRA_KCONFIG:= \
        CONFIG_GOBINET=m                

EXTRA_CFLAGS:= \
        $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=m,%,$(filter %=m,$(EXTRA_KCONFIG)))) \
        $(patsubst CONFIG_%, -DCONFIG_%=1, $(patsubst %=y,%,$(filter %=y,$(EXTRA_KCONFIG)))) \

MAKE_OPTS:= \
        ARCH="$(LINUX_KARCH)" \
        CROSS_COMPILE="$(TARGET_CROSS)" \
        SUBDIRS="$(PKG_BUILD_DIR)" \
        EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
        $(EXTRA_KCONFIG)

define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
        $(CP) ./src/* $(PKG_BUILD_DIR)/
endef

define Build/Compile
        $(MAKE) -C "$(LINUX_DIR)" \
                $(MAKE_OPTS) \
                modules
endef

$(eval $(call KernelPackage,gobinet))

2、进入src目录,将从官网下载的源码GobiNet复制到src目录下,将Makefile内容修改如下:

obj-${CONFIG_GOBINET}   += gobinet.o
gobinet-objs := GobiUSBNet.o QMIDevice.o QMI.o usbnet_2_6_32.o usbnet_3_0_6.o \
                    usbnet_2_6_35.o usbnet_3_10_21.o usbnet_3_12_xx.o usbnet_4_4_xx.o

创建Kconfig文件,内容如下:

config SIERRA-NET
        tristate "net for sierra USB"

添加USB串口驱动:

添加步骤和网卡驱动类似,注意Makefile依赖改为

DEPENDS:=+kmod-usb-core kmod-usb-serial    //记得添加依赖

3、返回主目录,make menuconfig,选择如下

openwrt添加USB网卡驱动(SIERRA)

保存make完成后,可以在./build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7621/gobinet/ipkg-ramips_24kec/kmod-gobinet/lib/modules/3.10.14/   目录下找到gobinet.ko和gobiserial.ko驱动文件,将文件复制到开发板后,insmod成工后,将7455模块与开发板通过usb3.0连接成功后,dmesg可以看到

openwrt添加USB网卡驱动(SIERRA)

代表挂载成功。

然后可以通过网页:

openwrt添加USB网卡驱动(SIERRA)

看到多出两个网卡,添加相应接口即可使用啦。

顺便说一句,sierra的技术支持真的好慢。。。