为2440搭建NFS开发环境【ZT】
首先说下我使用的环境:
主机:ubuntu7.10桌面版 开发板:友善之臂QQ2440V3
主机IP:172.16.53.214 网关:172.16.53.1 子网掩码:255.255.255.0 广播地址:172.16.53.255
开发板IP:172.16.53.168 广播地址:172.16.53.255 子网掩码 255.255.255.0
第一步:连接主机和开发板
我选择了串口线和网线连接起了主机和开发板
连接好电源,串口线,网线,打开串口终端
第二步:配置minicom
进入到minicom配置界面后选择 :Serial port setup
然后按照下面的设置下就OK了
A - Serial Device : :/dev/ttyS0
B - Lockfile Location : /var/lock
C - Callin Program :
D - Callout Program :
E - Bps/Par/Bits : 115200 8N1
F - Hardware Flow Control : No
G - Software Flow Control : No
设置好要记得保存哦
选择这项是保存:Save setup as dfl
第三步:配置主机和开发板IP
1.主机
由于我们学校使用的是动态获取IP,所以主机IP我的不需要设置
如果你的不是的话可以参考这个命令配置下
root@xhylyx-desktop:~# ifconfig eth0 172.16.53.214 netmask 255.255.255.0
配置完成后使你的配置生效
root@xhylyx-desktop:~# ifdown eth0
root@xhylyx-desktop:~# ifup eth0
2.开发板
我使用的是友善之臂的QQ2440V3开发板
开发板原先的IP是192.168.1.230
为了能和主机建立起连接我必须得把开发板IP改成和主机一个网段的
经过第二步的配置我们现在应该能进到开发板了的
进入到/etc/init.d/目录下会看到一个rcS文件
IP就是在这个文件修改的
[root@FriendlyARM init.d]# ls
rcS rcS.old
[root@FriendlyARM init.d]# vi rcS
我只复制了其中的一段出来:/sbin/ifconfig eth0 172.16.53.168 netmask 255.255.255.0 broadcast 172.16.53.255 up
这就是我改过的
改完后就重启一下开发板
[root@FriendlyARM /]# reboot
第四步:安装arm-linux-gcc编译器
我买开发板的时候光盘上已经给有编译器了
所以我的不需要去下载
没有的就自己去下载吧
我使用编译器版本分别是arm-linux-gcc-2.95.3 arm-linux-gcc-3.3 .2 arm-linux-gcc-3.4.1
把这三个编译器的压缩包放到你的home目录下去
我的是放在/home/xhylyx/qq2440目录下
然后我们cd进入到根目录下分别执行
root@xhylyx-desktop:/# tar xvzf /home/xhylyx/qq2440/arm-linux-gcc-2.95.3.tgz
root@xhylyx-desktop:/# tar xvzf /home/xhylyx/qq2440/arm-linux-gcc-3.3.2.tgz
root@xhylyx-desktop:/# tar xvzf /home/xhylyx/qq2440/arm-linux-gcc-3.4.1.tgz
解压完后会在/usr/local目录下生成一个arm文件夹
如果没有则是你解压的路径不正确
把交叉编译器的路径加入到PATH,以方便使用:
xhylyx@xhylyx-desktop:~$ sudo gedit /etc/bash.bashrc
在后面加入如下代码:
if [ -d /usr/local/arm ] ; then
PATH=/usr/local/arm/3.4.1/bin:"${PATH}"
fi
保存退出
我们重启下ubuntu使以上设置生效
重启后
xhylyx@xhylyx-desktop:~$ arm-linux-gcc -v
会出现如下信息,这说明交叉编译环境已经成功安装
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
第五步:打开NFS服务
1.安装NFS
Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
xhylyx@xhylyx-desktop:~$ sudo apt-get install nfs-kernel-server
安装nfs-kernel-server时,apt会自动安装nfs-common和portmap
这样,宿主机就相当于NFS Server
2.配置NFS
(1)配置portmap
方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉.
方法2: $ sudo dpkg-reconfigure portmap , 对Should portmap be bound to the loopback address? 选N.
(2)配置/etc/hosts.deny
禁止任何host(主机)能和你的NFS服务器进行NFS连接,加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
(3)配 置/etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连 接到NFS服务器上),也可以指定
特定的IP地址,加入:
### NFS DAEMONS
portmap: 192.168.2.
lockd: 192.168.2.
rquotad: 192.168.2.
mountd: 192.168.2.
statd: 192.168.2.
/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似"mask"的意思. 现在/etc/hosts.deny中禁止所有用
户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问.
xhylyx@xhylyx-desktop:~$sudo /etc/init.d/portmap restart
重启portmap daemon.
(4)配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义
比如我要将将我的/opt/FriendlyARM/QQ2440/root_nfs目录让172.16.53.*的IP共享, 则在该文件末尾添加下列语句:
/opt/FriendlyARM/QQ2440/root_nfs 172.16.53.*(rw,sync,no_root_squash)
或者:/opt/FriendlyARM/QQ2440/root_nfs 172.16.53.0/24(rw,sync,no_root_squash)
172.16.53.* 网段内的NFS客户端能够共享NFS服务器/opt/FriendlyARM/QQ2440/root_nfs目录内容.且有读,写权限, 并且该用户进入
/opt/FriendlyARM/QQ2440/root_nfs目录后的身份为root
最好加上sync, 否则 $ sudo exportfs -r 时会给出警告, sync是NFS的默认选项.
root@xhylyx-desktop:/#showmount -e 查看NFS server的export list.
若更改了/etc/exports, 运行 xhylyx@xhylyx-desktop:~$sudo exportfs -r 更新
运行 xhylyx@xhylyx-desktop:~$ sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务
(5)测试NFS
可以尝试一下挂载本地磁盘
我前面开始时已经提到了我的主机IP是172.16.53.214
我现在试把/opt/FriendlyARM/QQ2440/root_nfs目录挂载到/mnt目录下
root@xhylyx-desktop:/#mount -t nfs 172.16.53.214:/opt/FriendlyARM/QQ2440/root_nfs /mnt
成功的挂载上的话你会在/mnt目录下看到root_nfs这个文件夹下的内容
第六步:通过NFS启动开发板
当NFS 服务设置好并启动后,我们就可以把NFS 作为根文件系统来启动开发板了
通过使用NFS 作为根文件系统,开发板的“硬盘”就可以变得很大,因为您使用的是主机的硬盘
这是使用linux 作为开发经常使用的方法
设置目标板启动模式跳线J1 为Nand Flash 启动,连接好电源,串口线,网线;打开串口终端,在开机或者复位的时候先按下PC 机的空格
键再启动开发板,这样我们就进入了vivi 模式,输入命令之前提醒下,现在在vivi下是不能自动换行的,我们必须手动打开
打开的方法是同时按住ctrl+a键,然后同时松开这两个键,接着再按W键,这时我们就把自动换行打开了,如果你不打开后面的命令你是输入
不完那命令进去的,因为那命令挺长的
Supervivi>param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=172.16.53.214:/opt/FriendlyARM/QQ2440/root_nfs ip=172.16.53.168:172.16.53.214:172.16.53.214:255.255.255.0:FriendlyARM.arm9.net:eth0:off"
首先在这里解释下这条命令里面的意思,我第一次接触这条命令时完全不知道什么意思
IP改了好多次也没能成功从NFS启动开发板
最后经过同学的测试终于成功了,之前失败的原因就是因为对这条命令的不理解造成的
nfsroot=172.16.53.214 这个是我的主机IP
ip=172.16.53.168:172.16.53.214:172.16.53.214:255.255.255.0
第一个IP是开发板的IP(开发板的IP不要与局域网内其它IP冲突),第二个是主机的IP,第三个也是主机的IP,第四个是开发板的子网掩码
其他的不改就好了
总结:Supervivi>param set linux_cmd_line "console=ttySAC0 root=/dev/nfs nfsroot=主机IP:/opt/FriendlyARM/QQ2440/root_nfs
ip=开发板IP:主机IP:主机IP:开发板子网掩码:FriendlyARM.arm9.net:eth0:off"
执行完这条命令后再继续执行Supervivi>boot
如果一切顺利的话将会进入到开发板上去
进入到开发板后你就可以去mount你主机的共享目录了
我主机的共享目录是/opt/FriendlyARM/QQ2440/root_nfs
所以我在开发板上执行[root@FriendlyARM /]#mount -t nfs -o nolock 172.16.53.214: /opt/FriendlyARM/QQ2440/root_nfs /mnt
mount成功后你进入到/mnt目录下就可以看到你主机root_nfs目录下的内容了
------------------------------------------------------------------------------------------
PS:至此就已经在ubuntu7.10上成功搭建了友善之臂QQ2440V3的开发环境了,现在你就可以把你的程序在开发板上运行了
为2440搭建NFS开发环境【ZT】相关推荐
- imx6 linux 开发环境,从0搭建imx6ul开发环境
本帖最后由 fywz1992 于 2018-5-11 15:22 编辑 文件系统:busybox-1.22.1.tar.bz2 编译器: gcc version 4.9.1 20140710 (pre ...
- ARM开发(6)系统移植初步(搭建交叉开发环境)
先和大家聊一聊我对于系统移植学习的感悟,之前在老师的带领,我们移植系统的时候执行了一条条指令,但是总感觉哪里有一些问题又说不出来,这些指令都解决了很多问题:但是说到底,自己却不明白这些指令到底是怎么去 ...
- emacs 搭建racket开发环境
emacs 搭建racket开发环境 emacs下搭建开发racket的环境,笔者之前用过下面两种模式:geiser和racket-mode.相对而言,后一种方式要显得简单.本文主要介绍后一种方式环境 ...
- 在CentOS 6.2上搭建vim开发环境
在CentOS 6.2上搭建vim开发环境 最后更新日期:2013-07-05 1.首先使用Ubuntu(所在ip为192.168.16.230)翻墙登陆http://www.vim.org/,下载其 ...
- Windows7/10上快速搭建Tesseract-OCR开发环境操作步骤
之前在https://blog.csdn.net/fengbingchun/article/details/51628957 中描述过如何在Windows上搭建Tesseract-OCR开发环境,那时 ...
- 7 centos 源码安装samba_CentOS搭建WonderTrader开发环境及v0.5.4版本发布
前言 之前发过一篇关于如何搭建WonderTrader开发环境的文章<从零搭建WonderTrader的开发环境>,帮助不少用户解决了一些编译源码的问题.因为笔者是在Ubuntu 18.0 ...
- Windows下搭建PHP开发环境
PHP集成开发环境有很多,如XAMPP.AppServ......只要一键安装就把PHP环境给搭建好了.但这种安装方式不够灵活,软件的自由组合不方便,同时也不利于学习.所以我还是喜欢手工搭建PHP开发 ...
- python ai应用开发_AI应用开发实战 - 从零开始搭建macOS开发环境
AI应用开发实战 - 从零开始搭建macOS开发环境 联系我们 OpenmindChina@microsoft.com 零.前提条件 一台能联网的电脑,使用macOS操作系统 请确保鼠标.键盘.显示器 ...
- mac搭建python开发环境_Mac中基于Homebrew搭建python开发环境
转移到mac上了.这里是在lion中搭建python开发环境的简单记录.这份记录不是一份step by step.而是事后写的记录,可能有记忆遗漏.如果有错误,请指正. 1.安装homebrew的准备 ...
最新文章
- nginx介绍及常用功能
- Linux文件系统的类型及日志文件系统和非日志文件系统的区别
- 达到年薪 40W 必需掌握的技术。
- encipher.min.php,陌屿授权系统(5.7)最新版 网站授权 - 下载 - 搜珍网
- java 数字的进制转换
- 树链剖分(入门学习)
- SQL Server 2008 (R2) 单机版安装的先决条件
- 深入理解函数中分配内存的问题
- 威纶触摸屏485直接控制监控台达vfd-m变频器程序
- 射频微波天线知识点整理
- vtiger 安装中文语言包(汉化的步骤)--拓展繁体中文
- 阿里P7、P8、P9级别需要多少年的工作经验,还是因能力而定?
- Raspberry Pi 树莓派查看CPU温度
- 【微信授权登录】Scope 参数错误或没有 Scope 权限
- 云计算基础架构即服务、平台即服务、软件即服务的三种服务类型的介绍
- 阿里天池—2022江苏气象预测AI算法挑战赛
- I.MX6 AW-NB177NF wifi HAL
- 缓存的那些应用场景,你都清楚吗?
- 学校工业4.0智能制造生产线实训方案
- 使用虾青素提升高密度脂蛋白,降低甘油三酯