目录:
获取环境
Ubuntu中安装相关环境:
apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential
获取kernel源码和busybox源码:
linux
busybox
编译固件
最小根文件系统
由于根文件系统制作过程比较繁琐,所以直接使用已经制作好了的,这个采用静态编译的方法制作,将解压出来的_install放到内核目录下面即可。
根文件系统
内核
进入内核目录下,对菜单进行配置:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make menuconfig
填入根文件系统名字:
清空string字段:
用户空间、内核空间比选为3:1,并选择高端内存选项:
编译内核:
make bzImage -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make dtbs
启动qemu
这条命令比较长,建议写成脚本
qemu-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
效果:
使用gdb
1.下载gdb,我选择7.8版本
gdb地址
2.安装gdb
tar xjf gdb-7.8.tar.gz
cd gdb-7.8/
./configure --target=arm-linux
make
make install
3.使用
进入内核目录运行qemu:
qemu-system-arm -s -S -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
在另一个终端启动gdb
arm-linux-gdb --tui vmlinux
target remote localhost:1234
b start_kernel
c
gdb命令说明
b
c
n
s
p
bt
info registers