内核技术Linux内核裁剪的具体步骤
- 格式:doc
- 大小:43.50 KB
- 文档页数:7
内核配置与裁剪1. Linux内核配置内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig 等等,它们的功能都是一样的。
这里用的是make menuconfig。
过去基于2.x的内核为用户提供了四种基本的内核设置编辑器:✧. config 服务于内核设置的一个冗长的命令行界面;✧. oldconfig 一个文本模式的界面,主要包含一个已有设置文件,对用户所发现的内核资源中的设置变量进行排序;✧. menuconfig 一个基于光标控制库的终端导向编辑器,可提供文本模式的图形用户界面;✧. xconfig 一个图形内核设置编辑器,需要安装X-Window系统。
前三种编辑器在设置2.6内核时仍可使用,在运行“make xconfig”后,原有的界面被两个新的图形设置编辑器所代替。
这需要具体的图形库和X-Window系统的支持。
另外,用户还可以通过“make defconfig”命令,利用所有内核设置变量的缺省值自动建立一个内核设置文件。
下面具体介绍Linux内核配置选项:. 代码成熟度选项Code maturity level options --->[*] Prompt for development and/or incomplete code/drivers[*] Select only drivers expected to compile cleanly在内核中包含了一些不成熟的代码和功能,如果我们想使用这些功能,想打开相关的配置选项,就必需打开这一选项。
. 通用设置选项General setup --->() Local version - append to kernel release[*] Automatically append version information to the version string[*] Support for paging of anonymous memory (swap)[*] System V IPC[*] POSIX Message Queues[*] BSD Process Accounting[*] BSD Process Accounting version 3 file format[*] Sysctl support[ ] Auditing support[*] Support for hot-pluggable devices[*] Kernel Userspace Events[*] Kernel .config support[*] Enable access to .config through /proc/config.gz() Initramfs source file(s)[*] Configure standard kernel features (for small systems) ---> --- Configure standard kernel features (for small systems) [ ] Load all symbols for debugging/kksymoops[ ] Do an extra kallsyms pass[ ] Enable support for prinlk[ ] BUG()support[ ] Enable full-sinzed data structures for core[*] Enable futex support[*] Enable eventpoll support[*] Optimize for size[*] Use full shmem filesystem(0) Function alignment(0) Label alignment(0) Loop alignment(0) Jump alignmentLocal version - append to kernel release:这里填入的是64字符以内的字符串,在这里填上的字符串可以用uname -a命令看到。
《Linux操作系统》实验报告
实验序号:实验项目名称:内核裁减
1 在虚拟机上裁减系统内核
1)检查编译器的版本
进入系统内核源代码目录查看
删除过时的目标文件
使用X图形来运行系统内核,此方法采用图形窗口按钮进行人机交换
配置完成后,保存并退出:
2)编译新内核
A.执行make dep 命令
B.执行make clean 命令
运行以上两条命令没有出现错误,则执行命令make bzImage,生成一个全新内核
查看产生的bzImage文件
运行命令make modules
运行命令make modules_install
3)使用新内核启动系统
备份正在使用的系统内核
因为要用GRUB配置文件启动,必需修改grub.conf文件
重新启动。
Linux内核裁剪实例从零开始配置内核是不明智的,建议在某一个默认配置的基础上进行修改,以达到自己产品的实际需求。
裁剪和配置内核的基本原则:⏹基于某一个最接近的主板配置来修改;⏹必须的、能确定的选项选中;⏹不能确定的则不要改变原来配置;⏹可选可不选的,建议根据help信息决定或者不选;⏹一次改动不要太多,渐进式修改和验证;⏹注意及时备份配置文件,出现意外可以回退恢复。
下面给出一些常见功能的配置裁剪实例,很多功能与所采用的主板硬件相关,与其它不同主板的内核配置上不一定完全相同,但还是有一些参考意义。
1.1.1 GPIO子系统配置Linux 2.6以上内核引入了子系统,GPIO子系统将全部GPIO的操作接口都通过“/sys/class/gpio/”目录导出,非常方便用户使用。
输入下列命令,进入内核配置菜单:$ make ARCH=arm menuconfig在主菜单界面中选择“Device Drivers”:[*] Networking support --->Device Drivers --->File systems --->Kernel hacking --->进入“Device Drivers”界面,选择并进入“GPIO Support”:[*] SPI support --->PPS support --->PTP clock support-*- GPIO Support ---><*> PWM Support --->在“GPIO Support”中选中“/sys/cla ss/gpio…”:--- GPIO Support[*] /sys/class/gpio/... (sysfs interface)*** Memory mapped GPIO drivers: ***…配置后重新编译内核,使用新内核的系统即可通过“/sys/class/gpio/”访问系统的GPIO 了。
实验四内核裁减和编译一、实验目的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 menuconfigB.设置开发板上的鼠标不能操作。
进入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 /tftpD.启动mini终端。
XSBase255> boot[root @XSBASE /root]$ tfp 192.168.0.77ftp>cd /ftp>get /tftp/zImageE.这个时候在重启板子一下,板子就不能执行触摸屏上的鼠标操作了。
linux ko裁剪方法【原创实用版2篇】目录(篇1)1.Linux KO 裁剪方法的背景和意义2.Linux KO 裁剪方法的具体步骤3.Linux KO 裁剪方法的优点和局限性4.结论正文(篇1)1.Linux KO 裁剪方法的背景和意义Linux KO(Kernel Organization)是指 Linux 内核组织,负责维护Linux 内核的开发和发布。
Linux KO 裁剪方法是指在内核开发过程中,对不需要的代码进行裁剪,以减小内核的大小,提高系统的性能和稳定性。
这对于嵌入式系统、实时操作系统等对系统资源有限制的场景具有重要意义。
2.Linux KO 裁剪方法的具体步骤(1)熟悉内核结构:在进行裁剪之前,需要对 Linux 内核的结构有一定的了解。
Linux 内核主要分为核心(kernel)、驱动(driver)、系统调用(system call)、模块(module)等部分。
(2)确定裁剪目标:根据系统的需求,确定需要裁剪的功能模块。
例如,对于嵌入式系统,可能不需要支持所有网络协议,因此可以裁剪掉不需要的网络驱动。
(3)查找并删除相关代码:在确定裁剪目标后,查找相应的代码并在内核源码中进行删除。
这一步需要对内核代码有一定了解,以避免误删其他功能模块的代码。
(4)重新编译内核:完成代码裁剪后,重新编译内核,生成新的内核镜像文件。
(5)测试和调试:将新的内核镜像文件刷入目标系统,进行功能测试和性能测试。
如果发现问题,需要进行调试和修复。
3.Linux KO 裁剪方法的优点和局限性优点:通过 Linux KO 裁剪方法,可以减小内核的大小,降低系统资源的占用,提高系统的性能和稳定性。
此外,裁剪后的内核更加精简,便于维护和升级。
局限性:Linux KO 裁剪方法需要对内核代码有一定了解,对于新手来说,学习成本较高。
同时,裁剪过程中可能出现误删代码、编译失败等问题,需要具备一定的调试能力。
此外,裁剪后的内核可能会导致某些功能的缺失,需要根据实际需求进行权衡。
1,获得源码,解压,进入解压后的目录;命令;2,修改makefile;为了能让此目录被执行所以在顶级目录的makefile中同时也进行修改;3,得到.config文件;命令;编译内核时对.config文件的依赖比较大,我们需要一个自己的.config文件,又因为我们的板子和smdk2410的很像,仅需将smdk2410的.config 文件复制到顶级目录即可不用修改;4;修改nandflash 分区;此系统启动时从nandflash 中启动而我们的板子不是的所以对其进行必要的修改;5,添加网卡驱动;arch/arm/mach-s3c2410/mach-smdk2410.c开发板上已经配置要的相应的网卡,并且内核中也有相应的实现代码我们只需做一下简单的修改;6添加yaffz文件系统支持将yaffz 源码包考到和linux-2.6.24 同一级目录下解压;在给内核打上补丁;命令是;7、配置和编译内核到现在,一个简单的内核就准备好了,我们还需要做一些配置,然后编译,内核才能正常使用。
在内核源代码的根目录下运行make menuconfig命令,进入配置界面:8,用u-boot启动内核;编译U-Boot时在源代码的tools目录下会生成一个mkimage可执行文件,用这个工具可以对前面编译内核时生成的zImage进行处理,以供U-Boot启动。
cd linux-2.6.24.4/arch/arm/bootcp /up-Star2410/kernel/linux-2.6.24.4/mkimage . 获取mkimage工具./mkimage -A arm -T kernel -C none -O linux -a 0x30008000 -e 0x30008040 -d zImage -n 'Linux-2.6.24' uImage9,最后把生成的uimage 放到主机tftp同目录下,启动开发板;用u-boot的tftp命令下载到sdram;。
Linux内核的裁剪和移植的过程就是:根据硬件平台资源等需求来修改一套完整linux源码,添加与硬件资源等相关的功能模块,除去与硬件资源等不相关的功能模块,然后经过交叉编译生成简化的功能齐全的linux内核zImage。
Linux内核裁剪的必备工具:1、make menuconfig,基于图形界面的内核配置工具,可使配置linux内核更加便捷,为此需要安装libncurses5-dev软件包,这个软件包可在root用户下利用apt-get install libncurses5-dev命令来下载并安装。
2、arm-linux-gcc,交叉编译工具,将配置好的linux内核经过交叉编译生成zImage,使其可以在arm平台上运行。
为此需下载arm-linux-gcc-4.3.2.tgz 软件包,使用tar zxvf arm-linux-gcc-4.3.2.tgz -C /命令解压安装,安装完整后为相gcc命令一样使用arm-linux-gcc,则需要在系统环境变量中添加arm-linux-gcc的路径。
方法在.bashrc文件中添加export PATH=$PATH: /usr/local/arm/4.3.2/bin。
准备好以上两个工具之后即可完成对linux内核的裁剪,移植就是一个download 的过程。
Linux内核配置选项:1、下载linux-2.6.39源码,首先修改内核源码根目录的Makefile文件,将第195行修改为ARCH ?= arm ,此处修改说明linux内核将运行在arm平台上,将第196行修改为CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-, 此处指出使用arm-none-linux-gnueabi-对内核进行交叉编译,也可直接使用arm-linux-,但是在实际编译时提示无法找到arm-linux-编译不通过,原因暂时不明,因此将整个的编译器执行文件的路径给出。
在Linux操作系统上进行音频剪辑在Linux操作系统上进行音频剪辑是一项常见的任务,无论是为了制作音乐,还是为了编辑声音片段。
Linux提供了一些强大的工具,可以帮助用户轻松地进行音频剪辑。
本文将介绍如何在Linux上使用这些工具来进行音频剪辑。
一、安装必要的软件在开始音频剪辑之前,首先需要安装一些必要的软件。
在Linux系统中,常用的音频编辑软件包括Audacity、Ardour和LMMS。
用户可以根据自己的需求选择适合自己的软件进行音频剪辑。
二、导入音频文件在开始音频剪辑之前,首先需要导入要编辑的音频文件。
用户可以通过拖放文件或者使用菜单选项将音频文件导入到编辑软件中。
一旦导入成功,用户就可以开始对音频文件进行编辑了。
三、裁剪音频文件在进行音频剪辑时,最基本的操作就是裁剪音频文件。
用户可以使用编辑软件提供的裁剪工具来选择要删除的部分,然后简单地点击删除按钮即可完成裁剪操作。
通过重复这个步骤,用户可以对音频文件进行精细的裁剪。
四、调整音频效果除了裁剪音频文件之外,用户还可以调整音频的各种效果,如音量、均衡器和混响等。
通过编辑软件提供的调整工具,用户可以实时预览效果,并且可以随时撤销修改,直到满意为止。
五、添加音效在音频剪辑过程中,用户还可以添加各种音效来丰富音频的效果。
比如添加淡入淡出效果、回声效果或者变声效果等。
通过这些音效,用户可以为音频文件增添更多的个性化元素。
六、导出编辑后的音频文件编辑完成后,用户可以将音频文件导出为常见的音频格式,如MP3、WAV或者FLAC等。
在导出过程中,用户可以选择音频文件的质量和参数,以满足自己的需求。
一旦导出成功,用户就可以将编辑后的音频文件保存到本地或者分享给他人了。
结语:在Linux操作系统上进行音频剪辑并不复杂,只要掌握一些基本的操作技巧和工具,就可以轻松地完成音频剪辑工作。
希望本文介绍的内容对您有所帮助,让您能够更好地利用Linux系统进行音频剪辑。
嵌入式Linux内核裁剪与系统构建实验一、实验目的1、了解linux内核裁减过程,掌握内核的编译方法及在开发板下如何运行一个内核。
2、学会基于busybox的根文件系统的制作。
3、熟悉开发板及uboot的使用。
二、实验条件✓IBM-PC兼容机✓Redhat9.0或其他兼容的Linux操作系统✓OMAP3730开发板三、实验原理1、linux内核裁减编译://见教材6.3.2 (第一版p126-p130,第二版p143-p147)2、基于busybox根文件系统制作:见教材6.3.3 (第一版p131-p136,第二版p148-p154)3、Uboot使用:参照附录一4、内核裁剪编译参考步骤:参照附录二5、根文件系统制作参考步骤:参照附录三6、在开发板OMAP3730下运行内核参考步骤:参照附录四7、OMAP3730开发板:四、实验内容与实验步骤1、内核裁减编译。
2、基于busybox,制作根文件系统。
3、在开发板上运行自己裁减过的内核和文件系统。
备注:本实验默认在ubuntu下进行,在其他版本的linux中操作基本类似。
实验中用到的软件包均可在xmu_omap3730_lib1.tar.gz中找到。
输入命令$ tar zxvf xmu_omap3730_lib1.tar.gz。
注:这里的$,包括下文的#均表示一种系统用户权限,前者表示普通用户,后者表示超级用户;在ubuntu下可在命令前追加sudo命令来使用超级用户权限,在fedora下可输入su命令后,按提示输入密码即可切换超级用户。
一般来说普通用户能做的超级用户均有权限做。
五、实验报告要求实验报告中要包含以下几个部分:1、实验目的2、实验条件3、实验原理4、实验步骤分析5、实验结果与总结实验步骤要详细,关键步骤要有截图,运行结果也要有截图。
内核配置要求列出选择的内核配置选项,并说明它的功能。
说明编译出来的内核文件uImage大小附录一u-boot命令简介:printenv 用来打印u-boot中正在使用的所有环境变量(包括未保存的),可不带参数setenv 用来设置一个环境变量,参数用空格隔开。
linux ko裁剪方法摘要:1.Linux KO 裁剪方法的概念和背景2.Linux KO 裁剪方法的具体步骤3.Linux KO 裁剪方法的优点和适用场景4.Linux KO 裁剪方法的注意事项和潜在问题正文:1.Linux KO 裁剪方法的概念和背景Linux KO(Kernel Organization)是指Linux 内核组织,负责维护和发展Linux 内核。
Linux KO 裁剪方法是指在内核中裁剪掉不需要的代码和模块,以减小内核体积,提高系统性能和稳定性。
这种方法广泛应用于嵌入式系统、实时操作系统和高性能服务器等领域。
2.Linux KO 裁剪方法的具体步骤(1)熟悉内核结构:了解Linux 内核的基本组成,包括进程管理、内存管理、文件系统、设备驱动等模块。
(2)选择合适的内核版本:根据实际需求选择合适的Linux 内核版本,如需要长时间支持的稳定版,或者最新功能和性能的开发版。
(3)配置内核:通过make menuconfig 或者make config 等工具,选择需要的内核选项和模块,去掉不需要的代码和模块。
(4)编译内核:根据配置文件编译内核,生成新的内核镜像文件。
(5)更新系统:将新的内核镜像文件烧写到目标设备,并更新系统配置。
3.Linux KO 裁剪方法的优点和适用场景优点:(1)减小内核体积,降低系统复杂度,提高系统性能和稳定性。
(2)节省存储空间和运行时内存,降低系统资源消耗。
(3)简化系统维护,减少潜在的安全隐患。
适用场景:(1)嵌入式系统:由于嵌入式系统资源有限,需要针对性地裁剪内核,提高系统性能。
(2)实时操作系统:对系统响应时间和实时性能有严格要求的场景,可以通过裁剪内核达到优化目的。
(3)高性能服务器:高性能服务器对系统性能和稳定性要求高,通过裁剪内核可以提高系统性能。
4.Linux KO 裁剪方法的注意事项和潜在问题注意事项:(1)熟悉内核结构,避免误操作导致系统崩溃。
Linux内核编译内幕详解内核,是一个操作系统的核心。
它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/l inux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。
全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。
而Linux的内核则是这些特点的最直接的代表。
想象一下,拥有了内核的源程序对你来说意味着什么?首先,我们可以了解系统是如何工作的。
通过通读源代码,我们就可以了解系统的工作原理,这在Windows下简直是天方夜谭。
其次,我们可以针对自己的情况,量体裁衣,定制适合自己的系统,这样就需要重新编译内核。
在Windows下是什么情况呢?相信很多人都被越来越庞大的Windows整得莫名其妙过。
再次,我们可以对内核进行修改,以符合自己的需要。
这意味着什么?没错,相当于自己开发了一个操作系统,但是大部分的工作已经做好了,你所要做的就是要增加并实现自己需要的功能。
在Windows下,除非你是微软的核心技术人员,否则就不用痴心妄想了。
内核版本号由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。
Linux的开发采用的是集市模型(bazaar,与cathedral--教堂模型--对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。
一个树是稳定树(stable tree),另一个树是非稳定树(unstable tree)或者开发树(d evelopment tree)。
一些新特性、实验性改进等都将首先在开发树中进行。
如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。
基于ARM的嵌入式linux内核的裁剪与移植前言嵌入式系统一直是计算机行业中的领域之一。
在许多应用程序中,嵌入式系统越来越流行。
嵌入式系统通常使用嵌入式芯片,如ARM芯片,并且它们通常运行Linux内核。
Linux内核是一个开放源代码的操作系统内核。
在嵌入式领域,Linux 内核可以被用于实现各种应用程序。
本文将重点介绍如何基于ARM平台的嵌入式Linux内核进行裁剪和移植。
ARM平台ARM处理器是一种RISC(Reduced Instruction Set Computer)处理器。
这种类型的处理器可用于嵌入式系统开发,因为它具有较低的功耗和高效的性能。
ARM处理器有许多版本,其中包括ARMv6和ARMv7。
ARMv6通常用于嵌入式系统,而ARMv7则用于智能手机和平板电脑等高端设备。
Linux内核的裁剪在嵌入式系统中,Linux内核需要进行裁剪,以适应嵌入式设备的需求。
与桌面计算机相比,嵌入式系统拥有更少的资源,包括RAM、闪存和存储空间。
因此,在将Linux内核移植到嵌入式系统之前,必须将内核进行裁剪。
在裁剪内核之前,您必须确定哪些内核模块是必需的。
一些模块可以从内核中移除,以减少内核的大小。
通常,将不必要的模块和其他功能从内核中移除可以使内核变得更小并具有更好的性能。
另外,裁剪内核时应确保其他组件与内核兼容。
例如,在新内核中可能需要更改驱动程序或实用程序以适应修改后的内核。
裁剪内核可能是一项比较困难的工作,需要深刻了解Linux内核的各个方面,以确保正确地裁剪内核。
移植Linux内核到ARM移植内核是将Linux内核适应新硬件的过程。
在开始移植内核之前,您必须了解嵌入式设备的硬件架构以及所需的内核组件。
移植Linux内核到ARM可以分为以下步骤:1.选择合适的ARM平台和处理器并确定所需的内核选项。
2.下载最新的内核源代码。
3.配置内核选项,并使其适应新硬件。
4.使用交叉编译器编译内核。
linux内核裁剪及编译步骤Linux内核裁剪及编译步骤Linux操作系统的内核是其最重要和核心的组成部分。
用户可以根据自己的需要对内核进行裁剪以减少内核代码的大小,以及支持特定的硬件和功能。
Linux内核的裁剪和编译步骤相对来说比较复杂,需要一定的技术和安装环境的支持。
下面将介绍Linux内核裁剪及编译的具体步骤,以供参考。
一、准备工作在开始进行Linux内核的裁剪及编译之前,需要进行一些准备工作。
首先,需要安装Linux操作系统的开发环境。
其次,需要下载Linux内核的源代码,可以从Linux 的官方网站或者其他开源社区下载。
二、配置内核选项安装好开发环境和下载好源代码之后,就可以开始进行内核的裁剪和编译了。
首先需要进行内核选项的配置。
可以使用make menuconfig命令进入配置界面。
在这个界面中,用户可以对内核进行不同程度的裁剪,包括去掉多余的硬件支持和功能选项。
在配置选项中,用户需要选择一些基本的配置选项,包括文件系统类型、设备驱动、协议栈、安全选项、虚拟化等。
用户可以根据自己的需要,进行选项的选择和配置。
三、编译内核在完成了内核的配置之后,下一步就是进行内核的编译。
可以使用make命令进行编译。
编译过程中需要耗费一定的时间和资源,因此建议在空闲时刻进行编译。
如果出现编译错误,需要根据错误提示进行排查和解决。
编译错误很可能是由配置选项不当造成的,因此要仔细检查配置选项。
四、安装内核编译完成后,就可以安装内核。
可以使用make install命令进行安装。
安装完成后,可以重启系统,以使新的内核生效。
在重启时,需要手动选择新的内核,可以选择自己编译的内核或者系统默认的内核。
五、总结对于不同的用户,对内核的需求和选择是不同的。
因此,在对内核进行裁剪时,需要根据自己的需求进行适当的选择,以提高系统性能和稳定性。
同时,在进行内核的编译时,也需要仔细检查配置选项和随时记录日志以便排除可能出现的问题。
linux内核裁剪基本步骤嘿,朋友们!今天咱就来聊聊 Linux 内核裁剪那些事儿。
你想想看啊,Linux 内核就像是一个超级大的宝库,里面啥都有,但咱有时候并不需要那么多东西呀,这时候就需要来一场“瘦身行动”啦!那怎么开始呢?首先,你得清楚自己到底要干啥。
就好比你要去旅行,你得知道自己想去哪儿,带啥东西,对吧?得明确自己的系统需要哪些功能,哪些是多余的。
这可不是随随便便就能决定的哦,得好好琢磨琢磨。
然后呢,就是了解内核的各种配置选项啦。
这就像你去超市买东西,得知道每个货架上都有啥呀。
这里面的门道可不少呢,什么驱动啊、模块啊,都得搞清楚。
可别小瞧了这些配置选项,它们就像是一个个小开关,决定着哪些功能会被启用,哪些会被关掉。
接下来,就是动手裁剪啦!这可真是个精细活儿,就跟雕刻大师在雕琢一件艺术品似的。
小心翼翼地去掉那些不需要的部分,留下精华。
这过程可得有耐心,不能着急,不然一不小心剪错了可就麻烦啦。
再之后,就是编译啦!把裁剪好的内核重新编译一下,让它变成适合你的那个独一无二的版本。
这就好比给你的系统穿上了一件量身定制的衣服,合身又舒适。
裁剪的过程中,你可能会遇到各种各样的问题。
哎呀,这就跟你走路会遇到小石子一样正常。
别慌,冷静下来慢慢解决。
也许会花费你一些时间和精力,但当你看到裁剪后的内核完美运行的时候,那种成就感,简直无与伦比!你说这是不是很有趣呢?就像给自己的电脑来了一次大改造。
而且通过裁剪内核,还能让系统运行得更高效、更稳定呢!总之呢,Linux 内核裁剪可不是一件简单的事儿,但也绝对不是什么难到登天的事儿。
只要你有耐心、有决心,再加上一点点技巧,肯定能把它搞定。
还等什么呢?赶紧去试试吧,让你的系统变得更加强大、更加适合你!。
内核技术:Linux内核裁剪的具体步骤在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Code maturity level options ---> 代码成熟等级选项[]Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。
第二部分:除以下选项,其它全部删除General setup—〉System V IPC (IPC:Inter Process Communication)是组系统调用及函数库,它能让程序彼此间同步进行交换信息。
某些程序以及DOS模拟环境都需要它。
为进程提供通信机制,这将使系统中各进程间有交换信息与保持同步的能力。
有些程序只有在选Y的情况下才能运行,所以不用考虑,这里一定要选。
第三部分:除以下选项,其它全部删除Loadable module support ---> 可引导模块支持建议作为模块加入内核[] Enable loadable module support 这个选项可以让你的内核支持模块,模块是什么呢?模块是一小段代码,编译后可在系统内核运行时动态的加入内核,从而为内核增加一些特性或是对某种硬件进行支持。
一般一些不常用到的驱动或特性可以编译为模块以减少内核的体积。
在运行时可以使用modprobe命令来加载它到内核中去(在不需要时还可以移除它)。
一些特性是否编译为模块的原则是,不常使用的,特别是在系统启动时不需要的驱动可以将其编译为模块,如果是一些在系统启动时就要用到的驱动比如说文件系统,系统总线的支持就不要编为模块了,否在无法启动系统。
[]Automatic kernel module loading 一般情况下,如果我们的内核在某些任务中要使用一些被编译为模块的驱动或特性时,我们要先使用modprobe命令来加载它,内核才能使用。
不过,如果你选择了这个选项,在内核需要一些模块时它可以自动调用modprobe命令来加载需要的模块,这是个很棒的特性,当然要选Y 喽。
第四部分:全部删除Block layer-----〉块设备第五部分:除以下选项,其它全部删除Processor type and features ---> 处理器类型Subarchitecture Type (PC-compatible) ---> 这选项的主要的目的,是使Linux可以支持多种PC标准,一般我们使用的PC机是遵循所谓IBM兼容结构(pc/at)。
这个选项可以让你选择一些其它架构。
我们一般选择PC-compatible就可以了。
Processor family(386): 它会对每种CPU做最佳化,让它跑的好又快,一般来说,你是什么型号的就选什么型号的就好。
我选的是386,这样内核会省下不少空间第六部分:除以下选项,其它全部删除Power management options (ACPI, APM) ---> 电源管理选项[ ] Power Management Debug Support 电源管理的调试信息支持,如果不是要调试内核有关电源管理部份,请不要选择这项。
ACPI Support ---〉高级电源接口配置支持,如果BIOS支持,建议选上这项[]Button 这个选项用于注册基于电源按钮的事件,比如power, sleep等,当你按下按钮时事件将发生,一个守护程序将读取/proc/acpi/event,并执行用户在这些事件上定义的动作比如让系统关机。
可以不选择,根据自己的需求。
第七部分:除以下选项,其它全部删除Bus options (PCI, PCMCIA, EISA, MCA, ISA) ---> 总线选项[]PCI supportPCI access mode (Any) ---> PCI外围设备配置,强列建议选Any,系统将优先使用MMConfig,然后使用BIOS,最后使用Direct检测PCI设备。
第八部分:除以下选项,其它全部删除Executable file formats --->Kernel support for ELF binaries ELF是开放平台下最常用的二进制文件,它支持不同的硬件平台。
一定要选。
第九部分:除以下选项,其它全部删除NetworkingNetworkingg options --->[]Unix domain sockets[]TCP/IP networking第十部分:除以下选项,其它全部删除Device Drivers --->设备驱动Block devices-------〉[]Compaq SMART2 support[] Compaq Smart Array 5xxx support[]Loopback device support 大部分的人这一个选项都选N,因为没有必要。
但是如果你要mount iso文件的话,你得选上Y。
这个选项的意思是说,可以将一个文件挂成一个文件系统。
如果要烧光盘片的,那么您很有可能在把一个文件烧进去之前,看看这个文件是否符合IS09660的文件系统的内容,是否符合您的需求。
而且,可以对这个文件系统加以保护。
不过,如果您想做到这点的话,您必须有最新的mount程序,版本是在2.5X版以上的。
而且如果您希望对这个文件系统加上保护,则您必须有des.1.tar.gz 这个程序。
注意:此处与网络无关。
建议编译成模块[] RAM disk supportSCSI device support ---> 里面有关于USB支持的,要选择[]SCSI device support USB要用,必须选择[]legacy /proc/scsi/ support USB要用,必须选择[]SCSI disk support USB要用,必须选择SCSI Low-level drivers[]Serial A TA(SATA) support[]Intel PIIX/ICH SA TA support 这个必须选择,否则无法产生引导文件[]Via SA TA supportNetworking device support ---> 这个下面是选网卡驱动,一定要选我的电脑是千兆网卡所以就选这个 Ethernet(1000mbit)-[]broadcom Tigon3supportInput device support ---> 这个里面要设置你的鼠标键盘什么的[]Provide legacy /dev/psaux deviceGraphics support --->[]Support for frame buffer devices 支持Frame buffer的,一定要选择USB support --->[]USB device filesystem 这个好象是用U盘必须的[]EHCI HCD (USB 2.0) support 有usb2.0就选上把,编译成模块[]OHCI HCD support 必须选择,编译成模块[]UHCI HCD (most Intel and VIA) support 必须选择,编译成模块[]USB Mass Storage support 用U盘必须选择USB Human Interface Device (full HID) support 里面选择usb鼠标和usb键盘,如果你有一定选上这个必需选HID input layer support 应该选择/dev/hiddev raw HID device support如果这里有USB键盘和鼠标选项,一定要选择第十一部分:除以下选项,其它全部删除file systems --->文件系统Second extended fs supportExt2 extended attributesExt2 POSIX Access Control ListsExt2 Security LabelsExt3 journalling file system supportExt3 extended attributesExt3 POSIX Access Control ListsExt3 Security Labels 以上这些肯定是要选择的,linux的标准文件系统Kernel automounter support 内核自动挂载的,当然要选Kernel automounter version 4 support (also supports v3) 当然要选<BR>DOS/FAT/NT Filesystems --->DOS FA T fs supportMSDOS fs supportVFA T (Windows-95) fs supportNTFS file system support语言支持,这里就支持英语和汉语就行了,不多说了 Native language support[]NLS ISO 8859-1 必须选择,这个是关于U盘挂载的。
CD-ROM/DVD Filesystems ---> 这个是关于挂载ISO文件的,用的话就选。
ISO 9660 CDROM file system support第十二部分: 全部删除Instrumentation support第十三部分:全部删除Kernel hacking --->破解核心?可不是当骸客啦,不选第十四部分:全部删除Security options --->第十五部分:全部删除Cryptographic options --->这是核心支持加密的选项第十六部分:全部删除Library routines --->附:内核配置内核配置的方法很多,make config、make xconfig、make menuconfig、make oldconfig等等,它们的功能都是一样的,区别应该从名字上就能看出来,只有make oldconfig是指用系统当前的设置(./.config)作为缺省值。
这里用的是make menuconfig。
需要牢记:不必要的驱动越多,内核就越大,不仅运行速度慢、占用内存多,在少数情况下、还会引发其他问题。
具体步骤如下:首先确定shell是bash。
然后$make menuconfig有一些默认的符号其含义如下:y:加载n:不加载m:作为模块加载可以配置的选项有以下一些:1)code maturity level option 代码成熟度prompt for development and/or incomplete code/drivers [N/y/?]如果有兴趣测试一下内核中尚未最终完成的某些模块,就选y,否则选N,想知道更详细的信息选?会看到联机帮助(以下?的含义相同),N大写表示缺省值。