rtems是一个开源的实施操作系统,如果想要将其安装在嵌入式芯片上就必须要进行x86-arm交叉编译,而这个编译过程可以在主机上进行,windows和linux上都可以进行编译。
网上的关于ubuntu的编译环境的构造文章中,大部分都是安装在低版本的ubuntu上比如12.04和10.04以及14.04上。本文描述了将toolchain安装在ubuntu16.04上的详细步骤。
首先是新建安装目录,在这里选择$HOME/development/rtems/ 作为安装目录
mkdir -p development/rtems/sources
cd development/rtems/sources
进入安装目录,然后在这个目录下git rsb的源码包(RSB是安装rtems toolchain的一种较为easy的方法):
git clone -b 4.11 https://github.com/rtems/rtems-source-builder.git
-b 4.11 在这里就是说分支选择4.11进行克隆。 会将代码下载到source文件夹下。
然后进行环境检测,键入如下命令:
./rtems-source-builder/source-builder/sb-check
会自动进行环境检测,如果提示缺少某个应用程序没有安装,可以手动apt-get install进行安装,比如可能提示makeinfo文件没有,如果直接sudo apt-get install makeinfo的话会提示没有makeinfo这个安装包,这里采用的是texinfo安装包,两者是一样的。
如果检测完没有问题,会提示:
RTEMS Source Builder - Check, v0.3.0
Environment is ok
接下来就开始安装toolchain了
cd rtems-source-builder/rtems
../source-builder/sb-set-builder --log=beagle.txt --prefix=$HOME/development/rtems/4.11 4.11/rtems-arm.bset
在安装过程中,低版本的ubuntu比如14.04和12.04都没有碰到问题,但在126.04版本中,出现一个问题:
提示buliding错误。
这个问题本人查了四五天,由于网上基本都是12.04的ubuntu版本的安装过程,因此没有碰到这个问题,只能查找其官方文件,终于在其官网的一份安装说明文档中找到了解答:
需要安装以下package:
sudo apt-get build-dep binutils gcc g++ gdb unzip git python2.7-dev
原本以为找到这个命令就可以安装完成了,没想到又出现了问题,输入上述命令提示:安装失败,需要安装正确的源。
也就是说在目前的source.list文件所列出的源网站找不到这些文件的安装包。
于是查找16.04的源网站有哪些。一开始找到台湾的网站,添加进去后重新运行安装包的命令,还是提示要指定源。
于是查找了国内的源网站:发现很多高校都有源镜像网站,在这里本人添加了中科大的网站:
首先sudo gedit /etc/apt/sources.list
然后添加以下网站:
eb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
然后保存文件退出。
在命令行输入:sudo apt-get update
等待更新即可:
更新完成后,输入之前的:sudo apt-get build-dep binutils gcc g++ gdb unzip git python2.7-dev
看到如图所示:
说明已经找到安装包,接下来就是等待即可,大约20分钟后,提示安装完成:
至此工具链所需的环境已经安装好。
接下来就是安装工具链了:
~/development/rtems/sources/rtems-source-builder/rtems$ ../source-builder/sb-set-builder --log=beagle.txt --prefix=$HOME/development/rtems/4.11 4.11/rtems-arm.bset
其中:sb-set-builder安装文件,--log=beagle.txt是设置输出的信息文件,--prefix=$HOME/development/rtems/4.11 4.11/rtems-arm.bset 这是说明安装路径,放在rtems/4.11下,最后的4.11/rtems-arm.bset说明安装配置文件在何处。
输入命令回车等待出现如下界面:
表明toolchain安装成功。在$HOME/development/rtems/4.11目录下可看到安装好的文件:
以上就是在ubuntu16.04下安装rtems4.11工具链的步骤。