在Linux(Ubuntu kylin 16.04 LTS)环境下安装L4re内核以及Fiasco,并在其上模拟ARM32位架构环境
一、下载并配置基于Linux的gcc-linaro-arm-linux-gnueabihf交叉编译链
1、在网站: http://linux.softpedia.com/get/Programming/Compilers/Linaro-GCC-58591.shtml 或 http://www.veryarm.com/arm-linux-gnueabihf-gcc 上下载4.9-2014.08版本的交叉编译链。
2、将下载好的交叉编译链工具包解压缩到L4re文件夹的根目录下(somedir/l4re-fiasco/)。为了便于区分,可以在根目录下创建一个tools文件夹用来存放编译链工具包(somedir /l4re-fiasco/tools$)
3、创建放在根目录下的脚本文件,用来设置PATH和GCC_PATH_PREFIX。
####################start################# echo "start!" export PATH=$PWD/tools/bin:$PATH export GCC_PATH_PREFIX=$PWD/tools/bin/arm-linux-gnueabihf- export PATH=$PWD/bin:$PATH echo "PATH has been set done!" ####################end#################创建完脚本文件之后,直接输入
./"脚本文件名"
来设置环境的路径。(具体的路径要视具体文件夹而定,在这里我的交叉编译链工具包中的内容是直接放在了tools文件夹下面,故路径前面只要加上$PWD/tools即可)
[如果是初次配置,还需要安装能在64位机器上运行32位系统的工具,执行以下命令:]
somedir/$ sudo apt-get install zlib1g-dev:i386
4、在根目录里运行make setup
来行交叉编译链的设置,如下图所示:
(选择ARM platform和cortex-A)随后,输入
make -j24
二、进行l4re运行环境的配置
1、检查环境:
somewhere# apt-get install make gawk g++ binutils pkg-config g++-multilib subversion
2、进入l4re目录
somedir$ cd src/l4
,创建环境搭建路径:
somedir/src/l4$make B=path/to/builddir
3、设置要配置的架构环境(默认的架构是intel32位,我们要将其改成arm32位的环境)
somedir/src/l4$ make O=path/to/builddir config
如果遇到任何奇葩的问题,例如:
In file included from /home/wsy/l4re/what/src/l4/tool/kconfig/scripts/kconfig/mconf.c:23:0:
/home/wsy/l4re/what/src/l4/tool/kconfig/scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: 没有那个文件或目录
compilation terminated.
请输入
sudo apt-get install libncurses5-dev
来进行libncurses5-dev的安装!!!
4、进行搭建
somedir/src/l4$ make O=path/to/builddir
三、安装Fiasco内核
1、第一步和上个步骤中的检查安装环境一样,无需重复检查安装。
2、创建环境搭建路径及相关目录
somedir$ cd src/kernel/fiasco somedir/src/kernel/fiasco$ make BUILDDIR=mybuild
3、进入搭建的环境目录
somedir/src/kernel/fiasco/mybuild$ make config
4、进行搭建
somedir/src/kernel/fiasco/mybuild$ make
四、最后进入到ARM环境中,进行qemu的运行测试
(如果没有安装qemu需要执行命令: sudo apt-get install qemu
进行qemu的安装。)
执行以下代码启动qemu模拟器:
somedir/obj/l4/arm-ca$ make qemu
(如果碰到特殊错误可以尝试安装xorriso:sudo apt-get install xorriso
)