实验七_ 内核配置 编译
- 格式:doc
- 大小:190.00 KB
- 文档页数:8
kernel 编译参数在编译 Linux 内核时,可以使用多种参数来配置和优化内核。
以下是一些常用的参数:1. `make menuconfig`:这是一个基于文本的用户界面,用于配置内核的各个选项。
用户可以选择要包含或排除的功能,并保存配置以便以后使用。
2. `make xconfig`:这是一个基于图形界面的工具,用于配置内核选项。
它使用 Qt 库来创建用户界面,使得配置更加直观和易于使用。
3. `make oldconfig`:如果已经有一个旧的 `.config` 文件,可以使用此参数来快速配置新内核。
它只会询问新内核中与旧配置不同的选项。
4. `make defconfig`:此参数将使用默认配置来编译内核。
这通常是一个针对特定目标硬件的配置,但也可以根据需要手动修改。
5. `make allnoconfig`:此参数将禁用所有启用的内核选项,只启用必需的核心功能。
6. `make allyesconfig`:此参数将启用所有内核选项,不进行任何禁用或排除。
7. `make localmodconfig`:此参数将只启用当前系统上已加载的内核模块。
8. `make localyesconfig`:此参数将启用当前系统上已加载的内核模块,并且不进行任何禁用或排除。
9. `make install`:此参数将编译并安装新内核。
它还会将必要的内核模块和文件复制到相应的目录中,以便在启动时加载新内核。
10. `make -j`:此参数用于并行编译内核,以加快编译速度。
可以指定一个数字来指定要使用的并行进程数。
这些参数可以单独使用,也可以组合使用,具体取决于要执行的操作和目标硬件配置。
在使用 `make` 命令进行内核编译时,建议仔细阅读相关文档以了解更多选项和参数。
Linux 内核配置与编译实践截图演示
1.选择一个内核版本,进行解压,这里我选择的是最新的内核3.0。
命令:tar xvf linux-3.0
2.清除已编译或配置文件:
命令:make diatclean
3.对内核进行配置,形成.config文件(或利用已有的.config进行配置)命令:make menuconfig , 进入配置菜单对有关选项进行配置。
4.编译内核形成bzImage文件:
命令:make bzImage [V=1 ](请耐心等待)[]为可选项
编译完成
5.编译内核模块(请耐心等待)命令:make modules
编译完成
6.安装内核模块
命令:make modules_install
完成安装
**将编译好的内核模块从内核源代码目录copy至/lib/modules下**
7.Linux初始RAM磁盘(initrd)是在系统引导过程中挂载的一个临时根文件系统,用来支持两阶段的引导过程。
制作init ramdisk
命令:mkinitrd initrd-3.0.0 3.0.0
8.移动形成的bzImage文件和initrd-3.0.0 进入文件所在目录
命令:cp bzImage /boot/bzImage-3.0.0
cp initrd-3.0.0 /boot/
9.修改/etc/grub.conf 或者/etc/lilo.conf
命令:vi /etc/grub.conf
10.Reboot 重启
完成。
编译Linux内核实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。
实验内容在linux操作系统环境下重新编译内核。
实验主要内容:●查找并且下载一份内核源代码●配置内核●编译内核和模块●配置启动文件本次实验指导是在Ubuntu 12.04(内核版本为3.2.0-23-generic-pae)的Linux系统里,下载并编译新的Linux内核源代码(鼓励选用最新版本,如3.14.4);然后,配置GNU的启动引导工具grub,成功运行编译成功的Linux内核。
实验指导1.查找并且下载一份内核源代码Linux受GNU通用公共许可证(GPL)保护,其内核源代码是完全开放的。
现在很多Linux的网站都提供内核代码的下载。
推荐使用Linux的官方网站:。
图1 Linux的官方网站在Linux下可以通过wget命令下载源代码:$ cd /tmp$ wget /pub/linux/kernel/v3.x/linux-3.14.4.tar.xz下载的内核源代码保存在/tmp目录下,文件名为linux-3.14.4.tar.xz。
2. 解压内核源代码将新的内核代码解压到/usr/src目录下,注意此处要用root身份。
对于xz类型的压缩包的解压方法:# xz –d linux-3.14.4.tar.xz# tar –xvf linux-3.14.4.tar –C /usr/src需要说明的是,其实还有许多网站保存此文件;它们采取的压缩方式可能不同,需要采用不同的命令进行解压。
3. 配置内核在编译内核前,一般来说都需要对内核进行相应的配置。
配置是精确控制新内核功能的机会。
配置过程也控制哪些需编译到内核的二进制映像中(在启动时被载入),哪些是需要时才装入的内核模块(module)。
首先进入内核源代码目录:# cd /usr/src/linux-3.14.4如果不是第一次编译的话,有必要将内核源代码树置于一种完整和一致的状态(如果是第一次可跳过此步)。
内核编译的步骤内核编译是指将Linux内核源代码转换为可执行的二进制文件的过程。
本文将介绍内核编译的详细步骤,以帮助读者了解并掌握这一过程。
第一步:获取内核源代码要进行内核编译,首先需要获取Linux内核的源代码。
可以通过官方网站或开源社区下载最新版本的内核源代码,也可以从版本控制系统中获取。
第二步:配置内核在进行内核编译之前,需要对内核进行配置。
配置内核的目的是根据具体需求选择合适的功能和选项。
可以使用make menuconfig、make xconfig或make config等命令进行配置。
第三步:编译内核配置完成后,就可以开始编译内核了。
在终端中切换到内核源代码目录,并执行make命令。
编译过程可能需要一段时间,取决于计算机性能和内核源代码的大小。
第四步:安装内核编译完成后,可以将生成的内核安装到系统中。
可以使用make install命令或手动将编译生成的内核文件复制到/boot目录,并修改引导加载程序的配置文件。
第五步:更新引导加载程序安装完内核后,需要更新引导加载程序,使其能够启动新安装的内核。
可以使用grub2-mkconfig、grub-mkconfig、update-grub 等命令更新引导加载程序的配置文件。
第六步:重启系统完成内核编译和引导加载程序的配置后,需要重启系统以使新内核生效。
在重启过程中,选择新安装的内核并等待系统启动。
第七步:验证新内核系统重启后,可以通过执行uname -r命令来验证新内核是否成功安装。
如果显示的内核版本是刚刚安装的新内核版本,则说明内核编译成功。
第八步:配置内核模块除了编译内核本身,还可以编译和加载内核模块。
内核模块是一种动态加载的代码,可以在运行时添加或删除。
可以使用make modules和make modules_install命令编译和安装内核模块。
第九步:定制内核在掌握了基本的内核编译步骤后,还可以根据具体需求进行内核定制。
可以通过配置内核选项和功能来满足特定的需求,例如优化性能、减小内核体积等。
内核编译的步骤以内核编译的步骤为标题,写一篇文章。
一、概述内核编译是将操作系统内核的源代码转换为可以在特定硬件平台上运行的机器代码的过程。
通过编译内核,可以定制操作系统,优化性能,添加新的功能等。
二、准备工作1. 获取内核源代码:可以从官方网站或版本控制系统中获取内核源代码。
2. 安装编译工具链:需要安装交叉编译工具链,以便在主机上编译生成目标平台上的可执行文件。
3. 配置编译环境:设置编译选项,选择适合的配置文件,配置内核参数。
三、配置内核1. 进入内核源代码目录:在命令行中切换到内核源代码目录。
2. 启动配置界面:运行命令“make menuconfig”或“make config”启动配置界面。
3. 配置选项:在配置界面中,可以选择内核所支持的功能和驱动程序,根据需求进行配置。
例如,选择硬件平台、文件系统、网络协议等。
4. 保存配置:保存配置并退出配置界面。
四、编译内核1. 清理编译环境:运行命令“make clean”清理编译环境,删除之前的编译结果。
2. 开始编译:运行命令“make”开始编译内核。
编译过程可能需要一段时间,取决于硬件性能和代码规模。
3. 生成内核镜像:编译完成后,将生成内核镜像文件,通常为“vmlinuz”或“bzImage”。
4. 安装内核模块:运行命令“make modules_install”安装内核模块到指定目录。
五、安装内核1. 备份原始内核:在安装新内核之前,建议备份原始内核以防止意外情况发生。
2. 安装内核镜像:将生成的内核镜像文件复制到引导目录,通常为“/boot”。
3. 配置引导程序:根据使用的引导程序(如GRUB或LILO),更新引导配置文件,添加新内核的启动项。
4. 重启系统:重启计算机,并选择新内核启动。
六、验证内核1. 登录系统:使用新内核启动系统后,使用合法的用户凭证登录系统。
2. 检查内核版本:运行命令“uname -r”可查看当前正在运行的内核版本。
第七章内核编译《计算机操作系统实验指导》Linux内核•Linux是当今流行地操作系统之一。
由于其源码地开放,现代操作系统设计地思想与技术能够不断运用于它地新版本。
因此,读懂并修改Linux内核源代码无疑是学操作系统设计技术地有效方法。
•Linux内核:内核指地是一个提供设备驱动,文件系统,程管理,网络通信等功能地系统软件,内核并不是一套完整地操作系统,它只是操作系统地核心。
•Linux发行版本:一些组织或厂商将 Linux 内核与各种软件与文档包装起来,并提供系统安装界面与系统配置,设定与管理工具,就构成了 Linux 地发行版本。
内核编译方法编译Linux地内核,包括如下几个关键步骤:下载内核源代码Linux受GNU通用公许可证(GPL)保护,内核源代码是完全开放地,可在Linux地官方网站下载。
配置内核源代码配置地作用是精确控制新内核地功能,即控制哪些功能需要编译到内核地二制映像。
编译内核与模块安装与启动Linux内核注意事项提前检查硬盘空间是否足够,四.一六.一0版本内核推荐编译空间为三0GB。
本节介绍主要步骤,实验时请结合参考界面,核对实验步骤与结果是否正确。
一,查看内核版本# uname -r使用该命令查看当前内核地版本。
例如,四.一五.一0-三三-generitic,说明此时地内核版本为四.一五.一0。
二,下载所需内核版本通过Linux官方网站下载内核,也可以到内地某些网站行下载。
本课程推荐内核版本:linux-四.一六.一0。
下载后压缩包:linux-四.一六.一0.tar.gz。
三,解压将压缩包解压到/usr/src,例如可使用命令:# tar xf linux-四.一六.一0.tar.gz -C /usr/src解压完成后跳转至/usr/src,利用ls查看是否成功。
四,配置内核# make menuconfig利用该命令打开config菜单来配置哪些需要直接编译内核,哪些编译成模块,哪些不编译。
Linux内核配置与编译实验报告一.实验目的1、了解Linux 内核源代码的目录结构及各目录的相关内容2、了解Linux 内核各配置选项内容和作用3、掌握Linux 内核配置文件.config 的作用4、掌握Linux 内核的编译过程5、掌握将新增内核代码加入到Linux内核结构中的方法二.实验内容1.Linux 内核源代码的目录结构及各目录的相关内容2.Linux 内核各配置选项3.Linux 内核的编译过程4.新增内核代码加入到Linux内核结构中三.实验结果四.问题回答(一).选择题1.下列哪个命令以文本菜单方式界面配置内核选项: ()A Make menuconfigB make xconfigC make configD make mrproper2. 内核在配置结束后,会将用户的选择结果保存在文件()中A.defconfig B.configC.default D..config3. Kconfig文件中生成新的配置菜单使用()A.menu B.helpC.default D.config4.在操作过程中,内核编译所生成的内核压缩可执行文件是()A.s3c2440 B.linux-2.6.32.2C.zImage D.选项均不真确5.根文件中用来配置系统环境变量的脚本是()A.fstab B.etcC.profile D.linuxrc6.在内核解压缩目录的Makefile文件中修改的ARCH变量实际是在指定()A.优化参数B.目标系统架构C.交叉编译器 D.编译参数7.内核在编译时所依赖的编译规则文件是()A..config B.MakefileC.Make D.File(二)简答题1.LINUX内核经过编译后生成zImage文件在目录下。
2.利用实验提供的 Linux 源代码,写出编译Linux内核的具体过程;3.分析make config、make menuconfig、make xconfig 三个linux 内核配置界面的区别;4、简述将新增设备驱动源代码添加到linux 内核中的步骤。
实验七Linux内核配置、编译分析实验一.实验目的1.了解Linux内核的版本和组成2.掌握Linux系统内核的编译操作方法3.了解Linux系统内核的配置方法4.通过阅读Linux的内核源码,学习系统调用的执行流程,为深入学习内核原理打下牢固基础二.实验工具与设备1.准备最新的Linux操作系统内核,或装有Linux操作系统的计算机并能直接连入Internet2.实验设备:计算机三.实验内容与步骤1.实验预备知识。
通常,更新的内核支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且会修复老版本中发现的许多漏洞等。
经常选择升级更新的系统内核,是Linux用户的必要操作内容。
内核编译模式可以分为编译到内核和编译成模块两种模式。
要增加对某部分功能的支持,例如网络等,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module)动态调用。
如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,其优点是方便、速度快,机器启动即可使用这部分功能。
其缺点是使内核变得庞大起来,无论是否需要这部分功能,它都会存在。
建议将经常使用的部分直接编译到内核中,如网卡;如果编译成模块,则生成对应的.o文件,使用时可以动态加载,优点是不会使内核过分庞大,缺点是必须得由用户自己来调用这些模块。
2.下载新内核本实验从/pub/linux/kernel/v2.4/linux-2.4.30.tar.gz下载linux-2.4.30.tar.gz内核,并将下载的内核linux-2.4.30.tar.gz保存在“/usr/src”目录下。
3.内核解包编译内核前,应对下载的内核文件进行解包,操作方法如下。
(1)用以下命令将当前目录改到/usr/src下: cd /usr/src(2)如果/usr/src目录下存在一个“linux”的目录,应将其改名为“linux.old”;如果不存在,则直接执行以下命令:tar xzvf ./linux-2.4.30.tar.gz(3)执行该命令后,内核源代码被释放到一个新的“linux-2.4.30”目录下。
//注意:目录名可能因版本的不同而有所区别。
为方便起见,将该目录名字改为“linux”,操作//命令如下: mv linux-2.4.30 linux4.配置内核Linux提供多种配置内核的方法,可以根据需要与爱好使用下面命令中的一个。
//make config命令:基于文本配置界面的配置命令。
//make menuconfig命令:基于文本菜单配置界面的配置命令。
make xconfig命令:基于图形窗口模式配置界面的配置命令。
本实验以基于图形窗口模式配置界面的配置命令为例配置内核,具体操作步骤如下。
(1)用以下命令将当前目录改到解包文件目录“/usr/src/linux”下: cd /usr/src/linux(2)用以下配置命令打开配置对话框: make xconfig执行命令后,弹出配置对话框,如图4-1所示。
配置内核的选项很多。
选择每一项配置时,可以有三个选择按钮,如图4-2所示。
每个按钮的意义如下。
y:将该功能编译进内核。
n:不将该功能编译进内核。
m:将该功能编译成可以在需要时动态插入到内核中的模块。
单击“Main Menu”按钮,返回主配置窗口;单击“Next”按钮,配置下一个配置项;单击“Prev”按钮,配置上一个配置项。
在编译内核的过程中,大部分选项可以使用缺省值,只有部分要根据用户的需要进行更改。
修改的原则是将与内核其他部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗内存,简化该功能相应的环境改变时对内核的影响;不需要的功能不选;与内核关系紧密而且经常使用的部分功能代码则直接编译到内核中。
几个主要的配置项如下:① Loadable module support:设置对可加载模块的支持,有以下三个选项:– Enable loadable module support:除非准备把所有需要的内容都编译到内核里面,否则该项应该是必选的(y)。
– Set version information on all module symbols:有关版本信息加载项,可以不选它(n)。
– Kernel module loader:让内核在启动时有自己装入必需模块的能力,建议选上(y)。
② Processor type and features:设置CPU的类型,有关的几个选项如下:– Processor family:根据所使用的计算机选择CPU类型。
– High Memory Support:设置大容量内存的支持,可以支持到64GB,一般可以不选。
– Math emulation:协处理器仿真,如果CPU中没有数字协处理器则应选中,不过从486以后一般的CPU都有数字协处理器了,所以一般不选(n)。
– MTTR support:MTTR支持,可不选(n)。
– Symmetric multi-processing support:对称多处理支持,如果计算机上有多于一个CPU就一定要选,若是单CPU,则不选(n)。
③ General setup:对普通的一些属性进行设置。
一般使用缺省设置,经常使用的一些选项:– Networking support:网络支持,必选,没有网卡也建议选上(y)。
– PCI support:PCI卡的支持,如果使用了PCI接口卡,则必选(y)。
– PCI access mode:PCI卡的存取模式,可供选择的有BIOS、Direct和Any,一般可选Any。
– Support for hot-pluggabel devices:热插拔设备支持,支持的不是太好,可不选。
–PCMCIA/CardBus support:PCMCIA/CardBus支持,有PCMCIA就必选了(y)。
④ Parallel port support:并口的支持,一般应选上(y)。
⑤ Plug and Play configuration:即插即用配置。
Linux有一定的即插即用功能,可选上。
⑥ Block devices:块设备支持,其中:– Normal PC floppy disk support:普通PC软盘支持,该项应选(y);– Network block device support:网络块设备支持,若希望访问网上邻居的内容,则应选取。
⑦ Networking options:要选取TCP/IP networking选项。
⑧ Network device support:网络设备支持,本项的选项很多,要注意选取正在使用的网络设备,例如正在使用Realtek 8139的网卡,则“Ethernet(10 or 100Mbit)”就必须选上,还应选中对应的网卡型号“RealTeck RTL-8139 PCI Fast Ethernet Adapter support”,若找不到所用网卡的型号,则应寻求厂商的支持,或到购买的网卡驱动盘中寻找。
⑨ Mice:鼠标设置。
可以支持总线、串口、PS/2、C&T 82C710 mouse port、PC110 digitizer pad等类型的鼠标,应根据所用的鼠标类型进行选择。
⑩ File systems:文件系统类型。
内容很多,主要有以下几项:– DOS FAT fs support:DOS FAT文件格式的支持,可以支持FAT16、FAT32。
– NTFS file system support:NTFS是Windows NT/2000使用的文件格式。
– /proc file system support:/proc文件系统是Linux提供给用户和系统进行交互的通道,建议选上,否则某些功能没法正确执行。
⑪ Sound:声卡驱动,从列表中找到对应的声卡型号。
⑫ USB support:USB接口的支持,根据需要选择。
配置内核后,单击“Save and Exit”按钮存盘退出配置窗口。
***注意!在vmware环境下有几个点是一定要选的,并且要选择编译到内核中。
通常vmware的虚拟机默认是SCSI接口的硬盘,所以要选择支持SCSI硬盘Device Drivers --->SCSI device support ---><*> SCSI disk supportDevice Drivers --->SCSI device support --->SCSI low-level drivers ---> <*> BusLogic SCSI support文件系统支持ext3 相关的文件系统支持都要选成星号网卡支持Device Drivers ---> Networking support --->Ethernet (10 or 100Mbit) ---> <*> AMD PCnet32 PCI support最后记得保存配置。
5.生成依赖(dependency)信息,清除旧的编译结果配置内核后,返回命令窗口。
为确保关键文件,在正确的位置输入以下命令: make dep//为确保所有有关文件都处于最新版本状态,需要输入命令: make clean//检查是否生成依赖(dependency)信息并清除旧的编译结果。
6.编译二进制内核映像文件在“/usr/src/linux”目录下建立二进制的内核映像文件,命令如下: make bzImage (输入命令时请注意区分大小写)编译过程持续几分钟。
编译结束后,在/usr/src/linux/arch/i386/boot目录下可找到名为“bzImage”的映像文件,即新内核的映像文件。
7.编译模块编译二进制内核映像文件后,需要进行模块的编译,命令如下:make modules 及 make modules_install模块被编译且安装到 /usr/lib/<内核版本号> 目录下。
至此,内核被编译完成,内核模块也编译完成并被安装。
命令mkinitrd /boot/initrd-2.4.30.img 2.4.30 ,在/boot目录下生成新内核初始化引导的映像文件。
8.配置启动管理器为了操作方便,先将编译好的新内核的映像文件(bzImage)复制到系统目录/boot 下。
命令如下: cp /usr/src/linux/arch/i386/boot/bzImage /boot如果用Grub启动管理器,/boot/grub/grub.conf配置文件则添加以下几项:title newlinux '设置启动菜单选项的标签,即让启动的时候多一项“newlinux”的选择菜单root (hd0,0)kernel /boot/bzImage ro root=/dev/sda2initrd /initrd-2.4.30.img注意:第3句kernel /boot/bzImage ro root=/dev/hda2中,kernel后的/boot/bzImage必须指定新内核的路径和文件名。