使用 nfs 启动只会打印一些奇怪的字符

使用 nfs 启动只会打印一些奇怪的字符

问题

我有一个嵌入式系统,无法使用放置在我的笔记本电脑(用作 NFS 服务器和 TFTP 服务器)上的嵌入式 Linux 内核映像和 rootfs 通过 NFS 进行启动。

有用的信息

我的笔记本电脑的 /etc/exports:

/tftpboot/rootfs_arm-gnueabi *(rw,sync,insecure_locks,no_root_squash,no_all_squash)

Linux 映像(myImage)路径:/tftpboot/ 根文件系统(rootfs)路径:/tftpboot/

TFTP 服务器和 NFS 服务器 IP:10.3.70.116
我的嵌入式系统 IP:10.3.70.181

我用来重启 NFS 和 TFTP 服务器的命令

sudo /etc/init.d/nfs-kernel-server 重新启动
sudo /etc/init.d/xinetd 重新启动

细节
当我通过嵌入式机器启动时,U-Boot 启动,然后系统开始加载“myImage”,最后它尝试通过 NFS 访问 rootfs,同时打印一些奇怪的字符,如以下引文末尾所示。

文件名“myImage”。

加载地址:0x2000000

加载:*#########################################################################################################################
完成

传输的字节数 = 1181188(十六进制 120604)

在 02000000 处启动映像...

映像名称:Linux-2.6.22.18

创建时间:2010-12-07 6:01:19 UTC

图像类型:ARM Linux 内核图像(未压缩)

数据大小:1181124 字节 = 1.1 MB

加载地址:00008000

入口点:00008000

验证校验和...确定

好的

检查 Linux 内核字节序在 0x02000040 = 0xe1a00000

Linux 内核是 LE

以 LE 模式启动内核...

解压 Linux................................................................................................完成,启动内核。

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

我运行了 Wireshark 并捕获了数据包,以查看哪些数据包在服务器和嵌入式机器之间往返。通过这样做,我发现在某个时候出现了一些 NFSERR_NOENT 错误。而且似乎错误是在访问/加载 ld.so.preload 时出现的

以下是一些按“时间源目标协议信息”排列的数据包。抱歉,视图有点混乱。我没办法。:)

4776 20.482764 10.3.70.181
10.3.70.116 NFS V2 LOOKUP 调用(4777 回复),DH:0xf4f053a1/etc

4777 20.482838 10.3.70.116
10.3.70.181 NFS V2 LOOKUP 回复(呼入 4776),FH:0x468d1c14

4778 20.483000 10.3.70.181
10.3.70.116 NFS V2 LOOKUP 调用(4779 回复),DH:0x468d1c14/ld.so.preload

4779 20.483443 10.3.70.116
10.3.70.181 NFS V2 LOOKUP 回复(呼入 4778)错误:NFSERR_NOENT

4780 20.483712 10.3.70.181
10.3.70.116 NFS V2 LOOKUP 调用(4781 回复),DH:0x468d1c14/ld.so.cache

4781 20.483839 10.3.70.116
10.3.70.181 NFS V2 LOOKUP 回复(呼入 4780)错误:NFSERR_NOENT

如果您已经读到这里:)并且得到了一些线索,我会很高兴知道您认为出了什么问题。

多谢。

相关内容