首页 > 系统相关 >Ubuntu16下QEMU6.1.0安装和使用完整流程

Ubuntu16下QEMU6.1.0安装和使用完整流程

时间:2023-12-28 11:34:16浏览次数:35  
标签:bin python QEMU6.1 sudo dev -- usr Ubuntu16 流程

目录

一、测试环境

Ubuntu16.04_x64
qemu-6.1.0.tar.xz
gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~16.04)
Python 3.8.17

大概的安装流程:依赖库->python->GCC->QEMU->UBOOT->Linux->Busybox

二、环境搭建

1、安装依赖库

最好提前装这些库,再装后续的python、gcc:

sudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev 
binutils-dev libboost-all-dev autoconf libtool libssl-dev 
libpixman-1-dev libpython2-dev python-pip python-capstone virtualenv

安装上面的库,python/GCC默认版本好像会变化,所以我推荐先装这些库,再装python和GCC,
有博主说可以去掉"libpython-dev python-pip"这两个包,即:

sudo apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev 
binutils-dev libboost-all-dev autoconf libtool libssl-dev 
libpixman-1-dev python-capstone virtualenv

后面还会根据实际问题,再安装一些其它的库,每个人遇到的可能不一样,遇到问题可以网上搜解决方案。

2、安装pyhton3.8

参考 https://blog.csdn.net/qq_35743870/article/details/125903040
我的Ubuntu16环境有Python 2.7.12和Python 3.5.2,但是QEMU需要Python >= 3.6,所以安装了Python 3.8.17 。

2.1、下载Python3.8.17

网址下载:https://www.python.org/ftp/python/ ,Python-3.8.17.tar.xz 。
命令下载:wget https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tgz

2.2、创建新版python的安装目录(便于卸载)

cd /usr/local
mkdir python
cd python
mkdir python3.8

建立好的目录:

/usr/local/python/python3.8

2.3、安装依赖库

sudo apt-get install libffi-dev uuid-dev lzma-dev liblzma-dev libncurses5-dev libgdbm-dev sqlite3 libsqlite3-dev openssl tcl8.6-dev tk8.6-dev libreadline-dev zlib1g-dev build-essential bzip2 libbz2-1.0 libbz2-dev libc6-dev libdb-dev libexpat1 libexpat1-dev libgdbm3 libncursesw5-dev libpcap-dev libreadline5 libreadline6 libreadline6-dev libsqlite0 libsqlite0-dev libsqlite3-0 libssl-dev libssl1.0.0 libxml2-dev libxslt1-dev sqlite tcl tk tk-dev xz-utils zlib1g zlib1g-dev make  

2.4、解压安装包

在存放安装包的目录直接解压,不用放到 /usr/local/python/python3.8 下

tar xvf xxx.tar.xz
tar -xf xxx.tgz

2.5、安装

配置安装目录

cd ~/Python-3.8.17
./configure prefix=/usr/local/python/python3.8 --enable-optimizations

编译源码

cd ~/Python-3.8.17
make -j 2

安装,一定要使用altinstall,看过的教程有说明过使用install会覆盖安装,可能会导致Ubuntu崩溃的情况。

cd ~/Python-3.8.17
make altinstall  >&1|tee make.log

2.6、添加环境变量

gedit ~/.bashrc

在文件最后面添加以下内容

#[Python3.8]
export PATH=$PATH:/usr/local/python/python3.8/bin

让环境变量生效

source ~/.bashrc

2.7、配置python3默认版本为3.8

使用以下命令,可以看到各命令实际使用的python版本:

python --version
python2 --version
python3 --version
python3.5 --version
python3.8 --version

由于QEMU的需求,需要配置python3默认版本为3.8 。
(1)添加 python & python3 指向选择
最后的序号表示优先级,数字越大,优先级越高,会自动选取优先级高的作为默认指向,可手动更改默认指向,这里将系统默认的指向的优先级设置为100。
python指令可选列表设置:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 99
sudo update-alternatives --install /usr/bin/python python /usr/local/python/python3.8/bin/python3.8 38 

python3指令可选列表设置:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 100
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/python/python3.8/bin/python3.8 38

(2)查看 python & python3 可选列表

sudo update-alternatives --list python
sudo update-alternatives --list python3

(3)选择 python & python3 实际指向
这里只用把python3指向选为python3.8

sudo update-alternatives --config python
sudo update-alternatives --config python3

3、安装gcc7

QEMU需要gcc7.5.0以上。
我把默认的gcc卸载了,QEMU环境弄好后,我的Ubuntu的桌面样式、背景图、设置都变成默认了,不知道是不是因为卸载了默认的gcc导致的,推荐大家别卸载默认GCC。

3.1、下载安装:

gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabi.tar.xz
下载后解压,gcc -v查看版本还是旧版本不是7.5.0,看网上教程还要编译gcc,感觉太复杂费时了,放弃该方法。

3.2、指令安装:

下载

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update 
sudo apt-get install gcc-7
sudo apt-get install g++-7

配置:将gcc7,g++7作为默认选项

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --config gcc

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
sudo update-alternatives --config g++

查看是否成功:

gcc --version
g++ --version

发现gcc版本刚好是7.5.0,QEMU可用。

三、QEMU安装

1、下载解压

官网下载:https://download.qemu.org/ , qemu-6.1.0.tar.xz
命令下载:

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

解压

$ mkdir qemu
$ cd qemu
$ mkdir build
$ tar xvJf qemu-6.1.0.tar.xz
$ ls
qemu-6.1.0  qemu-6.1.0.tar.xz  build
$ cd build

建立build目录,并进入该目录安装qemu。

2、配置

$ cd build
$ ../qemu/configure

这里遇到了很多问题,有的问题网上找不到答案,后面我重装了PYTHON和GCC发现又没问题了,所以推荐先安装好PYTHON和GCC,再安装QEMU!

参考:
https://blog.csdn.net/qq_36287943/article/details/120061500
https://blog.csdn.net/qq_36393978/article/details/118086216
https://blog.csdn.net/weixin_44681954/article/details/123095796

2.1

ERROR1:ERROR: Cannot use 'xxxx/python/bin', Python >= 3.6 is required. Use --python=/path/to/python to specify a supported Python.

解决办法:需要Python>=3.6,想办法让python3 --version默认指向python3.8;或者执行configure命令时加参数
--python=/usr/local/python/python3.8/bin/python3.8
2.2

ERROR2:ERROR: You need at least GCC v7.5 or Clang v6.0 (or XCode Clang v10.0)

解决办法:需要GCC>=7.5,想办法让gcc -v默认使用GCC7.5。
2.3

ERROR3: glib-2.56 gthread-2.0 is required to compile QEMU

解决办法:下载glib2.56编译安装,我在网上 https://www.linuxfromscratch.org/blfs/view/8.3/general/glib2.html 下载的glib-2.56.1.tar.xz 。
编译时错误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="/usr/local/python/python3.8/bin/python3.8" ./autogen.sh  --enable-libmount=no
make -j 32
sudo make install

2.4

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/

我在Ubuntu下载失败,直接在github.com/ninja-build/ninja.git 下载的ninja-master.zip

2.5
ERROR: Cannot find Ninja
缺少Ninja,安装ninja即可。

$ sudo apt-get install ninja-build

好像用到了re2c-1.0.3.tar.gz ?
2.6
ERROR: pkg-config binary ‘pkg-config’ not found

sudo apt-get install pkg-config

3、进行配置和编译:

$ cd build
$ ../qemu/configure
$ make
$ make install

4、QEMU测试

$ sudo apt install qemu-system-arm
查看QEMU版本
$ qemu-system-arm --version
查看QEMU支持的ARM型号
$ qemu-system-arm -M help

四、uboot

五、Linux

Linux版本任选,参考: https://codeleading.com/article/60103179369/

cd linux-5.19/
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make -j4
make modules -j4
make uImage LOADADDR=0x60000000
make dtbs
 
cp -f arch/arm/boot/uImage  ../image/
cp -f arch/arm/boot/zImage  ../image/
cp -f arch/arm/boot/dts/vexpress-v2p-ca9.dtb  ../image/device.dtb

六、busybox

标签:bin,python,QEMU6.1,sudo,dev,--,usr,Ubuntu16,流程
From: https://www.cnblogs.com/solo666/p/17931975.html

相关文章

  • 资源热更流程(转)
    原文:Unity-热更新流程_unitygraph热更流程-CSDN博客1.将资源打包成AssetBundle资源包并存放到Unity特殊文件夹StreamAssets下2.生成所有文件的MD5码存放在StreamAssets/file.txt文件中,生成的版本文件存放在StreamAssets/version.txt3.热更新资源包上传到服务器4.首次启动游......
  • 哪里有流程自定义表单?
    如果需要提升办公协作效率,可以借助流程自定义表单的功能和价值,快速进入办公流程化发展阶段。那么,哪里有流程自定义表单可以体验?流程自定义表单又有哪些优势特点?通过这篇文章,我们一起来了解流程自定义表单和低代码技术平台的相关特点。我们都知道,随着社会的进步和发展,很多企业已经......
  • java流程控制
    一.用户交互Scanner对象可以用Scanner类来获取用户的输入Scanner对象的基本语法Sacnnerscanner=newScanner(System.in)Scanner类的常用方法hasNext();判断用户是否有输入next();读取到有效字符后......
  • frida安装正确流程
    frida安装正确流程前提环境环境:具有python环境的win10系统设备:pixel3(需要root)重点:必须是欧版,如果不是欧版OEM无法打开,不可能刷的了机具体root过程参考https://sspai.com/post/76276工具:frida(目前版本最稳定的为16.1.10,其他版本有的会报各种错误)frida安装步骤首先下载fridapip......
  • 给你一个网站,你如何来做自动化测试的?Web网站测试流程及方法
    我想大多数开始进行web端页面测试的人,一开始会的都是在页面上点点点,然后一看到页面上有什么图片失效啊,页面遮挡就觉得是找到了大bug;一开始我也是这样,尽管我很谨慎,很仔细,把页面上的每一个角落都看了几十遍,依然没有把页面上的点点点测好,当时真的是每天都过得提心吊胆。那给你一个网......
  • OpenWRT集成busybox配置项的流程
    OpenWRT集成busybox配置项的流程来源 https://www.openwrt.pro/post-613.html1、研究背景  我们在开发的过程中可能需要移植OpenWRT上没有的软件包,而这些软件包又比较特殊。例如,像busybox那样自带kconfig配置文件供生成菜单配置界面的软件包。我们可以直接在这个软件包根目......
  • 浅聊springboot的启动流程
    前言本文会对Springboot启动流程进行详细分析。但是请注意,Springboot启动流程是Springboot的逻辑,请千万不要将Springboot启动流程相关逻辑与Spring的相关逻辑混在一起,比如把Spring的bean生命周期的逻辑混在Springboot启动流程中,那么整个体系就复杂且混乱了。所以本文仅重点关注Spri......
  • EasyCVR海康设备国标GB28181接入流程
    有很多用户在初次使用旭帆科技的视频监控系统时,都不知道如何进行海康设备的国标接入,今天小编就汇总了以下操作教程,分享给大家。1、首先使用海康搜索工具搜索,是否能找到该设备;2、随后将软件包放到服务器并解压;3、进入解压后的软件包内,运行命令启动EasyCVR;4、如下图状态,即启用成功;5、......
  • 智能监控平台/视频共享融合系统EasyCVR海康设备国标GB28181接入流程
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • 做接口测试的流程一般是怎么样的?UI功能6大流程、接口测试8大流程这些你真的全会了吗?
    在讲接口流程测试之前,首先需要给大家申明下:接口测试对于测试人员而言,非常非常重要,懂功能测试+接口测试,就能在企业中拿到一份非常不错的薪资。这么重要的接口测试,一般也是面试笔试必问。为方便大家更好的记住接口测试流程,先给大家普及下最常见的UI功能测试流程,然后找接口和功能两......