已经写了Cygwin下的RTEMS方式的建立,但是思前想后,还是把Linux的也写了吧。
先对比一下cygwin和linux的开发环境的优缺点。
1.cygwin 方式
– 下载相关的 GNU Tools 的 压缩 包并安装;
– 编译速度慢,但开发界面友好。
2.纯 linux 方式
– 下载相关的 GNU Tools 的 RPM 包并安装;
– 编译速度快,但 Linux 下较难找到合适的编辑工具;
– 可以使用 wine ,将 source insight 运行起来。
3.虚拟机 + linux 方式
– 建立虚拟机环境;
– 下载相关的 GNU Tools 的 RPM 包并安装;
– 编译速度快;
– 可以使用 windows 下的文本编辑工具;
– 虚拟机和 windows 要文件共享,配置起来较麻烦,有权限问题。
我选择了第三种方式,操作系统 win xp sp3, 虚拟机采用Vmware 6.5; Linux 采用 Linux FC8。官方有采用VirtualBox的镜像,比较大,但是下来以后这些麻烦事都不用管了,直接就可以开发了。如果想自己动手,那就一起来吧。
FC8 装在Vmware 6.5 上,Vmware 6.5还不支持 fc8,只能选择 other linux kernel 2.6.x。我安装是带Gnome界面的开发环境,顺便带上 samba服务器。
安装完毕,虚拟机的网卡选择NAT方式,虚拟机的IP地址应该是192.168.XX.128,主机的地址是:192.168.xx.1,XX应该是网段,这个值好像不同的机器上不一样。不管那么多,下载相关的 rtems 4.9 的开发工具链。
http://www.rtems.org/ftp/pub/rtems/linux/4.9/fedora/8/i386/
下载以下 RPM 包
– rtems-4.9-arm-rtems4.9-binutils-2.19-3-el5.i386.rpm
– rtems-4.9-arm-rtems4.9-gcc-4.3.2-24.el5.i386.rpm
– rtems-4.9-arm-rtems4.9-gcc-c++-4.3.2-24.el5.i386.rpm
– rtems-4.9-arm-rtems4.9-gdb-6.8-11.el5.i386.rpm
– rtems-4.9-arm-rtems4.9-newlib-1.16.0-24.el5.i386.rpm
– rtems-4.9-autoconf-2.62-4.el5.noarch.rpm
– rtems-4.9-automake-1.10.3-1.el5.noarch.rpm
– rtems-4.9-binutils-common-2.19-3.el5.i386.rpm
– rtems-4.9-gcc-common-4.3.2-24.el5.i386.rpm
– rtems-4.9-gdb-common-4.3.2-24.el5.i386.rpm
– rtems-4.9-newlib-common-1.16.0.-24.el5.i386.rpm
注意, RPM 包有依赖关系,安装时应注意顺序,注意 rpm 命令的提示,选择 合适的顺序安装。装好的地址是 /opt/rtems-4.9/bin 下。
安装完毕了,就要考虑虚拟机与windows共享文件的问题:
文件共享方式大致有 5 种
1.– 文件存在于 windows 上, Linux 使用 NFS 共享 Windows 的文件 ( 编译速度慢,有 文件 权 限问题,使用方便 )
2.– 文件存在于 windows 上,使用 vmware6.5 的 vmware tools 共享 windows 的文件夹 ( 编译速度慢,有 文件 权限问题,使用方便 )
3.– 文件存在于 windows 上,使用 SSH 等工具共享文件 windows 文件夹的文件 ( 编译速 度慢,有 文件 权限问题,使用方便 )
4.– 文件存在于 Linux 上, windows 通过 Linux 的 Samba 服务器访问文件 ( 编译速度快, 无文件权限问题,由于 Linux 的网络权限问题,使用起来略有不便 )
5.– 两份文件,一份存于 Linux ,一份存于 windows ,他们之间采用 svn 同步文件系统 ( 编译速度快,无权限问题,由于需要通过 svn 共享文件,使用起来不方便 )
推荐使用第四种方式,文件系统存于 Linux 上, windows 下用于查看编辑代 码文件,速度要求不是很高;且此种方式没有文件权限问题,脚本在编译和执行的过程中不会产生奇怪的编译现象 。
Samba服务器的共享:
1.Samba 服务器的配置在图形界面下是非常方便和简单的,这里略去不讲;实在不行,就请参考网上其他网友写的文章;如没有安装图形界面,请参考其他网友文章,用脚本配置Samba,过程也不复杂。
2.关闭 SELinux,SELinux是Linux的安全机制,虚拟机上没什么必要,关掉增加共享速度 ,修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启;
3.启动 root 帐号作为默认共享帐号,这可以避免很多的权限问题;
4.注意在 linux 中加入宿主机的 IP 地址(即windows的机器名称和IP地址)解析,否 则 windows 访问 linux 会非常慢。因为windows的网络基于Netbios的,而Linux基于dns的,linux不能通过dns反向解析windows地址,会导致速度奇慢无比。
选择工具链的路径
– export PATH=/opt/rtems-4.9/bin:$PATH
– 在 cygwin 下请不要这样: export PATH=$PATH:/opt/rtems-4.9/bin
进入 rtems4.9 的源代码文件夹 ( 假设编译 csb337 的 bsp)
– ./bootstrap – c
– ./bootstrap – p
– ./bootstrap
– mkdir csb337
– cd csb337
– ../configure –-target=arm-rtems4.9 –-disable-posix –-enable-networking –- enable-cxx –enable-rtemsbsp=csb337 –prefix=/opt/rtems-4.9
– make all install( 注意,在 cygwin 下分开两个命令 ,make; make install)
注意, linux 下生成的 makefile 在 cygwin 下不能使用,一个使用的是 gmake 命令,一个使用的是 make 。
如果编译成功了,恭喜,Linux下的工具链也安装成功了。注意把Linux下的rtems4.9的源代码目录共享,那么在windows下也可以访问了,并且可以使用windows下的开发工具进行编辑。