这个平板已经作为网络服务器稳定工作了一段时间了,它已经成为我另一个计划的一部分,我还给它买了个usb有线网卡,这篇讲讲使用usb有线网卡时遇到的坑。
经验教训:不要买9700!
淘宝一搜usb有线网卡,按价格排序,你眼前会出现一大堆9700芯片的辣鸡货!这个自称10/100mbps的网卡其实搞的是假的100mbps!当它插在网络上时永远都会显示100mbps full,而实际效果只有10mbps half,并且与这个网卡连接的另一端也会显示连接速度为10 mbps half。我还一度认为这是驱动的bug,还天真的为了解决驱动的bug编译ko搞了内核hook,但是!完全!没有!用! 这个东西在windows下也是这个德行!9700这个芯片有很多名字,我知道的包括:SR9700、QF9700、RD9700,本质上都是同一个芯片,请注意不要跳坑。Don’t buy any version of 9700 usb ethernet!!!!
命令行总结:
如果rom本身设置选项中包含有线局域网相关设置,那么很简单,完全用不上命令行。但是我这个rom不支持这个设置则需要在命令行中开启网络。
大多数情况下,只需要简单一行命令即可完成设置:netcfg eth0 up dhcp
但是假如你想要手工分配ip等信息,可以使用以下命令:
netcfg eth0 up
ifconfig eth0 192.168.0.123 netmask 255.255.255.0
route add default dev eth0
route add default gw 192.168.0.1 dev eth0
setprop net.eth0.dns1 8.8.8.8
setprop net.eth0.dns2 8.8.4.4
|
其中route add default gw是添加默认网关的命令,其他命令想必已经很明白了,就不一一解释了。
如果需要强制指定网卡工作模式则需要交叉编译ethtool,ethtool的示例如下:
ethtool -s eth0 speed 10 duplex half autoneg off
|
如果设备过一段时间就连不上了,同时设备自身却运行正常,可以尝试写一个脚本每隔一段时间执行一次netcfg eth0 dhcp。
解决锁屏断电问题:
我用的这个rom在屏幕锁屏时usb otg就不再工作了,这一点对于网络服务器来讲是致命的。所以需要解决两个问题,1.系统不要进入休眠、2.屏幕应该正常关闭(省电)。
首先,想要屏幕不休眠有两种办法,第一种是在Developer options中选上Stay awake,这样系统就不会进入休眠了。
第二种是使用以下命令:
echo on>/sys/power/state
echo my_lock>/sys/power/wake_lock
|
这时屏幕将会常亮usb otg将会持续工作,但是平板作为服务器如果屏幕常亮那耗能太多了,虽然手工按一次esc键可以让平板关掉屏幕,但谁能接受自己的网络服务器每次reboot都需要手工物理接触一次才能不费电?
为了解决这个问题,可以使用以下命令模拟一次esc按键,来关闭屏幕:
在不同的rom版本26可能是不同的值,可能是27或者别的什么,可以自行尝试。
网络参数优化:
网络参数优化的文章很多,这里不打算对参数进行详述。这里要提醒的是修改net.ipv4.tcp_rmem等参数时,不要尝试修改build.prop了,没用的。用sysctl吧:
sysctl -p your_config_file
|
最后:
如果把安卓设备作为网络服务器来使用的话,给设备配上一个usb有线网卡还是值得的,内网延迟基本没有了,同时请一定要注意不要购买9700系列芯片的产品。下一篇讲移植ssh到安卓并干掉dalvik虚拟机,让平板更加符合网络服务器的定位。