在上一部分文章里,我们已经获得了NSLU2一个命令行shell,在这部分中,我们装利用这个shell为它添加NFS服务,让它成为一个NFS文件服务器

  第二部分:添加NFS

  在前一节中,笔者给大家介绍了通过在外部系统中使用一个隐藏选项和编辑passwd文件来在NSLU2上获得命令提示符的方法,在本节中,我们来继续探索这个盒子,目标是添加一些新的功能使它能够得到更好的使用。

  由于这个盒子运行的是某个版本的Linux操作系统,有相关的大量服务软件包可用,其中之一就安装到这个系统中。可以想像在NSLU2中其中的一个是为定制的应用程序扩展后的WEB服务,或者说也许安装了一个ftp服务或一个安全的shell服务来替换telnet服务。我的第一个目标是安装一个不同的网络文件系统。

  Linksys提供的资料表明,NSLU2仅仅只是支持SMB-网络文件系统协议,它原是发源于Microsoft Windows,由于笔者的家庭网络大部分是由基于UNIX的机器组成,如Apple的 Mac OS X 和Linux,对我来说要扩展它自然就想到的是NFS,这个大多数UNIX版本都支持的网络文件系统。

  但在我们开始安装新的服务包之前,有几个困难要克服,必须做的第一件事就是设置一个开发环境,因此我们要建立需要的服务包。在本节的其余内容中都假定你已按照前一节的方法在NSLU2上启动了telnet。

  1、测定目标处理器

  对不同的系统之间的软件移植而言,Linux是软件开发的最好环境了,因此我将从我的Mandrake环境开始做这些。不同于大多数的Linux开发系统,NSLU2不是基于x86芯片的,因此我们要安装一个交叉编译toolchain。

  安装一个交叉编译toolchain之前要做的首件事情就是测定目标处理器,我以前读到的关于NSLU2的介绍说它的处理器是一枚Intel的IXP420网络处理器,但要告诉大家一个事实,这些介绍对我来说并不就意味着全部,因为它听上去更像是一种市场行为。

  由于我们现在能够登录进入这个设备了,则可可以到处找一找,看看Linux是怎样来了解它的处理器的,要了解这方面的信息,/proc目录是十分重要的,我们感兴趣的一个文件就是/proc/cpuinfo,打开它看一下是非常容易的。

  # cat /proc/cpuinfo
  Processor : XScale-IXP425/IXC1100 rev 1 (v5b)
  BogoMIPS : 131.48
  Features : swp half thumb fastmult edsp
  Hardware : Intel IXDP425 Development Platform
  Revision : 0000
  Serial : 0000000000000000

  与我们已经了解了的相关信息相比,虽说从这个文件的内容来看它并没有更多的关于这方面的信息,但它证实了先前的关于NSLU2使用的是IXP425的报道,要得到更多的这方面内容,我们要使用一种不同的技巧。在大多数UNIX系统上一个相当简单方便的办法就是file命令,通过检查一个文件的类型,然后能被告之哪些种类的文件是基于什么初始化数据的。

  NSLU2并不带有file命令程序,但它包含了ftp,就使用ftp,我们可以把一个可执行文件转移到我们的开发平台来,从/home/httpd/html/Management目录把telnet.cgi这个小程序拷贝过来,完成后,在开发系统中运行这个文件看看它收集到了些什么相关信息。看看如下的详细信息吧。

  # file telnet.cgi
  telnet.cgi: ELF 32-bit MSB executable, ARM, version 1 (ARM),
  for GNU/Linux 2.0.0, dynamically linked (uses shared libs), stripped

  好了,现在知道了我们要处理的是一颗ARM CPU,故我们得安装一个ARM的交叉编译toolchain。