linux添加ec20,Linux下对接EC20,EC25,4G模组驱动安装

Linux 下安装 移远4G模块驱动,并调试安装环境ubuntu 18.04内核linux-Kernel-4.15.0对接移远的 EC25的 4G 模组.注意事项如果碰到 AT命令 一组命令都正常. 但是用PPP或者 gobinet +QconnectManager 都拨号不成功的话,得思考一下相关桌面系统有没有安装其他的网络或者4G拨号工具.比如我使用的ubuntu 安装了modemmanag...
摘要由CSDN通过智能技术生成

Linux 下安装 移远4G模块驱动,并调试

安装环境

ubuntu 18.04

内核linux-Kernel-4.15.0

对接移远的 EC25的 4G 模组.

注意事项

如果碰到 AT命令 一组命令都正常. 但是用PPP或者 gobinet +QconnectManager 都拨号不成功的话,得思考一下相关桌面系统有没有安装其他的网络或者4G拨号工具.比如我使用的ubuntu 安装了modemmanager,得把它卸载掉apt-get remove modemmanager.

安装前准备

下载内核源码

sudo apt install linux-source-4.15.0

或者 到https://mirrors.edge.kernel.org/pub/linux/kernel/下载源码

有些系统被设置了 禁止apt

# 在终端输入下面命令强制解锁

sudo rm /var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

sudo rm /var/lib/dpkg/lock-frontend

复制代码编译内核需要一些图形化处理的库

sudo apt-get install libncurses5-dev libssl-dev

sudo apt-get install build-essential openssl

sudo apt-get install zlibc minizip

sudo apt-get install libidn11-dev libidn11

复制代码

如果报错:某某 依赖没有被安装,去pkgs.org 该网站下载 例如: libncurses5-dev_6.1-1ubuntu1.18.04_amd64.deb

下载好后 dpkg -i 路径/

特别注意modemmanager

这是个坑,因为modemmanager 也是拨号上网的程序,只要把它卸载了才能拨号成功.

apt-get remove modemmanager

更改内核源码

添加USB 相关的内核源码

add VID 和 PID

/drivers/usb/serial/option.c

static const struct usb_device_id option_ids[] = {

#if 1 //Added by Quectel

{ USB_DEVICE(0x2C7C, 0x0125) }, /* Quectel EC25 */

#endif

}

复制代码/drivers/usb/serial/qcserial.c

# 删除这行

{USB_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */

复制代码/drivers/net/usb/qmi_wwan.c

# 删除这行

{QMI_GOBI_DEVICE(0x05c6, 0x9215)}, /* Acer Gobi 2000 Modem device (VP413) */

复制代码添加USB数据包传输机制

/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);

#if 1 //Added by Quectel for zero packet

if (dir == USB_DIR_OUT) {

struct usb_device_descriptor *desc = &serial->dev->descriptor;

if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9090))

urb->transfer_flags |= URB_ZERO_PACKET;

if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9003))

urb->transfer_flags |= URB_ZERO_PACKET;

if (desc->idVendor == cpu_to_le16(0x05C6) && desc->idProduct == cpu_to_le16(0x9215))

urb->transfer_flags |= URB_ZERO_PACKET;

if (desc->idVendor == cpu_to_le16(0x2C7C))

urb->transfer_flags |= URB_ZERO_PACKET;

}

#endif

return urb;

}

复制代码添加系统的重启 和设备重启的机制

/drivers/usb/serial/option.c

stati

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值