文章插图
在“_install/etc”目录创建“inittab”文件,并写入以下内容:
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
在“_install/dev”目录中创建如下设备节点 :mknod console c 5 1
mknod null c 1 3
完成上述设置后,在内核目录中编译内核 :export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make menuconfig
文章插图
在内核目录下编译内核(此步骤时间较长)
make bzImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- make dtbs
可能会出现“./usr/gen_initramfs_list.sh: 131: local: 1: bad variable name”的错误,原因是以前用的bash执行而现在使用sh 。解决办法:131行改为 :
local dev="`LC_ALL=C ls -l "${location}"`"
文章插图
编译完成后会有如下提示,并显示编译后内核的存储路径 。
文章插图
4.运行 QEMU如下所示,输入 QEMU 启动命令,成功启动 QEMU,注意需指定 bzImage路径,并注意使用当前命令与 bzImage 路径的关系 。
qemu-system-arm -M vexpress-a9 -m 256M -kernel arch/arm/boot/zImage -Append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
- 以上命令中参数含义如下;
- -M:指定硬件芯片框架
- -m:指定运行内存大小
- -kernel:指定运行的内核镜像
- -dtb:指定具体芯片的配置信息
- -nographic:指定不使用图形界面
文章插图
头条对markdown太不友好了~辛苦改了格式分享给大家,可能还是有点乱,大家可以点下方链接看我的知乎 。
推荐阅读
- 教你编写你的第一个Linux 内核模块“hello_module”
- 要给五脏及时排毒 教你穴位按摩排毒法
- 柑普茶怎么煮,教你若何更好冲泡柑普茶
- 梦见名人富豪 梦见名人明星和我说话
- 一个人心烦心累的句子有哪些?
- 柑普茶的饮用方法,教你若何更好冲泡柑普茶
- 社保二档多少钱一个月?
- 广州社保退休后一个月能拿多少钱?
- linux内核驱动第1讲:带你编写一个最简单的字符设备驱动
- 征途手机版一个角色每天最多可以搬几次砖?答案介绍