本文讲述了如何移植4G模块到rk3568开发板并实现上网功能
先将开发板上电,输入命令lsusb
,看有没有出现,如果出现了Bus 001 Device 003: ID 2c7c:6005
,则设备树大概率是没问题的。如果没有,则表明4G模块没有被识别到。本文仅针对驱动进行讲解,不涉及设备树方面。
1 USB转串口驱动
1.1 添加VID和PID
为了识别模块,需将模块的 VID 和 PID 信息添加到kernel/drivers/usb/serial/option.c 文件中,该4G模块使用的是移远的EC200A-CN,我们可以查询到其 VID为0x2c7c 和 PID为0x6005。
static const struct usb_device_id option_ids[] = {
{
USB_DEVICE(0x1286, 0x4e3c) },
#if 1 //此处为添加的代码,到endif结束。
{
USB_DEVICE(0x2C7C, 0x6005) },
{
.match_flags = USB_DEVICE_ID_MATCH_VENDOR, .idVendor = 0x2C7C },
#endif
1.2 使用USBNet驱动
在1.1添加VID和PID中,配置会使模块的所有 USB 接口均绑定 USB 转串口 option 驱动程序,导致 USBNet 驱动程序接口无法工作。我们需要添加以下语句以防止 USBNet 驱动程序接口绑定 USB 转串口 option 驱动程序。
static int option_probe(struct usb_serial *serial,
const struct usb_device_id *id)
{
st