惊鸿浪子

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

转载自:http://blog.sina.com.cn/s/blog_70dd169101018gzs.html

本文主要内容:

搭建OKL4-3.0的运行环境,编译OKL4-3.0的自带示例程序,以及运行半虚拟化的oklinux_2.6.24.9系统。

1.实验环境

1.1主机:vmware6.5+Ubuntu8.04

备注:之所以选择ubuntu8.04搭建OKL4-3.0的运行环境,是因为OKL4-3.0的编译需要glibc2.7的库,而这个版本的c库在比较新的发行版比如debian-6.07,ubuntu-12.04以及Fedora14中均已经不支持,而ubuntu8.04标准C库就是glib2.7.

另外ubuntu8.04在ubuntu社区已经停止维护,但这并不影响我们搭建OKL4编译环境。我们只需要把ubuntu8.04DVD版本的iso作为软件源,一些关键的组件都可以在iso中找到并安装。

1.2相关软件:

OKL4源码okl4_3.0.tar.gz下载:

http://wiki.ok-labs.com/Release/3.0

http://wiki.ok-labs.com/downloads/release-3.0/okl4_3.0.tar.gz

 

okl4_3.0.tar.gz编译需要使用python2.4软件包:

http://download.chinaunix.net/download.php?id=63&ResourceID=35

 

下载交叉编译器:

arm-linux-gnueabi-4.2.4.tar.gz下载地址:

http://wiki.ok-labs.com/downloads/release-3.0/arm-linux-gnueabi-4.2.4.tar.gz

http://wiki.ok-labs.com/Release/3.0

 

arm-linux-3.4.4.tar.bz2下载地址:

http://www.ertos.nicta.com.au/downloads/tools/arm-linux-3.4.4.tar.bz2

2.编译OKL4源码

工作目录:/home/tom/Public/

2.1 安装python2.4

将Python-2.4.3.tar.bz2下载到/home/tom/Public/目录下,根据目录中README要求解压编译安装。

备注:之所以要安装Python-2.4.3是因为okl4_3.0使用的tools/build.py脚本使用的解释器是Python2.4。

如果在安装python2.4期间出现:

checking for C++ compiler default output file name... configure: error: C++ compiler cannot create executables

说明没有安装g++编译器,执行命令:

$sudo apt-get install g++

2.2 安装交叉工具链
arm-linux-3.4.4.tar.bz2和arm-linux-gnueabi-4.2.4.tar.gz下载到/home/tom/Public/目录,直接进行解压。

2.3 编译运行OKL4
将当前上述两个交叉工具链添加到当前shell的环境变量$PATH中:
$export PATH=/home/tom/Public/arm-unknown-linux-gnueabi/bin:${PATH}
$export PATH=/home/tom/Public/opt/nicta/tools/gcc-3.4.4-glibc-2.3.5/arm-linux/bin/:${PATH}
配置交叉工具链

解压okl4_3.0.tar.gz软件包到/home/tom/Public/目录中,修改okl4_3.0/tools/toolchains.py
中line 407到line 413:
gnu_arm_eabi_toolchain = generic_gcc_3_4_libgcc("/opt/okl/Linux-i386/arm/gcc-4.2.4-glibc-2.7/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-")
gnu_arm_toolchain = generic_gcc_3_4_libgcc("arm-linux-")
gnu_arm_nptl_toolchain = generic_gcc_3_4_libgcc("/opt/okl/Linux-i386/stow/arm-linux/bin/arm-linux-")
gnu_mips64_toolchain = generic_gcc_3_4("mips64-elf-")
gnu_mips32_toolchain = generic_gcc_3_4("mips-linux-")
arm_linux_toolchain = generic_gcc_3_4("/opt/tools/3.4/arm-linux/bin/arm-linux-")
gnu_ia32_toolchain = generic_gcc("i686-unknown-linux-gnu-")
gnu_ia32_nptl_toolchain = generic_gcc("/opt/okl/Linux-i386/stow/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-")

修改为:

#gnu_arm_eabi_toolchain = generic_gcc_3_4_libgcc("/opt/okl/Linux-i386/arm/gcc-4.2.4-glibc-2.7/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-")

gnu_arm_eabi_toolchain = generic_gcc_3_4_libgcc("/home/tom/Public/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-")

 

 

gnu_arm_toolchain = generic_gcc_3_4_libgcc("arm-linux-")

 

#gnu_arm_nptl_toolchain = generic_gcc_3_4_libgcc("/opt/okl/Linux-i386/stow/arm-linux/bin/arm-linux-")

gnu_arm_nptl_toolchain = generic_gcc_3_4_libgcc("/home/tom/Public/opt/nicta/tools/gcc-3.4.4-glibc-2.3.5/arm-linux/bin/arm-linux-")

 

gnu_mips64_toolchain = generic_gcc_3_4("mips64-elf-")

gnu_mips32_toolchain = generic_gcc_3_4("mips-linux-")

#arm_linux_toolchain = generic_gcc_3_4("/opt/tools/3.4/arm-linux/bin/arm-linux-")

arm_linux_toolchain = generic_gcc_3_4("/home/tom/Public/opt/nicta/tools/gcc-3.4.4-glibc-2.3.5/arm-linux/bin/arm-linux-")

 

 

gnu_ia32_toolchain = generic_gcc("i686-unknown-linux-gnu-")

gnu_ia32_nptl_toolchain = generic_gcc("/opt/okl/Linux-i386/stow/i686-unknown-linux-gnu/bin/i686-unknown-linux-gnu-")

 

备注:其中修改的只是图中红颜色的部分。

编译OKL4代码中的一个示例:
$ tools/build.py machine=gumstix project=examples example=pingpong kdb_serial=True PYFREEZE=False

示意图如下:



2.4 安装qemu-0.13.0
下载地址:
http://wiki.qemu-project.org/download/qemu-0.13.0.tar.gz
运行命令:
$tar xvf qemu-0.13.0.tar.gz
$cd qemu-0.13.0
$./configure
$make
$make install
备注:如果在./configure的过程中出现:
Error: zlib check failed
Make sure to have the zlib libs and headers installed.
这需要安装zlib
用如下的命令
sudo apt-get install zlib1g-dev
安装好后,再运行configure

2.5 运行OKL4 linux
下载oklinux_2.6.24.9-patch.4.tar.gz
到当前目录/home/tom/Public

备注:

下载地址:http://wiki.ok-labs.com/Microkernel

执行命令:
$tar zxvf oklinux_2.6.24.9-patch.4.tar.gz
$cd okl4_3.0
$ln -s ..\oklinux_2.6.24.9-patch.4 linux
$tools/build.py machine=versatile project=linux wombat=true TOOLCHAIN=gnu_arm_eabi_toolchain pistachio.TOOLCHAIN=gnu_arm_toolchain PYFREEZE=False kdb_serial=True KDB_BREAKIN=False
编译完成后,会在okl4_3.0/build/images/目录下产生:


运行OKlinux
执行命令:
$ qemu-system-arm -M versatileab  -nographic -kernel build/images/image.boot
示意图如下:

运行效果:

OKL4编译环境搭建
3 参考资料
http://www.linuxidc.com/Linux/2010-04/25362p2.htm

http://hi.baidu.com/yyt981/item/d91f471e236a4af686ad4e76

http://blog.sina.com.cn/s/blog_48a44f390100igmp.html

http://wiki.ok-labs.com/Microkernel

http://download.chinaunix.net/download.php?id=63&ResourceID=35

http://wiki.ok-labs.com/Release/3.0

http://nchc.dl.sourceforge.net/project/skyeye/skyeye/

http://blog.csdn.net/xuqianghit/article/details/5310367

 

 

(a)注意:因为ubuntu 8.04 安装g++不太容易。且apt-get源不能用了,需要修改apt-get源。

修改/etc/apt/sources.list,将其他源注释掉。并添加以下内容即可

 

deb http://mirror.lupaworld.com/ubuntu/ hardy main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/ hardy-security main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/ hardy-updates main restricted universe multiverse
deb http://mirror.lupaworld.com/ubuntu/ hardy-proposed main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu/ hardy main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu/ hardy-security main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu/ hardy-updates main restricted universe multiverse
deb-src http://mirror.lupaworld.com/ubuntu/ hardy-proposed main restricted universe multiverse

(b)如果以上源也无法用了,可以去搜索ubuntu 8.04 安装g++,在csdn中有该资源

posted on 2014-06-09 19:11  shithappens  阅读(514)  评论(0编辑  收藏  举报