现在的位置: 首页 > 综合 > 正文

初涉linux内核

2013年10月13日 ⁄ 综合 ⁄ 共 892字 ⁄ 字号 评论关闭

刚开始接触linux内核,首先将linux内核进行编译,遇到一些问题,最后虽然解决了,但是还不是完全清楚问题的本质,写这篇日志,记录一下,以便日后慢慢研究。

1.下载linux内核

http://kernel.org/ 下载了2.6.39.4版本的内核,下载的是.bz文件,通过unbizp2解压和tar解包。

2.配置内核

使用配置内核的命令,通常情况下是make menuconfig,通过menu的方式配置内核,当然有些也可以使用图形界面make xconfig来完成配置。

在配置内核的时候大部分选项的配置网上有详细介绍,这里不罗列了。

3.编译内核

(1)makedep和makeclean预处理

makedep是检查内核的完整性,make clean是清除已经编译生成的部分。

(1)make命令编译内核

这个阶段会产生一个bzImage在/arch/x86/boot/目录下,这个文件即内核的镜像文件。

(2)makemodules命令编译内核模块

这个阶段会将配置中选定的模块编译。

(或者make all命令同时运行make和make modules)

(3)makemodules_install命令安装内核模块

这个阶段将编译好的模块安装到/lib/modules下,并且运行depmod生成模块依赖关系文件,在系统启动的时候就会自动加载这些模块了。

(4)makeinstall命令安装内核

把压缩内核映象拷贝到/boot目录下, 并创建相应的System.map符号链接; 调用mkinitrd程序创建内核的initrd映象; 将在/boot/grub/grub.conf配置文件增加配置行。

4.遇到的问题

一开始说是找不到模块snd-had-codec-intelhdmi,重启以新内核引导的时候发现进不去,卡在登录界面之前。于是我从原内核中找到模块snd-had-codec-intelhdmi.ko的文件,复制到新内核的相应位置,于是make install的时候出现下图的警告,重启以后可以进入新内核,在新内核系统中编译内核就不会出现这样的问题了。现在还不清楚原因,如果哪位大虾知道可以指点一下啊。

抱歉!评论已关闭.