分类: LINUX
2010-07-20 11:18:35
1. 我的系统:ubuntu9.04+gcc4.3.3
2. 下载
3. 解压linux-2.4.30.tar.bz2到/usr/src目录下
#sudo tar jxvf -C linux-2.4.30.tar.bz2 /usr/src/
4. 进入linux-2.4.30目录,配置内核(我选用默认配置)
#sudo make oldconfig
5. 编译内核
#sudo tmake
出现错误如下
错误1:
|
解决办法:
make[2]:正在离开目录 `/usr/src/linux-2.4.30/crypto'
make[1]:正在离开目录 `/usr/src/linux-2.4.30/crypto'
make CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.30/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -fno-unit-at-a-time " -C arch/i386/kernel
make[1]: 正在进入目录 `/usr/src/linux-2.4.30/arch/i386/kernel'
gcc-3.4 -D__KERNEL__ -I/usr/src/linux-2.4.30/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i686 -fno-unit-at-a-time -nostdinc -iwithprefix include -DKBUILD_BASENAME=process -c -o process.o process.c
{standard input}: Assembler messages:
{standard input}:853: Error: suffix or operands invalid for `mov'
{standard input}:854: Error: suffix or operands invalid for `mov'
{standard input}:948: Error: suffix or operands invalid for `mov'
{standard input}:949: Error: suffix or operands invalid for `mov'
{standard input}:1000: Error: suffix or operands invalid for `mov'
{standard input}:1001: Error: suffix or operands invalid for `mov'
{standard input}:1003: Error: suffix or operands invalid for `mov'
{standard input}:1015: Error: suffix or operands invalid for `mov'
make[1]: *** [process.o] 错误 1
make[1]:正在离开目录 `/usr/src/linux-2.4.30/arch/i386/kernel'
make: *** [_dir_arch/i386/kernel] 错误 2
解决办法:打补丁linux-2.4-seg-4.patch
1)打补丁方法:拷贝补丁linux-2.4-seg-4.patch到/usr/src/linux-2.4.30/目录下
#sudo patch -p1 < linux-2.4-seg-4.patch
2) 再次编译,'sudo make'。成功!
6. 编译内核
#sudo make bzImage
7. 生成*.ko(模块化的内核驱动)等。
#sudo make modules
8. 安装内核模块到/lib/modules/linux-2.4.30目录下。
#sudo make modules_install
9. 拷贝内核(bzImage)和System.map的到/boot目录下。
#sudo make install
10. 在当前目录下生成一个名字为initrd.img-2.4.30的initrd 镜像文件,然后拷贝到/booot目录下。
#sudo mkinitramfs -o /boot/initrd.img-2.4.3 /lib/modules/linux-2.4.30/
在当前目录下生成一个名字为initrd.img-2.4.30的initrd 镜像文件,然后拷贝到/booot目录下。
11. done