赞
踩
Air780e 是基于RK3588 平台开发的,使用CDC - ACM 驱动,大部分linux 系统默认就支持,插入就可以使用,如果不支持使用如下配置
Air780E 的 是标准的 rndis,因此一般的linux 就可以 ,按照下图下图配置
或修改.config:kernel/arch/arm64/configs$ vi OK3588-Linux_defconfig
CONFIG_USB_NET_RNDIS_HOST=m
CONFIG_USB_NET_RNDIS_WLAN=m
具体使用方法,详见:https://doc.openluat.com/wiki/37?wiki_page_id=4465
对Linux内核驱动做一定的修改,使操作系统能够支持Air780e。
File: [KERNEL]/drivers/usb/serial/option.c
static const struct usb_device_id option_ids[] = {
//+add by airm2m for Air780e
{ USB_DEVICE(0x19d1, 0x001) },
//-add by airm2m for Air780e
{ 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) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD) },
{ USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_QUAD_LIGHT) },
File: [KERNEL]/drivers/usb/serial/usb_wwan.c
static struct urb *usb_wwan_setup_urb(struct usb_serial_port *port,
int endpoint,
int dir, void *ctx, char *buf, int len,
void (*callback) (struct urb *))
{
struct usb_serial *serial = port->serial;
struct urb *urb;
urb = usb_alloc_urb(0, GFP_KERNEL); /* No ISO */
if (!urb)
return NULL;
usb_fill_bulk_urb(urb, serial->dev,
usb_sndbulkpipe(serial->dev, endpoint) | dir,
buf, len, callback, ctx);
//+add by airm2m for Air780e
if(dir == USB_DIR_OUT){
struct usb_device_descriptor *desc = &serial->dev->descriptor;
if(desc->idVendor == cpu_to_le16(0x1286) && desc->idProduct == cpu_to_le16(0x4e3d))
{
urb->transfer_flags |= URB_ZERO_PACKET;
}
}
//-add by airm2m for Air780e
return urb;
}
File: [KERNEL]/drivers/usb/serial/option.c
static struct usb_serial_driver option_1port_device = {
.driver = {
.owner = THIS_MODULE,
.name = "option1",
},
....
#ifdef CONFIG_PM
.suspend = usb_wwan_suspend,
.resume = usb_wwan_resume,
//+add by airm2m for Air780e
.reset_resume = usb_wwan_resume,
//-add by airm2m for Air780e
#endif
};
Air780e正常启动后,通过USB连接到linux设备上,驱动正常加载后会产生一个可以联网的RNDIS网卡:
模块 | VID | PID | Device |
---|---|---|---|
Air780e | 0x19d1 | 0x001 | eth网卡(RNDIS网卡) |
通过lsusb查看模块的vid与pid,分别是19d1和0001
只要通过USB连接Air780e模块就可以直接用了,模块开机后就会在linux设备端看到新的网卡,如下图:
注意:
i. 每个设备的ethx可能不一样,插入Air780e模块后增加的网卡即为RNDIS网卡,地址为192.168.10.x。
ii. 如果没能正常识别网卡,可以通过dmesg
命令参看一下usb驱动加载情况,下图是rndis驱动加载正常的情况:
sudo ifconfig eth0 down
sudo ifconfig eth2 up
使能之后最好再通过ifconfig再次确认一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。