qemu-system-arm选项:
qemu-system-arm -M vexpress-a9 -m 512M \
-kernel /home/user/kernel_git/linux/arch/arm/boot/zImage \
-nographic -append "console=ttyAMA0"
-M vexpress-a9 模拟vexpress-a9单板,你可以使用-M ?参数来获取该qemu版本支持的所有单板
-m 512M 单板运行物理内存512M
-kernel /home/user/kernel_git/linux/arch/arm/boot/zImage 告诉qemu单板运行内核镜像路径
-nographic 不使用图形化界面,只使用串口
-append "console=ttyAMA0" 内核启动参数,这里告诉内核vexpress单板运行,串口设备是哪个tty。
内核目录:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
qemu-system-arm -M vexpress-a9 -m 512 -kernel arch/arm/boot/zImage -nographic -append "console=ttyAMA0" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb
可以单独跑内核了,但缺少根文件系统。
BusyBox目录:
busybox$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
busybox$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install
生成的根文件系统基础文件放在 _install 目录
创建独立的images目录
images目录下新建rootfs目录
mkdir rootfs
dd if=/dev/zero of=sdcard.ext3 bs=1M count=32
mkfs.ext3 sdcard.ext3
sudo mount -t ext3 -o loop sdcard.ext3 rootfs/
复制Busybox文件和库
cd rootfs;
sudo mkdir lib proc sys dev etc etc/init.d
sudo cp -r ../busybox-1.27.1/_install/* .
sudo cp -P /usr/arm-linux-gnueabi/lib/* lib/
添加启动脚本和设备文件:
vi etc/init.d/rcS
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
sudo chmod +x etc/init.d/rcS
umount rootfs/
将内核和设备树文件复制到images目录。。。。
运行:
qemu-system-arm -M vexpress-a15 -m 512 \
-kernel zImage -dtb vexpress-v2p-ca15_a7.dtb \
-append "console=ttyAMA0 root=/dev/mmcblk0 init=/linuxrc rw rootwait" \
-sd sdcard.ext3 \
-nographic
====================================================
qemu 跑uboot :
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_ca9x4_defconfig
make
qemu-system-arm -M vexpress-a9 -m 512 -nographic -kernel u-boot
#qemu-system-arm -M vexpress-a9 -m 512 -nographic -net nic -net tap,ifname=tap0,script=no -kernel u-boot
qemu-system-arm -M vexpress-a9 -m 512M \
-kernel /home/user/kernel_git/linux/arch/arm/boot/zImage \
-nographic -append "console=ttyAMA0"
-M vexpress-a9 模拟vexpress-a9单板,你可以使用-M ?参数来获取该qemu版本支持的所有单板
-m 512M 单板运行物理内存512M
-kernel /home/user/kernel_git/linux/arch/arm/boot/zImage 告诉qemu单板运行内核镜像路径
-nographic 不使用图形化界面,只使用串口
-append "console=ttyAMA0" 内核启动参数,这里告诉内核vexpress单板运行,串口设备是哪个tty。
内核目录:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
qemu-system-arm -M vexpress-a9 -m 512 -kernel arch/arm/boot/zImage -nographic -append "console=ttyAMA0" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb
可以单独跑内核了,但缺少根文件系统。
BusyBox目录:
busybox$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
busybox$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install
生成的根文件系统基础文件放在 _install 目录
创建独立的images目录
images目录下新建rootfs目录
mkdir rootfs
dd if=/dev/zero of=sdcard.ext3 bs=1M count=32
mkfs.ext3 sdcard.ext3
sudo mount -t ext3 -o loop sdcard.ext3 rootfs/
复制Busybox文件和库
cd rootfs;
sudo mkdir lib proc sys dev etc etc/init.d
sudo cp -r ../busybox-1.27.1/_install/* .
sudo cp -P /usr/arm-linux-gnueabi/lib/* lib/
添加启动脚本和设备文件:
vi etc/init.d/rcS
#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s
sudo chmod +x etc/init.d/rcS
umount rootfs/
将内核和设备树文件复制到images目录。。。。
运行:
qemu-system-arm -M vexpress-a15 -m 512 \
-kernel zImage -dtb vexpress-v2p-ca15_a7.dtb \
-append "console=ttyAMA0 root=/dev/mmcblk0 init=/linuxrc rw rootwait" \
-sd sdcard.ext3 \
-nographic
====================================================
qemu 跑uboot :
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_ca9x4_defconfig
make
qemu-system-arm -M vexpress-a9 -m 512 -nographic -kernel u-boot
#qemu-system-arm -M vexpress-a9 -m 512 -nographic -net nic -net tap,ifname=tap0,script=no -kernel u-boot