QEMU安装及测试

2023-11-04

QEMU README

QEMU is a generic and open source machine & userspace emulator and virtualizer.

QEMU官网链接:https://www.qemu.org/ ,GitHub地址:https://github.com/qemu/qemu

Install QEMU

To download and build QEMU 6.1.0:

wget https://download.qemu.org/qemu-6.1.0.tar.xz
tar xvJf qemu-6.1.0.tar.xz
cd qemu-6.1.0

在进行configure之前需要注意:1. 安装python3.6及以上版本。2. 安装GCC v7.5 or Clang v6.0及以上

./configure --prefix=/home/zgl/qemu   # --prefix指定安装路径

ERROR1:ERROR: Cannot use 'xxxx/python/bin', Python >= 3.6 is required. Use --python=/path/to/python to specify a supported Python.
解决办法:指定Python3.6,--python=/home/zgl/python3.6/bin/python3.6

ERROR2:ERROR: You need at least GCC v7.5 or Clang v6.0 (or XCode Clang v10.0)
解决办法:指定GCC或LLVM,--cc=/home/zgl/gcc8.2.0/bin/gcc --cxx=/home/zgl/gcc8.2.0/bin/g++

ERROR3: glib-2.56 gthread-2.0 is required to compile QEMU
解决办法:下载glib2.56编译安装
编译时错误1:configure: error: Python interpreter is too old
解决办法:PYTHON="/home/zgl/python3.6/bin/python3.6"
编译时错误2:configure: error: *** Could not find libmount
解决办法:--enable-libmount=no
完整编译如下:

sudo PYTHON="/home/zgl/python3.6/bin/python3.6" ./autogen.sh  --enable-libmount=no
make -j 32
sudo make install

glib问题解决回到qemu继续configure
ERROR4:ERROR: Could not detect Ninja v1.7 or newer

sudo apt install re2c
git clone git://github.com/ninja-build/ninja.git && cd ninja
./configure.py --bootstrap
sudo cp ninja /usr/bin/

此时再次清除build并进行编译:


./configure --prefix=/home/zgl/qemu --python=/home/zgl/python3.6/bin/python3.6 --cc=/home/zgl/gcc8.2.0/bin/gcc --cxx=/home/zgl/gcc8.2.0/bin/g++
make -j 4
make install

另一种安装方式:To download and build QEMU from git:

git clone https://gitlab.com/qemu-project/qemu.git
cd qemu
git submodule init
git submodule update --recursive
./configure //同上
make
Intall mips compiler
sudo apt-get install emdebian-archive-keyring
sudo apt install linux-libc-dev-mips-cross libc6-mips-cross libc-dev-mips-cross binutils-mips-linux-gnu
sudo apt install gcc-mipsel-linux-gnu g++-mipsel-linux-gnu
Test

hello.c

 #include <stdio.h>
 int main(){
     printf("Hello world\n");
     return 0;
 }

编译:mipsel-linux-gnu-gcc -O3 hello.c -o hello --static注意使用--static不然运行时可能出现qemu-mipsel: Could not open '/lib/ld.so.1': No such file or directory错误
运行:~/qemu/bin/qemu-mipsel ./hello
输出:Hello world

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QEMU安装及测试 的相关文章

  • 进程如何知道它已收到信号

    如果我错了 请纠正我 以下是我对信号的理解 据我所知 信号生成 和信号传递有2个不同 事物 为了产生信号 操作系统只是在位数组中设置一个位 在过程控制中维护 工艺块 PCB 每一位 对应于特定信号 当设置一个位时 这意味着 该位对应的信号为
  • 设置 Vim 背景颜色

    当我尝试更改背景颜色时 vimrc或者直接在 Vim 中使用以下命令 set background dark 这根本不影响我的背景 也没有light选项 不过 当我运行 gvim 时 看起来还不错 有没有办法在不更改 Konsole 设置的
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 使用 terminfo 的终端颜色?

    我正在编写一个 C 类 允许在终端中使用颜色 我希望它适用于每个终端 在支持真彩色 24 位 的终端上打印 在支持它的终端上具有 256 色 6x6x6 其他都是基本的 16 种颜色 我曾经使用 termcap 编写过一次 C 函数 并且我
  • 路由是否会影响具有绑定源地址的套接字?

    假设我有两个网络接口 eth0有地址10 0 0 1 eth1有地址192 168 0 1 Using route or ip route add我已将其设置为路由 所有地址至eth0 1 2 3 4只为了eth1 所以数据包到1 2 3
  • Linux 阻塞与非阻塞串行读取

    I have 这段代码 https stackoverflow com questions 6947413 how to open read and write from serial port in c用于在Linux中从串行读取 但我不
  • 期待、互动,然后再次期待

    有几篇关于相同内容的帖子 但我仍然无法使我的期望脚本正常工作 我的目的是自动化一切 但保留用户输入的密码 所以脚本有 3 个部分 自动登录 给予用户交互以输入密码 将控制权交还给 Expect 脚本以继续工作 所以我有一个将生成的脚本 其中
  • 为什么“script”命令会生成 ^[ 和 ^M 字符以及如何使用 vim 搜索和替换删除它们?

    在linux上 使用bash shell 当我使用script命令时 生成的文件称为typescript 当我用 vim 打开该文件时 每一行都包含 M字符 并且有几行 由于我的彩色命令提示符 包含一个字符 我想用任何东西替换这些字符 从而
  • 有没有办法只安装mysql客户端(Linux)? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有不需要安装整个mysql db安装包的Linux mysql命令行工具 我想做的是从服务器 1 应用程序服务器 执行将在服务器 2
  • 为什么 RHEL 上的 bash 中 `read -t` 没有超时?

    Why read t在 RHEL5 或 RHEL6 上从管道读取时不会超时 这是我的示例 在从管道读取数据时 我的 RHEL 盒子不会超时 tail f logfile log grep something read t 3 variabl
  • 如何更改 Kubernetes 中的文件系统观察程序限制 (fs.inotify.max_user_watches)

    我在用着pm2 https github com Unitech pm2查看保存我的应用程序服务器的 NodeJS 程序源代码的目录 该程序在 Kubernetes 集群中运行 但是 我收到此错误 ENOSPC System limit f
  • Linux shell 标题大小写

    我正在编写一个 shell 脚本并有一个如下所示的变量 something that is hyphenated 我需要在脚本中的各个点使用它 如下所示 something that is hyphenated somethingthati
  • 尝试编译 git 但在 linux 中找不到 libcurl

    我想编译支持 http https 的 git 我有 ls usr include curl curlbuild h curl h curlrules h curlver h easy h mprintf h multi h stdchea
  • 对于客户端服务器程序,并行接收多个客户端连接请求的最佳方法是什么?

    该程序是在 Linux 上用 C 语言开发的客户端服务器套接字应用程序 每个客户端都连接到一个远程服务器并将其自身记录为在线 在任何给定时间点很可能有多个客户端在线 所有客户端都尝试连接到服务器以将自己记录为在线 忙碌 空闲等 那么服务器如
  • 在 4.x 内核上的 64 位内存中查找系统调用表

    我正在尝试编写一个简单的内核模块来查找 Linux 中的 sys call table 但遇到了一些麻烦 我在这里找到了 32 位 Linux 的基本指南 https memset wordpress com 2011 03 18 sysc
  • BlueZ D-Bus C,应用 BLE

    我正在尝试编写一个应用程序来搜索附近的蓝牙设备并与它们通信 我的应用程序将用 C 语言编写 并打算在 Linux 下工作 是否有通过 C 中的 D Bus 使用 BlueZ 的教程或示例 此应用程序的目的是从 BLE 中的文件发送数据 你能
  • mod_perl 无法看到 /tmp 中的文件

    我有一些 mod perl 代码试图访问 tmp 下的文件 但它抛出 没有这样的文件或目录 错误 我在代码中添加了一个 ls al tmp 来查看 Perl 在目录中看到的内容 它只给了我 和 drwxrwxrwt 2 root root
  • 并发 I/O - 缓冲区损坏、块设备驱动程序

    我开发块分层设备驱动程序 所以 我拦截WRITE请求并加密数据 并解密数据end bio 例行程序 在处理和READ要求 所以在单流中一切正常 但是 如果尝试同时从两个或更多进程执行 I O 我会遇到缓冲区内容损坏的情况 我没有任何本地存储
  • 在Linux中执行jar文件[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我创建了一个可执行的 Java jar 文件 也就是说 我将 java 程序正确打包到 jar 文件中 包括 META INF MANIFEST 文件
  • Mongo:无法连接到服务器 127.0.0.1:27017 位于 src/mongo/shell/mongo.js:145

    当我尝试在 ubuntu 中的 shell 中运行 mongo 或打开 rockmongo 时 我看到以下错误 couldn t connect to server 127 0 0 1 27017 at src mongo shell mo

随机推荐

  • 微信小程序实现附件(图片/视频)上传及附件(图片/视频)预览

    微信小程序的图片 视频上传功能 小程序官网是提供了相关的API语法 本例使用了 wx chooseMedia 选择或拍摄图片 视频附件 通过 wx uploadFile 方法上传至服务器 在需要的地方将服务器存储的附件地址查询出来提供展示预
  • 分糖果(c++)

    传送门 这道题真是简单到不能再简单 思路 判断L n是否小于R N 如果是 输出n 1 最大余数 否则输出R N 余数尽量大 因为L N R N 且L lt R 本题代码最多10行 include
  • MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC

    一 问题描述 MSVCRTD lib crtexew obj error LNK2019 无法解析的外部符号 WinMain 16 该符号在函数 tmainCRTStartup 中被引用 Debug jk exe fatal error L
  • 两个C++编译异常及解决方法-does not name a type和field `XX' has incomplete type

    两个C 编译错误及解决办法 does not name a type和field XX has incomplete type 编译错误一 XX does not name a type 编译错误二 field XX has incompl
  • CH1-数字逻辑基础

    文章目录 一 数制和码制 1 1 数字量和模拟量 1 2 数制和码制 一 数制 二 数制转换 三 码制 二 逻辑代数中的基本运算 与门 或门 非门 与非门 或非门 与或非门 异或门 同或门 三 基本和常用公式 3 1 基本公式 3 2 常用
  • 通过ribbon 根据服务名获取所有服务实例的IP和端口列表

    代码使用SpringCloud版本E3 业务场景 今天遇到一个业务场景 要求根据服务名获取当前微服务集群中所有的对应服务实例的IP和端口 通过分析源码推算出了写法 原理简述 如果代码中引入了spring cloud netflix core
  • Spring Boot 集成 WebSocket

    假设有这样一个场景 服务端的资源经常在更新 客户端需要尽量及时地了解到这些更新发生后展示给用户 如果是 HTTP 1 1 通常会开启 ajax 请求询问服务端是否有更新 通过定时器反复轮询服务端响应的资源是否有更新 ajax 轮询 在长时间
  • win下nacos-2.2.2搭建开发环境(3种模式)

    nacos安装模式 单机模式 Derby 这种模式是极简模式 数据没法持久化存储 适合开发环境 单机模式 MySQL 这种模式支持数据持久化 数据会存储到MySQL中 适合生产环境 集群模式 这种模式适合生产环境并且服务节点个数较多 不存在
  • 导入android project到 eclipse 出现Unable to resolve target 'android-8'的错误

    今天导入一个Android的例子程序 出现了Unable to resolve target android 8 的错误 刚开始以为是没导入包或者是phoneGap没配置好 可是折腾了好久还是报错 最后google之后才发现原来是ADK版本
  • node—第三方模块之mysql模块

    mysql模块 专门用来连接mysql数据库 2
  • [每日两题系列]刷算法题咯~~

    今日题目 从尾到头打印链表 移除重复节点 本系列所选题目均来自力扣或者牛客网站 所选题目主要是以其中的简单题为主 中等题为辅 包含少数困难题 原因是 本人目前能力还不够 开展这个系列的目的是督促自己 在暑假的时间里也要保持有一定的刷题量 拒
  • leetcode刷题(10.8总结)

    1 移除链表元素 题目描述 https leetcode cn problems remove linked list elements class Solution def removeElements self head ListNod
  • mysql表设计----列类型介绍

    author skate time 2012 02 18 mysql表设计 列类型介绍 在我们设计数据库时一些经验 合理的评估表的增量 预计大小 分库分表 整库表的数量 为了方便维护与性能 mysql库一般500张表以里 等 从基本的说起
  • unity 最新场景加载SceneManager.LoadScene的用法

    摘自 http www heyclock com archives 708 随着unity的不断更新 你是否发现之前的场景加载 Application LoadLevel 已经过时了呢 下面我们来介绍信的场景加载的用法 1 2 3 4 5
  • vue项目video、img配合canvas截图及资源跨域处理

    解决 VUE项目video img截图及资源跨域处理 视频截图 跨域处理 视频截图 代码如下
  • Imagination官方信息速递2023年8月期

    白皮书下载 通过Photon架构创建身临其境的图形体验 2023 年 Imagination 将基于 PowerVR Photon 架构的光加线速集群 RAC 的演进引入 IMG DXT 图形处理单元 GPU IMG DXT GPU 不仅通
  • 第十五节课 使用Samba或NFS实现文件共享及DNS域名解释服务

    这节课主要讲解了Samba文件共享服务和NFS网络文件系统配置及使用 autofs自动挂载服务 DNS域名解释服务及bind服务程序配置等
  • 测试:概念篇

    目录 简单介绍测试 我们先简单的介绍一下测试工程师 简单来看看测试和开发的区别 测试的基本概念 什么是需求 BUG 的概念 测试用例 什么是测试用例 为什么有测试用例 测试周期 开发模型 瀑布模型 螺旋模型 敏捷软件开发 V 模型 W 模型
  • java编码技巧

    判断某个集合是否包含某值 ArrayUtils contains Object array Object objectToFind 缓存 service层先判断缓存是否有此数据 有则返回该数据 没有则从数据库获取 并存入缓存 往插入数据以后
  • QEMU安装及测试

    QEMU README QEMU is a generic and open source machine userspace emulator and virtualizer QEMU官网链接 https www qemu org Git