琼海网站制作,网站访问量怎么赚钱,如何搭建自己的微信小程序商城,制作网站的全过程这里写目录标题 1、修改驱动内核配置①使能USBNET功能②使能 USB 串口 GSM、CDMA 驱动③使能 USB 的 CDC ACM模式④使能PPP功能 2、使用lsusb命令查看是否识别到usb接口的“EC200A”4G模组3、在drivers/usb/serial/option.c添加VID和PID信息①添加VID和PID定义②在option_ids 数… 这里写目录标题 1、修改驱动内核配置①使能USBNET功能②使能 USB 串口 GSM、CDMA 驱动③使能 USB 的 CDC ACM模式④使能PPP功能 2、使用lsusb命令查看是否识别到usb接口的“EC200A”4G模组3、在drivers/usb/serial/option.c添加VID和PID信息①添加VID和PID定义②在option_ids 数组中添加③支持 ECM 接口可以通过 ECM 接口轻松联网在option_probe 函数添加如下④添加休眠后唤醒接口在option_1port_device 结构体变量里面添加如下 4、在drivers/usb/serial/usb_wwan.c 文件中的usb_wwan_setup_urb函数中添加零包处理代码5、插入EC200A模块查看日志是否虚拟出USB接口现象如下6、关闭SELINUX路径a\device\rockchip\common\BoardConfig.mk7、开启BOARD_HAVE_DONGLE和BOARD_HAS_RK_4G_MODEM路径与第6点一样8、无自适应功能的适配方法也就是不会动态加载RIL库而是写死的方法如下①将ril拷贝到对应的系统路径创建adevice\rockchip\rk3288\rk3288_Android11\modify.mk文件内容如下②设置vendor.rild.libpath属性③设置rild.libpath属性④修改开启rild服务加载libreference-ril-QUECTEL.so库文件 9、自适应功能的适配方法也就是会动态加载RIL库如下10、添加权限在a\device\rockchip\common\ueventd.rockchip.rc文件下添加如下11、查看库是否有和加载库是否正确及日志12、ping百度是否能上网13、PATCH补丁文件和需要添加的文件 1、修改驱动内核配置 
①使能USBNET功能 
- Device Drivers - -*- Network device support - USB Network Adapters - -*- Multi-purpose USB Networking Framework②使能 USB 串口 GSM、CDMA 驱动 
Device Drivers  ---[*] USB support  ---* USB Serial Converter support[*] USB Generic Serail Driver[*] USB Driver for GSM and CMDA modems③使能 USB 的 CDC ACM模式 
- Device Drivers - [*] USB support - * Support for Host-side USB- * USB Modem (CDC ACM) support④使能PPP功能 
Device Drivers  ---[*] Network device support  ---* PPP (point-to-point protocol) support* PPP support for async serial ports* PPP support for sync tty ports* PPP Deflate compression2、使用lsusb命令查看是否识别到usb接口的“EC200A”4G模组 
rk3288_Android10:/ $ lsusb
Bus 001 Device 005: ID 2c7c:6005这里解释一下信息“2c7c”指的是VID“6005”指的是PID。 
3、在drivers/usb/serial/option.c添加VID和PID信息 
①添加VID和PID定义 
#define QUECTEL_VENDOR_ID		0x2c7c	/* VID */
#define QUECTEL_PRODUCT_EC200A_CN       0x6005	/* PID */②在option_ids 数组中添加 
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200A_CN) },	/* Quectel EC200A */③支持 ECM 接口可以通过 ECM 接口轻松联网在option_probe 函数添加如下 
#if 1 //Added by Quectel  //Quectel UC20s interface 4 can be used as USB Network device  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x05C6)  serial-dev-descriptor.idProduct  cpu_to_le16(0x9003)   serial-interface-cur_altsetting-desc.bInterfaceNumber  4)  return -ENODEV;  //Quectel EC20(MDM9215)s interface 4 can be used as USB Network device  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x05C6)  serial-dev-descriptor.idProduct  cpu_to_le16(0x9215)   serial-interface-cur_altsetting-desc.bInterfaceNumber  4)  return -ENODEV;  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x2C7C)) {  __u16 idProduct  le16_to_cpu(serial-dev-descriptor.idProduct);  struct usb_interface_descriptor *intf  serial-interface-cur_altsetting-desc;  if (intf-bInterfaceClass ! 0xFF || intf-bInterfaceSubClass  0x42) {  //ECM, RNDIS, NCM, MBIM, ACM, UAC, ADB  return -ENODEV;  }  if ((idProduct0xF000)  0x0000) {  //MDM interface 4 is QMI  if (intf-bInterfaceNumber  4  intf-bNumEndpoints  3   intf-bInterfaceSubClass  0xFF  intf-bInterfaceProtocol  0xFF)  return -ENODEV;  }  }  
#endif ④添加休眠后唤醒接口在option_1port_device 结构体变量里面添加如下 
.reset_resume  usb_wwan_resume,4、在drivers/usb/serial/usb_wwan.c 文件中的usb_wwan_setup_urb函数中添加零包处理代码 
#if 1 //Added by Quectel for Zero Packet  if (dir  USB_DIR_OUT) {  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x05C6)  serial-dev-descriptor.idProduct  cpu_to_le16(0x9090))  urb-transfer_flags | URB_ZERO_PACKET;  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x05C6)  serial-dev-descriptor.idProduct  cpu_to_le16(0x9003))  urb-transfer_flags | URB_ZERO_PACKET;  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x05C6)  serial-dev-descriptor.idProduct  cpu_to_le16(0x9215))  urb-transfer_flags | URB_ZERO_PACKET;  if (serial-dev-descriptor.idVendor  cpu_to_le16(0x2C7C))  urb-transfer_flags | URB_ZERO_PACKET;  }  
#endif5、插入EC200A模块查看日志是否虚拟出USB接口现象如下 
[ 2537.919546] option 1-1.4:1.2: GSM modem (1-port) converter detected
[ 2537.920339] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB0
[ 2537.921527] option 1-1.4:1.3: GSM modem (1-port) converter detected
[ 2537.922340] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB1
[ 2537.923486] option 1-1.4:1.4: GSM modem (1-port) converter detected
[ 2537.924214] usb 1-1.4: GSM modem (1-port) converter now attached to ttyUSB2再使用ls /dev/ttyUSB*命令查看如下 
rk3288_Android10:/ $ ls /dev/ttyUSB*
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB26、关闭SELINUX路径a\device\rockchip\common\BoardConfig.mk 
BOARD_SELINUX_ENFORCING ? false当BOARD_SELINUX_ENFORCING设置为1时表示SELinux处于强制执行模式当设置为0时表示SELinux处于宽松模式。在强制执行模式下SELinux会严格限制应用程序和系统服务的权限确保它们只能访问其被授权的资源。 
7、开启BOARD_HAVE_DONGLE和BOARD_HAS_RK_4G_MODEM路径与第6点一样 如果编译时报android.hardware.radio.deprecated这个错误那么就是BOARD_HAS_RK_4G_MODEM引起的错误。   解决方法 
a\device\rockchip\common\manifest.xmlhal formathidlnameandroid.hardware.radio/nametransporthwbinder/transportfqname1.1::IRadio/slot1/fqnamefqname1.1::IRadio/slot2/fqnamefqname1.2::ISap/slot1/fqname/hal
-     hal formathidl
-         nameandroid.hardware.radio.deprecated/name
-         transporthwbinder/transport
-         version1.0/version
-         interface
-             nameIOemHook/name
-             instanceslot1/instance
-         /interface
-     /hal
-     kernel target-level5//manifest	a\device\rockchip\common\4g_modem\manifest.xml
manifest version1.0 typedevicehal formathidlnameandroid.hardware.radio/nametransporthwbinder/transportfqname1.1::IRadio/slot1/fqnamefqname1.1::IRadio/slot2/fqnamefqname1.2::ISap/slot1/fqname/halhal formathidlnameandroid.hardware.radio.deprecated/nametransporthwbinder/transportversion1.0/versioninterfacenameIOemHook/nameinstanceslot1/instance/interface/halhal formathidl
-        nameandroid.hardware.radio.config/namenameandroid.hardware.radio/nametransporthwbinder/transportversion1.0/versioninterface
-            nameIRadioConfig/namenameIRadio/name
-            instancedefault/instanceinstanceslot1/instance/interface/hal
/manifest如果报的错误是FAILED: out/target/product/rk3568_r/obj/EXECUTABLES/usb_dongle_intermediates/Misc.o   解决方法 
\external\usb_modeswitch\usb_dongle\Android.mk
- common_local_tidy_flags : -warnings-as-errorsclang-analyzer-security*,cert-*#common_local_tidy_flags : -warnings-as-errorsclang-analyzer-security*,cert-*8、无自适应功能的适配方法也就是不会动态加载RIL库而是写死的方法如下 
①将ril拷贝到对应的系统路径创建adevice\rockchip\rk3288\rk3288_Android11\modify.mk文件内容如下 
PRODUCT_PACKAGES  rild
PRODUCT_COPY_FILES  \device/rockchip/rk3288/rk3288_Android11/modify/xG_module/libquectel-ril/armeabi/libreference-ril-QUECTEL.so:vendor/lib/libreference-ril-QUECTEL.so \device/rockchip/rk3288/rk3288_Android11/modify/xG_module/libquectel-ril/armeabi/chat:system/bin/chat \device/rockchip/rk3288/rk3288_Android11/modify/xG_module/libquectel-ril/armeabi/ip-up:system/bin/ip-up \device/rockchip/rk3288/rk3288_Android11/modify/xG_module/libquectel-ril/armeabi/ip-down:system/bin/ip-down \device/rockchip/rk3288/rk3288_Android11/apns-conf.xml:system/etc/apns-conf.xml
然后a\device\rockchip\rk3288\device.mk文件下添加如下
include $(LOCAL_PATH)/rk3288_Android11/modify.mk②设置vendor.rild.libpath属性 
a\device\rockchip\common\device.mk
ifeq ($(strip $(BOARD_HAS_RK_4G_MODEM)),true)
PRODUCT_PACKAGES  \CarrierDefaultApp \CarrierConfig \rild \
-   librk-ril \libreference-ril-QUECTEL.so \dhcpcdPRODUCT_COPY_FILES  vendor/rockchip/common/phone/etc/apns-full-conf.xml:$(TARGET_COPY_OUT_PRODUCT)/etc/apns-conf.xmlPRODUCT_PACKAGES  \android.hardware.radio1.2-radio-service \android.hardware.radio.config1.0-servicePRODUCT_PROPERTY_OVERRIDES  \ro.boot.norilfalse \ro.telephony.default_network9ifeq ($(strip $(TARGET_ARCH)), arm64)
PRODUCT_PROPERTY_OVERRIDES  \
-        vendor.rild.libpath/vendor/lib64/librk-ril.sovendor.rild.libpath/vendor/lib64/libreference-ril-QUECTEL.soPRODUCT_COPY_FILES  \$(LOCAL_PATH)/4g_modem/bin64/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \$(LOCAL_PATH)/4g_modem/lib64/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librk-ril.so
else
PRODUCT_PROPERTY_OVERRIDES  \
-		vendor.rild.libpath/vendor/lib/librk-ril.sovendor.rild.libpath/vendor/lib/libreference-ril-QUECTEL.soPRODUCT_COPY_FILES  \$(LOCAL_PATH)/4g_modem/bin32/dhcpcd:$(TARGET_COPY_OUT_VENDOR)/bin/dhcpcd \$(LOCAL_PATH)/4g_modem/lib32/librk-ril.so:$(TARGET_COPY_OUT_VENDOR)/lib/librk-ril.soendif
endif③设置rild.libpath属性 
a\device\rockchip\rk3288\device.mk
PRODUCT_PROPERTY_OVERRIDES  \ro.ril.ecclist112,911 \ro.opengles.version196610 \wifi.interfacewlan0 \ro.telephony.default_network9 \rild.libpath/vendor/lib64/libreference-ril-QUECTEL.so \rild.libargs-d /dev/ttyUSB2 \ro.audio.monitorOrientationtrue \debug.nfc.fw_downloadfalse \debug.nfc.sefalse \vendor.hwc.compose_policy1 \sys.wallpaper.rgb5650 \sf.power.control2073600 \sys.rkadb.root0 \ro.sf.fakerotationfalse \ro.tether.deniedfalse \sys.resolution.changedfalse \ro.default.size100 \ro.product.usbfactoryrockchip_usb \wifi.supplicant_scan_interval15 \ro.factory.tool0 \ro.kernel.android.checkjni0 \ro.build.shutdown_timeout6 \persist.enable_task_snapshotsfalse \ro.vendor.frameratelocktrue④修改开启rild服务加载libreference-ril-QUECTEL.so库文件 
-	service ril-daemon /vendor/bin/hw/rildservice ril-daemon /vendor/bin/hw/rild -l /vendor/lib/libreference-ril-QUECTEL.sosocket rild stream 660 root radiosocket rild-debug stream 660 radio systemclass mainuser radiogroup radio cache inet misc audio log readproc wakelockcapabilities BLOCK_SUSPEND NET_ADMIN NET_RAW9、自适应功能的适配方法也就是会动态加载RIL库如下 
参考博客链接 
10、添加权限在a\device\rockchip\common\ueventd.rockchip.rc文件下添加如下 
#quectel port
/dev/ttyUSB*              0660   radio      radio
/dev/ttyACM*              0660   radio      radio
/dev/cdc-wdm*             0660   radio      radio
/dev/qcqmi*               0660   radio      radio
/dev/cdc-acm*             0660   radio      radio11、查看库是否有和加载库是否正确及日志 
①查看库是否存在cd vendor/lib/ ②查看加载库getprop | grep rild ③应用日志logcat -b radio 
12、ping百度是否能上网 13、PATCH补丁文件和需要添加的文件 
文件链接