linux安装内核源码linux安装内核

作者&投稿:弓蓝 (若有异议请与网页底部的电邮联系)
~

如何给linux安装新内核?

一、获取内核源码

二、解压内核源码

首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录。该目录下存放着内核x.y.z的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:

#tarzxvfLinux-2.3.14.tar.gz

文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。

#cd/usr/include

#rm-Rfasmlinux

#ln-s/usr/src/linux/include/asm-i386asm

#ln-s/usr/src/linux/include/linuxlinux

#ln-s/usr/src/linux/include/scsiscsi

删除源代码目录中残留的.o文件和其它从属文件。

#cd/usr/src/linux

#makemrproper

三.增量补丁

有时不需要完全重新安装,只需打增量补丁,类似升级,在内核源码树根目录运行:

patch-p1../patch-x.y.z

四.内核源码树目录:

arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。

block:部分块设备驱动程序。

crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。

Documentation:关于内核各部分的通用解释和注释。

drivers:设备驱动程序,每个不同的驱动占用一个子目录。

fs:各种支持的文件系统,如ext、fat、ntfs等。

include:头文件。其中,和系统相关的头文件被放置在linux子目录下。

init:内核初始化代码(注意不是系统引导代码)。

ipc:进程间通信的代码。

kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。

lib:库文件代码。

mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。

net:网络相关代码,实现了各种常见的网络协议。

scripts:用于配置内核文件的脚本文件。

security:主要是一个SELinux的模块。

sound:常用音频设备的驱动程序等。

usr:实现了一个cpio。

在i386体系下,系统引导将从arch/i386/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。

五.配置内核

#cd/usr/src/linux

内核配置方法有三种:

(1)命令行:makeconfig

(2)菜单模式的配置界面:makemenuconfig

(3)Xwindow:makexconfig

Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以"y"、"m"或"n"。其中"y"表示将相应特性的支持或设备驱动程序编译进内核;"m"表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;"n"表示内核不提供相应特性或驱动程序的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。

1、Codematurityleveloptions(代码成熟度选项)

Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。

2、Processortypeandfeatures(处理器类型和特色)

(1)、Processorfamily(386,486/Cx486,586/K5/5x86/6x86,Pentium/K6/TSC,PPro/6x86MX)选择处理器类型,缺省为Ppro/6x86MX。

(2)、MaximumPhysicalMemory(1GB,2GB)内核支持的最大内存数,缺省为1G。

(3)、Mathemulation(CONFIG_MATH_EMULATION)协处理器仿真,缺省为不仿真。

(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)

选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供Xserver使用。

(5)、Symmetricmulti-processingsupport(CONFIG_SMP)选择“y”,内核将支持对称多处理器。

3、Loadablemodulesupport(可加载模块支持)

(1)、Enableloadablemodulesupport(CONFIG_MODULES)选择“y”,内核将支持加载模块。

(2)、Kernelmoduleloader(CONFIG_KMOD)选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。

4、Generalsetup(一般设置)

(1)、Networkingsupport(CONFIG_NET)该选项设置是否在内核中提供网络支持。

(2)、PCIsupport(CONFIG_PCI)该选项设置是否在内核中提供PCI支持。

(3)、PCIaccessmode(BIOS,Direct,Any)该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。

(4)Parallelportsupport(CONFIG_PARPORT)选择“y”,内核将支持平行口。

5、PlugandPlayconfiguration(即插即用设备支持)

(1)、PlugandPlaysupport(CONFIG_PNP)选择“y”,内核将自动配置即插即用设备。

(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)选择“y”,内核将自动配置基于ISA总线的即插即用设备。

6、Blockdevices(块设备)

(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)选择“y”,内核将提供对软盘的支持。

(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。

7、Networkingoptions(网络选项)

(1)、Packetsocket(CONFIG_PACKET)选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。

(2)、Networkfirewalls(CONFIG_FIREWALL)选择“y”,内核将支持防火墙。

(3)、TCP/IPnetworking(CONFIG_INET)选择“y”,内核将支持TCP/IP协议。

(4)TheIPXprotocol(CONFIG_IPX)选择“y”,内核将支持IPX协议。

(5)、AppletalkDDP(CONFIG_ATALK)选择“y”,内核将支持AppletalkDDP协议。

8、SCSIsupport(SCSI支持)

如果用户要使用SCSI设备,可配置相应选项。

9、Networkdevicesupport(网络设备支持)

Networkdevicesupport(CONFIG_NETDEVICES)选择“y”,内核将提供对网络驱动程序的支持。

10、Ethernet(10or100Mbit)(10M或100M以太网)

在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。

11、Characterdevices(字符设备)

(1)、Virtualterminal(CONFIG_VT)选择“y”,内核将支持虚拟终端。

(2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)

选择“y”,内核可将一个虚拟终端用作系统控制台。

(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)

选择“y”,内核将支持串行口。

(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)

选择“y”,内核可将一个串行口用作系统控制台。

12、Mice(鼠标)

PS/2mouse(aka"auxiliarydevice")support(CONFIG_PSMOUSE)如果用户使用的是PS/2鼠标,则该选项应该选择“y”。

13、Filesystems(文件系统)

(1)、Quotasupport(CONFIG_QUOTA)选择“y”,内核将支持磁盘限额。

(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)选择“y”,内核将提供对automounter的支持,使系统在启动时自动mount远程文件系统。

(3)、DOSFATfssupport(CONFIG_FAT_FS)选择“y”,内核将支持DOSFAT文件系统。

(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)

选择“y”,内核将支持ISO9660CDROM文件系统。

(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)

选择“y”,用户就可以以只读方式访问NTFS文件系统。

(6)、/procfilesystemsupport(CONFIG_PROC_FS)/proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。

(7)、Secondextendedfssupport(CONFIG_EXT2_FS)EXT2是Linux的标准文件系统,该项也必须选择“y”。

14、NetworkFileSystems(网络文件系统)

(1)、NFSfilesystemsupport(CONFIG_NFS_FS)选择“y”,内核将支持NFS文件系统。

(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)

选择“y”,内核将支持SMB文件系统。

(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)

选择“y”,内核将支持NCP文件系统。

15、PartitionTypes(分区类型)

该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。

16、Consoledrivers(控制台驱动)

VGAtextconsole(CONFIG_VGA_CONSOLE)选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。

17、Sound(声音)

Soundcardsupport(CONFIG_SOUND)选择“y”,内核就可提供对声卡的支持。

18、Kernelhacking(内核监视)

MagicSysRqkey(CONFIG_MAGIC_SYSRQ)选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。

六、编译内核

(一)、建立编译时所需的从属文件

#cd/usr/src/linux

#makedep

(二)、清除内核编译的目标文件

#makeclean

(三)、编译内核

#makezImage

内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用makebzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。

(四)、编译可加载模块

如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。

#makemodules

#makemodelus_install

编译成功后,系统会在/lib/modules目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。

七、启动新内核

(一)、将新内核和System.map文件拷贝到/boot目录下

#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14

#cp/usr/src/linux/System.map/boot/System.map-2.3.14

#cd/boot

#rm-fSystem.map

#ln-sSystem.map-2.3.14System.map

(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:

default=linux-2.3.14

image=/boot/vmlinuz-2.3.14

label=linux-2.3.14

root=/dev/hda1

read-only

(三)、使新配置生效

#/sbin/lilo

(四)、重新启动系统

#/sbin/reboot

新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。

如何在vmware上安装linux早期版本内核,如linux0.11?

首选倒数第二个,就是2.6内核64位系统。

或者redhatenterpriselinux564-bit,fedora就是redhat社区维护的,fedora8和rhel5比较接近。

重要的是,如果是用虚拟机安装linux,最好不好使用64位系统,反正是虚拟的,32和64没有差别,即使在真实环境也不建议使用64位的,64位目前还没有优势,速度慢软件少。

虚拟机可以使用redhat企业版4,或者centos4,32位的,非常不错的版本。

LINUX内核编译步骤?

编译及安装简要步骤:编辑Makefile版本信息定义内核特性,生成配置文件.config,用于编译:makexconfig编译内核:make安装内核:makeinstall安装模块:makemodules_install具体步骤如下:内核配置先定义内核需要什么特性,并进行配置。内核构建系统(Thekernelbuildsystem)远不是简单用来构建整个内核和模块,想了解更多的高级内核构建选项,你可以查看Documentation/kbuild目录内的内核文档。

可用的配置命令和方式:makemenuconfig命令:makemenuconfig编译内核编译和安装内核编译步骤:$cd/usr/src/linux2.6$make安装步骤(loggedas$makeinstall$makemodules_install提升编译速度多花一些时间在内核配置上,并且只编译那些你硬件需要的模块。

这样可以把编译时间缩短为原来的1/30,并且节省数百MB的空间。

另外,你还可以并行编译多个文件:$make-j

Linux内核的配置原则?

linux内核的配置原则根据编制的状况,构造出编译的源文件表,并把目标代码链接在一起,最终形成linux二进制文件,按树形结构分布在目录树中,配置文件,配置工具都需要按照用户的使用习惯进行选择。

linux要多大的空间安装?

一般6-10G,建议20G以上。r由于Linux的内核的来源是一样的,但由于发行版本不同,具体需要磁盘大小看具体系统需求。rLinux内核比较小,安装系统其实用不了多大的磁盘空间,不像MAXOS和windows。为了获得完整的用户体验,建议磁盘空间保证在20G以上,如果需要安装很多软件和服务,那么自然就要扩大磁盘容量了。当然也可以在系统装好之后扩充磁盘容量,但为了避免麻烦和数据损失,建议在安装时多分一点儿空间。




linux 安装完成以后再\/usr\/src\/下找不到内核源码,怎样装系统可以让源...
很简单,去内核官网下载对应版本的源码,解压到\/usr\/src目录下就OK了

linux不是开源的吗,怎么没找到源代码呢,怎样才能看到linux的内核源代码...
要分析Linux内核源码,首先必须找到各个模块的位置,也即要弄懂源码的文件组织形式。虽然对于有经验的高手而言,这个不是很难;但对于很多初级的Linux爱好者,和那些对源码分析很有兴趣但接触不多的人来说,这还是很有必要的。1、Linux核心源程序通常都安装在\/usr\/src\/linux下,而且它有一个非常简单的...

linux内核完全剖析linux内核完全
事实上很多时候我们都要用到内核函数,只是我们并不知道而已,如打开文件要调用open()、关闭文件要调用close()等等如何查看linux内核源代码?一般在Linux系统中的\/usr\/src\/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还...

如何在CentOS\/RHEL上安装或升级新的内核版本
1、对于CentOS\/RHEL系统,尽量使用yum方式或RPM包安装\/升级内核,需要注意的是红帽的Red Hat Linux服务需要订阅。2、使用安装新内核而不是直接升级内核,安装新内核不会覆盖旧内核,而升级会导致新内核直接替换旧内核,可能会导致系统无法启动,安装也可以让我们在升级后有回滚的选择。3、一般地,对于大...

Linux内核源码如何编译??Ubuntu源代码在哪里呢?
编译linux内核步骤:1、安装内核 如果内核已经安装(\/usr\/src\/目录有linux子目录),跳过。如果没有安装,在光驱中放入linux安装光盘,找到kernel-source-2.xx.xx.rpm文件(xx代表数字,表示内核的版本号),比如RedHat linux的RPMS目录是\/RedHat\/RPMS\/目录,然后使用命令rpm -ivh kernel-source-2.xx.xx...

linux内核配置与编译时,下载来的内核源代码应该放在哪呢
随便就行,\/usr\/src\/linux 放当前运行中的内核源代码的习惯你可以遵守,也可以不遵守。只不过是一些软件在编译时会固定到这里找内核源代码的相关数据来保证自己的内核模块可以正确编译。不过有些时候 \/usr\/module 里面的内核目录里面也有到你的源代码目录的链接。很多软件两个地方找到一个就能继续编译。...

何处下载CentOS的Linux内核的源代码?
今天既不分析内核源代码,也不讲如何编译源代码,只说从何处下载你的CentOS所对应的Linux内核的源代码。一、准备工作 1. 如何查询你的CentOS的版本 参见:http:\/\/blog.csdn.net\/yunying_si\/article\/details\/23679769 2. 如何查询Linux 内核版本 [root@syy ~]# uname -r 2.6.32-431.3.1.el6...

如何配置linux内核
尽量多地使用“y”设置内核选项值,生成的配置中包含了全部的内核特性make allnoconfig :除必须的选项外,其它选项一律不选. (常用于嵌入式系统).8.make allmodconfig尽可能多的使用“m”设置内核选项值来生成配置文件 下载好Linux内核源代码后,在源代码的根目录执行make localyesconfig或者make localmodconfig然后系统...

我安装了linux,怎么才能看到源代码呢?
与Linux 的蓬勃发展相适应,想深入了解Linux的也越来越多。而要想深入了解Linux,就需要阅读和分析linux内核的源代码。 Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,\/usr\/src\/linux目录下的东西就是内核源代码。另外还可以从互连网上下载,解压缩后文件一般也都位于linux目录下。...

Linux安装新的内核之后可不可以把内核源码文件夹删除?
如果你确定以后不用在当前内核基础上更改编译、不会对当前内核增加模块,是可以删除的。源码的存在与否,对当前运行的内核没有任何影响。

鱼台县18229239777: Linux Kernel (Linux内核)怎么安装 -
斐永倍他: 1、下载新内核源码:到官网www.kernel.org,下载最新版本linux内核,保存到/usr/src/kernels目录,大约54MB.2、# cd /usr/src/kernels3、# tar jvxf linux-2.6.31.5.tar.bz24、进入系统原内核目录,把其中的隐藏文件.config复制到新内核目录中....

鱼台县18229239777: 如何给linux安装新内核 -
斐永倍他: 清除垃圾(这一步:一般是在就内核重新编译时使用,在编译新的内核是不需要);make clean及make mrproper;进行内核裁减配置;内核裁减配置的原则:从实际出发.如:根据支持的硬件设备来决定需要选择的驱动模块,根据需要选择所...

鱼台县18229239777: 请教linux系统中安装源代码包? -
斐永倍他: 在linux中安装源码包,你先把包解压后(一般是 .tar、.gz这两种格式),看里面说明,再到网上找找看看你下载的源码包需要些什么依赖包,得先把依赖包安装好以后,再进行安装.安装的前提条件是必须按照make、gcc等工具和环境变量设置好.因为需要对源码进行编译. 通常一般源码安装步骤: 进入源码解压后的目录 1、配置 ./configure (可以跟选项,具体不定.不加选项是默认) 2、编译 make 3、安装 make install 4、可能涉及到ln做链接或者环境变量等一些操作,具体看软件. 上面是一般步骤,最有用的是看软件包里面的说明文件.

鱼台县18229239777: 如何安装Linux内核源代码 -
斐永倍他: 这个如果源里有,就从源里安装,不同发行版有所不同 debian/ubuntu应该是sudo apt-get install linux-headers-`uname -r`

鱼台县18229239777: Linux安装源码程序,一般需要什么步骤? -
斐永倍他: tar -xzvf xxxxx.tar.gz <-解包./configure --prefix=/xxx/xxx/ <-安装目录 后边可以加一些参数进行工程配置文件 make <- 进行编译 make install <- 编译安装 也有人喜欢make && make install 这么写 && 代表的意思就是如果make 成功 那么久执行make install 不成功不执行

鱼台县18229239777: 如何安装linuxkernel -
斐永倍他: 可以用两种简单的方式在CentOS 7上安装Linux内核4.0. 从Elrepo软件仓库安装 从源代码编译安装 我们首先用ElRepo安装,这是最简单的方式: 使用 Elrepo 安装 1. 下载和安装ELRepo 我们首先下载ELRepo的GPG密钥并安装relrepo-release安...

鱼台县18229239777: 如何在Debian或Ubuntu上安装完整的内核源码 -
斐永倍他: 在Debian上安装完整的内核源码 在下载内核源码之前,先安装dpkg-dev,其中包含你在Debian上生成源代码时需要的开发工具套件.不仅如此,dpkg-dev中还包含在用来解压Debian源码包并自动打补丁的工具dpgk-source.$ sudo apt-get ...

鱼台县18229239777: 安装的LINUX 系统.注意:要包含完整的LINUX 内核原代码,这句话什么意思求解释? -
斐永倍他: 你看的书上的吧, 就是你需要 安装一个linux系统来用, 至于包含完整的linux内核代码, 需要你去kernel.org上去下载, 然后解压缩就可以了.

鱼台县18229239777: Ubuntu Linux下如何用源码文件安装软件 -
斐永倍他: 下面就介绍这种手工安装方式的详细步骤. 一、 安装编译程序因为要编译源代码,所以第一步就是安装编译和构建之类的程序.如果你已经安装过了,可以跳过此步.在Ubuntu系统中非常简单,只要执行下面命令就行了: $ sudo apt-get install ...

鱼台县18229239777: 如何编译Linux内核 -
斐永倍他: 一、编译环境 ubuntu 5.10,要编译的内核源码版本2.6.12 二、下载并解压源代码 首先从linux内核的官网www.kernel.org把源代码下载下来.为了和后面实验要求符合,我们要下载使用O(1)调度器的源码.因此这里下载了2.6.12版本源码.下载 ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网