韦东山Linux嵌入式课程社区
直播中

吴觅

7年用户 199经验值
私信 关注

NFS挂接时,需要修改网络中断号的情况

   学习老大驱动教程,不用NFS挂接文件系统,会不方便做测试。当然samba和ftp也行,但这里可以从NFS启动。
一,由于我用的并不100ask的标准JZ2440开发板(这是历史原因,不然也得慕名而来慕名购取),所以曾经遇到过的错误:

NETDEV WATCHDOG: eth0: transmit timed out
错误(网卡已工作了),


这并不是NETDEV WATCHDOG的问题,把它关闭时,关后网卡就不能工作了。找到了自已原来开发板的内核移植手册,发现

里面移植DM9000时中断号和老大的DM9000的平台设备定义中的不一样,所以修改了老大提供的内核中的代码,更改如下。重新编译固件后就

可以了。

linux/arch/ARM/plat-s3c24xx/common-smdk.c。在其中DM9000平台设备结构中修改了中断引脚。

1,调整中断号:

参照原开发板的驱动:




上面的宏“S3C2410_CS4”的值,有的是其他值,而我这里是“0x20000000,

这是DM9000基地址设置。一般都是设置成片选CS4 的基地址0x20000000

若这个基地址设置不正确,则网卡无法工作。



二,设置 NFS 挂载:

1,配置“NFS”服务端:vim /etc/exports

   


*号和后面的()间不能有空格。如只是指定一个IP地址来挂接,则若:

Work/s3c2440/nfs_romfs 172.16.1.111(rw,sync,no_root_squash)

Ip与后面的参数没有空格。


上面只定义了一个可以被挂接的NFS目录。这里可以写多个目录。


2,单板上的挂接:

   

    这里可能会遇到下面一个问题:   

板上通过NFS复制PC机上较大文件到目标板上的时候遇到的问题:

nfs: server *** not responding, still trying

NFS是用UDP传输的,不可靠,若是改成 TCP 传输可以避免此问题。但

下面可以通过修改读写BUF的大小。

修改方法:

nfs mount时候出现的NFS崩溃,按照以下的方式mount

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024


这样,在PC端写的ARM架构程序可以拿到单板上运行了,但这不是从 NFS 文件系统启动的,

所以需要配置UBOOT启动参数,来改变文件系统的挂载。


三,配置UBOOT内核启动方式:(简单描述)

1,启动参数修改:

   




noinitrd root=/dev/nfs

nfsroot=172.16.1.11:/work/nfs_root/romfs 服务器IP和要被挂载的NFS目录。

ip=172.16.1.100:172.16.1.11:172.16.1.11:255.255.255.0::eth0:off

上面分别是“单板IP”,“服务器IP”,“网关”,“子网掩码”,“hostname”不关心不

用写。“device”,如eth0等(这是单板上的设备名)。最后的“off”是指“atuoconf”不需要。

init=/linuxrc
init
脚本是NFS系统上的 linuxrc .

console=ttySAC0
串口终端是“ttySAC0.


3,内核成功挂载 NFS 文件系统:

   


回帖(2)

孔喆

2019-5-17 09:20:24
非常完善!!!
举报

张华仁

2019-5-17 09:25:39
很详细!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分