LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 809|回复: 6

problem compiling kernel 2.4.18 and 2.4.19

[复制链接]
发表于 2002-11-3 04:01:19 | 显示全部楼层 |阅读模式
when i run make bzImage,at the end it says:

ld -m elf_i386 -T /usr/src/kernel-source-2.4.18/arch/i386/vmlinux.lds -e stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o init/version.o \
        --start-group \
        arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o \
         drivers/parport/driver.o drivers/char/char.o drivers/block/block.o drivers/misc/misc.o drivers/net/net.o drivers/media/media.o drivers/char/agp/agp.o drivers/char/drm/drm.o drivers/ide/idedriver.o drivers/cdrom/driver.o drivers/sound/sounddrivers.o drivers/pci/driver.o drivers/video/video.o \
        net/network.o \
        /usr/src/kernel-source-2.4.18/arch/i386/lib/lib.a /usr/src/kernel-source-2.4.18/lib/lib.a /usr/src/kernel-source-2.4.18/arch/i386/lib/lib.a \
        --end-group \
        -o vmlinux
drivers/char/drm/drm.o(.text+0xc688): In function `sis_fb_alloc':
: undefined reference to `sis_malloc'
drivers/char/drm/drm.o(.text+0xc72e): In function `sis_fb_alloc':
: undefined reference to `sis_free'
drivers/char/drm/drm.o(.text+0xc799): In function `sis_fb_free':
: undefined reference to `sis_free'
drivers/char/drm/drm.o(.text+0xcbbf): In function `sis_final_context':
: undefined reference to `sis_free'

they appears both on 2.4.18 and 2.4.19
I'm using woody,my kernel is 2.2.20-idepci
can anyone help me?
发表于 2002-11-3 04:23:00 | 显示全部楼层
有没有下载相应的头文件 kernel-header-2.4.18 和 kernel-header-2.4.19 ?
如果只是想升级 kernel, 就直接下载 binary image 吧, kernel-image-2.4.19, 安装过程中注意读说明, 别忘了最后运行 lilo (安装过程中应该会自动运行的, 但保险一点没坏处).
 楼主| 发表于 2002-11-3 05:04:12 | 显示全部楼层
不是只下source就可以了吗?还要hearder的?那可能是因为我没有下了!还有,如果是binary那不可能选里面的选项的吧?
发表于 2002-11-3 05:36:49 | 显示全部楼层
我也是个新手, 还从来没有自己编译过内核呢. 8-P

照理说来是不需要 header 的, 因为 header 是给内核以外的程序用的.

我觉得缺省的选项挺好用的, 也就没去想重新编译内核.

我又看了一下, 这一行很可疑:
/usr/src/kernel-source-2.4.18/arch/i386/lib/lib.a /usr/src/kernel-source-2.4.18/lib/lib.a /usr/src/kernel-source-2.4.18/arch/i386/lib/lib.a \
总觉得象是缺了什么库的名字.
发表于 2002-11-3 09:31:30 | 显示全部楼层
糯米兄,原因可能是这样的,我想编译内核它可能找的是
/usr/include下的头文件,你现在用的是2。2。20内核它在/usr/include中的文件不适用于2.4.18 和 2.4.19,所以会发生错误提示,而如果本来就用2.4.18的,可能就不会有这个提示了,解决方法如下:

# cd /usr/src
# ln -s 内核文件夹 linux
做个联接

# cd /usr/include/
# rm -r asm linux scsi
或 mv asm asm-2.2.20
   mv linux linux-2.2.20
   mv scsi scsi-2.2.20
删掉或改名原来2。2。20的相关目录

# ln -s /usr/src/linux/include/asm-i386 asm
# ln -s /usr/src/linux/include/linux linux
# ln -s /usr/src/linux/include/scsi scsi
把新内核原码对应目录在该处作个连接

这样以后,
再cd /usr/src/linux
make mrproper
清除以前编译留下的东西
象原来一样编译试试看

这里要连接的几个文件夹可能不一定是asm-i386,我这里有些记不清,兄弟可以按错误提示相应添加,或发贴。
 楼主| 发表于 2002-11-3 14:09:20 | 显示全部楼层
我已经解决了,不过有点勉强,上面说sis的有问题我就把内核char里面的sis支持去掉了就好了。。。我试试你说的方法
发表于 2007-4-17 23:00:03 | 显示全部楼层
我也遇到了相同的问题.

我主板是sis的,把sis选项去掉是能编译通过,不过我启动不了,不知道是不是因为去掉了的缘故?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表