qemu linux mainline

本文详细介绍如何从零开始搭建ARM嵌入式系统环境,包括安装编译工具链、配置内核、编译BusyBox及创建根文件系统,并最终通过QEMU进行模拟运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

########################################

sudo apt-get install gcc-arm-linux-gnueabi
sudo apt-get install qemu

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_defconfig
make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

wget https://busybox.net/downloads/busybox-1.29.3.tar.bz2
make defconfig
make CROSS_COMPILE=arm-linux-gnueabi-
make install CROSS_COMPILE=arm-linux-gnueabi-

# cd busybox
mkdir -p rootfs/{dev,etc/init.d,lib,proc,sys}
sudo cp _install/* -r rootfs/
sudo cp -P /usr/arm-linux-gnueabi/lib/* rootfs/lib/
sudo mknod rootfs/dev/tty1 c 4 1
sudo mknod rootfs/dev/tty2 c 4 2
sudo mknod rootfs/dev/tty3 c 4 3
sudo mknod rootfs/dev/tty4 c 4 4

touch rootfs/etc/init.d/rcS
vim rootfs/etc/init.d/rcS

#!/bin/sh
echo "INIT SCRIT"
mount -t proc proc /proc
mount -t sysfs sys /sys
mount -t debugfs none /sys/kernel/debug
mount -t devtmpfs none /dev

chmod a+x rootfs/etc/init.d/rcS


rm a9rootfs.ext3 tmpfs -rf
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32
mkfs.ext3 a9rootfs.ext3
sudo mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs/ -o loop
sudo cp -r rootfs/*  tmpfs/
sudo umount tmpfs

sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb  arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0  console=ttyAMA0" -sd ../busybox-1.29.3/a9rootfs.ext3

 

sudo qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb  arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "root=/dev/mmcblk0  console=ttyAMA0 loglevel=8" -sd ../busybox-1.29.3/a9rootfs.ext3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值