嵌入式开发板挂载三步走
来源:互联网 发布: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_squash是Ubuntu 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 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash 保留共享文件的UID和GID(默认)
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或者计算机名称:目录名 本地路径
- 嵌入式开发板挂载三步走
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- 嵌入式开发
- [嵌入式]嵌入式应用程序开发模式
- 嵌入式系统开发之嵌入式开发工具
- 嵌入式 Linux 开发简介
- 嵌入式 Linux 开发简介
- 嵌入式Linux开发简介
- 看图片 读故事:轻松理解数字签名和数字证书
- 使用Cookie记录访问数
- zoj 3204 字典序最小的最小生成树的输出
- mysql 导出csv文件
- 使用Cookie记录用户名和密码
- 嵌入式开发板挂载三步走
- 什么是OpenGL中的深度、深度缓存、深度测试?
- TotalFinder:原来 Mac 系统上的 Finder 也能如此好用
- nutch安装配置运行时,一些常见的错误与解决方法
- C/C++函数指针(typedef简化定义)
- thinkphp 内部函数 D()、F()、S()、C()、L()、A()、I()
- ThinkPHP框架研究之一 基本函数 M和D的区别
- linux 信号处理机制
- Integer的toString()