我有一个linux嵌入式系统(在对它进行主动开发时)将其根文件系统挂载为从我的ubuntu盒导出的nfs共享。所以要特别清楚的是:嵌入式linux是nfs客户端,我的ubuntu框是nfs服务器。我对执行实际nfs安装的嵌入式系统没有太多的控制。
当我升级到ubuntu 17.10时,我发现这已经不能用了。
经过多次调试后,我想我把这个问题定位在协议版本错配上:当我用wireshark嗅探流量时,我发现嵌入式系统用旧的协议版本2发送NFS数据包,但是下面是我在我运行的ubuntu盒上得到的信息
$ rpcinfo -p localhost
program vers proto port
rt linux中的客户端和服务器端通信。客户端负责发送数据,服务器端用于客户端与服务器之间的通信,receiver.UDP用于客户端与服务器之间的通信。当服务器(Rt linux)从客户机接收到数据时,内核应该停止它正在做的事情,并开始执行新到达的数据。我想计算中断在内核中发生的时间(时间戳)。在rt-linux中,操作系统的所有操作都发生在内核中。因此,我在计算内核源代码中的中断时间。因此,我修改了/usr/src/linux-version/net/core/dev.c位置中的内核源代码,如下所示:我正在计算时间并将其存储在缓冲区skb中。
//此代码位于网络设备驱动程序级别。
int