我们常见的在
/boot/
底下的核心文件,都是经过压缩过的核心文件,因此,上述的动作中比½常用
的是
modules
bzImage
这两个,其中
bzImage
第三个字母是英文大写的
I
喔!
bzImage
可以制
作出压缩过后的核心,
也就是一般我们拿来½行系统开机的信息啰!所以,基本上我们会½行的动
作是:
[root@study linux
-
3.10.89]#
make
-
j 4 clean
<==
先清除
[root@study linux
-
3.10.89]#
make
-
j 4 bzImage
<==
编译
核心
[root@study linux
-
3.10.89]#
make
-
j 4 modules
<==
编译
[root@study linux
-
3.10.89]#
make
-
j 4 clean bzImage modules
<==
连续动
作!
上述的动作会花费非常长的时间,编译的动作依据你选择的项目以及你主机硬件的效能而不同。此外,
为啥要加上
-j 4
呢?
因为鸟哥的系统上面有四个
CPU
核心,这几个核心可以同时½行编译的行为,
这样在编译时速度会比½快!如果你的
CPU
核心数
(
包括超线程
)
有多个,
那这个地方请加上你
的可用
CPU
数量吧!
最后制作出来的数据是被放置在
/usr/src/kernels/linux-3.10.89/
这个目录下,还没有被放到系统的相关
路径中喔!在上面的编译过程当中,如果有发生任何错误的话,
很可能是由于核心项目的挑选选择
的不好,可能你需要重新以
make menuconfig
再次的检查一下你的相关设定喔!
如果还是无法成功
的话,那么或许½原本的核心数据内的
.config
文件,复制到你的核心原始文件目录下,
然后据以
修改,应该就可以顺利的编译出你的核心了。最后注意到,下达了
make bzImage
后,最终的½果应
该会像这样:
Setup is 16752 bytes (padded to 16896 bytes).
System is 4404 kB
CRC 30310acf
Kernel:
arch/x86/boot/bzImage
is ready (#1)
[root@study linux
-
3.10.89]#
ll arch/x86/boot/bzImage
-
rw
-
r
--
r
--
. 1 root root 4526464 Oct 20 09:09 arch/x86/boot/bzImage
可以发现你的核心已经编译好而且放置在
/usr/src/kernels/linux-3.10.89/arch/x86/boot/bzImage
里面
啰~那个就是我们的核心文件!最重要就是他啦!我们等一下就会安装到这个文件哩!
然后就是编
译模块的部分啰~
make modules
½行完毕后,就等着安装啦!
^_^
24.3.2
实际安装模块
安装模块前有个地方得要特别强调喔!我们知道模块是放置到
/lib/modules/$(uname -r)
目录下的,那
如果
同一个版本的模块被反复编译后来安装时,会不会产生冲突
呢?举例来说,鸟哥这个
3.10.89
版本第一次编译完成且安装妥当后,发现有个小细½想要重新处理,因此又重新编译过一次,那两个
版本一模一样时,
模块放置的目录会一样,此时就会产生冲突了!如何是好?有两个½决方法啦:
.
先½旧的模块目录更名,然后才安装核心模块到目标目录去;
.
make menuconfig
时,那个
General setup
内的
Local version
修改成新的名称。