minidreamer 发表于 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 foundtry passing init=option to kernel

诚恳的请教大虾们,高手们。

Dragonfly 发表于 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?

minidreamer 发表于 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中新添加了一项。就做了这么多。

minidreamer 发表于 2003-5-3 14:00:55

关于ip_table的错误信息是这样的:

start service iptables(y)es/(n)o/(c)ontinue?
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                                    

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                                    

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            

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

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

Dragonfly 发表于 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.

cnhnln 发表于 2003-5-4 10:49:23

ntsysv 取消iptable相关的项目
dmesg | less(可以前后翻页)或者dmesg > dmesg.txt 重定向到当前目录下的dmesg.txt文件.然后你看这个文件就行了

Dragonfly 发表于 2003-5-4 10:54:47

ntsysv 取消iptable相关的项目
dmesg | less(可以前后翻页)或者dmesg > dmesg.txt 重定向到当前目录下的dmesg.txt文件.然后你看这个文件就行了
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. :wink::wink::wink:

cnhnln 发表于 2003-5-4 11:14:01

呵呵,没注意看. 错了,抱歉:oops:就当是灌水吧:mrgreen:

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

Dragonfly 发表于 2003-5-4 11:31:58

that's fine.
if kernel does not have this support, u can not use ntsysv acheives that.

cnhnln 发表于 2003-5-4 12:27:04

RH默认启动iptable服务.但是内核不支持所以启动报错.取消它应该就不报错了

minidreamer 发表于 2003-5-4 19:58:35

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

minidreamer 发表于 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设备以后发生的,还没有启动任何服务。能解决吗?

cnhnln 发表于 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/目录下

Dragonfly 发表于 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.

Dragonfly 发表于 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.
页: [1] 2 3 4
查看完整版本: 新编译的内核能启动了,但是还有好多问题