下面我们接着上一次的文章来继续说明一下,在linux主机搭建好之后怎样和目标机通讯。
首先说明一下用linux主机的开发的优势,linux支持很好的网络服务,可以用于主机和目标机之间的通讯。而且linux的编译器gcc【red hat默认安装gcc的】也能编译c c++ 汇编程序。而且linux下的开发工具很丰富,有利于我们学习和开发。而且linux源码开源,更有利于我们二次开发!
首先说明宿主机linux的相关配置选项:
首先应该为linux配置ip地址,用于通讯。然后配置nfs服务,最后配置防火墙。
为linux配置ip地址有很多种方法,一种是临时更改ip地址:在linux下打开终端,用ifconfig eth0 192.168.1.1 命令此命令只是临时更改内存中的ip地址,重启机器后将失效。你可以用ifconfig命令查看linux当前的ip地址。
可以看出,我的ip地址是114.214.1.1 当然我只是自己在局域网内配置了这么一个地址用于通讯而已。
2还有一种彻底更改ip地址的方法,更改ip地址配置问文件。Red hat 9.0 的 此文件在 /etc/sysconfig/netwok-scripts/ifcfg-eth0 更改此文件可以用vi编译器,即使用命令
vi /etc/sysconfig/netwok-scripts/ifcfg-eth0 这个文件。
把文件更改成像我这样的内容,然后保存退出。有关vi 编辑器的使用,我在这里就不详细说明了,可以到网上查使用方法。更改完此文件后,应该重启网卡。重启网卡的命令有 , /etc/init.d/network restart 还有就是,service network restart 重启后你的网卡就改成了你在文件里写的地址了。
3:还有就是通过red hat的图形界面更改ip地址。
下面开始配置nfs服务,一般装red hat 是默认安装了nfs 只需开启此服务就行了。
用界面开启并配置很简单,在点击主菜单运行系统设置->服务器设置->NFS 服务器(英文为:SETUP->SYSTEM
SERVICE->NFS),点击增加出现如下在界面,在目录(Drictory):中填入需要共享的路径,
在主机(Hosts):中填入允许进行连接的主机IP 地址。并选择允许客户对共享目录的操作
为只读(Read-only)或读写(Read/write)。
图1.4.6 是对客户端存取服务器的一些其他设置,一般不需要设置,取默认值。
当将远程根用户当作本地根用户时, 对于操作比较方便,但是安全性较差。最后退出时则完
成NFS 配置。配置好后,界面应显示如图1.4.7 所示:
下面介绍一下用命令行怎么开启和配置nfs
开启命令很简单, service nfs Start
然后修改nfs的配置文件,手工编写/etc/exports 文件,其格式如下:
共享目录 可以连接的主机(读写权限,其他参数)
例如:
/arm2410s 192.168.0.*(rw,sync)
表示将本机的/arm2410s 目录共享给ip 地址为192.168.0.1-192.168.0.254 的所有计算
机,可以读取和写入。
配置完成后,可用如下办法简单测试一下NFS 是否配置好了:在宿主机上自己mount 自己,
看是否成功就可以判断NFS 是否配好了。例如在宿主机/目录下执行:
mount 192.168.0.10:/arm2410s /mnt
其中192.168.0.10 应为主机的IP 地址。
然后到/mnt/目录下看是否可以列出/arm2410s 目录下的所有文件和目录,可以则说明
mount 成功,NFS 配置成功。
然后,编辑防火墙有关设置,red hat 默认开启防火墙,不让其他ip访问,当然我们将防火墙关闭即可。
操作如下:点击红帽子开始菜单,选择安全级别设
置,选中无防火墙。如图1.4.4 所示:
用命令行关闭linux防火墙更简单,service iptables stop 当然这也只是临时更改设置,重启机器后不生效。想彻底关闭防火墙,应该更改linux开机启动项,用 ntsysv 命令,会出现如下界面:
其中方括号里打上※号的表示开机期启动。我们可以用空格把iptables前的※号去掉。
下次开机就不启动iptables。
配置完成后,可用如下办法简单测试一下NFS 是否配置好了:在宿主机上自己mount 自己,
看是否成功就可以判断NFS 是否配好了。例如在宿主机/目录下执行:
mount 192.168.0.10:/arm2410s /mnt
其中192.168.0.10 应为主机的IP 地址。
然后到/mnt/目录下看是否可以列出/arm2410s 目录下的所有文件和目录,可以则说明
mount 成功,NFS 配置成功。
好了,我们已经配置好了linux宿主机了。
下面,我们开始配置目标机,假如我们用的是一块什么都没有的目标机,我们应该这样做。
因为我们的真正主机是windows的,下面我们就windows怎么烧写一个linux系统。
我们用的是2410s的板子(博创公司产的)。
2410-S linux 系统烧写操作说明
烧写操作需要在 windows 下进行,所需文件在光盘中的img 目录和flashvivi 目录下提
供。
整个烧写过程包括烧写 vivi、kernel、root 三个步骤,除此我们还要烧写yaffs.tar.bz2,
这四个文件都存放在img 目录中。
vivi ----linux 操作系统启动的bootloader;
zImage----linux 操作系统内核;
root.cramfs----根文件系统;
yaffs.tar----应用程序
一、烧写 vivi
1.把并口线插到pc 机的并口,并把并口与JTAG 相连,JTAG 与开发板的14 针JTAT 口相
连,打开2410-S.
2.把整个GIVEIO 目录(在flashvivi 目录下)拷贝到C:/WINDOWS 下,并把该目录下的
giveio.sys 文件拷贝到c:/windows/system32/drivers 下。
3.在控制面板里,选添加硬件>下一步>选-是我已经连接了此硬件>下一步>选中-添加新
的硬件设备>下一步>选中安装我手动从列表选择的硬件>下一步>选择-显示所有设备>
选择-从磁盘安装-浏览,指定驱动为C:/WINDOWS/GIVEIO/giveio.inf 文件,点击确定,
安装好驱动
4.在d 盘新建一目录bootloader,把sjf2410-s(在flashvivi 目录下)和要烧写的vivi 拷贝到
该目录下,在程序-附件-msdos 下,进入该目录,运行sjf2410-s 命令如下:sjf2410-s /f:vivi
在此后出现的三次要求输入参数,第一次是让选择Flash,选0;第二次是选择jtag 对flash
的两种功能,也选0;第三次是让选择起始地址,选0 此后就等待大约3-5 分钟的烧写
时间,当VIVI 烧写完毕后选择参数2,退出烧写。
5.烧录后关闭2410-S,拔掉JTAG 与开发板的连线,并用串口线连接pc 和2410-S;
6.打开超级终端,先按住pc 机“Back Space”键,然后启动2410-S,进入vivi> ,按照
以下命令重新分区:
vivi>bon part 0 128k 192k 1216k 4288k:m 64704k(64M flash1208)
7.这时已格式化flash,千万不要重启2410-S,
vivi>load flash vivi x 回车
当出现 Ready for downloading using xmodem...
Waiting...
...
这时点击超级终端任务栏上“传送”下拉菜单中的“发送文件”,选择好镜像文件vivi,协
议为Xmodem,点击“发送"通过串口重新烧录一遍,至此你的vivi 就烧写到flash 里了
二、烧写内核 zImage(kernel)
vivi>load flash kernel x 回车
当出现Ready for downloading using xmodem...
Waiting...
...
点击超级终端任务栏上“传送”下拉菜单中的“发送文件”,选择好镜像文件zImage,Enter,
协议为Xmodem,点击“发送”,4 分钟左右zImage 烧写完毕;
三、烧写根文件系统(root)
vivi>load flash root x 回车
当出现Ready for downloading using xmodem...
Waiting...
...
点击超级终端任务栏上“传送”下拉菜单中的“发送文件”,选择好镜像文件root.cramfs,
协议为Xmodem,点击“发送" ,8 分钟左右root.cramfs 烧写完毕;
四、烧写应用程序:
用网线连接好 2410-S 的网口和PC 机的网口,配置IP 在同一网段,重启2410-S 进入
[/mnt/yaffs]下。
[/mnt/yaffs]ifconfig --查看IP
[/mnt/yaffs]ifconfig eth0 192.168.0.111 --配置eth0 ip
[/mnt/yaffs]inetd --启动ftp
打开ftp 软件(在光盘中flashvivi 目录中提供),192.168.0.111,用户名:root,密码:无,
连接进入ftp,上传“yaffs.tar”到2410-S 的/var 下,3 分钟左右上传完毕。
这时千万不要重启 2410-S
[/mnt/yaffs]cd .. --转换到/mnt 下
[/mnt]rm -rf yaffs/* --删除/yaffs 下文件
[/mnt]cd /var --转到var 目录下
[/var]tar xjvf yaffs.tar.bz2 -C /mnt/yaffs --解压yaffs.tar.bz2 到mnt/yaffs 目录下,需3 分
钟左右
下面我们做一下总结,一开始用jtag接口在windows下用命令行烧写是因为,目标机现在什么通讯方式都不支持,只能用jtag接口和它对应的程序来烧写vivi (其实是一个bootloader),第一次烧完vivi后就可以用串口通讯了,在超级终端里用vivi里提供的命令对板子的flash进行格式化,格式完后flash里的vivi已经不存在了,所以用串口在烧一遍vivi 。然后就可以通过串口来烧写其他的内容了。
目标机装完linux内核和根文件系统后,就可以进行网络配置,用网络通讯了。例如,用nfs,ftp等服务。
好了,到现在你已经搭建好了,宿主机的所有开发换环境,也学会了怎么往板子上烧写自己开发的程序了!!