linux 修改 usb-serial.c 提升3G上网速度

原创 2015年07月08日 14:03:34

Linux原有的USB驱动是针对低速USB设计的,,它的缓存开的太小。因此,3G上网卡的网速并没有达到evdo的正常速度。
在没有修改内核源码之前:

root@DayDream:/home# ping 114.114.114.114
PING 114.114.114.114 (114.114.114.114): 56 data bytes
64 bytes from 114.114.114.114: seq=0 ttl=67 time=102.400 ms
64 bytes from 114.114.114.114: seq=1 ttl=79 time=111.619 ms
64 bytes from 114.114.114.114: seq=2 ttl=84 time=118.659 ms
64 bytes from 114.114.114.114: seq=3 ttl=96 time=91.660 ms
64 bytes from 114.114.114.114: seq=4 ttl=94 time=122.760 ms
64 bytes from 114.114.114.114: seq=5 ttl=96 time=85.420 ms
64 bytes from 114.114.114.114: seq=6 ttl=82 time=199.560 ms
64 bytes from 114.114.114.114: seq=7 ttl=70 time=130.720 ms
64 bytes from 114.114.114.114: seq=8 ttl=78 time=154.260 ms
64 bytes from 114.114.114.114: seq=9 ttl=77 time=131.600 ms
64 bytes from 114.114.114.114: seq=10 ttl=69 time=206.619 ms
64 bytes from 114.114.114.114: seq=11 ttl=74 time=129.580 ms
64 bytes from 114.114.114.114: seq=12 ttl=72 time=223.679 ms
64 bytes from 114.114.114.114: seq=13 ttl=97 time=129.579 ms
64 bytes from 114.114.114.114: seq=14 ttl=84 time=178.639 ms
64 bytes from 114.114.114.114: seq=15 ttl=76 time=121.619 ms
^C
--- 114.114.114.114 ping statistics ---
16 packets transmitted, 16 packets received, 0% packet loss
round-trip min/avg/max = 85.420/139.898/223.679 ms

修改内核源码,建议修改前先复制一份备份。

vi build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_rt305x/linux-3.18.11/drivers/usb/serial/usb-serial.c 
//搜索 buffer_size =
//在赋值后面添加if(buffer_size < (10 * 1024)) buffer_size = (10 * 1024);
//总共有四处
buffer_size = max_t(int, serial->type->bulk_in_size,usb_endpoint_maxp(endpoint));
                /******************* Faker ******************************/
                if(buffer_size < (10 * 1024))
                        buffer_size = (10 * 1024);
                /************************************************/

编译烧写固件测试:

root@DayDream:/# ping 114.114.114.114
PING 114.114.114.114 (114.114.114.114): 56 data bytes
64 bytes from 114.114.114.114: seq=0 ttl=67 time=99.800 ms
64 bytes from 114.114.114.114: seq=1 ttl=79 time=93.160 ms
64 bytes from 114.114.114.114: seq=2 ttl=72 time=71.620 ms
64 bytes from 114.114.114.114: seq=3 ttl=69 time=84.160 ms
64 bytes from 114.114.114.114: seq=4 ttl=75 time=100.020 ms
64 bytes from 114.114.114.114: seq=5 ttl=95 time=94.100 ms
64 bytes from 114.114.114.114: seq=6 ttl=92 time=102.800 ms
64 bytes from 114.114.114.114: seq=7 ttl=66 time=90.800 ms
64 bytes from 114.114.114.114: seq=8 ttl=76 time=100.840 ms
64 bytes from 114.114.114.114: seq=9 ttl=85 time=97.240 ms
64 bytes from 114.114.114.114: seq=10 ttl=84 time=110.420 ms
64 bytes from 114.114.114.114: seq=11 ttl=74 time=101.160 ms
64 bytes from 114.114.114.114: seq=12 ttl=83 time=104.120 ms
64 bytes from 114.114.114.114: seq=13 ttl=97 time=104.240 ms
64 bytes from 114.114.114.114: seq=14 ttl=80 time=95.220 ms
64 bytes from 114.114.114.114: seq=15 ttl=94 time=108.680 ms
64 bytes from 114.114.114.114: seq=16 ttl=95 time=76.980 ms
64 bytes from 114.114.114.114: seq=17 ttl=72 time=102.960 ms
64 bytes from 114.114.114.114: seq=18 ttl=67 time=103.020 ms
64 bytes from 114.114.114.114: seq=19 ttl=95 time=102.679 ms
64 bytes from 114.114.114.114: seq=20 ttl=76 time=100.340 ms
64 bytes from 114.114.114.114: seq=21 ttl=94 time=99.040 ms
64 bytes from 114.114.114.114: seq=22 ttl=91 time=99.620 ms
64 bytes from 114.114.114.114: seq=23 ttl=72 time=102.620 ms
64 bytes from 114.114.114.114: seq=24 ttl=68 time=91.200 ms
^C
--- 114.114.114.114 ping statistics ---
25 packets transmitted, 25 packets received, 0% packet loss
round-trip min/avg/max = 71.620/97.473/110.420 ms

可以通过下载文件来测试网速

linux 修改 usb-serial.c 提升3G上网速度

Linux原有的USB驱动是针对低速USB设计的,,它的缓存开的太小。因此,3G上网卡的网速并没有达到evdo的正常速度。 在没有修改内核源码之前:root@DayDream:/home# ping...
  • aa120515692
  • aa120515692
  • 2015年07月08日 14:03
  • 747

通过修改内核提高3G上网卡设备速率(usbserial.c)

由于linux内核中usbserial模块是为低速usb设备所设计,无法应对目前的3G无线USB上网卡设备的高速模式,所以虽然在linux下可正常拔号,最高速度仍然只能达到62K/s,为解决此问题可通...
  • Crob
  • Crob
  • 2010年02月12日 09:55
  • 4711

简易方法提高手机3G上网速度(2G转3G)

这里提到的方法是将手机信号不好的地方(也就是2G信号)强制转换为3G信号上网以至于提高上网速度,大家经常看到在某个地方(比如坐地铁)手机明明是3G卡,却显示的是2G信号,这就是手机老在2G和3G之间切...
  • liuyang1990i
  • liuyang1990i
  • 2014年06月19日 00:17
  • 18724

ARM平台嵌入式Linux下使用3G/4G 模块

简介 随着工业发展,嵌入式设备接入网络的需求日益增多,在没有有线或者无线以太网的环境下,直接通过3G/4G Modem连接运营商网络来接入互联网不失为一个好方法,本文就着重介绍基于ARM平台的嵌入式...
  • toradexsh
  • toradexsh
  • 2016年04月12日 14:46
  • 4804

USB、UART、SPI等总线速率

1. USB总线USB1.1: ——-低速模式(low speed):1.5Mbps ——-全速模式(full speed): 12Mbps USB2.0:向下兼容。增加了高速模式,最大速率...
  • ss343fd
  • ss343fd
  • 2017年02月05日 10:48
  • 1450

USB2.0传输带宽

摘要:针对USB2.0高速数据传输在实际应用中存在的具体问题,深入分析了诸如协议开销、带宽分配、工作环境、主机硬件结构和操作系统配置、设备驱动程序等影响速度提高的种种因素。同时重点阐述了USB2.0设...
  • luckywang1103
  • luckywang1103
  • 2013年12月21日 14:51
  • 9047

Android: 3G上网的基本原理及RILD进程的流程分析

简单介绍Android中3G上网的基本框架分析,并描述了RILD进程的时序及流程等。
  • wlqingwei
  • wlqingwei
  • 2015年05月20日 17:09
  • 1694

Linux 系统共享Kindle DXG的免费3G上网

话说Amazon的Kindle DXG不具备wifi功能.但是具备3G无线上网功能. 据官方文档说明.3g在美国本土是免费的.其他国家有部分地区可以搜到3g(是亚马逊和当地运营商合作的). ...
  • ituff
  • ituff
  • 2012年07月07日 15:55
  • 6885

USB2.0速度识别

我们知道USB2.0向下兼容USB1.x,即高速2.0的hub能支持所有的速度类型的设备,而USB1.x的hub不能支持高速设备(High Speed Device)。因此,如果高速设备挂到USB1....
  • u011279649
  • u011279649
  • 2014年12月06日 21:48
  • 2025

USB2.0速度识别

转载自:http://blog.csdn.net/cescf4/article/details/8601457 USB2.0是向下兼容USB1.X的,即USB2.0支持高速,全速,低速的USB设...
  • YanLai20
  • YanLai20
  • 2013年10月23日 09:36
  • 5094
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux 修改 usb-serial.c 提升3G上网速度
举报原因:
原因补充:

(最多只允许输入30个字)