内核的调试

1、默认make uImage会出错,出错如下

scripts/mod/sumversion.c: In function ‘get_src_version’: 
scripts/mod/sumversion.c:384: error: ‘PATH_MAX’ undeclared (first use 
in this function) 
scripts/mod/sumversion.c:384: error: (Each undeclared identifier is 
reported only once 
scripts/mod/sumversion.c:384: error: for each function it appears in.) 
scripts/mod/sumversion.c:384: warning: unused variable ‘filelist’ 
make[3]: *** [scripts/mod/sumversion.o] Error 1 
make[2]: *** [scripts/mod] Error 2 
make[1]: *** [scripts] Error 2 
make[1]: Leaving directory `/home/nios2/uClinux-dist/linux-2.6.x' 
make: *** [linux] Error 1

解决方法:

# vi scripts/mod/sumversion.c

头文件包含中查看是否有limits.h,若没有,包含进去即可

#include <limits.h>

---------------------------------

在测试的过程中发现u-boot经常提示:
DMArray161A PHY Detected
No link
MAC: error during RMII initialization
End of Autonegociation
这样的错误,只要有这样的错误出现NFS肯定挂不上,想是u-boot有bug换高版本的吧,于是下载了个1.1.6的故障依旧,没有办法,只有看代码了,最后终于发现是检测DMArray161时的超时时间设置的不够,修改后工作正常。
cd  uboot/include/configs/
vim include/configs/at91sam9260ek.h 



改#define AT91C_ETH_TIMEOUT               30000
为#define AT91C_ETH_TIMEOUT               300000
重新编译u-boot就可以了。

---------------------------------

后来换了个uboot(2009-11)版本,发现超时修改的地方变了,在drivers/net/macb.c里。

你可能感兴趣的:(内核的调试)