在menuconfig中配置Linux内核裁剪的具体步骤

合集下载

内核配置与裁剪

内核配置与裁剪

内核配置与裁剪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内核裁减

Linux内核裁减

Linux内核裁减及根文件系统定制目录:一、内核编译二、根文件系统定制三、内核选项说明一、内核编译1、准备工作(1)整理出系统需要支持的硬件、文件系统类型以及网络协议等内容。

(2)建议用命令uname –r 查看一下系统的版本号,如果你的系统版本与将要编译的内核版本一致,建议将/lib/modules下的内容备份,否则将来的make modules_install 步骤产生的文件会覆盖这个路径下的内容。

(3)下载并解压linux内核。

以下假设你已经下载了内核的为linux-x-y-z.tar.gz。

一般都将linux内核源代码放在/usr/src下,这里仍然遵守这个习惯,如果你的这个路径下已经存在这个版本的内核,建议将已有的改个名称。

2、开始编译(1)make mrproper确保源代码目录下没有不正确的.o文件和文件依赖关系,执行该命令后,内核选项会回到默认的状态下。

如果你是下载的内核源码,而且是第一次编译,就没有必要执行这一步操作(2)make menuconfig以文本菜单方式选择内核选项(与它功能相同的命令还有makeconfig;make xconfig;make oldconfig),不同版本的内核,选项可能会有一些差异。

{注:#make config(基于文本的最为传统的配置界面,不推荐使用)#make menuconfig(基于文本选单的配置界面,字符终端下推荐使用)#make xconfig(基于图形窗口模式的配置界面,Xwindow下推荐使用)#make oldconfig(如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)这三个命令中,make xconfig的界面最为友好,如果你可以使用Xwindow,那么就推荐你使用这个命令。

}这一步是内核编译的关键,根据需要支持的硬件、文件系统和协议等内容,选择不同的选项。

配置选项时,有三种选择方式,它们代表的含义如下:Y-将该功能编译进内核N-不添加功能M-将该功能编译成模块,在需要时动态加载到内核选择的原则:是与内核关心紧密而且经常使用的部分功能代码直接编译到内核中;将与内核系较远且不经常使用的部分功能代码编译成为可加载模块,有利于减小内核的长度,减小内核消耗的内存,简化该功能相应的环境改变时对内核的影响;不需要的功能就不要选。

裁剪内核——精选推荐

裁剪内核——精选推荐

裁剪内核转⼀、裁剪内核1.1 第⼀次修改 现在的内核⼤⼩为2.8M左右,要裁剪到2.0M以下,毕竟给内核分区就只有2.0M。

这两个设备我们没有,裁剪掉。

进⼊make menuconfig中,搜索mousedev: 进⼊⾥⾯按需要进⾏裁剪。

搜索 lp: hostname修改: ⽂件系统再此修改: 去掉如下选项: 再次进⼊device driver,-》input device->touch creen 配置上 去掉: 修改完后,保存。

然后编译执⾏,查看uImage的⼤⼩ 裁剪出来的⼤⼩为2.66M,还得继续裁剪。

1.2 第⼆次修改 查看.config⽂件,查看哪些能修改的。

NETworking support->bluetooth 蓝⽛设备,我们的开发板上没有蓝⽛,去掉 device driver->network device support ⽆线WIFI也不⽀持,去掉。

这个去不掉,放那⾥了。

编译 根本没减少多少,只能现在内核⾃带属性越来越多了。

只能修改分区了。

修改两个分区,u-boot分区和linux⾥⾯的分区。

⼆、修改分区2.1 修改u-boot分区 u-boot 的分区在 include/configs/jz2440.h 中修改,修改为4M⼤⼩ 编译,然后下载。

使⽤openjtag下载 分区: 删除原有的分区: mtdparts delall 新建分区:mtdparts default 分区已经建⽴好。

2.2 内核修改  Mach-mini2440.c (arch\arm\mach-s3c24xx) 编译。

烧写⽂件系统进去:1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/fs_mini.yaffs22 nand erase.part rootfs3 nand write.yaffs 30000000 260000 $filesize4 set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 烧写内核,此次就直接烧写进nand中了1 nfs 30000000 192.168.0.192:/home/ubuntu/work/nfs_root/uImage2 nand erase.part kernel3 nand write 30000000 kernel u-boot中要设置启动参数:1 set 'nand read 30000000 kernel;bootm 30000000'2 set bootargs console=ttySAC0,115200 root=/dev/mtdblock3 正常启动。

linux内核裁剪的具体步骤(Linuxkernelcuttingspecificsteps)

linux内核裁剪的具体步骤(Linuxkernelcuttingspecificsteps)

linux内核裁剪的具体步骤(Linux kernel cutting specific steps)Configuration in menuconfig:The kernel configuration options and delete detailsPart 1: delete allCode maturity level options I code maturity level options[]Prompt for development and/or incomplete code/drivers is chosen by default, which will display code or drivers that are still under development or have not been completed in the setup interface.The second part: delete all but the following options General, setup -System V IPC (IPC:Inter Process Communication) is a group system call and function library, it allows the program to exchange information synchronously with each other. Some programs and the DOS simulation environment need it. Providing communication mechanisms for processes that enable the exchange of information and synchronization between processes in the system. Some programs run only in the case of Y, so don't worry about it.The third part: delete all but the following optionsLoadable module support I can support the proposal to the kernel boot module as a moduleEnable loadable module support [] this option allows your kernel support module, what is a module? The module is a small piece of code that can be dynamically added to the kernel when the system kernel is run, thus adding some features to the kernel or supporting some hardware. Generic drivers or features that are not commonly used can be compiled into modules to reduce kernel size. At run time, you can use the modprobe command to load it into the kernel (remove it when you don't need it). Some properties are compiled for the module principle is rarely used, especially when the system starts to drive can be compiled as a module, if it is in the drive system when you start to use such as file system, system bus support is not for a module, or unable to start system.[]Automatic kernel module loading in general, if our kernel in some tasks to use some is compiled as a module driver or characteristics, we need to use the modprobe command to load it, you can use the kernel. However, if you choose this option, when the kernel needs some modules, it automatically calls the modprobe command to load the required modules, which is a great feature, of course, choose Y.The fourth part: delete allBlock layer----- block deviceThe fifth part: delete all but the following optionsProcessor type and features processor type ISubarchitecture Type (PC-compatible) this option his main purpose is to make the Linux can support a variety of PC standard, we use the general PC machine is to follow the so-called IBM compatible structure (pc/at). This option allows you to select some other architecture. We usually choose PC-compatible.Processor family (386): it will be optimized for each type of CPU, so that it runs fast and sound, generally speaking, you are what type of model, you choose what kind of. I chose 386, so that the kernel saves a lot of spaceThe sixth part: delete all but the following optionsPower management options (ACPI, APM) his power management options[[] Power Management Debug Support power management debugging information support, if not to debug the kernel, power management section, please do not select this item.ACPI Support - - advanced power interface configuration support, if BIOS support, it is recommended to choose this item[]Button this option is used to register the power button based on events, such as power, sleep, when you press the button when the event will happen, a daemon will read /proc/acpi/event, and execute the user defined in these events on the action such as the system shutdown. Can not choose, according to their own needs.The seventh part: in addition to the following options,其它全部删除bus options (pci, pcmcia, eisa, mca, isa) -- > 总线选项pci support. []pci access mode (any) -- > pci外围设备配置, 强列建议选any, 系统将优先使用mmconfig, 然后使用bios, 最后使用direct检测pci 设备.第八部分除以下选项, 其它全部删除.- filing file formats.kernel support for elf binaries elf是开放平台下最常用的二进制文件, 它支持不同的硬件平台.一定要选.第九部分除以下选项, 其它全部删除.networkingnetworking 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 support. []scsi device support - - - > 里面有关于usb支持的, 要选择[] usb要用 scsi device support, 必须选择[] "/ proc / scsi / support usb要用, 必须选择scsi disk support usb要用 [], 必须选择scsi low-level drivers[] serial ata (sata) support[] intel sata hard 这个必须选择 price / ich, 否则无法产生引导文件via sata format. []networking device support - - - > 这个下面是选网卡驱动, 一定要选ethernet (1000mbit) & # 我的电脑是千兆网卡所以就选这个61664.broadcom tigon3support []input device support - - - > 这个里面要设置你的鼠标键盘什么的[] the "/ dev / psaux devicegraphics card - - - "[] support for frame buffer devices 支持frame buffer的, 一定要选择drive support - - - "usb device filesystem 这个好象是用u盘必须的 [][] ehci hcd media (usb 2.0) 有usb2.0就选上把, 编译成模块必须选择 ohci hcd media [], 编译成模块[] uhci hcd (most intel and via support 必须选择, 编译成模块usb mass storage support 用u盘必须选择 []usb human interface device (a device 如果你有一定选上这个必需选里面选择usb鼠标和usb键盘 hid).the support 应该选择 hid inputa hid device / dev / hiddev support如果这里有usb键盘和鼠标选项, 一定要选择第十一部分除以下选项, 其它全部删除.file systems 文件系统 -- >< * > second extended fs support[*] ext2 extended attributes[*] ext2 POSIX访问控制列表[*] ext2安全标签<m> Ext3文件系统支持[*] Ext3扩展属性[*] ext3 POSIX访问控制列表[*] ext3防伪标签以上这些肯定是要选择的,Linux的标准文件系统<m>内核自动支持内核自动挂载的,当然要选<m>内核自动版本4的支持(同时支持V3)当然要选DOS /脂肪/ NT文件系统——>dos支持<m> MSDOS fs的支持<m> VFAT(95)FS支持NTFS文件系统支持本地语言支持和# 61664;语言支持,这里就支持英语和汉语就行了,不多说了[ ] NLS ISO 8859-1必须选择,这个是关于U盘挂载的。

linux内核配置make menuconfig菜单详解

linux内核配置make menuconfig菜单详解

LINUX内核配置MAKE MENUCONFIG菜单详解我们在linux内核裁剪过程中,进入内核所在目录,键入 make menuconfig 就会看到一堆的配置菜单,它们具体代表什么含义呢?我们该如何取舍呢?这里把近期收集到的一些信息做一个总结。

1、General setup代码成熟度选项,它又有子项:1.1、prompt for development and/or incomplete code/drivers该选项是对那些还在测试阶段的代码,驱动模块等的支持。

一般应该选这个选项,除非你只是想使用 LINUX 中已经完全稳定的东西。

但这样有时对系统性能影响挺大。

1.2、Cross-compiler tool prefix交叉编译工具前缀,例如:Cross-compiler tool prefix值为: (arm-linux-)1.3、Local version - append to kernel release内核显示的版本信息,填入 64字符以内的字符串,你在这里填上的字符口串可以用uname -a 命令看到。

1.4、Automatically append version information to the version string自动在版本字符串后面添加版本信息,编译时需要有perl以及git仓库支持1.5、Kernel compression mode (Gzip) --->有四个选项,这个选项是说内核镜像要用的压缩模式,回车一下,可以看到gzip,bzip2,lzma,lxo,一般可以按默认的gzip,如果要用bzip2,lzma,lxo要先装上支持1.6、Support for paging of anonymous memory (swap)使用交换分区或交换文件来做为虚拟内存,一定要选上。

1.7、System V IPC表示系统的进程间通信Inter Process Communication,它用于处理器在程序之间同步和交换信息,如果不选这项,很多程序运行不起来,必选。

linux内核的裁剪与移植

linux内核的裁剪与移植

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;。

在menuconfig中配置Linux内核裁剪的具体步骤3

在menuconfig中配置Linux内核裁剪的具体步骤3

在menuconfig中配置Linux内核裁剪的具体步骤3[]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大写表示缺省值。

2)processor type and features 处理器类型及特性Processor family(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC, PPro/6x86MX)[PPro/6x86MX][]内的是缺省值,我们可以根据前面介绍的uname 命令执行的结果选择。

Linux内核安装、裁剪图文教程

Linux内核安装、裁剪图文教程

目录Practice1 (4)一编译过程 (4)1 安装必要的软件 (4)2 下载linux内核源文件 (4)3 解压缩源文件 (5)4 复制config文件 (6)5 进行menucofig配置 (6)6 menuconfig配置页面 (7)7 对驱动设置进行简单配置 (8)8 选择cpu类型 (8)9 设置完成保存退出 (9)10 开始编译内核 (9)11 内核编译过程 (10)12 内核编译过程(3小时后) (11)13 内核编译成功 (12)14 安装新内核 (12)15 新内核安装过程 (13)16 比较两个内核 (14)17 重新启动系统 (14)18 登录新内核 (15)19 新内核登录成功 (15)20 查看新内核版本号号 (16)二、编译过程中遇到的问题 (16)1 错误VFS:Unable to mount root (16)2错误Driver ‘mdio-gpio’ (18)Practice2 (20)一、内核选项翻译及选择理由 (20)1. General setup 常规设置 (20)二、裁剪过程 (21)1.进入设置界面 (21)2. General setup页设置 (22)3. Enable the block layer页设置 (23)4. Processor type and features页设置 (24)5. Power Management and ACPI options页设置 (28)6. Bus options页设置 (29)7. Executable file formats页设置 (30)8. Networking options页设置 (31)9. Device Drivers 页设置 (34)10. Firmware Drivers页设置 (37)11. File systems页设置 (38)12. Kernel hacking页设置 (40)13 CryptographicAPI页设置 (41)14. 裁剪后内核运行截图 (42)15. 内核大小9.6M (43)感受和体会 (44)Practice1一编译过程1 安装必要的软件代码: $sudo apt-get install build-essential kernel-package libncurses5-dev2 下载linux内核源文件/下载2.6.38.8full版3 解压缩源文件代码:$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/4 复制config文件命令:cp /boot/config-`uname -r` ./.config5 进行menucofig配置代码:$sudo make menuconfig6 menuconfig配置页面7 对驱动设置进行简单配置8 选择cpu类型9 设置完成保存退出10 开始编译内核代码:$ sudo make-kpkg -initrd --initrd --append-to-version=bo100 kernel_image kernel-headers11 内核编译过程12 内核编译过程(3小时后)13 内核编译成功14 安装新内核代码:$ sudo dpkg -i linux-image-2.6.38bo10015 新内核安装过程16 比较两个内核17 重新启动系统18 登录新内核19 新内核登录成功20 查看新内核版本号号二、编译过程中遇到的问题1 错误VFS:Unable to mount root描述:内核安装成功后,启动内核出现如下图错误原因:在执行内核安装的时候,initrd可能没有被安装出现以下错误如图,新版本的initrd并没有安装成功,vmlinu有两份,而initrd只有一份。

8.Linux内核裁剪

8.Linux内核裁剪

常用选项 options: 1.Code maturity level options:代码成 熟等级。 熟等级。
1.1.prompt for development and/or incomp lete code/drivers. 如果要试验现在仍处于实验阶段的功能, 如果要试验现在仍处于实验阶段的功能, 比如khttpd IPv6等 就必须把该项选择为Y khttpd、 比如khttpd、IPv6等,就必须把该项选择为Y 否则可以把它选择为N 了;否则可以把它选择为N。 默认情况下是选择的, 默认情况下是选择的,这将会在设置界面中显 示还在开发或者还没有完成的代码与驱动. 示还在开发或者还没有完成的代码与驱动.不 选。
setup:常规内核选项。 4.General setup:常规内核选项。
4.1. Networking support. 通常每个人都会选择“ support”, 通常每个人都会选择“Networking support”,因为 你通常需要它,比如Internel Internel。 Linux有很重的 有很重的Internet 你通常需要它,比如Internel。 Linux有很重的Internet 偏向, 偏向,而且它在没有联网的情况下无法充分发挥优 势。 另外,许多其他的操作也网络支持——即使它们看 另外,许多其他的操作也网络支持——即使它们看 —— 上去跟网络没多大关系。 上去跟网络没多大关系。 内核在没有网络支持选项的情 况下甚至无法编译。简而言之: 况下甚至无法编译。简而言之:一定要打开 support”选项 选项。 “Networking support”选项。 4.2. PCI support. 现在的所有系统都使用PCI总线, PCI总线 现在的所有系统都使用PCI总线,所以你应该选择相 关选项。 关选项。

linux内核配置make-menuconfig菜单详解

linux内核配置make-menuconfig菜单详解

linux内核配置make-menuconfig菜单详解前言一、配置系统的基本结构Linu某内核的配置系统由三个部分组成,分别是:1、Makefile:分布在Linu某内核源代码根目录及各层目录中,定义Linu某内核的编译规则;2、配置文件(config.in(2.4内核,2.6内核)):给用户提供配置选择的功能;3、配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于Ncure图形界面以及基于某window图形界面的用户配置界面,各自对应于Makeconfig、Makemenuconfig和make某config)。

这些配置工具都是使用脚本语言,如Tcl/TK、Perl编写的(也包含一些用C编写的代码)。

本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。

所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写Makefile和配置文件就可以。

二、makefilemenuconfig过程讲解当我们在执行makemenuconfig这个命令时,系统到底帮我们做了哪些工作呢?这里面一共涉及到了一下几个文件我们来一一讲解Linu某内核根目录下的cript文件夹arch/$ARCH/Kconfig文件、各层目录下的Kconfig文件Linu某内核根目录下的makefile文件、各层目录下的makefile文件Linu某内核根目录下的的.config文件、arm/$ARCH/下的config文件Linu某内核根目录下的include/generated/autoconf.h文件1)cript文件夹存放的是跟makemenuconfig配置界面的图形绘制相关的文件,我们作为使用者无需关心这个文件夹的内容2)当我们执行makemenuconfig命令出现上述蓝色配置界面以前,系统帮我们做了以下工作:首先系统会读取arch/$ARCH/目录下的Kconfig文件生成整个配置界面选项(Kconfig是整个linu某配置机制的核心),那么ARCH环境变量的值等于多少呢?它是由linu某内核根目录下的makefile文件决定的,在makefile下有此环境变量的定义:或者通过makeARCH=armmenuconfig命令来生成配置界面,默认生成的界面是所有参数都是没有值的比如教务处进行考试,考试科数可能有外语、语文、数学等科,这里相当于我们选择了arm科可进行考试,系统就会读取arm/arm/kconfig文件生成配置选项(选择了arm科的卷子),系统还提供了某86科、milp科等10几门功课的考试题3)假设教务处比较“仁慈”,为了怕某些同学做不错试题,还给我们准备了一份参考答案(默认配置选项),存放在arch/$ARCH/config下,对于arm科来说就是arch/arm/config文件夹:此文件夹中有许多选项,系统会读取哪个呢?内核默认会读取linu某内核根目录下.config文件作为内核的默认选项(试题的参考答案),我们一般会根据开发板的类型从中选取一个与我们开发板最接近的系列到Linu某内核根目录下(选择一个最接近的参考答案)#cparch/arm/config/3c2410_defconfig.config4).config假设教务处留了一个心眼,他提供的参考答案并不完全正确(.config文件与我们的板子并不是完全匹配),这时我们可以选择直接修改.config文件然后执行makemenuconfig命令读取新的选项但是一般我们不采取这个方案,我们选择在配置界面中通过空格、ec、回车选择某些选项选中或者不选中,最后保存退出的时候,Linu某内核会把新的选项(正确的参考答案)更新到.config中,此时我们可以把.config重命名为其它文件保存起来(当你执行makeditclean时系统会把.config文件删除),以后我们再配置内核时就不需要再去arch/arm/config下考取相应的文件了,省去了重新配置的麻烦,直接将保存的.config文件复制为.config即可.5)经过以上两步,我们可以正确的读取、配置我们需要的界面了那么他们如何跟makefile文件建立编译关系呢?当你保存makemenuconfig选项时,系统会除了会自动更新.config外,还会将所有的选项以宏的形式保存在Linu某内核根目录下的include/generated/autoconf.h文件下内核中的源代码就都会包含以上.h文件,跟宏的定义情况进行条件编译。

linux2.6内核裁剪说明

linux2.6内核裁剪说明

Linux内核裁剪与移植内核,即操作系统。

它为底层的可编程部件提供服务,为上层应用程序提供执行环境。

内核裁剪就是对这些功能进行裁剪,选取满足特定平台和需求的功能。

不同的硬件平台对内核要求也不同,因此从一个平台到另一个平台需要对内核进行重新配置和编译。

操作系统从一个平台过渡到另一个平台称为移植。

Linux是一款平台适应性且容易裁剪的操作系统,因此Linux在嵌入式系统得到了广泛的应用。

本章将详细讲解内核裁剪与移植的各项技术。

4.1 Linux内核结构Linux内核采用模块化设计,并且各个模块源码以文件目录的形式存放,在对内核的裁剪和编译时非常方便。

下面介绍内核的主要部分及其文件目录。

4.1.1 内核的主要组成部分在第1章中已经介绍了Linux内核主要的5个部分:进程调度、内存管理、虚拟文件系统、网络接口、进程通信。

在系统移植的时候,它们是内核的基本元素,这5个部分之间的关系,如图4.1所示。

图4.1 Linux内核子系统及其之间的关系进程调度部分负责控制进程对CPU的访问。

内存管理允许多个进程安全地共享主内存区域。

内存管理从逻辑上分为硬件无关部分和硬件相关部分。

硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关部分为内存管理硬件提供了虚拟接口。

虚拟文件系统隐藏了不同类型硬件的具体细节,为所有的硬件设备提供了一个标准的接口,VFS提供了十多种不同类型的文件系统。

网络接口提供了对各种网络标准的存取和各种网络硬件的支持。

进程通信部分用于支持进程间各种不同的通信机制。

进程调度处于核心位置,内核的其他子系统都要依赖它,因为每个子系统都存在进程挂起或恢复过程。

* 进程调度与内存管理之间的关系:这两个子系统为互相依赖关系。

在多道程序环境下,程序要运行必须为之创建进程,而创建进程首先就是要将程序和数据装入内存。

另外,内存管理子系统也存在进程的挂起和恢复过程。

* 进程间通信与内存管理之间的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,通过对共同的内存区域进行操作来达到通信的目的。

Linux内核裁剪与编译

Linux内核裁剪与编译
建立编译环境
创建一个用于编译的内核目录,并配置相应的环境变量。
内核配置与选择
配置内核
01
使用make menuconfig或其他配置工具进行内核配置,选择所
需的特性和功能。
定制内核
02
根据实际需求,禁用不必要的模块和功能,以减小内核体积。
配置参数
03
在编译过程中,根据需要设置编译参数,如优化级别、编译器
选项等。
编译过程与注意事项
执行编译
在配置完成后,执行make命令开始 编译内核。
等待编译完成
编译过程可能需要较长时间,取决于 系统性能和内核大小。
注意事项
在编译过程中,注意观察日志信息, 以便及时发现和解决问题。
内核安装
编译完成后,按照系统要求进行内核 安装和引导配置。
04
内核编译优化
编译优化简介
-O3
在`-O2`的基础上,进一步开启更多的编译器优化选项。
-Os
以最小化代码大小为目标进行优化,适用于嵌入式系统等资源受限的环境。
-fPIC
生成位置无关代码,便于动态链接。
编译优化实践
根据目标硬件平台和性能 需求,选择合适的编译选 项。
关注内核代码质量,避免 过度优化导致代码可读性 和维护性下降。
优化内核
针对特定需求进行内核优化,如调整调度 策略、优化内存管理等,以提高系统的性 能和响应速度。
定制内核
根据需求分析结果,定制内核的功能和参 数,如禁用不必要的模块、开启特定功能 等。
案例三:使用第三方工具进行内核裁剪与编译
总结词
选择合适的第三方 工具
配置工具链
导入内核源码
自动裁剪与编译
使用第三方工具进行内 核裁剪与编译,可以借 助第三方工具的自动化 和智能化功能,提高内 核裁剪与编译的效率和 准确性。

linux内核裁剪

linux内核裁剪

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内核裁剪步骤详述内核功能:能够完成系统的基本功能,上网,收发邮件等,支持xwindows图形界面。

在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命令来加载它,内核才能使用。

Linux内核裁剪移植——一般内核配置选项

Linux内核裁剪移植——一般内核配置选项

选项名 Forced module loading Module unloading Forced module unloading
Module versioning support
Source checksum for all modules
ቤተ መጻሕፍቲ ባይዱ说明
允许强制加载模块驱动
允许卸载已经加载的模块,建议选择
Namespace support Initial RAM filesystem and RAM disk (initramfs/initrd) support
说明
内核日志缓冲区大小(16代表64KB, 17代表128KB)
CPU组调度
控制组支持
为旧的用户空间工具创建过时的文件系 统风格
在某些文件系统上(比如debugfs)提 供从内核空间向用户空间传递大量数据 的接口
说明 使用大容量块设备时选择
支持块队列I/O跟踪 支持通用scsi块设备第4版 支持块设备数据完整性 I/O调度器
Linux内核裁剪移植——一般内核配置选项 8
系统类型:菜单选项(System Type)的子菜单中包含一些系统类型选项,在配置内核时直接 选择对应的芯片类型即可。对特定的平台选择相应的支持类型。
选择内存分配管理器,建议选择
支持系统评测,建议不选
探测工具,开发人员可以选择,建议不 选
Linux内核裁剪移植——一般内核配置选项 6
内核模块加载方式支持选项:菜单选项(Loadable module support)的子菜单中包含一些 内核模块加载方式选项。如果对模块的加载方式有特殊要求,如可以强制卸载正在使用的模块 的要求,那么可以配置相关的模块加载方式。
Linux内核裁剪移植——一般内核配置选项 3

2 linux内核裁减和文件系统编译

2 linux内核裁减和文件系统编译

==========一、以下是虚拟机配置过程==============――――――1、以下是生成zImage内核文件――――――――cd /opt/cvtech/linux-2.6.30.4make menuconfig //配置内核裁减make zImage //生成zImage内核文件将zImage文件复制到/mnt/hgfs/share共享目录――――――2、以下是生成映像文件ramdisk.gz――――――――cd /opt/cvtech/rootfsls –lmkdir rdgz //创建文件夹,如果文件夹已经存在,则不再创建gunzip ramdisk.gz //解压文件系统mount -o loop ramdisk rdgz/ //挂载文件系统cd rdgz //进入rdgz文件夹ls //检查文件系统并进行修改操作cd .. //返回上一级目录umount rdgz //卸载rdgzgzip ramdisk ramdisk.gz //压缩生成新的文件系统映像文件ramdisk.gz将ramdisk.gz文件复制到/mnt/hgfs/share共享目录====================二、以下实现WINDOWS与linux的文件共享============= 1、打开虚拟机软件vmware的菜单,在虚拟机菜单选项中找到“设置(s)……”2、在设置界面中,配置文件夹共享,记住这里的共享文件夹路径,在下面的TFTP中会使用到这个路径。

3、进入linux虚拟机cd /mnt/hgfs/share //进入共享目录cp -a /tftp/* /mnt/hgfs/share/ //复制/tftpboot目录下的所有文件到当前文件夹ls //列出所有文件4、复制完成后,在windows机中的共享路径中,应该能看到所复制过来的文件。

==========三、以下是windowsXP系统配置过程===========打开桌面上的TFTP工具,配置tftp的目录,这个目录就是刚才设置的虚拟机共享目录,目录如下:在目录中已经存放了zImage和ramdisk.gz文件。

linux内核裁剪及编译步骤

linux内核裁剪及编译步骤

linux内核裁剪及编译步骤Linux内核裁剪及编译步骤Linux操作系统的内核是其最重要和核心的组成部分。

用户可以根据自己的需要对内核进行裁剪以减少内核代码的大小,以及支持特定的硬件和功能。

Linux内核的裁剪和编译步骤相对来说比较复杂,需要一定的技术和安装环境的支持。

下面将介绍Linux内核裁剪及编译的具体步骤,以供参考。

一、准备工作在开始进行Linux内核的裁剪及编译之前,需要进行一些准备工作。

首先,需要安装Linux操作系统的开发环境。

其次,需要下载Linux内核的源代码,可以从Linux 的官方网站或者其他开源社区下载。

二、配置内核选项安装好开发环境和下载好源代码之后,就可以开始进行内核的裁剪和编译了。

首先需要进行内核选项的配置。

可以使用make menuconfig命令进入配置界面。

在这个界面中,用户可以对内核进行不同程度的裁剪,包括去掉多余的硬件支持和功能选项。

在配置选项中,用户需要选择一些基本的配置选项,包括文件系统类型、设备驱动、协议栈、安全选项、虚拟化等。

用户可以根据自己的需要,进行选项的选择和配置。

三、编译内核在完成了内核的配置之后,下一步就是进行内核的编译。

可以使用make命令进行编译。

编译过程中需要耗费一定的时间和资源,因此建议在空闲时刻进行编译。

如果出现编译错误,需要根据错误提示进行排查和解决。

编译错误很可能是由配置选项不当造成的,因此要仔细检查配置选项。

四、安装内核编译完成后,就可以安装内核。

可以使用make install命令进行安装。

安装完成后,可以重启系统,以使新的内核生效。

在重启时,需要手动选择新的内核,可以选择自己编译的内核或者系统默认的内核。

五、总结对于不同的用户,对内核的需求和选择是不同的。

因此,在对内核进行裁剪时,需要根据自己的需求进行适当的选择,以提高系统性能和稳定性。

同时,在进行内核的编译时,也需要仔细检查配置选项和随时记录日志以便排除可能出现的问题。

linux内核编译与裁剪

linux内核编译与裁剪

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)。

一些新特性、实验性改进等都将首先在开发树中进行。

如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。

linux内核裁剪基本步骤

linux内核裁剪基本步骤

linux内核裁剪基本步骤嘿,朋友们!今天咱就来聊聊 Linux 内核裁剪那些事儿。

你想想看啊,Linux 内核就像是一个超级大的宝库,里面啥都有,但咱有时候并不需要那么多东西呀,这时候就需要来一场“瘦身行动”啦!那怎么开始呢?首先,你得清楚自己到底要干啥。

就好比你要去旅行,你得知道自己想去哪儿,带啥东西,对吧?得明确自己的系统需要哪些功能,哪些是多余的。

这可不是随随便便就能决定的哦,得好好琢磨琢磨。

然后呢,就是了解内核的各种配置选项啦。

这就像你去超市买东西,得知道每个货架上都有啥呀。

这里面的门道可不少呢,什么驱动啊、模块啊,都得搞清楚。

可别小瞧了这些配置选项,它们就像是一个个小开关,决定着哪些功能会被启用,哪些会被关掉。

接下来,就是动手裁剪啦!这可真是个精细活儿,就跟雕刻大师在雕琢一件艺术品似的。

小心翼翼地去掉那些不需要的部分,留下精华。

这过程可得有耐心,不能着急,不然一不小心剪错了可就麻烦啦。

再之后,就是编译啦!把裁剪好的内核重新编译一下,让它变成适合你的那个独一无二的版本。

这就好比给你的系统穿上了一件量身定制的衣服,合身又舒适。

裁剪的过程中,你可能会遇到各种各样的问题。

哎呀,这就跟你走路会遇到小石子一样正常。

别慌,冷静下来慢慢解决。

也许会花费你一些时间和精力,但当你看到裁剪后的内核完美运行的时候,那种成就感,简直无与伦比!你说这是不是很有趣呢?就像给自己的电脑来了一次大改造。

而且通过裁剪内核,还能让系统运行得更高效、更稳定呢!总之呢,Linux 内核裁剪可不是一件简单的事儿,但也绝对不是什么难到登天的事儿。

只要你有耐心、有决心,再加上一点点技巧,肯定能把它搞定。

还等什么呢?赶紧去试试吧,让你的系统变得更加强大、更加适合你!。

linux内核裁剪_3.1.2

linux内核裁剪_3.1.2

声明:这不是教程,是一个作业的文档,所以可能有的步骤不够清晰。

Task1过程1.下载源代码。

/。

这里我选择了3.1.2。

2.进行必要的包准备。

这个是从课件里的流程直接拿过来用的,是安装linux内核必须得。

工具包安装完成。

3将linux-3.1.2.tar.bz2压缩包解压到usr/src文件夹下。

sudo tar jxvf /home/csy/下载/linux-3.1.2.tar.bz2 /usr/src解压缩完成4进入源代码目录,配置内核选项。

cd usr/src/linux-3.1.2 进入源代码目录sudo make menuconfig配置内核选项的界面。

这里由于是不裁剪,所以直接save。

5.开始编译内核。

输入命令:$ sudo make-kpkg clean$ sudo make-kpkg --initrd --append-to-version=wind1 kernel_image kernel_headers6.安装内核执行命令:$ cd .. (退回到上一级目录因为linux-image- 文件在usr/src下生成)$ sudo dpkg -i linux-image-(按tab键)安装完成7.重新启动以验证 $sudo reboot $ uname –a下面验证功能。

可以看出,各项功能都可以用。

至此,安装linux内核结束。

Task1内核安装的一些感想:其实之前在虚拟机上装了一遍3.0.8,但是启动之后鼠标不可用。

没办法各种改,却各种改崩溃了,而且虚拟机时常高达6~7个小时的编译时间也实在然我无奈。

所以舍弃了虚拟机换了双系统。

在首次尝试的时候想一步到位的去裁剪然后编译。

没有成功。

再之后的各种编译就毅然都以死机为结局。

在这离deadline只有一天的时候,我毅然选择了刷夜,毅然选择了重装系统然后完全重新安装。

好吧,终于成功了。

其实说起来,在不要求裁剪的前提下,去安装linux内核,也许就只是一个简单的流程,唯一比较值得注意的也需要就是用什么去编译内核,make,make install ,make modules makemodules install系类命令和用make-kpkg和dpkg工具安装的区别。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在menuconfig中配置Linux内核裁剪的具体步骤在men UC onfig中配置,可以对进行Linux内核配置选项及删改。

本文介绍详细配置方法。

第一部分:全部删除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是开放平台下最常用的二进制文件,它支持不同的硬件平台。

一定要选。

<>第九部分:除以下选项,其它全部删除NetworkingNetworking 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 supportS CS I device support ---> 里面有关于USB支持的,要选择[ ]SCSI device support USB要用,必须选择[ ]legacy /proc/scsi/ support USB要用,必须选择[ ]SCSI disk support USB要用,必须选择SCSI Low-level drivers[ ]Serial ATA(SATA) support[ ]Intel PIIX/ICH SATA support这个必须选择,否则无法产生引导文件[ ]Via SATA 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) 当然要选DOS/FAT/NT Filesystems --->DOS FAT fs supportMSDOS fs supportVFAT (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大写表示缺省值。

相关文档
最新文档