eth0:TX underrun, resetting buffers解决方法

2012年3月3日 0 条评论 1.86k 次阅读 1 人点赞

问题来源

这两天在做boa的时候发现at91的板子在web服务运行以后偶尔会出现eth0:TXunderrun,resetting buffers的问题。Google之相关解释如下:

The AT91SAM926x CPU only has a small on-chip buffer for the Ethernet port. The TX under run may occur under heavy networktraffic. The patch that uses on-chip SRAM as buffer suppose to fix the problem. Make sure you have the following configuration for your kernel build:

但是下载官方的linux-2.6.30源码和at91的2.6.30-at91.patch.gz并不能解决问题,但是在2.6.30-at91-exp.4.tar.gz中有2.6.30-at91-exp.4-0009-Add-MACB-TX-Buffer-in-SRAM-support.patch,这只是补丁包中的一个,它的作用是Add MACB TXBuffer in SRAM support。

补丁安装

下载2.6.30-at91.patch.gz和2.6.30-at91-exp.4.tar.gz并且将2.6.30-at91.patch.gz和2.6.30-at91-exp.4.tar.gz解压缩后的文件夹放入liux-2.6.30文件夹中。打补丁的顺序为:先官方后社区

100%

100%

在这里提一下打好补丁的新内核的配置中容易出现的错误和关于ECC的问题:

解决方法如图选中:

当官方内核和社区内核都打好以后,配置AT91的ECC的时候发现原来的选项里没有了ECCNONE的选项,进入arch/arm/configs/目录并查看并找出与ECC相关的项。

内核配置项按shift+? 显示和driver/mtd/nand/Kconfig有关,进入文件中查看发现其依赖Kernel debug,于是乎在kernel hacking中选择即可解决问题。

关于busybox

Don’t use /usr:假如你选的默认的安装路径_install,那么busybox安装的时候就会在_install下生成bin、sbin、linuxrc,不生成usr目录;如果不选的话,就会生成bin、sbin、linuxrc、usr四个文件

和目录。而不是像网上传的那样:不选此项的话安装时就会覆盖宿主系统的/usr。

勇敢,和生活的艰难无关。

文章评论(0)