qemuuser模式运行linux,qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结...

#qemu-system和qemu-user两种模式动态模拟运行嵌入式固件方法总结

##前言 搭建嵌入式固件的动态模拟环境的过程中遇到了许多的坑,最终终于搭建了起来,很有必要记录下遇到的问题,避免今后再踩坑。 ##工具 ###1.buildroot 下载地址

以buildroot 2019.02.4版本为例,编译mips大端架构环境。

tar zxvf buildroot-2019.02.4.tar.gz

apt-get install libncurses5-dev

make menuconfig

Target options中选择架构为mips big endian:

09283037dc36c342625c5fa71ce50544.gif

Toolchain中选择的linux内核要尽量的低:

acf352b46d76907da8fb0ad210aaf882.gif

Save之后开始make,编译时间很久,可以先去完成一次星际旅行。 ###2.qemu apt-get install qemu qemu-user-static ###3.binwalk binwalk项目的github地址,安装过程可能会出现小问题。例如cramfsprogs这个包在官方的源中找不到,需要手动下载cramfsprogs,使用dpkg -i install package.deb安装。 ###4.gdb gdb -v检查是否已经安装。 ###5.ida pro “度娘,你有没有ida pro给我下载啊?” ##qemu-system模式运行 ###下载 内核文件

磁盘文件 ###启动 qemu-system-mips -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=devttys0"

ifconfig测试与宿主机网络连通性。 ###桥接网络 ####安装依赖:

apt-get install uml-utilties

apt-get install bridge-utils

####修改interfaces文件: 1.备份:cp /etc/network/interfaces /etc/network/interfaces.backup

2.修改:vim /etc/network/interfaces

3.增加以下内容:

auto br0

iface br0 inet static #配置为静态

address 192.168.*.* #填入宿主机的静态ip

network 192.168.*.0

netmask *.*.*.*

bridge_ports *** tap0 #***代表之前的网口

4.终端:

tunctl -t tap0 -u username为创建的tap0接口指定自己可以访问

brctl addif br0 tap0

ifconfig tap0 0.0.0.0 promisc up

5.桥接模式启动: sudo qemu-system-mips -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mips_standard.qcow2 -append "root=/dev/sda1 console=ttys0" -net nic -net tap,ifname=tap0

6.ifconfig验证是否已经桥接。

7.将binwalk解压后的文件nc传入虚拟机,讲bin/和lib/目录下的文件拷贝到虚拟机的根目录下,或是使用chroot改变当前根目录为嵌入式系统的目录,测试是否可以运行调试目标。

##qemu-user模式运行 这里遇到的坑最多(T-T!) ###1.chroot(就是你!免疫自动补全!谎报敌情!) cp $(which qemu-mips) ./

cp $(which qemu-mips-static) ./

chroot ./ ./qemu-mips ./bin/boa是行不通的,qemu-mips无法找到运行库。

chroot ./ ./qemu-mips-static ./bin/boa可行。 ###2.gdb将进程绑定端口,ida pro远程调试 chroot ./ ./qemu-mips-static -g 1234 ./bin/boa

ida pro填写远程参数

be92a4d388461045bbf9fa4ffbdc6fe1.gif ###3.远程调试

e2fd7d07a83faa99532d356b507dde92.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值