sudo apt install -y qemu
如果安装失败执行
sudo apt install -f
sudo apt install -y qemu
git clone https://github.com/openbmc/qemu.git
cd qemu
git submodule update --init dtc
mkdir build
cd build
../configure --target-list=arm-softmmu
make
wget https://openpower.xyz/job/openbmc-qemu-build-merge-x86/lastSuccessfulBuild/artifact/qemu/arm-softmmu/qemu-system-arm
qemu使用请参考 :Ubuntu下qemu使用。
注:建议安装openbmc维护的qemu或者下载openbmc官方的qemu-system-arm,直接apt安装的qemu启动会很卡,并且会重启看门狗等问题。
进入到build目录,执行如下命令,使用映射本地端口方式启动bmc(访问bmc的ip地127.0.0.1)。
qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=./tmp/deploy/images/romulus/obmc-phosphor-image-romulus.static.mtd,format=raw,if=mtd -net nic -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu
也可以下载官方的最后一个镜像
wget https://openpower.xyz/job/openbmc-build/distro=ubuntu,label=builder,target=romulus/lastSuccessfulBuild/artifact/deploy/images/romulus/obmc-phosphor-image-romulus.static.mtd
用官方的qemu,需要进入qemu-system-arm目录执行
./qemu-system-arm -m 256 -M romulus-bmc -nographic -drive file=./tmp/deploy/images/romulus/obmc-phosphor-image-romulus.static.mtd,format=raw,if=mtd -net nic -net user,hostfwd=:127.0.0.1:2222-:22,hostfwd=:127.0.0.1:2443-:443,hostname=qemu
也可以用如下命令使用网桥方式启动镜像(该方式可以指定bmc的ip地址,请参考:qemu网络通信),启动镜像后需要进入bmc配置IP地址。
##安装网桥相关,已安装直接启动镜像即可
apt-get install libvirt libvirt-bin bridge-utils uml-utilities qemu-system-common
###启动镜像
qemu-system-arm -m 256 -M palmetto-bmc -nographic \
-drive file=/flash-palmetto,format=raw,if=mtd \
-net nic,macaddr=C0:FF:EE:00:00:02,model=ftgmac100 \
-net bridge,id=net0,helper=/usr/lib/qemu-bridge-helper,br=virbr0
注:路径不能错!!!自己下载的qemu-system-arm和-drive后面的file都是相对路径,可以改成绝对路径。
如果顺利启动将会看到uboot启动过程和内核启动过程。
登录BMC:用户名:root 密码:0penBMC (数字零)
结束qemu:Ctrl + a 再按x
打开浏览器输入如下地址:(如果以网桥方式启动,进入bmc系统后输入udhcp命令可以得到IP地址,也可以通过ifconfig命令配置IP地址。如果是tap方式启动,需要输入tap的IP地址。)
https://192.168.122.51/
如果是本地端口映射启动输入如下地址:
https://localhost:2443/
第一登录会有安全提示,点击show advanced->Proceed...
输入用户root和密码0penBmc
如果没有SSH,请参考ubutun下ssh安装。执行如下命令登录BMC。
ssh [email protected]
或者
ssh -p 2222 [email protected]