实验五 编译linux内核.docx

上传人:b****6 文档编号:6742402 上传时间:2023-01-09 格式:DOCX 页数:26 大小:1.84MB
下载 相关 举报
实验五 编译linux内核.docx_第1页
第1页 / 共26页
实验五 编译linux内核.docx_第2页
第2页 / 共26页
实验五 编译linux内核.docx_第3页
第3页 / 共26页
实验五 编译linux内核.docx_第4页
第4页 / 共26页
实验五 编译linux内核.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

实验五 编译linux内核.docx

《实验五 编译linux内核.docx》由会员分享,可在线阅读,更多相关《实验五 编译linux内核.docx(26页珍藏版)》请在冰豆网上搜索。

实验五 编译linux内核.docx

实验五编译linux内核

实验五编译linux内核

一、实验目的

掌握编译ARMlinux系统内核的过程。

二、实验内容

完成编译Linux内核。

三、预备知识:

熟悉Linux基本操作。

四、实验设备:

安装Redhat9的PC机,并且配置好ARMlinux的开发环境

五、实验步骤:

1.输入

cd/pxa270_linux/linux/

进入Linux内核文件所在的目录

ls

查看内核文件结构

2.输入

exportARCH=arm

exportCROSS_COMPILE=arm-linux

make

makeclean/*一般不使用*/

系统将彻底清空以前的编译结果,删除所有的.o文件,二进制文件。

3.输入

makemenuconfig/*推荐使用*/

这条命令是用来调用菜单式的配制内核界面,相应的还有命令行式的配制方法

makemenuconfig界面是图形化的内核裁减界面。

通过此部分,我们可以方便的选择,

决定那部分被加载并编译入LINUX内核,那部分被编译为模块,那些部分不用。

在此我

们可以装载一个我们已经保存好的设置。

用上下键选择LoadanAlternateConfigurationFile,

回车进入下边的界面。

输入config_ours,这个文件是事先保存好的配置文件。

用户也可

以使用SaveConfigurationtoanAlternateFile保存自己的配置文件。

选择ok,保存并推出makemenuconfig。

配置结果会保存在../linux/include/linux文件夹

下的autoconfig.h文件中。

4.输入

makedep

5.编译内核,输入

makezImage

得到LINUX的内核文件zImage,保存在../arch/arm/boot下

makeclean后第一次使用makezImage命令,会占用相当长的时间。

宿主机会根

据autoconfig.h文件对系统进行编译。

首先使用交叉编译器(arm-linux-gcc)把各个文

件夹下用过的.c文件编译为二进制的目标文件,其次用链接器(arm-linux-ld)把这些目标

文件连接到一起;最后压缩,就得到了内核的镜像文件zImage。

这个文件是可以写入

嵌入式系统的核心。

6.编译模块

makemodules

编译模块驱动程序,凡是在menuconfig中被选为的都会在这条命令运行时被编译。

至此内核的编译已经完成,可以把生成的zImage文件复制到/tftpboot/目录中,为今后

的实验做准备。

cp./arch/arm/boot/zImage/tftpboot/-f

7.将生成的的内核烧写到目标板上

下载zImage文件到RAM中

启动目标板,回车,进入blob命令行方式:

#tftpzImage--kernel

将新生成的zImage映像下载到RAM中。

为了避免经常烧写flash造成flash坏区,因此测试的时候只需要下载到SDRAM中就可以。

#go0xa0008000

观察结果。

8、将LOGO信息加入到内核中,按照上述步骤重新编译内核:

进入Consoledrivers选项,选择Framebuffersupport选项,将OURSLOGOsupport选中,保存重新编译,将生成的zImage文件放到/tftpboot目录下,按照步骤8重新下载到RAM中,观察实验结果。

9.将NFS服务去掉,看看是否还可以mountnfs

进入FileSystem选项,

找到NetworkingFileSystem,

进入该选项,将NFSfilesystemsupport去掉

重新编译内核,并下载,观察是否可以mount上NFS。

 

makemenuconfig选项的说明:

在linux中,工程化的编程都会使用makemenuconfig,它是一个比较成熟的裁减界面。

不同工程之间的menuconfig会有差别,但大体相同。

下别就把主要的部分做以说明:

Codematurityleveloptions

这个选项的作用域是整个编译配置空间,如果这里选中相应的级别,不符合此条件的

选项就不会在后面出现。

这个选项是代码的成熟程度的选择,意思是如果你需要一个非常

成熟稳定的系统,那么有些新功能就不能使用,一个包含有新功能的系统就可能存在相应

的风险。

可以根据你自己的需求选择。

Loadablemodulesupport

这个选项是你的内核对内核模块的支持选项,包括是否支持和支持的一些配置等,选

择此项会使一些不常用到的驱动或特性可以编译为模块以减少内核的体积。

在运

行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。

SystemType

择对系统的支持,如什么样的ARM内核,什么样的配置平台等,此例提供的内核是

给S3C2410准备的,如果使用不同的处理器其系统或是不同的内核时此处的选项可能不同。

GeneralSetup

这里是内核本身的一些属性的配置,包括压缩方式,网络支持等很多属性。

Parallelportsupport

这个选项顾名思义就是选择内核对并口的支持情况,当选中对并口支持后会出现新的

选项来配置支持不同类型不同模式的并口。

MemoryTechnologyDevices(MTD)

对MTD设备的支持选项,这个选项对嵌入式系统比较重要,内核对各种Flash的支持

都在这里配置,包括种类,分区等。

PlugandPlayconfiguration

内核对即插即用的支持选项,这个选项在嵌入式系统中极少使用。

Blockdevices

内核对块设备的支持选项,各种磁盘系统的支持

Multi-devicesupport

多设备的支持,主要是RAID和LVM的支持,这个在嵌入式系统中极少使用

Networkingsupport

对网络设备的支持选项,通常对网卡的支持在这里选择,也是常用的选项,例如系统

配置不同的网卡时就要在这里选中不同的选项。

ATA/IDE/MFM/RLLsupport

IDE口的支持,这里选择支持不同的IDE设备,包括CDROMHARDDISKTAP等

SCSIsupport

SCSI设备的支持选项,也比较少使用

I2Cdevicesupport

智能IO结构支持,嵌入式也比较少使用

ISDNsupport

ISDN的支持选项

Inputdevicesupport

输入设备核支持,通常当需要支持USAB的HID设备时选中

Characterdevices

字符型设备的支持,这个选项是嵌入式系统经常使用的选项,嵌入式系统中大量的设

备都属于Char型的设备

Multimediadevices

多媒体设备的支持

Filesystems

内核对不同文件系统的支持选项,在这里选择需要支持的文件系统

Sound

对声音设备的支持选项

 

USBsupport

各种USB设备的支持

Bluetoothsupport

蓝牙设备的支持

Kernelhacking

内核DeBug用的一些选项,用于报告各种信息

LoadandAlternateConfigrationFile

Load不同的配置文件

SaveConfigrationtoanAlternateFile

保存配置文件

实验小结:

本实验我们编译了Linux内核。

内核的配置选项很多,实验仪提供的内核文件已经做

好了相应的配置,如果想深入了解内核,还需要很多相关的知识。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1