处理并编译内核源代码linux内核的配置系统由三个部分组成,分别是:1. makefile:分布在 linux 内核源代码中的 makefile,定义 linux 内核的编译规则;2. 配置文件(config.in):给用户提供配置选择的功能;3. 配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供基于字符界面、基于 ncurses 图形界面以及基于 xwindows 图形界面的用户配置界面,各自对应于 make config、make menuconfig 和 make xconfig)。这些配置工具都是使用脚本语言,如 tcl/tk、perl 编写的(也包含一些用 c 编写的代码)。本文并不是对配置系统本身进行分析,而是介绍如何使用配置系统。所以,除非是配置系统的维护者,一般的内核开发者无须了解它们的原理,只需要知道如何编写 makefile 和配置文件就可以。应用补丁如果使用上述脚本,它会自动帮你下载内核源码,如果你觉得版本较低,可以自行下载。我这里下载的是2.6.22的内核代码,直接去http: //www.kernel.org下载的,同时下载的还有patch-2.6.22,虽然一开始用不上。顺便说一句,其实默认下载的2.6.15.4版本已经足够了,没有特殊情况没有必要单独再下载别的,新版本内核很多特性都是用不上的。如果你下载的内核版本有对应的补丁,就要通过补丁进行对内核源代码的修补操作。一个补丁就是一个文本文档,这个文档包含了在两个不同版本的源代码树之间的变化。补丁是通过diff应用程序来创建的。我们使用patch程序来应用下载的patch。patch程序读取一个diff(或者patch)文件,然后把文件中描述的变化内容应用到代码树上。linux内核中的补丁是相对于保存内核源代码目录的父目录而生成的。这就意味着:patch文件中的文件路径包含了它所基于的内核源文件目录的名字(或者像是”a/”和”b/”之类的其它名字)。由于这很可能和你本地机器上的内核源代码目录的名字不匹配 (但是对于查看一个没有标签的补丁所基于的内核版本是非常有用的)。你应该切换到你的内核源代码目录,并且在打补丁的时候去掉patch中文件名字路径的第一个分量(patch命令的-p1参数可以完成这个任务)。具体过程是这样的,比如把下载下来的patch压缩包解压到/patch目录下,解压后的文件名为:xxxx.patch,然后进入你内核源文件的文件夹,将补丁拷贝到这里,首先运行命令patch -p1 –dry-run < /xxxx/patch-xxxx这一步是测试应用patch,此命令不会对你的内核源码做任何更动,如果这一步没有出现任何错误输出的话,就执行:patch -p1 * sysctl syscall support ?processor* 40x processor type* xilinx-ml300 machine type* math emulation* ttys0 device and default consoleplatform options* high memory support* default bootloader kernel arguments~“console=ttys0,38400 root=/dev/xsysace/disc0/part3 rw”networking* unix domain sockets* tcp/ip networking* ip: multicasting* ip: kernel level autoconfiguration* ip: dhcp support* ip: tcp syncookie support (disabled per default)device drivers—memory technology devices (mtd)* memory technology device (mtd) support* mtd partitioning support* redboot partition table parsing* direct char device access to mtd devices* caching block device access to mtd devices* ram/rom flash chip device drivers* detect flash chips by common flash interface (cfi) probe* suport for amd/fujitsu flash chips(这个根据你现有芯片来选)device drivers—block devices* loopback device support* network block device support* ram disk support(4096) default ram disk size* xilinx on-chip system acedevice drivers—network device support* network device support* ethernet(10 or 100mbit)* powerpc 4xx on-chip ethernet?device drivers—character devices— serial drivers* 8250/16550 and compatible serial support* xilinx uartlite serial port support* support for console on xilinx uartlite serial portfile systems* second extended fs support* kernel automounter version 4 support (also supports v3)* pseudo filesystems —>* /proc/kcore support* virtual memory file system support (former shm fs)* miscellaneous filesystems —>* journaling flash file system v2 (jffs2) support(0) jffs2 debugging verbosity (0=quiet, 2=noisy)* network file systems —>* nfs file system support* provide nfsv3 client support* root file system on nfs* nfs server support* provide nfsv3 server support* smb file system support (to mount windows shares etc.)* native language support —>* default nls option: “cp437′kernel hacking* kernel debugging* compile the kernel with debug info* include bdi-2000 user context switcher其实上面的选项不是最小的,如果你在编译的时候遇到某些问题,可以看看出问题的源代码属于哪个部分,只要能去掉就去掉。原则就是先搞定一个能跑的内核,然后再想扩展的事情。选择完成之后,将之前编译的bsp拷贝到源代码树目录中,覆盖原有文件。转载自:fcni_cn的百度空间
速度继电器原理结构和电器符号
江苏省增材制造领域年专利申请量居于全国前列
不同的产品应用应该如何正确选择合适的温度传感器?
条码打印机分辨率
英飞凌OktoberTech™生态创新峰会线上隆重举办!
PowerPC平台Linux的移植(二)
AI产业成为劳动密集型工作?廉价劳动力需求激增
光线检测及光线不足提醒器,Light detector
基于磁敏传感技术的位移测量编码识别研究
巴航工业预测未来20年全球150座以下新飞机的需求量将达10550架
技术探究:微流控芯片技术为什么这样强悍?
将氮化镓逆变器首次成功应用于电动汽车系统中
华为刘少伟畅谈“东数西算”和算力时代
若忘记了Linux系统的root密码,该怎么办?
从理论到实践详解混合波束赋形接收机动态范围
小型无变压器开关电源
HUAWEI P40超感知影像超越想象 随手一拍即是电影大片
物联网的七大关键技术
芯片中晶体管到底是个什么东西?芯片内部制造工艺详解
电动调节阀与传统式的电动调节阀的对比