本文所述的内核及文件系统系采用http://processors.wiki.ti.com/index.php/DVSDK_4.x_FAQ所述方法生成。
n年前买了个bbxm,挂载nfs根文件系统总是失败,一直没工夫接着弄,一扔就是好几年。最近把这玩意从箱子底翻了出来,正好又有时间,就顺手把这个问题解决了。
挂载nfs失败,从输出的内核启动信息来看,是因为内核在配置本机IP时网卡尚未完成初始化,造成网络无法使用,从而导致了挂载失败。这个问题的原因呢,在于bbxm的网卡是奇葩的usb网卡,而非传统的mac网卡。usb网卡启动耗时很长,而内核中自动配置IP的程序是按照mac网卡的启动时间设置的等待延时,这就造成在内核配置IP的时候,网卡却尚未完成初始化。
解决方案很简单,找到dvsdk安装目录下psp/linux-beagle/net/ipv4/ipconfig.c文件,将其中的#define CONF_PRE_OPEN 500 /* Before opening: 1/2 second */修改为
#define CONF_PRE_OPEN 1000 /* Before opening: 1 second */。这样就将PHY初始化之后的等待时间从500毫秒延长到了1秒,能够保证在配置IP的时候网卡已经完成初始化了。
附挂载nfs根文件系统的启动参数:
setenv bootargs 'console=ttyS2,115200n8 noinitrd rw ip=192.168.10.101:192.168.10.100:192.168.10.1:255.255.255.0::usb0:off root=/dev/nfs nfsroot=192.168.10.100:/home/ubuntu/install/dm3730/targetfs,nolock,rsize=1024,wsize=1024mem=55M@0x80000000 mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=0:8Mmem=384M@0x88000000 omapfb.mode=dvi:hd720 omapdss.def_disp=dvi vram=8M rootwait camera=lbcm5m03'
其中本机IP 192.168.10.101,nfs服务器IP 192.168.10.100,网关IP 192.168.10.1