分类: Android平台
2013-06-06 10:08:56
$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
$ repo sync -j1主要是控制TCP的窗口大小和下载的进程数。一般把下载的进程数固定为CPU核的个数。
想让代码下载完成后自动编译,可以添加以下的语句:
sources ./build/envsetup.sh
make
配置完成,执行脚本继续下载代码,噩梦来了。
在下载的过程中老是卡在一个地方 ,receiving objects 80%.
网络上查找了这个错误,发现的解决方案都是上面发的配置TCP窗口大小,控制下载进程数量。
但是这两个都已经配置了,应该不会有问题啊。
还有说虚拟机要设置为桥接,不要设置为NAT。
这个有道理,配置成NAT,网络速度比桥接要慢不少。所以将虚拟机设置为桥接模式。
继续下载,还是不行。
仔细看了看,前面还有一个错误:
curl:(56)reset by peer。
于是google baidu查找这个问题的原因,发现没什么人碰到过这样的问题。但是curl:(56)reset by peer有不少人碰到过。
解决的方案如下:
1)google网站连接不稳定,老是被墙,**会给双边链路发送reset数据。有人碰到这个问题,拿到公司下载就好了。
或者用VPN,也可以下载。
2)UFW导致的错误。
3)curl工具错误
方案分析:
1)这个你说有啥办法?公司网络限制一天200M,自己又没有VPN。
2)UFW 防火墙我是关闭的。
3) curl重装吧。
无效。
会不会是虚拟机导致的问题呢?
切换到机器上装的ubuntu上下载,还是碰到一样的问题。
发帖求助,也没人响应。
因为忙别的事情,就把电脑挂着再下载吧。
下了两天,其间几次下载,也都是会卡在这个地方。
晚上对着电脑发呆。
curl reset, 这个怎么会reset呢?
网络断开了,或者链接错误,才会reset的。
突然想起我的电脑的IP是通过DHCP分配的,DHCP协议有个租期的,到期了就会重新申请IP,
重新申请IP,curl就会断的。
登录路由器,发现我的路由器里面的DHCP租期设置为120分钟,修改为最大值2880分钟。
然后想想我的WAN口的PPPoE也是有租期的,但是这个是网络提供商控制的,用户没法修改,
只好把路由器重启了,重新拨号,这个时候租期剩余时间就是最大值,看是不是可以支持一次下载。
修改完,执行脚本继续下载。
早上起来,发现下载好了。
Bingo!!!