如何编译和运行一个ARM Linux内核1.实验目的 通过本实验学习如何编译一个ARM版本的内核镜像,并在QEMU虚拟机上运行。 2.实验步骤 为了加速开发过程,ARM公司提供了Versatile Express开发平台。客户可以基于Versatile Express平台进行产品原型开发。作为个人学习者,没有必要去购买Versatile Express开发平台或其他ARM开发板,完全可以通过QEMU来模拟开发平台,同样可以达到学习的目的。 (1)准备工具 下载如下代码包。
(2)编译最小文件系统 首先利用busybox手工编译一个最小文件系统。 $ cd busybox 进入menuconfig之后,配置成静态编译。 Busybox Settings ---> 在make && make install编译完成后,在busybox根目录下会有一个“_install”目录,该目录存放了编译好的文件系统需要的一些命令集合。 把_install目录复制到linux-4.0目录下。进入_install目录,先创建etc、dev等目录。 #mkdir etc 在_install /etc/init.d/目录下新建一个rcS文件,并写入如下内容。 mkdir –p /proc 修改_install/etc/init.d/rcS文件需要可执行权限,可使用chmod命令来实现,比如“chmod +x _install/etc/init.d/rcS”。 在_install /etc目录中新建一个fstab文件,并写入如下内容。 proc /proc proc defaults 0 0 在_install /etc目录中新建一个inittab文件,并写入如下内容。 ::sysinit:/etc/init.d/rcS 在_install/dev目录中创建如下设备节点,这时需要root权限。 $ cd _install/dev/ (3)编译内核 $ cd linux-4.0 配置initramfs,在initramfs source file中填入_install,并把Default kernel command string清空。 General setup ---> 配置memory split为“3G/1G user/kernel split”,并打开高端内存。 Kernel Features ---> 开始编译内核。 $ make bzImage –j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- (4)运行QEMU虚拟机 运行QEMU虚拟机来模拟4核Cortex-A9的Versatile Express开发平台。 $ qemu-system-arm -M vexpress-a9 -smp 4 -m 200M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic 运行结果与实验3相同。 本文摘自:《奔跑吧Linux内核 入门篇》 本书是一本介绍Linux内核实践的入门书,基于Linux 4.0内核,重点讲解Linux内核的理论和实验。本书分为12章,包括Linux系统入门、Linux内核基础知识、内核编译和调试、内核模块、简单的字符设备驱动、系统调用、内存管理、进程管理、同步管理、中断管理、调试和性能优化,以及如何参与开源社区等内容。此外,本书还介绍了Linux内核社区常用的开发工具和理论,如Vim 8和git工具等。书中包括70多个实验,帮助读者深入理解Linux内核。 推荐阅读:海南都市网 (正文已结束) (编辑:喜羊羊) 免责声明及提醒:此文内容为本网所转载企业宣传资讯,该相关信息仅为宣传及传递更多信息之目的,不代表本网站观点,文章真实性请浏览者慎重核实!任何投资加盟均有风险,提醒广大民众投资需谨慎! |