VMware下编译Linux内核(2.4.32)全过程
; y: y! V9 L6 z; ^: w最近需要编译2.4.32内核,在网上倒是找到了不少关于编译内核的文章,但是都因为
" q2 z- W* {; n( N9 E
某些文件没有讲清楚或者根本没讲,使得像我这样的小鸟不能够正常完成内核编译,
# ]+ [# m- l- I3 k. X) w4 e) B
通过自己的摸索,现将在vmware下编译2.4.32内核的详细步骤列出来,
6 ~' s: J$ V4 p3 S9 d
希望能够给和我一样的小鸟们带来近路

...
% {5 R4 k( G1 `' ^7 y, g- O% H8 X' T9 `' p. g! ^' F1 J
1 B- N2 T4 a' B
# \& U ?" A7 b3 H5 W; h3 E! f7 x$ K2 U, N/ D) {4 b5 N" i# ]* W) s
9 Q3 T1 g! H& \3 V
" w t$ r& R2 r, ~! M, J" p6 W6 ~
1.[root@gliethttp]#make mrproper
( f8 Q5 r, Z' u
2.[root@gliethttp]#make clean
. G0 c! L# d- J; U8 {. O5 R& G& n- y
3.[root@gliethttp]#make menuconfig
3 ]9 D) Q& i0 ]0 M
3.1.选择处理器
( X. v* F6 p! P) S% j* t r4 u
Processor type and features--->

rocessor family--->386
' `3 i9 i% B0 a0 ~( x2 \0 B3.2.Ram Disk驱动
! x+ B/ \) z, m Block devices--->
' z; l) R+ ^6 a& |8 \3 s
< * > RAM disk support
& z" v/ `- r& }9 c$ Q* D (4096) Default RAM disk size (NEW)
* _0 k0 y, o" A7 I5 t1 b" ` < * > Initial RAM disk (initrd) support
7 i9 H" {, {' u g( [. n" t( {) p. \
3.3.文件系统
5 L; x& C; g8 x8 i File systems--->
% o6 r' D, Q; J; A
[ * ] Ext3 journalling file system support
/ a! a" S! _: r Y7 } [ * ] Ext3 Security Labels
+ t& t7 K( B: M3 N' y% c- |
[ * ] JBD (ext3) debugging support
* C, e# s* _5 p2 E0 G% I1 b
3.4.BusLogic驱动
{9 G; Q, r) E SCSI support--->
, \) l1 G9 C. |" u) v5 E SCSI low-level drivers --->
* M1 O. u/ u) H% Z/ [" @
< M >BusLogic SCSI support
% H/ ~% T3 D- D4.[root@gliethttp]#make dep
2 C2 a( }1 F! ^7 m* p
5.[root@gliethttp]#make bzImage
: L' h, C# e9 F0 p
6.[root@gliethttp]#make modules
8 ]$ e/ H* `7 I7.[root@gliethttp]#make modules_install
U8 h( H, V- B4 p* c) I; `: x (*
. n2 k) x" E6 h8 _ make modules_install将执行如下操作:
' ?3 r$ {- |7 u #cp /usr/src/linux/System.map /boot/System.map-2.4.18
?& ?' }& m1 l9 m7 E6 E& l' x6 O #cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.18
9 D. c x/ c# \ l# n #cd /boot
0 Z% h y' k5 ? #rm -f System.map vmlinuz
3 F% g; Y9 k# y6 j; w #ln -s vmlinuz-2.4.18 vmlinuz
* C8 ~5 q4 c4 Z6 O6 t
#ln -s System.map-2.4.18 System.map
8 i1 F5 m$ G/ U$ p! m , G5 ?' a) O. G" `2 R
bzImage是压缩的内核映像
$ B( Z4 Q) Y% k# o2 m& n; _% i! M
vmlinux是未压缩的内核,vmlinuz是vmlinux的压缩文件。
' K0 G# z9 a0 } initrd一般被用来临时的引导硬件到实际内核vmlinuz能够接管并继续引导的状态。
1 y9 L+ X% z% U% f. {% \( ] System.map是一个特定内核的内核符号表。它是你当前运行的内核的System.map的链接。
% t1 a7 l F* l. o" |) V *)
: `* J6 r! r7 ^1 H4 o
8.[root@gliethttp]#make install (生成grub下的menu.lst相关文件和RAM启动盘)
% ~/ U! D+ X: j+ r8 k% t( r9.[root@gliethttp]#reboot (重启计算机)