主题 : u-boot移植之后,无法ping通网络 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 5949
精华: 0
发帖: 51
金钱: 470 两
威望: 353 点
综合积分: 102 分
注册时间: 2009-05-14
最后登录: 2010-12-07
20楼  发表于: 2009-09-10 23:00
还是谢谢楼上的,问题也正在查找,只是最近一直忙于其他的事

关于ranger的发言,个人有点意见,大家还是发表关于开发的事情为好,其他的就不要在这里发言了,虽然这里是个开放性论坛,但是前提是对于Linux的,而不是你私人的事情,这样子论坛才能更好的发展,大家才能共同进步。过去的就不要计较了。
级别: 新手上路
UID: 4824
精华: 0
发帖: 45
金钱: 395 两
威望: 181 点
综合积分: 90 分
注册时间: 2009-03-30
最后登录: 2012-08-24
21楼  发表于: 2009-09-11 14:34
楼上的 大家一起研究学问 不必这样吧~~
级别: 新手上路
UID: 5741
精华: 0
发帖: 14
金钱: 115 两
威望: 50 点
综合积分: 28 分
注册时间: 2009-05-06
最后登录: 2010-07-03
22楼  发表于: 2009-09-12 19:59
下载了sqshining的patch文件之后才知道要把根目录下那个net文件夹的几个文件的延时的宏改大一些,间隔很短时间内不断出现Retry的问题解决了,会延时一段时间才Retry。不过郁闷的是照样ping不通网络。听一个同学说或许ping不通网络照样可以用tftp下载内核,今天试了下居然真的可以用tftp引导内核,不知道哪儿的问题了。
[ 此帖被winshining在2009-09-12 20:08重新编辑 ]
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
23楼  发表于: 2009-09-13 07:58
引用第26楼winshining于2009-09-12 19:59发表的  :
下载了sqshining的patch文件之后才知道要把根目录下那个net文件夹的几个文件的延时的宏改大一些,间隔很短时间内不断出现Retry的问题解决了,会延时一段时间才Retry。不过郁闷的是照样ping不通网络。听一个同学说或许ping不通网络照样可以用tftp下载内核,今天试了下居然真的可以用tftp引导内核,不知道哪儿的问题了。

这很正常,ping不通有很多原因。事实上对网卡来说,ping和tftp本质上都是一样的操作,没有必要一定要哪个功能必须OK。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
24楼  发表于: 2009-09-13 08:02
要诊断网络协议的问题,最好的工具是Ethereal(现在应该叫wireshark),它可以很清楚的看到每一块网卡上收到和发出的数据包。你可以在PC上用它来监视开发板和PC之间的网络数据交换。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 侠客
UID: 5949
精华: 0
发帖: 51
金钱: 470 两
威望: 353 点
综合积分: 102 分
注册时间: 2009-05-14
最后登录: 2010-12-07
25楼  发表于: 2009-09-14 17:24

 回 28楼(kasim) 的帖子

确实是一款很不错的工具,跟串口监测同样的原理
级别: 侠客
UID: 4270
精华: 0
发帖: 100
金钱: 995 两
威望: 856 点
综合积分: 200 分
注册时间: 2009-03-07
最后登录: 2011-09-06
26楼  发表于: 2009-09-14 17:59
如果是初学者,移植u-boot,建议先不要自己动手,先去下载网上一些先驱者已经移植好的,下载下来,跑跑试试,看看都有什么功能。  等上了个档次  在开始源码,看看别人是怎么修改源代码的。。。  
这样可以节约很多时间~~~      
多搜索,多看看别人的成果,灵感自然就来了,学会自己解决问题,提高能力。。。  
遇到问题先搜索,多尝试,之后再来问,把问题描述清楚,大家才可以帮到您。。。
(适合mini2440,micro2440的u-boot,已经有很多朋友移植过了,比如本论坛的链接 tekkaman 和hugerat)
本论坛不提供技术支持,这里是友善之臂用户交流的地方,希望大家共创和谐论坛~~~
级别: 新手上路
UID: 5741
精华: 0
发帖: 14
金钱: 115 两
威望: 50 点
综合积分: 28 分
注册时间: 2009-05-06
最后登录: 2010-07-03
27楼  发表于: 2009-09-15 18:14
今天把lowlevel_init.S中B4_BWSCON的值改成默认的值即DW16(不加WAIT和UBLB)后偶尔能ping通网络,用版主说的软件抓包都长度基本上都在在64byte以上,而以前基本上都在42byte(dm9000x.c中认为接收包小于64byte以下都是无效的)。不明白这是为什么。
级别: 骑士
UID: 4234
精华: 0
发帖: 152
金钱: 1420 两
威望: 1142 点
综合积分: 304 分
注册时间: 2009-03-05
最后登录: 2012-08-18
28楼  发表于: 2009-09-17 09:41
期待,我也做过这个,其他的都实现了,但也是网卡PING不通
级别: 新手上路
UID: 5741
精华: 0
发帖: 14
金钱: 115 两
威望: 50 点
综合积分: 28 分
注册时间: 2009-05-06
最后登录: 2010-07-03
29楼  发表于: 2009-09-18 09:51
这个问题在我已经解决了,我的方法是将dm9000x.c中的eth_halt()函数中的内容注释掉(即eth_halt()函数是个什么也不做的函数),然后在lib_arm文件夹下的board.c中进入命令等待界面前的语句前面加入以下语句:
#if defined(CONFIG_DRIVER_DM9000)
    extern init eth_init(bd_t *bd);
#endif

#if defined(CONFIG_DRIVER_DM9000)
    eth_init(gd->bd);
#endif
这两句语句的意思是在u-boot启动的时候就初始化网卡,而不是ping的时候再初始化网卡,并且由于eth_halt()函数什么也不做,所以网卡就不会ping过之后就halt导致主机发回的信息还没有被接收的时候就停止工作了。
试验证明绝大多数时间是可以ping通的,偶尔一两次失败。
祝大家好运!