Qemu运行ARM架构LinuxKernel(Ubuntu-20.04)

第零步:源码安装qemu
    tar xvJf qemu-7.0.0.tar.xz
    cd qemu-7.0.0
    ./configure
    make
    make install
注:configure过程中可能会报错,安装相应的工具和库就行了。
apt install ninja-build
apt install libglib2.0-dev
apt install libpixman-1-dev
ninja:一个工程配置构建工具,类似于make,Google人开发Chrome时开发的。
Qemu出现VNC server running on 127.0.0.1:5900 
这是因为在安装QEMU过程中
./configure --prefix=/usr/local/qemu
执行后出现了 SDL support       no
解决方法
sudo apt install libsdl2-dev -y
./configure --prefix=/usr/local/qemu
SDL support       yes (2.0.8)
重新配置QEMU,显示SDL support yes即为成功 ,然后重新编译安装
也可以不用安装  直接使用VNC Viewer去连接远程桌面
第一步:下载源码
第二步:编译busybox
tar -xvf busybox-1.35.0.tar.bz2
cd busybox-1.35.0
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make menuconfig 配置成静态编译
make install 完成编译
在busybox根目录下有个_install目录,讲此目录复制到linux内核源码根目录
在把_install拷贝到kernel目录前做如下操作:
mkdir etc
mkdir dev
mkdir mnt
mkdir -p etc/init.d/
在etc/init.d/目录下创建rcS文件,并写入如下内容:
mkdir -p /proc
mkdir -p /tmp
mkdir -p /sys
mkdir -p /mnt
/bin/mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
给rcS文件加上可执行权限:
chmod +x rcS
在etc目录下创建fstab文件,并写入如下内容:
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
debugfs /sys/kernel/debug debugfs defaults 0 0
在etc目录下创建inittab文件,并写入如下内容:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
在dev目录下创建设备节点,需要root权限:
cd _install/dev/
sudo mknod console c 5 1
sudo mknod null c 1 3
注:安装arm交叉编译器
apt install gcc-arm-linux-gnueabi build-essential
第三步:编译 linuxkernel (注意:kernel用了gcc专有特性,所以编译kernel源码需要相应的gcc版本)
tar -xvf linux-5.15.35.tar.gz
cd linux-5.15.35
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make menuconfig
配置initramfs,在initramfs source file中填入_install,如下图:
修改一下user和kernel内存空间,如下图:
make bzImage -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make dtbs # 编译设备树,ARM架构特有的,x86架构用ACPI,因为x86架构PC用的多,除了Linux还有Windows
QEMU模拟4核Cortex-A9的Versatile Express开发平台:
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
在Ubuntu另外一个中段中输入killall qemu-system-arm即可关闭QEMU平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值