Skip to content

Instantly share code, notes, and snippets.

@olegslavkin
Last active February 14, 2019 07:38
Show Gist options
  • Save olegslavkin/2358afbe5e3ac4e849ec1f547382d88c to your computer and use it in GitHub Desktop.
Save olegslavkin/2358afbe5e3ac4e849ec1f547382d88c to your computer and use it in GitHub Desktop.

Компиляция qemu

Инструкция основанная на CentOS 7.6

Установка неободимы пакетов

yum install -y git make gcc glib2-devel zlib-devel pixman-devel bison flex

Создание rootfs

mkdir -p ~/rootfs
export ROOTFS=~/rootfs
export PATH=${ROOTFS}/bin:${PATH}

Клонирование репозитория qemu

cd ~/
git clone https://github.com/qemu/qemu
# https://download.qemu.org/qemu-3.1.0.tar.xz
# tar xf qemu-3.1.0.tar.xz
cd qemu
git checkout v3.1.0
./configure --prefix=${ROOTFS} \
--target-list=arm-softmmu,mips-softmmu,riscv32-softmmu,riscv64-softmmu,arm-linux-user,mips-linux-user,riscv32-linux-user,riscv64-linux-user \
--enable-debug \
--extra-cflags="-g3" --extra-ldflags="-g3" \
--disable-strip --disable-pie
make -j $(nproc) && make install

Компиляция ядра Linux

Установка неободимых пакетов

yum install -y epel-release;yum update;yum install -y gcc-arm-linux-gnu wget bc

Компиляция ядра

cd ~/; mkdir -p ~/linux-build
wget https://mirror.yandex.ru/pub/linux/kernel/v4.x/linux-4.20.8.tar.xz
tar xf linux-4.20.8.tar.xz
cd linux-4.20.8
make vexpress_defconfig CROSS_COMPILE=arm-linux-gnu- ARCH=arm O=../linux-build
make -j $(nproc) CROSS_COMPILE=arm-linux-gnu- ARCH=arm O=../linux-build

Запуск qemu

Установка необходимых пакетов

yum install -y gdb

Установка отладочной информации

debuginfo-install glib2-2.56.1-2.el7.x86_64 glibc-2.17-260.el7_6.3.x86_64 libgcc-4.8.5-36.el7.x86_64 libstdc++-4.8.5-36.el7.x86_64 ncurses-libs-5.9-14.20130511.el7_4.x86_64 pcre-8.32-17.el7.x86_64 pixman-0.34.0-1.el7.x86_64 zlib-1.2.7-18.el7.x86_64
cd ~/
qemu-system-arm -m 512 -M vexpress-a9 -kernel ~/linux-build/arch/arm/boot/zImage -dtb ~/linux-build/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -append "console=ttyAMA0" -monitor stdio -display vnc=:5

Запуск отладчика с QEMU

gdb --args qemu-system-arm -m 512 -M vexpress-a9 -kernel ~/linux-build/arch/arm/boot/zImage -dtb ~/linux-build/arch/arm/boot/dts/vexpress-v2p-ca9.dtb -append "console=ttyAMA0" -monitor stdio -display vnc=:5

Полезные материалы

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment