文章目录
从0开始使用QEMU模拟ARM开发环境系列一览表
uboot通过tftp加载uImage
为了通过 tftp 加载有关的文件到指定的内存地址,需要先完成下面2个步骤。
-
在主机搭建tftp服务器
-
QEMU网络功能配置
主机搭建tftp服务器
安装
sudo apt-get install tftp-hpa tftpd-hpa -y
配置
sudo vi /etc/default/tftpd-hpa
或者
sudo gedit /etc/default/tftpd-hpa
根据需求进行修改即可
#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/leacock/tftpboot" # tftpd-hpa的服务目录 /tftpboot
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" # 这里是选项,-c是可以上传文件的参数,-s是指定tftpd-hpa服务目录,上面已经指定
重启服务
sudo service tftpd-hpa restart # stop ,start
测试
tftp 127.0.0.1
QEMU网络功能配置
为了 让 QEMU 能够与主机 建立网络连接,采用桥接的网络连接与Host通信(需要主机内核tun/tap模块支持)
QEMU中的网络,包含两部分的内容
- 客户机使用的虚拟网络设备
- 和上述虚拟设备通信的网络后端,这些后端负责把虚拟设备的数据包发到宿主机的网络中
QEMU 两种上网方式(不同的网络后端):
user mode network :
这种方式实现虚拟机上网很简单,类似vmware里的nat,qemu启动时加入-user-net参数,虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
tap/tun network :
这种方式要比user mode复杂一些,但是设置好后 虚拟机<–>互联网 虚拟机<–>主机 通信都很容易
这种方式设置上类似vmware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tun0),然后就可以象真实网卡一样配置它。
TAP后端
QEMU的TAP后端利用宿主机的TAP设备,为客户机提供完整的桥接网络支持,如果外部需要使用标准端口连接到客户机, 或者多个客户机需要相互通信,可以使用该方式。 TAP后端还具有以下优势:
- 非常好的性能
- 可以配置以支持各种网络拓扑
但是,你需要在宿主机上进行网络拓扑的配置,而且各种系统的配置不同。
主机安装工具包:
sudo apt-get install uml-utilities bridge-utils -y
使用TAP后端前,需要确认你的宿主机的内核支持TAP网络接口: /dev/net/tun
文件存在则说明支持。
ls /dev/net
输出
tun
如果没有这样的文件,可以尝试手工创建:
sudo mkdir /dev/net
sudo mknod /dev/net/tun c 10 200
sudo /sbin/modprobe tun
修改网络配置文件(重启生效)
sudo <