How to build QEMU U-boot Emulator

From HyperSecurity Wiki
Jump to: navigation, search

Downloads

QEMU:

git clone git://git.qemu.org/qemu.git

U-boot:

wget ftp://ftp.denx.de/pub/u-boot/u-boot-2013.01.tar.bz2

Cross-tool Chain:

wget http://www.codesourcery.com/sgpp/lite/arm/portal/package7853/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi.bin arm-2010.09-50-arm-none-linux-gnueabi.bin

Builds

Make build directory:

mkdir ~/Builds
cd ~/Builds

Download sources:

git clone git://git.qemu.org/qemu.git
wget ftp://ftp.denx.de/pub/u-boot/u-boot-2013.01.tar.bz2
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package7853/public/arm-none-linux-gnueabi/arm-2010.09-50-arm-none-linux-gnueabi.bin arm-2010.09-50-arm-none-linux-gnueabi.bin

QEMU:

cd qemu
./configure --target-list=arm-softmmu,arm-linux-user --enable-debug
make

Binary is located in arm-softmmu/qemu-system-arm

Cross-Tool Chain:

chmod +x arm-2010.09-50-arm-none-linux-gnueabi.bin
./arm-2010.09-50-arm-none-linux-gnueabi.bin

Install Defaults

U-boot

bunzip u-boot-2013.01.tar.bz2
tar xvf u-boot-2013.01.tar
cd u-boot-2013.01
export PATH=~/CodeSourcery/Sourcery_G++_Lite/bin/:$PATH
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- versatilepb_config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-

Run Emulator

Build virtualization tree:

cd ~/
mkdir -p virtualization/qemu
cd virtualization/qemu
cp ~/Builds/qemu/arm-softmmu/qemu-system-arm .
cp ~/Builds/u-boot-2013.01/u-boot .

Run the follow:

./qemu-system-arm -M versatilepb -nographic -kernel u-boot
The following should display:
audio: Could not init `oss' audio driver
U-Boot 2013.01 (Jan 31 2016 - 00:39:59)
DRAM:  128 MiB
WARNING: Caches not enabled
Flash: 64 MiB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
Net:   SMC91111-0
Warning: SMC91111-0 using MAC address from net device