ubuntu 安装 qemu,ubuntu可以在arm上运行吗

大家好,如果您还对ubuntu 安装 qemu不太了解,没有关系,今天就由本站为大家分享ubuntu 安装 qemu的知识,包括ubuntu可以在arm上运行吗的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

记一次如何搭建QEMU环境学习linux

在尝试使用WSL中的QEMU学习Linux时,遇到了一些问题,所以我选择了回归VMware环境。以下是我在VMware上搭建QEMU学习Linux的详细步骤:

首先,访问vmware.com下载并安装VMware Workstation,按照向导进行傻瓜式安装。

接着,下载Ubuntu桌面版的ISO文件。安装完成后,你会得到一个.iso文件。

在VMware中创建新的虚拟机,选择刚下载的ISO文件作为安装媒介。设置好网络模式为桥接模式,并为Ubuntu设置文件夹共享,方便后续的文件操作。

启动Ubuntu,进入终端后,进入/mnt目录并创建hgfs目录,将共享文件夹挂载到该目录。这样,你就能在Ubuntu中访问到共享文件夹的文件。不过,如果代码放在共享目录,可能会遇到问题,因此建议在/home/eon目录下备份一份代码。

为了提升Ubuntu的下载速度,添加国内的软件源。先备份原软件源,然后在/etc/apt/sources.list中添加国内镜像源并更新。

接下来安装必要的工具,如arm交叉编译工具和u-boot,以及用于模拟ARM架构的QEMU。安装完成后,可以开始下载并编译Linux内核,例如vexpress-v2p-ca9的代码。

编译过程中,先配置并编译BusyBox,成功后会生成一个_install目录,内含预编译的工具。对于Linux内核,使用qemu-system-arm命令启动,但需要注意,挂载文件系统时可能会遇到问题。

同样地,编译u-boot,并通过qemu单独启动。制作文件系统时,需要新建目录、复制预编译的文件和库,创建文件节点,以及制作扩展文件系统(如.ext4)并进行挂载。

为了能在QEMU中通过u-boot启动Linux,你需要将内核、dtb和文件系统整合到SD卡镜像中。具体实验步骤包括在QEMU中加载内核和dtb,设置bootargs参数,然后引导内核启动。

整个过程整理成一个脚本《build_env.sh》,方便管理和重复执行。不过,制作SD卡镜像的脚本部分未包含在内,因为涉及到fdisk命令的部分比较难以自动化。

以上就是我在VMware上搭建QEMU环境学习Linux的详细步骤,希望能对你有所帮助。

ubuntu qemu怎么联网

一、虚拟机的创建: 1.ubuntu下安装好qemu后,使用如下命令创建虚拟机:

qemu-img create-f qcow2 voltdb.img 10g

-f qcow2是指:qemu采取的镜像格式,qcow2是qemu最常使用的格式,该格式下可以采用来写时复制技术来优化性能;

voltdb.img是指:镜像名称

10g是指:镜像文件大小

2.之后需要为该镜像文件安装操作系统:

qemu-system-x86_64-enable-kvm-hdavoltdb.img-bootd-cdrom./ubuntu-16.04-desktop-amd64.iso-m2048-vnc:1

-enable-kvm:使用KVM进行加速(确保在BIOS中开启CPU对虚拟化的支持,若未加此项,则镜像安装会很慢)

-hda:指定要安装虚拟机要使用的虚拟磁盘

-boot d:指定启动位置,d表示从光盘启动

-cdrom:指定cdrom为iso文件

-m:指定虚拟机内存大小,默认单位是MB

-vnc:1:通过vnc创建虚拟桌面。(笔者在这里未加-vnc:1时,会提示:CouldnotinitializeSDL(Noavailablevideodevice)-exiting)

3.此时,ubuntu的命令行会阻塞,我们可以通过在windows下通过TigerVNC去远程连接

(下载地址:)

在TigerVNC中,我们输入ip:1(注意圆角半角的:)连接即可连接到voltdb.img虚拟镜像的安装界面,在那里完成虚拟机操作系统的安装即可。

二、配置桥接网络

qemu采用两种方式配置上网:

其一,默认方式为用户模式网络(Usermode Networking),数据包由NAT方式通过主机的接口进行传送。

其二,使用桥接方式(Bridged Networking),外部的机器可以直接联通到虚拟机,就像联通到你的主机一样。

第一,用户模式

虚拟机可以使用网络服务,但局域网中其他机器包括宿主机无法连接它。比如,它可以浏览网页,但外部机器不能访问架设在它里面的web服务器。

默认的,虚拟机得到的ip空间为10.0.2.0/24,主机ip为10.0.2.2供虚拟机访问。可以ssh到主机(10.0.2.2),用scp来拷贝文件。

第二,桥接模式

这种模式允许虚拟机就像一台独立的主机一样拥有网络。这种模式需要网卡支持,一般的有线网卡都支持,绝大部分的无线网卡都不支持

1.配置host

桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。

目的:使得局域网内可以通过ssh登陆虚拟机

1.1首先,安装两个配置网络所需软件包:

apt-get install bridge-utils#虚拟网桥工具

apt-get install uml-utilities# UML(User-mode linux)工具

1.2创建网桥,并添加端口,如下显示的是/etc/network/interface配置文件下的设置

[plain]view plaincopy

source/etc/network/interfaces.d/*

#Theloopbacknetworkinterface

autolo

ifaceloinetloopback

#以下是之前未添加网桥时的配置

#Theprimarynetworkinterface

#autoenp3s0

#ifaceenp3s0inetstatic

#address192.168.66.149

#netmask255.255.255.0

#network192.168.66.0

#broadcast192.168.66.255

#gateway192.168.66.1

#dns-nameservers114.114.114.114

#dns-searchfoolsky

#添加网桥br0

autobr0

ifacebr0inetstatic#之前上网时采用静态IP,所以这里依然使用此

address192.168.66.149#将之前上网的ip地址分配给网桥。

network192.168.66.0

netmask255.255.255.0

broadcast192.168.66.255

gateway192.168.66.1

bridge_portsenp3s0tap0#为网桥添加两个接口,分别是enp3s0(之前默认的上网网口)和tap0

bridge_stpoff

bridge_fd0

bridge_maxwait0

dns-nameservers114.114.114.114

#添加接口enp3s0,上网方式采用自动

autoenp3s0

ifaceeth0inetmanual

此时,查看当前网络配置:注意:enp3s0是未分配ip的。

请点击输入图片描述

1.3使用brctl配置网桥:

tunctl-t tap0-u用户名#创建一个tap0接口,只允许指定用户访问

brctl addif br0 tap0#在虚拟网桥中增加一个tap0接口

ifconfig tap0 0.0.0.0 promisc up#打开tap0接口

brctl showstp br0 br0网桥显示如下:

请点击输入图片描述

1.4修改/etc/qemu-ifup虚拟机的启动脚本,替换成如下内容:

[plain]view plaincopy

#!/bin/bash

switch=br0

if[-n"$1"];then

iplinkset$1up

sleep1

brctladdif${switch}$1

exit0

else

echo“Error:nointerfacespecified”

exit1

fi

1.5使用如下命令行启动qemu虚拟机

sudoqemu-system-x86_64-enable-kvm-bootc-drivefile=/usr/local/ubuntu.img,if=virtio-m1024-smp2-netdevtype=tap,script=/etc/qemu-ifup,downscript=no,id=net0-devicevirtio-net-pci,netdev=net0,mac=00:11:22:33:44:AB-vnc:1-daemonize

file:指定镜像位置

script:指向启动脚本的位置。

-daemonize:使得改启动命令不在阻塞,执行完该命令后依然可以执行其他命令。

mac:为虚拟机的默认网卡分配指定的虚拟mac地址,可自行设定(MACADDR可以指定一个mac地址,但要注意,第一个字节必须为偶数,如00,52等,不能为奇数(01),否则会有不可预料的问题。因为奇数保留为多播使用。)

2.配置虚拟机内操作系统的网络

此时,我们依然需要通过TigerVNC进入虚拟机已安装的操作系统,进入后,修改/etc/network/interfaces如下:

[plain]view plaincopy

#interfaces(5)fileusedbyifup(8)andifdown(8)

autolo

ifaceloinetloopback

autoenp0s3

#以下内容是新加入的,之前并未为enp0s3分配ip以及上网方式。

ifaceenp0s3inetstatic

address192.168.66.155#设置该ip与网桥同一网段,下边的内容相同即可。

netmask255.255.255.0

network192.168.66.0

gateway192.168.66.1

brodcast192.168.66.255

dns-nameservers114.114.114.114

bridge_fd9

bridge_hello2

bridge_maxage12

bridge_stpoff

之后重启虚拟机中操作系统,即可在局域网内通过ssh连接qemu中的操作系统。

手把手搭建qemu+buildroot开发环境

本文将指导您从零开始构建QEMU+Buildroot的ARM64开发环境,以简化移植工作并自动构建定制化的嵌入式根文件系统。无需繁琐的移植,只需通过menuconfig配置所需的特性,Buildroot将自动处理源码下载、编译和打包,省去了大量手动操作。

环境准备

在Windows 10上,借助VMware 17,选择Ubuntu 18.04作为虚拟机系统,设定为64位的Cortex-a53处理器。

依赖安装

为了搭建环境,首先需要安装QEMU 8.2.0和Linux Kernel 5.10.209,以及AARCH64的工具链。从QEMU官网获取8.2.0源码,确保Python版本大于3.8和glib2.0环境。

配置与编译

在已安装依赖的前提下,进入QEMU源码目录,配置并编译。配置过程中,针对ARM64架构进行定制。接着,下载并解压Buildroot 2023.11.1,配置kernel,关注关键选项。

执行buildroot编译,生成Image、roots.ext4和start-qemu.sh文件。在start-qemu.sh中,需修改第28行,登录console时使用root账户。

启动与操作

启动QEMU,登录后,可通过组合键退出当前会话(CTRL+ a, x)。作者潘小帅,Linux技术爱好者,欢迎关注他的微信公众号“Linux随笔录”,持续获取更多技术分享。

阅读剩余
THE END