用qemu執行/除錯arm linux,這事情幹過好幾次了,久了就忘記了,每次都要重新去查資料,浪費不少時間。這次把整個過程弄成個指令碼,放到github上,需要是拿下來執行一下即可,方便自己也方便有需要的朋友。這裡解釋一下指令碼的內容(執行系統ubuntu 16.04 lts):
export arch=arm
export machine=vexpress
export target=arm-linux
export gdb_version=8.0
export kernel_version=4.4.1
export busybox_version=1.25.1
export cross_compile=arm-linux-gnueabihf-
function prepare()
function download_linux
() .tar.xz ]
then
echo linux-$.tar.xz exist
else
wget
fiif [ -e linux-$ ]
then
echo linux-$ exist
else
tar xf linux-$.tar.xz
fi}
function build_linux
() make $_defconfig
make zimage -j8
make modules -j8
make dtbs
cd -
}
function copy_linux() /arch/arm/boot/zimage arm-linux
-kernel
/ cp -fv linux-$/arch/arm/boot/dts/*ca9.dtb arm-linux-kernel/
cp -fv linux-$/.config arm-linux-kernel/
}
function download_busybox
() .tar.bz2 ]
then
echo busybox-$.tar.bz2 exist
else
wget
fiif [ -e busybox-$ ]
then
echo busybox-$ exist
else
tar xf busybox-$.tar.bz2
fi}
function build_busybox
() make defconfig
make cross_compile=$
make install cross_compile=$
cd -
}
function make_rootfs() /_install/* rootfs/ -rf
dd if=/dev/zero of=rootfs.ext3 bs=1m count=128
mkfs.ext3 rootfs.ext3
mkdir tmpdir
mount -t ext3 rootfs.ext3 tmpdir/ -o loop
cp -r rootfs/* tmpdir/
mknod tmpdir/dev/tty1 c 4
1 mknod tmpdir/dev/tty2 c 4
2 mknod tmpdir/dev/tty3 c 4
3 mknod tmpdir/dev/tty4 c 4
4 umount tmpdir
}
function download_gdb
() .tar.gz ]
then
echo gdb-$.tar.gz exist
else
wget
fiif [ -e gdb-$ ]
then
echo gdb-$ exist
else
tar xf gdb-$.tar.gz
fi}
function build_gdb
() ./configure --target=$ --enable-sim --prefix=/usr/local/
make
cp -fv gdb-$/gdb/gdb /usr/local/bin/arm-linux-gdb
cd -
}
function
gen_gdb_init
() /vmlinux" >gdbinit
echo
"dir linux-$" >>gdbinit
echo
"target remote :1234" >>gdbinit
}
function
build
() build
echo
"done"
還包括其它一些指令碼和使用說明,一併放在上。 ubuntu用qemu除錯linux核心
出於對用虛擬機器 除錯 核心 看是否能對學習核心有比較大的幫助。進行了下驗證 中間 的命令僅作為參考,是使用過程中的一些記錄,檔案命名 路徑名 使用時 作出對應調整 需。wget 解壓 tar xvf linux 3.10.104.tar.xz cd linux 3.10.104 進行配置 make...
使用QEMU除錯u boot
參考 qemu uboot kernel nfs檔案系統 qemu system arm vexpress a9踩坑記 u boot 分析 2 在qemu環境下的除錯 1.安裝交叉編譯和除錯工具 sudo apt get install gcc arm linux gnueabi sudo apt ...
IDA除錯QEMU修復除錯環境
本篇文章是按照家用路由器裡面的內容來敘述的.在目錄 my file dir605l fw 113.bin.extracted squashfs root 0 下 執行cp which qemu mips 而後執行命令 sudo chroot qemu mips bin boa 注意 書上是有錯誤的,...