编译环境说明
- 时间:2018.04.28. rtems-source-builder版本哈希值:10d3aaf。rtems-src哈希值8b5a801,rtems-libbsd哈希值ef5d536。我只是在我当前的版本编译成功,如果遇到问题无法解决可以尝试回退到个版本,然后重新编译
- OS:Ubuntu14.04 LTS
- 硬件:i7+256G SSD 笔记本
安装工具链
$ git clone git://git.rtems.org/rtems-source-builder.git
$ cd rtems-source-builder/rtems
$ ../source-builder/sb-check
RTEMS Source Builder - Check, 5 (10d3aaf467ae modified)
error: exe: not found: (__bison) /usr/bin/bison
error: exe: not found: (__flex) /usr/bin/flex
error: exe: not found: (__makeinfo) /usr/bin/makeinfo
Environment is not correctly set up
$ sudo apt-get install cmake autoconf bison flex texinfo u-boot-tools libpython2.7-dev pax
其中makeinfo命令包含在texinfo, u-boot-tools包含了mkimage命令,在生成镜像的时候用,pax和libpython2.7都会在后期编译的时候用到
$ ../source-builder/sb-set-builder --log=arm.log --prefix=$HOME/opt/rtems/5 5/rtems-arm.bset
–log表示保存编译时的Log信息,–prefix的路径是你工具链安装的位置,5/rtems-arm-bset表示构建arm平台的工具链,你也可以尝试其它bset.
下载和编译过程会比较漫长(i7,机械硬盘,编译时间大概是1个小时50分钟, 我的另外一台台式机总共只要半小时),最常遇到问题就是下载失败,每次重新下载的时候会重新编译之前已经编译的包。如果网络环境不,也可以手动下载,把文件原封不动的放在rtems-source-builder/rtems/sources目录下面。
下载RTEMS内核源码
~$ git clone git://git.rtems.org/rtems.git rtems-src
~$ cd rtems-src
rtems-src$ ./bootstrap -c && ./bootstrap
编译bsp包
RTEMS支持ARM,MIPS等多种架构,也支持很多BSP,包括beagleboneblack, raspberry pi, stm32f4 discovery等,我以beagleboneblack为例
~$ mkdir b-beagle
~$ cd b-beagle
b-beagle$ ../rtems-src/configure --target=arm-rtems5 --enable-rtemsbsp="beagleboneblack" --enable-cxx --prefix=$HOME/opt/rtems/5 --disable-networking
~$ make
~$ make install
~$ export PATH=PATH:~HOME/opt/rtems/5/bin
prefix是bsp安装路径,最好和工具链保持一致,后面会减小很多麻烦,而且一定要make install。因为我们要使用rtems-libbsd,所以需要增加选项–disbale-networking。意思就是不使用自带的network包,主要是内置的包功能太少了。export 路径之后会出现 arm-rtems5-gcc命令。如果有多个bsp,使用空格隔开:–enable-rtemsbsp=“beagleboneblack stm32f4”
编译rtems-libbsd
~$ git clone git://git.rtems.org/rtems-libbsd.git
~$ cd rtems-libbsd
rtems-libbsd$ git s