linux实验四内核裁减和编译实验报告
时间:2025-04-07
时间:2025-04-07
linux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doc
实验四 内核裁减和编译
一、实验目的
1.了解和掌握内核源代码的目录结构;
2.了解内核系统配置方式,了解Makefile和config.in脚本文件的作用;
3.了解内核各项内容;
4.熟悉make命令的使用。
二、实验环境
预装redhat9.0(内核版本2.4.x)的PC机一台,XScale嵌入式实验箱一台(已构建嵌入式linux系统),以太网线一根,交叉编译工具链。
三、实验步骤
察看和了解Linux内核的目录及内容;
察看和了解Linux内核的Makefile文件及作用;
察看和了解Linux内核的config.in文件及作用;
④使用menuconfig或xconfig察看内核编译选项及作用;
⑤开关某些编译选项,自己裁剪一个Linux内核;
A. [root @localhost ~]# cd XSBASE/xsbase/Kernel/2.4.18-rmk-pxal-XSBASE
[root @localhost 2.4.18-rmk-pxal-XSBASE]# make menuconfig
B. 设置开发板上的鼠标不能操作。
进入Input Core device,然后敲空格键,取消屏幕上的鼠标操作。
退出时并保存。
C. [root @localhost 2.4.18-rmk-pxal-XSBASE]# make dep
[root @localhost 2.4.18-rmk-pxal-XSBASE]# make zImage
[root @localhost 2.4.18-rmk-pxal-XSBASE]# cd arch/arm/boot/
[root @localhost 2.4.18-rmk-pxal-XSBASE]# cp zImage /tftp
D. 启动mini终端。
XSBase255> boot
[root @XSBASE /root]$ tfp 192.168.0.77
ftp>cd /
ftp>get /tftp/zImage
E. 这个时候在重启板子一下,板子就不能执行触摸屏上的鼠标操作了。
四、思考题
1.嵌入式操作系统内核为什么是可裁剪的?
答:一方面简化已有操作系统的功能与结构,以满足嵌入式系统对体积的要求;
另一方面是开发它的实时性能。对标准的操作系统裁剪就是将功能齐全的源代码,派生出适合于具体软硬件平台、功能减少(针对某种应用)、体系结构更紧凑、规模更精简的代码过程。具体需要裁剪的功能对象主要是:引导及初始化程序、操作系统的内核、设备驱动程序等。
2.内核裁剪的常用命令?
答:make mrproper
linux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doclinux实验四内核裁减和编译.doc
该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚 下载的完整的源程序包进行编译,所以本步可以省略。而如果你多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。
make meuconfig
基于文本选单的配置界面,字符终端下推荐使用 需要ncurses库的支持。当然还有make xconfig (基于图形窗口模式的配置界面,Xwindow下推荐使用)make config 基于文本的最为传统的配置界面,会用的你超级郁闷了,不推荐使用。
make dep
实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要。
make clean
完成删除前面步骤留下的文件,以避免出现一些错误。
make distclean
更近一步删除配置文件
make bzImage/zImage
make zImage和make bzImage则实现完全编译内核,二者生成的内核都是使用gzip压缩的,只要使用一个就够了,它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。make all 编译所有了,包括kernel 以及 modules了。
make modules
make modules_install
make modules和make modules_install
分别生成相应的模块和把模块拷贝到需要的目录中。严格说来,depmod -a命令和编译过程并没有关系,它是生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。
make install 安装编译好的内核,他会在/boot 下安装vmlinuz 以及System.map文件。当然你也可以自己手动的方式进行cp了。
3.编译内核和模块加载的区别?
答:一样的设备,编译进内核要快些。而编译成模块,则可以只在使用时加载,常用的驱动尽量编译进内核,而对于一些偶尔使用的设备驱动,编译成模块就可以了。
…… 此处隐藏:234字,全部文档内容请下载后查看。喜欢就下载吧 ……