栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

第零步:源码安装qemu     wget https://download.qemu.org/qemu-7.0.0.tar.xz     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去连接远程桌面 第一步:下载源码     wget  https://busybox.net/downloads/busybox-1.35.0.tar.bz2     wget  https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.15.35.tar.gz 第二步:编译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平台。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/882194.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号