首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

linux的重新编译及重建内核选项

linux的重新编译及重建内核选项

重新编译


1.核心的源程序:
    我现在在用TLC, REDHAT也用过, SLACKWARE也用过. 无论哪一种, 都是把核心源程
序放到 /usr/src/linux 下, 因为有些别的应用程序在编译时好像也会从这个路径来引
用一些头文件之类. 一般来说这个 linux 目录都只是个符号连接, 有一点点像WIN下的
Shortcut, 而实际上它对应的目录可能是 /usr/src/linux-2.0.35 之类. RedHat的缺省
安装好像并不装源程序, 只有些头文件.
    以现在的2.2.5 核心为例, 我装的时候就是这样(其实什么版本都一样
    cd /usr/src
    rm linux
    # 这个linux只是个符号连接, 删掉它没事的. 可以 ls -l 看看, 如果看到这个:
    # linux -> linux-XXXXX, 就表示它是个连接而已. 原来的源程序在箭头后的目录.
    tar zxvf XXXXXXX/linux-2.2.5.tar.gz
    # 这个包解开后, 新核心的源程序就放在了新建立的linux目录下, 这可是个货真价
    # 实的目录.
    mv linux linux-2.2.5
    ln -s linux-2.2.5 linux
    # 按照惯例, 还是把目录另命个名, 再重新做个linux的符号连接
2.准备编译:
    现在要做一些准备工作. 对于新释放出来的核心源程序也没啥好做的, 就打一个:
    cd /usr/src/linux
    make menuconfig


    然后就会看到一个很友好的界面(在LINUX下...已经是很友好的了), 大致上有点像
WIN 9X安装时的选择安装项目. 这就是在配置核心, 选择哪些内容要, 哪些不要.
然后选EXIT退出来, 问是否保存修改时答YES. 然后会有一些提示. 如果看到了有叫你
"make dep", 就要打"make dep"先. 完了后就打 make bzImage. 如果提示信息中没有
叫你"make dep", 只有叫你 "make zImage", "make zdisk" 或 "make zlilo" 的,
就直接打 make bzImage 就行了.


一点说明: make dep 是作一些准备工作, make bzImage 则是开始编译生成核心. 而
          make bzImage与make zImage的区别在于, 作成bzImage的核心压缩率比zImage
          高, 核心就更小一些. make zdisk 与 make zlilo 是做别的用处的核心的.


    然后就等吧(有得你等的). 一般从5分钟到半个钟头不等, 看你的机器了. 第一次编
译会 比较慢. 以后再改了配置后make就会快很多了.


    等这个完了后一定还要 make modules 和 make modules_install.


make bzImage 完后会显示核心放在什么地方, 一般是/usr/src/linux/arch/i386/boot/
下. 把bzImage拷到根下. 然后修改 /etc/lilo.conf, 照着原来的image = XXXXX来加上
image = /bzImage
  root = /dev/hda1 (这里视你的LINUX安装而定, 照你原有的改)
  label = linux
  read-only
    把原来的 label = linux 改一下, 如 label = oldlinux.
    把image = /bzImage 这一节加在原来的前面, 这样会自动作为缺省的核心. 你也可以在
LILO时打linux或oldlinux来启动不同的核心. 关于这一段, 也可以参考俺前面的"ALS007
发声经过". 最后, 切记切记, 一定要打个lilo来重新生成LILO程序.


好了, 重启...

51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
重建内核选项

prompt for development and/or incomplete code/drivers
很多参考书上说这是那些开发人员认为还不是很稳定的功能,但
是根据我的经验,这个是应该选的一个选项,因为现代的LINUX是
建立在这些基础上的,所以应该可以回答Y,除非你只是想使用
LINUX中已经完全定型的东西,但性能肯定不会好到哪,而且对系
统特性的支持也不会好。
processor family (386,486/cx486,586/k5/5x86/6x86,pentinum/k6/tsc,ppro/6x86)
这应该没有太多可说的吧,选择你的CPU的种类,BIOS可以自检得
到,注意系统的启动信息。需要注意的是不能选择比你的CPU类型
还高级的CPU,否则可能不能正常工作。

math emulation
模拟数学协处理器,如果你的机器没有数学协处理器,那就选上
以提高性能,但486以后数学协处理器就集成到CPU内部了,应该是
用不上的,所以一般的选择是N。当然选上也不会有什么问题,除
了内 松陨 变大外。

mttr(memory type range register) support
这个选项是用来启动pentinum pro和pentinum II 的特殊功能,如果你用
的不是这类CPU就选N,否则也仅仅是使内核变大而已。

symmetric multi-processing support
同步处理器支持,如果你有多个CPU就选上吧。

enable loadable module support
这会启动动态载入额外模块的功能,所以一定选上。

set version information on all symbols for modules
这个选项可以为某个版本的内核而编译的模块在另一个版本的内
核下使用,但一般用不上。

kernel module loader
如果你启用这个选项,你可以通过kerneld程序的帮助在需要的时候
自动载入或卸载那些可载入式的模块。建议选上。

networking support
如果你用到任何网络就应该选上

pci bios support
这个一般是应该选上的,除非你用没有任何PCI设备的机器。PCI
BIOS是用来侦测并启用PCI设备的。

pci bridge optimization(v1.3)
当这个选项被启动时,操作系统会对从CPU和系统内存在PCI总线
来往的数据做最佳化,这个功能已经完成实验阶段,使用起来应
该很安全,而且还可增进系统的效率。

system v ipc
起用这个选项可以使内核支持System V 的进程间通信的功能
(IPC),有些从System V转移过来的程序会需要这个功能,建议启
用该功能。

sysctl support
除非你的内存少的可怜,否则你应该启动这个功能,启用该选项
后内核会大8K,但能让你直接改变内核的参数而不必重新开机。

kernel support for elf binaries
该选项让你的系统得以执行用ELF格式存储的可执行文件,而ELF
是现代LINUX的可执行文件、目标文件和系统函数库的标准格式。
当操作系统要和编译器以及连接器合作时会需要这些标准,所以
应该回答Y。

compile kernel as elf
这选项让你的内核本身以ELF的格式编译,如果你的系统上的过程
gcc默认产生ELF格式的可执行文件,那么你就应该启动这个选项。
先看看你的编译器的版本再决定。

parallel port support
如果你有任何并行口的设备并且想让LINUX使用,那么就可以启用
这个选项。LINUX不仅可以使用并口的打印机,还可以支持PLIP
(一种为并行口而设计的网络通讯协定),ZIP磁盘驱动器、扫描
仪等。在大多情况下,你需要额外的驱动程序才能使用外接的并
口设备。

plug and play support
支持PNP设备并非Microsoft的专利,如果你要让LINUX也支持PNP设
备,只要启用该选项就可以,但有些情况下会和其他设备产生冲
突(I/O,DMA,IRQ等)。这个选项对PCI设备没有影响,因为他们
天生就是PNP设备。

normal floppy disk support
除非你不想在LINUX下使用软盘,否则就应该回答Y。但对于一些
不需要支持软盘驱动器的系统而言,这个选项可以节省一些内
存。

enhanced ide/mfm/dll disk support
除非你不需要MFM/DLL/IDE硬盘的的支持,否则就应该回答Y,但如
果你只有SCSI的硬盘,关掉这个选项会比较安全。

enhanced ide/mfm/dll cdrom support
和上面的类似,只不过是对CDROM的支持而已。

enhanced ide/mfm/dll tape support
一般没有多少人在用磁带机吧,所以回答N是比较好的答案。

enhanced ide/mfm/dll floppy support
这个设备好象一般也没有人用,所以也可以回答N。

xt harddisk support
如果你有这种石器时代的XT硬盘,那么恭喜你你可以用上他了。

parallel port ide device support
LINUX是支持这种很新的并口的IDE设备的,如果你有的话就用上
吧。

networking options
如果你在前面选了支持网络的话,在这里会回答很多问题。除非
你有特别的需求,否则使用默认的选项应该就足够了。

scsi support
如果你有任何一种SCSI控制卡,这个选项就应该回答Y。事先搞清
楚你的硬件的类型,因为这些问题都是针对特定的SCSI控制芯片和
控制卡的,如果你不确定自己使用的是哪一种,查看你的硬件的
说明文件或者LINUX的HOWTO文档。同样也会让你回答很多SCSI设
备的支持(硬盘、CDROM、Tape、floppy等),依据你的情况选择。
如果你没有SCSI设备的话,建议不要支持,因为这会节约很多内核
空间。

network device support
这里面有很多关于网络控制卡的问题,如果你无法确定如何正确
选择,查看硬件文档或LINUX HOWTO文档。

amateur radio support
这个选项可以用来启动无线网络的基本支持,目前的无线网络可
以通过公众频率传输数据,如果你有此类设备就可以启用,具体
请参考AX25和HAM HOWTO 文档。
isdn subsystem
如果你有ISDN硬件就应该启用该选项并安装合适的硬件驱动程
序,你应该还会需要启用Support synchronous PPP选项(参考PPP over
ISDN)。

old cd-rom drivers
这是针对一些特殊光盘驱动器程序的问题,如果你有IDE或SCSI的
CDROM控制卡,那么就不用启用该选项了。

character devices
LINUX支持很多特殊的字符设备,例如并口、串口控制卡、QIC02磁
带驱动器以及特定界面的鼠标,此外对于游戏杆和影象摄取和麦
克等也在这里面,依据你自己的情况选者吧。

filesystems
这是一系列内核所支持的各文件系统的问题,对ext2 /proc文件系统
是一定应该支持的,有光驱还应该支持ISO9660(或模块支持),
有WINDOWS或DOS分区并且想在LINUX下访问他们也可以进行支
持。

console drivers
你至少应该支持VGA text console,否则你无法从控制台使用LINUX。

sound card support
在这里回答Y会出现很多关于声卡的问题,根据你自己的情况来配
置。

kernel profiling support(v1.3)
这个选项可以开启内核做效率统计的功能,并且会提供其他在为
系统侦错时有用的信息。这些功能会需要付出一些代价并造成系
统执行得较为缓慢,除非你正在研究内核的某个问题,否则你应
该回答N。

kernel hacking
如果你正打算深入研究自己系统上运行的LINUX如何运作,这里有
很多选项,但一般没有必要的话可以全部关掉。
51 c8051f(f020,f040) msp430 arm(2410,2510) fpga(xc3s4000) dsp(5116 dm642) keilc vc++ matlab linux protel Ten_layerPCB mpegx h.26x Rscode Turbocode ofdm VideoBroadcasting ldpc_code(now!)
返回列表