zoukankan      html  css  js  c++  java
  • ubuntu 8.04 配置okl4编译环境

    转载自: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中有该资源

  • 相关阅读:
    一日一技:微信开发-自定义菜单
    Redis五种数据结构
    .NET 5 部署在docker上运行
    一日一技:微信开发-发送模板消息
    Redis快速入门及应用
    面试官扎心一问:防止重复请求提交,有什么方案?
    在Windows上安装Docker
    上班摸鱼神器—VSCode 里也可以看股票 & 基金实时数据
    C# Nuget程序集StackExchange.Redis操作Redis 及 Redis 视频资源 及 相关入门指令 牛逼不,全都有
    Mongodb 更新某一条记录 C#
  • 原文地址:https://www.cnblogs.com/flyingdirt/p/3778512.html
Copyright © 2011-2022 走看看