嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探

  • Kali Buildroot交叉编译工具链与qemu初探
    • 环境描述
    • 基本步骤
    • 详细过程
      • 下载Buildroot
      • 通过Buildroot构建交叉编译工具链
      • 用交叉编译工具链编译HelloWorld C程序
      • 安装qemu执行编译出来HelloWorld程序

Kali Buildroot交叉编译工具链与qemu初探

目的用Buildroot生成MIPS交叉编译工具链,编译可执行文件在qemu上执行。

环境描述

kali版本 2018.2

基本步骤

  • 下载Buildroot
  • 制作交叉编译工具链
  • 用交叉编译工具链编译HelloWorld C程序
  • 下载qemu-user
  • 通过qemu执行HelloWorld程序

详细过程

下载Buildroot

从官网下Buildroot,我选择下载的是buildroot-2018.02.4.tar.gz(尽量选择长期支持的版本)

官网地址 https://buildroot.org/
下载地址 https://buildroot.org/download.html

下载页面截图
嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第1张图片

通过Buildroot构建交叉编译工具链

  1. 解压buildroot-2018.05.1.tar.gz
  2. 执行apt-get install pkg-config(这一步不做make xconfig会缺少qt环境)
  3. cd到解压后的bildroot-2018.05.1目录(解压目录)执行命令make xconfig配置交叉编译环境
  4. 选择MIPS32,保存
    嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第2张图片
  5. 执行make命令生成交叉编译工具链
  6. 报错,提示我们安装bc,按照提示安装bc,apt-get install bc
    嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第3张图片
  7. 重新执行make(请耐心等直到编译完成)

用交叉编译工具链编译HelloWorld C程序

等待编译完成后,会在buildroot的家目录下生成一个/output目录,我们需要的交叉编译工具链就在BUILDROOTHOME/output/host/bin目录下面。
嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第4张图片

下面要开始用交叉编译工具链编译HelloWorld程序了。由于我们以后要经常使用交叉MIPS编译工具链,每次都要输入目录十分不便。编写脚本配置一个临时的环境变量,方便以后使用交叉编译工具链。

// 脚本名称MIPS_ENV
export PATH=$PATH:/root/Documents/buildroot-2018.02.4/output/host/bin/
echo $PATH

嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第5张图片

// 这是我编写的Hello World程序
#include 

int main(int argc, char ** argv){
    if(argc < 2){
        printf("Need more argument\n");
        return 0;
    }
    printf("Hello World! From %s\n", argv[1]);
    return 0;
}

source MIPS_ENV.sh
mips-linux-gcc HelloWorld.c -static -o HelloWorld

嵌入式学习Kali环境Buildroot交叉编译工具链与qemu初探_第6张图片

安装qemu执行编译出来HelloWorld程序

我们的计算机时x86架构的加算计,而我们编译出来的程序时MIPS指令架构的程序,因此这个程序时没法在我们的机器上直接执行的。我们需要一个软件来模拟执行我们的程序,这款软件就是qemu。这里只讲安装Kali上的安装方法,不做过多的深入。

apt-get install qemu-user

这里写图片描述

你可能感兴趣的:(kali,linux)