学习内核移植的深刻教训

第一天用fs2410从网络挂载linux内核和文件系统成功后,开始自己配置u-boot。

 

第二天配置自己的u-boot,可以把内核烧写在NAND Flash内存了。

 

第三天就是噩梦的开始,好事不过三。

 

早上编译好内核,用自己的u-boot,准备着通过网络下载内核和文件系统,在自己的ubuntu上已经确认了TFTP服务正常、NFS服务正常

 

一切都准备好了。就绪:打开开发板的终端,打开开发板的电源,终端显示u-boot工作正常,和我的ubuntu配合的很好。第二步工作:给u-

 

boot配置环境,设置IP,设置bootcmd 参数,设置 bootargs参数。好了,就最后一步了:重启开发板,成功与否就在这一按。板子重新工作

 

了,终端显示了一串的的“#”并完美的结束了,说明下载成功,噼噼啪啪的又打印了一行一行的文字最后停在了“Looking up port of RPC

 

100003/2 on 192.168.7.115”那里,等了好久好久,最后提示VFS失败,内核失败。

 

最初怀疑是NFS工作不正常,因为是在虚拟机使用ubuntu,听过老师傅说过在虚拟机下会有这种情况。以是我就找NFS的问题,但确定了

 

NFS工作正常。我该怀疑开发板的网卡了,换来别人的开发板,再次配置u-boot,启动正常,成功引导内核挂载了文件系统,但再换回了我的板

 

子就是不行。是不是听起来问题的答案就浮在了水面:开发板网卡坏了?

 

第三天就要结束了。问题就撂在那,等明天去换板。听起来还不错可以换新货了。

 

第四天,板子拿去别人那叫人换,先拿来一个可以的开发板。回来一上电,恩。。。也是不行?看来第一次怀疑是不对的。有拿回我的

 

板子,这次是把我的板子拿到别人的环境下测试,恩。。。,成功。还是我的开发环境问题。

 

好吧,那就慢慢来分析了。

 

先从虚拟的ubuntu开始,因为之前更新过,怀疑从此有问题只是还没发现,用新的ubuntu。依然不行。

 

开始考虑是不是VM虚拟机某个时候自动更新了,硬件不兼容啊,重装一遍。还是不行。

 

该去哪考虑呢?XP系统,与它有观点几率也太小了吧,但是问题已经到了如此地步,只好让XP复活一次了。这XP也够大了,都要大半

 

个钟,只好吃饭了。

 

几乎每次启动尝试我都是按照写好的配置复制到u-boot下,一天也要快过去了,这板子都要给我烧了一天。

 

吃完饭回来,有要重新安装VM了,配置好环境又一天过去了。

 

第五天,我已经做好的了最好的打算,主机。好,搬来一台主机,先配好所有的环境。结果到最后的那一按,还是出现最初的那个提

 

示。现在我这的好像找个地方哭去了。

 

老天真会眷顾人。

 

哦,也许这是我运气不够好,这开发板与我不合。好,那么东西都给你换了,我也真够意思的,最后连人也换了。这回我我叫来一个成

 

功“挂过”的家伙来。他来看了看我的整个过程,他就开始怀疑我的内核和u-boot不匹配,我也觉得有点道理,即使不是,我那内核文件从XP

 

到虚拟机来回拷也多少损了点吧,曾经有过坏过文件的经历。试过了换内核和换u-boot也是还不行。

 

最后就该了一下配置,恩。。。,启动成功?伙计说他也不确定。于是就这两个配置切换了一下,这是这该死的配置错了。

 

他在我的配置setenv  bootargs  root=nfs  nfsroot=192.168.7.115:/source/rootfs init=/linuxrc console=ttySAC0,115200  后面加了ip=192.168.7.175

 

几十年的老师傅都搞不定,他来按几下键盘就让那开发板听他使唤了?我真不服气。

 

回头思考:就是因为“配置”这个关键的问题,导致了u-boot与内核参数传递不成功,因为u-boot下载内核使用TFTP协议,而内核挂载

 

文件系统的时候用到RPC协议,要指定自己的IP接受ubuntu的服务。我一开始没注意自己的参数的设置,只是懂得参数的作用,协议部分

 

我的不懂了,我看了那个IP跟前面的一样觉得多余就把人家的删了,结果就酿出祸来了。也因为问题的分析不够透彻就开始行动了,导致最后

 

浪费那么多精力。所以应该先把问题分成内部很外部来解决。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值