QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4785|回复: 57

新编译的内核能启动了,但是还有好多问题

[复制链接]
发表于 2003-5-3 00:05:57 | 显示全部楼层 |阅读模式
新编译的2.4.20,可以启动了。但是启动时出新一下错误
1.关于usb的,usb hid ;usb keyboard; usb mouse;模块无法加载(failed,是因为我没有把usb模块编译进去造成的?)
2.Mounting local filesystem: mount: fs type devpts not supported by local kernel
mount :wrong fs type, bad option,bad superblock on none or too many mounted filesystem.
3. 有关ip_tables部分全部出错(can't locate module ip_tables)

4 无法进入X,错误信息如下
failed to load /usr/X11R6/lib/modules/extensions/libglx.so
failed to load modules "glx"(loader failed,7)
NVIDIA(0):Failed to initialize the NVIDIA kernel module
NVIDIA(0):***Aborting***
screen(s) found but none have a usable configuration

我加入新内核的同时保留了老内核2.4.20-8,对老内核没有做任何改动,包括启动项,但是老内核无法引导系统了,错误信息如下:
pivotroot:pivotroot(/sysroot,/sysroot/initrd)failed :2
umount /initrd/proc failed:2
kernel panic: No init found  try passing init=option to kernel

诚恳的请教大虾们,高手们。
发表于 2003-5-3 01:54:12 | 显示全部楼层
1) u need choose usb related options as module, and do make modules, make module_install. u need not choose Y here, M is enough. Since rh rc.sysinit will try to load usb module when boot, so u choose M can let rh find these modules correctly. If you choose to link them into kernel by 'Y', u usb part will work correctly while rh still report some fails. but that is only fail to load module, not fail to work.

2) u need choose   
  • /dev/pts file system for Unix98 PTYs in file system

    3) do u include iptable? can u post the error here? i am not quite familar with iptables. i do not do firewall research for a long time.

    4) which kernel u compile? nvidia kernel module will be in /lib/modules/2.4.xx-x/video/nvidia.o. if u compile kernel and generate a new /lib/modules/2.4.xx-x dir.(because u change kernel version), u have to recompile nvidia kenrel driver for this kernel. but once u compile the nvidia kenrel, u need not do it after u recompile same version of linux kernel.

    5) for u old kernel do u regenerate the initrd.img?

    be sure to answer this question, u recompile with 2.4.20? vanilla? 2.4.20-8 come with u rh, or 2.4.20-9?
  • 回复

    使用道具 举报

     楼主| 发表于 2003-5-3 12:31:22 | 显示全部楼层
    我新编译的是2.4.20(就这个名字,后面没有数字了)。rh自带的是2.4.20-8

    第一个第二个问题好像你说中了,我就是没选。
    第三个问题,我再去查查看。不过make xconfig的时候应该选中这一项了(如果有的话,因为我不记得里面有没有关于ip_table的内容了)。
    第四个问题就是说要重装nvidia驱动是不是?我试试看。
    第五个问题,我为新内核生成了initrd-2.4.20.img,原来那个是initrd-2.4.20-8.img,我没改,grub.conf也没改老内核那一项,只是给新内核增加了一项。其他什么都没改。
    总的来说就做了三件事情,编译了新内核并且拷贝到/boot/目录下,生成新的.img,grub.conf中新添加了一项。就做了这么多。
    回复

    使用道具 举报

     楼主| 发表于 2003-5-3 14:00:55 | 显示全部楼层
    关于ip_table的错误信息是这样的:

    start service iptables(y)es/(n)o/(c)ontinue?[y]
    Flushing all current rles and user defined chains: modprobe :can't locate module ip_tables
    iptables v1.2.7a:can't initialize iptables table 'filter':iptables who? (do you need to insmod ?)
    perhaps iptables or your kernel needs to be upgrade                                     [FAILED]

    Clearing all current rles and user defined chains: modprobe :can't locate module ip_tables
    iptables v1.2.7a:can't initialize iptables table 'filter':iptables who? (do you need to insmod ?)
    perhaps iptables or your kernel needs to be upgrade                                     [FAILED]

    Applying iptables firewall rules: modprobe:can't locate module iptables
    iptables-restore v1.2.7a :iptables-restore:nable to initialize 'filter'.
    Try 'iptables-restore -h' or iptables-restore --help' for ore information              [FAILED]

    它的意思好像就是iptable这个模块找不到。可能真的没编译进去。
    哪个文件控制系统启动时加载的模块?rc.sysinit?脚本语言还是不太懂。如果我能把这些出错的项目屏蔽掉,那就不会再出错了,反正也用不上。
    还有个问题就是,启动时这些信息,[OK]啊,[FAILED]啊,放在哪里?我对着屏幕抄了半天半天到纸上,又再从纸上抄到这里,真够麻烦的。dmesg命令打印出来好像只有前面一部分信息,后面那部分找不到。

    NVIDIA的驱动重装一次就可以了,现在就在kde下面。
    谢谢cheungming,为我们所左的一切。
    回复

    使用道具 举报

    发表于 2003-5-4 07:02:29 | 显示全部楼层
    yes, i think u do not compile the iptables, shoudl be that net filter option. u can read Documentation/Configure.help to know more. only need search iptable.
    for u old kernel boot problem, i really do not know since u change nothing. bad luck. hehe.
    yes, boot script is that rc.sysinit. u can learn sh script if u like, not so difficult.
    these yes /no is printed out by printf, not printk. so u can not use dmesg to find them.

    u are always welcome.
    回复

    使用道具 举报

    发表于 2003-5-4 10:49:23 | 显示全部楼层
    ntsysv 取消iptable相关的项目
    dmesg | less(可以前后翻页)或者dmesg > dmesg.txt 重定向到当前目录下的dmesg.txt文件.然后你看这个文件就行了
    回复

    使用道具 举报

    发表于 2003-5-4 10:54:47 | 显示全部楼层
    [quote:09002c59fb="cnhnln"]ntsysv 取消iptable相关的项目
    dmesg | less(可以前后翻页)或者dmesg > dmesg.txt 重定向到当前目录下的dmesg.txt文件.然后你看这个文件就行了[/quote]
    what is ntsysv? abbreviation for what? hehe.

    what he asked is those ''... ok, ... fail..'' these are printed by printf not printk. so dmesg can not see.     
    回复

    使用道具 举报

    发表于 2003-5-4 11:14:01 | 显示全部楼层
    呵呵,没注意看. 错了,抱歉    就当是灌水吧  

    ntsysv 是RH管理启动服务的工具. 我觉得应该可以
    回复

    使用道具 举报

    发表于 2003-5-4 11:31:58 | 显示全部楼层
    that's fine.
    if kernel does not have this support, u can not use ntsysv acheives that.
    回复

    使用道具 举报

    发表于 2003-5-4 12:27:04 | 显示全部楼层
    RH默认启动iptable服务.但是内核不支持所以启动报错.取消它应该就不报错了
    回复

    使用道具 举报

     楼主| 发表于 2003-5-4 19:58:35 | 显示全部楼层
    对,可以关闭的,但是不是成功要重启才知道了,ntsysv其实就是setup里面services这一项,我在x下用redhat-config-services。其实都一样。
    shell编程不难吗?我会去学学看的,谢谢cheungming的鼓励。
    还有一个问题是关于alsa声卡驱动的,据说alsa0.9.2版本在2.4.20内核下没有问题,是不是这样呢,因为我还是没法安装。
    回复

    使用道具 举报

     楼主| 发表于 2003-5-4 20:35:27 | 显示全部楼层
    还有差点忘了,就是老内核的问题。我用新内核的initrd2.4.20.img作为老内核的启动选项也不行,重新生成initrd2.4.20-8.img也不行,还是原来得错误信息
    pivotroot:pivotroot(/sysroot,/sysroot/initrd)failed :2
    umount /initrd/proc failed:2
    kernel panic: No init found try passing init=option to kernel

    错误是在检测完ide设备以后发生的,还没有启动任何服务。能解决吗?
    回复

    使用道具 举报

    发表于 2003-5-4 21:33:34 | 显示全部楼层
    关闭服务不一定要重起。"/etc/init.d/iptables stop"(类似其他的服务名也可以,你可以用"table"键进行命令补全)(每种服务有不同的参数,你可以执行"/etc/init.d/iptables",它会显示相关参数,例如start stop restart 等)也可以 "service iptables stop"

    试试alsa-0.93a。我自己用官方的2.4.20+alsa-0.93a没问题。

    不用initrdxxxxx.img也可以启动的。mkinitrd的时候要用你的新内核的版本号。例如"mkinitrd initrd2.4.20-new.img 2.4.20-new" 2.4.20-new是你的新内核的对应模块所在目录。在/lib/modules/目录下
    回复

    使用道具 举报

    发表于 2003-5-4 22:34:40 | 显示全部楼层
    cnhnln is right. u can use that command to shutdown service directly instead of rebooting. this is much better than windoze. most of the service can be operated liek this. go /etc/init.d to see how many services u have.

    u vanilla 2.4.20 kernel should have no problem with alsa 0.92. i am using it. 0.93 should be ok as well, cnhnln tested it , right?

    for each kernel, its initrd is different, u can not use one for others. try to add an entry that is the same as u old one except without that initrd option in u grub.conf to see if it can boot.
    回复

    使用道具 举报

    发表于 2003-5-5 08:20:15 | 显示全部楼层
    i check the doc and think that u old kernel fails when userland code calls pivot_root system call.
    so a question for u, do u change that initrd.xx.img file. for example, u generate a new one and overwrite the old one? if not, then it is very strange.
    回复

    使用道具 举报

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

    本版积分规则

    GMT+8, 2024-11-2 04:40 , Processed in 0.065483 second(s), 15 queries .

    © 2021 Powered by Discuz! X3.5.

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