嵌入式开发板挂载三步走

来源:互联网 发布:php file exists 编辑:程序博客网 时间:2024/06/05 05:59

我们开发嵌入式,都喜欢在宿主机上完成工作,最后在板卡上运行下就好。在这个时候板卡只是个显示装置,只不过比显示器显示的更加多样话罢了。

结合之前做的几个项目,总结下嵌入式挂载开发的步骤,也为之后自己继续学习。

实现挂载并进行开发主要分为3步,在这里菜鸟这一年左右一直在使用ubuntu10.04,所以以下的内容也都针对于该发行版本。

三步分别为:1.tftp服务开启;2.nfs服务开启;3ssh协议访问~

 

一、tftp服务开启:

         1.Ubuntu10.04 下安装TFTP软件

         tftp-hpa是客户端,tftpd-hpa是服务器端

        sudo apt-get install tftp-hpa tftpd-hpa

      

        2.配置TFTP服务器

        sudo gedit /etc/default/tftpd-hpa

        将原来的内容改为:

        # /etc/default/tftpd-hpa

         TFTP_USERNAME="tftp"

         #TFTP_DIRECTORY="/var/lib/tftpboot"

         TFTP_ADDRESS="0.0.0.0:69"

         #TFTP_OPTIONS="--secure"

         #服务器目录,需要设置权限为777,chomd 777

        #这个目录要改为你自己的TFTP根目录~~~

       TFTP_DIRECTORY="/home/work/tftpboot"

       TFTP_OPTIONS="-l -c -s"

        

        3.重新启动TFTP服务

       sudo service tftpd-hpa restart

         4.测试下

        cd ~/tftpboot echo "hello tftp service">>a.txt

        echo "hello tftp service,put to tftp serive">>b.txt

        tftp localhost

        get a.txt

        put b.txt

        其中get是取得文件,put是将文件上传到TFTP服务器上。

 

二、nfs服务器搭建:

      把开发的宿主机作为nfs服务器,使嵌入式板卡共享硬盘内容,进而实现挂载。    

     1.安装Ubuntu nfs
      Ubuntu
上默认是没有安装Ubuntu nfs服务器的,因此我们首先安装Ubuntu nfs服务器端:
$sudo apt-get install nfs-kernel-server
      在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-common,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,

       apt 自动为我们把它们安装好。

      2.配置/etc/exports
      Ubuntu nfs
允许挂载的目录及权限在文件/etc/exports中进行了定义。

      例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:/rootfs *(rw,sync,no_root_squash)
      其中:/rootfs是要共享的目录,*代表允许所有的网络段访问,rw是可读写权限,sync是资料同步写入内存和硬盘,

      no_root_squashUbuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。

     其它Ubuntu nfs常用的参数有:
     ro
只读访问
     rw
读写访问sync所有数据在请求时写入共享
     async nfs
在写入数据前可以响应请求
     secure nfs
通过1024以下的安全TCP/IP端口发送
     insecure nfs
通过1024以上的端口发送
     wdelay
如果多个用户要写入nfs目录,则归组写入(默认)
     no_wdelay
如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
     hide
nfs共享目录中不共享其子目录
     no_hide
共享nfs目录的子目录
     subtree_check
如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
     no_subtree_check
和上面相对,不检查父目录权限
     all_squash
共享文件的UIDGID映射匿名用户anonymous,适合公用目录。
     no_all_squash
保留共享文件的UIDGID(默认)
     root_squash root
用户的所有请求映射成如anonymous用户一样的权限(默认)
     no_root_squas root
用户具有根目录的完全管理访问权限
     anonuid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的UID
     anongid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的GID

     3.Ubuntu nfs重启服务
     $sudo /etc/init.d/portmap restart
     $sudo /etc/init.d/nfs-kernel-server restart

     4.测试Ubuntu nfs
     此时可以运行以下命令来显示一下共享出来的目录:

     $showmount -e
     或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
     $ sudo mount -t nfs localhost:/rootfs /mnt
     可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
     $ sudo umount /mnt

 

三、SSH协议连接,及文件传输工具scp

       SSH即安全外壳协议,英文全称是Secure Shell Protocol或Secure Shell。其运作原理跟Telnet类似,只是其具有更高的安全性。通过使用SSH,你可以把所有传输的数据 进行加密,这样“中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

       ubuntu内部自带了ssh命令,在这里菜鸟利用ssh命令登录nfs服务器以实现在同一嵌入式平台上多个用户的调试。

       eg:ssh root@192.168.7.48

             #以root身份登录~

       如要向服务器上传输或下载文件,则需要使用scp命令,这样在板卡紧张时就可以实现多人共同调试应用层代码的需要。

       scp的使用方法如下所述:

     (1)将本地文件拷贝到远程:scp  文件名 用户名@计算机IP或者计算机名称:远程路径                                                      

     (2)从远程将文件拷回本地:scp  用户名@计算机IP或者计算机名称:文件名 本地路径

     (3)将本地目录拷贝到远程:scp -r 目录名   用户名@计算机IP或者计算机名称:远程路径

     (4)从远程将目录拷回本地:scp -r   用户名@计算机IP或者计算机名称:目录名 本地路径

原创粉丝点击