+ -
当前位置:首页 → 问答吧 → 求助:linux-2.6.10启动时挂起,且无panic

求助:linux-2.6.10启动时挂起,且无panic

时间:2009-06-18

来源:互联网

为了学习linux驱动开发,我需要编译安装linux-2.6.10。
  我当前的linux是2.6.23.1-42.fc8,gcc版本是 4.1.2-33,是在Dell vestro 1500(CPU为iX86系列的)。我从www.kernel.org 下载了linux-2.6.10[/url]的内核源码和相应的补丁linux-2.6-seg-5.patch,并安装了3.4.2版本的gcc。在make menuconfig进行内核配置时都是用默认配置,然后make bzImage,顺利通过编译。然后的操作如下:
  make modules
  make modules_install
  cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10
  cp System.map /boot/System.map-2.6.10
  ln -s /boot/vmlinuz-2.6.10 /boot/vmlinuz
  ln -s /boot/System.map-2.6.10 /boot/System.map
  new-kernel-pkg --mkinitrd --install --depmod 2.6.10

然后查看/boot/grub/grub.conf的内容如下:
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,8 )
#          kernel /boot/vmlinuz-version ro root=/dev/sda9
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=2
timeout=5
splashimage=(hd0,8 )/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.10)
        root (hd0,7)
        kernel /boot/vmlinuz-2.6.10 ro root=LABEL=/
        initrd /boot/initrd-2.6.10.img
title Fedora (2.6.23.1-42.fc8 )
        root (hd0,7)
#       kernel /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet
        kernel /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb
        initrd /boot/initrd-2.6.23.1-42.fc8.img
title Windows
        rootnoverify (hd0,1)

重新启动,选择linux-2.6.10的进入,在输出如下几行后就停滞不动了,只有一个光标在闪动,更郁闷的是竟然不报panic!这让人怎么查问题在哪啊
  Red Hat nash version 6.0.19 starting
  Mounting proc FileSystem
  Mounting sysfs Filesystem
  Creating /dev

  我看了正常启动的linux-2.6.23,它在Creating /dev后有条语句输出:Creating initial device nodes。但是linux-2.6.10却没有啊?!

  这个问题我已经折腾好些天了,都没弄好。望各位帮帮忙......................

作者: bigcavity1   发布时间: 2009-06-18

可能是内核配置或者内核编译安装方法有问题
内核的配置一般根据自己的需求来,这个不能一概而论
2.6 内核正确的编译方法是
1、make menuconfig,配置内核
2、make 编译内核和内核模块
3、make modules_install 安装内核模块
4、make install,安装内核到 /boot 中
5、修改 grub.conf,使其指向新的内核 kernel 和 initrd 文件

你再试试呢?

作者: platinum   发布时间: 2009-06-18

我看了一下,make install会运行脚本:/内核源码根目录/arch/i386/boot/install.sh。
查看一下这个脚本,发现其所作的操作和我在前面所做的操作一样。
并且,发帖之前我也用过make install安装内核,但还是出现和前面一样的问题。

刚才在编译内核时,我也用了make,而不是make bzImage,其他操作不变。但还是出现一样的问题!

郁闷,这个问题折腾我好些天了,用google搜了不少资料,但是都没解决。内核出错,好歹也要报个panic的错误的,让人有源可查。但现在连panic都不输出,只是挂起不动了。

在把/boot/grub/grub.conf文件里的kernel-2.6.10的启动项之kernel项的quite去掉后,才输出如下,然后挂起:
  Red Hat nash version 6.0.19 starting
  Mounting proc filesystem
  Mounting sysfs filesystem
  Creating /dev
不去掉quite之前,在输出 Red Hat nash version 6.0.19 starting后就停止不动了。

有对linux 2.6的内核启动过程的高人吗,帮我给些建议哦......

作者: bigcavity1   发布时间: 2009-06-18

以前遇到过同样的问题,发现是 initrd 中 rc 这个 script 加载 udev 时出现了错误
不知道你的情况是否与我的相同
我的个人建议是,如果 initrd 中没有临时要加载的内核模块,那么不妨使用一个好的系统的 initrd 代替先

作者: platinum   发布时间: 2009-06-18

恩,我机器上linux-2.6.23的系统能正常启动,我把它的initrd-2.6.23.1-42.fc8.img复制给linux-2.6.10的系统:
cp initrd-2.6.23.1-42.fc8.img initrd-2.6.10.img

但是重启后还是一样的问题!

好像行不通哦

作者: bigcavity1   发布时间: 2009-06-19

platinum兄能说得更详细些吗?

    我的问题好像和你的是相似的,我查看了inittd-2.6.10.img文件中的init脚本,发现在执行语句:“mount -o mode=0755 -t tmpfs /dev /dev”的时候系统不动了,因为此语句之前的echo语句输出来了,此语句之后的echo语句就没输出来!
   
    这是我的inittd-2.6.10.img文件中的init脚本,现在贴出来:



QUOTE:
#!/bin/nash

mount -t proc /proc /proc
setquiet
echo Mounting proc filesystem
echo Mounting sysfs filesystem
mount -t sysfs /sys /sys

echo Creating /dev
mount -o mode=0755 -t tmpfs /dev /dev
echo mount /dev finish
mkdir /dev/pts
echo mkdir /dev/pts finish
mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts
echo mount /dev/pts finish
mkdir /dev/shm
echo mount /dev/shm finish
mkdir /dev/mapper
echo mount /dev/mapper finish

echo Creating initial device nodes
mknod /dev/null c 1 3
mknod /dev/zero c 1 5
mknod /dev/systty c 4 0
mknod /dev/tty c 5 0
mknod /dev/console c 5 1
mknod /dev/ptmx c 5 2
mknod /dev/rtc c 10 135
mknod /dev/tty0 c 4 0
mknod /dev/tty1 c 4 1
mknod /dev/tty2 c 4 2
mknod /dev/tty3 c 4 3
mknod /dev/tty4 c 4 4
mknod /dev/tty5 c 4 5
mknod /dev/tty6 c 4 6
mknod /dev/tty7 c 4 7
mknod /dev/tty8 c 4 8
mknod /dev/tty9 c 4 9
mknod /dev/tty10 c 4 10
mknod /dev/tty11 c 4 11
mknod /dev/tty12 c 4 12
mknod /dev/ttyS0 c 4 64
mknod /dev/ttyS1 c 4 65
mknod /dev/ttyS2 c 4 66
mknod /dev/ttyS3 c 4 67
echo Setting up hotplug.
hotplug
echo Creating block device nodes.
mkblkdevs
echo "Loading ehci-hcd.ko module"
insmod /lib/ehci-hcd.ko
echo "Loading ohci-hcd.ko module"
insmod /lib/ohci-hcd.ko
echo "Loading uhci-hcd.ko module"
insmod /lib/uhci-hcd.ko
mount -t usbfs /proc/bus/usb /proc/bus/usb
echo "Loading mbcache.ko module"
insmod /lib/mbcache.ko
echo "Loading jbd.ko module"
insmod /lib/jbd.ko
echo "Loading ext3.ko module"
insmod /lib/ext3.ko
mkblkdevs
resume LABEL=SWAP-sda10
echo Creating root device.
mkrootdev -t ext3 -o defaults,ro LABEL=/
echo Mounting root filesystem.
mount /sysroot
echo Setting up other filesystems.
setuproot
echo Switching to new root and running init.
switchroot
echo Booting has failed.
sleep -1


    在系统启动时,输出了语句“echo Creating /dev”,下一句“echo mount /dev finish”就没有输出来了。

    我的grub.conf文件中的内容如下:


QUOTE:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,8 )
#          kernel /boot/vmlinuz-version ro root=/dev/sda9
#          initrd /boot/initrd-version.img
#boot=/dev/sda
default=4
timeout=5
splashimage=(hd0,8 )/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.10)
        root (hd0,7)
        kernel /boot/vmlinuz-2.6.10 ro root=LABEL=/
       initrd /boot/initrd-2.6.10.img
title Fedora (2.6.23.1-42.fc8 )
        root (hd0,7)
        kernel /boot/vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet
        initrd /boot/initrd-2.6.23.1-42.fc8.img
title Windows
        rootnoverify (hd0,1)
        chainloader +1



    请问问这是怎么回事呢?你有能正常启动的initrd-2.6.10.img,能传上来看看吗?谢谢platinum兄了

[ 本帖最后由 bigcavity1 于 2009-6-22 12:39 编辑 ]

作者: bigcavity1   发布时间: 2009-06-22

晕啊,这么久了都没人回复
呜呼.................

作者: bigcavity1   发布时间: 2009-07-07

对不起,最近太忙了,来的很少

我有个办法,在你的启动脚本里,再次运行 nash 进入 shell
然后手动依次运行 shell 里的语句,看到哪里不行
初步感觉是 /dev 里面的设备不全或不对造成的
我查了一下我使用的 gentoo linux 的启动脚本,使用的是 mdev -s 来自动生成

作者: platinum   发布时间: 2009-07-07

这位兄弟的问题解决了没有,我在VMware+fedora8上编译2.6.12时也出现了相同的问题:重新引导时,到Red Hat nash version 6.0.19 starting
就不动了。
急。。。。谢谢指导,感激不尽。

作者: 开源通宝   发布时间: 2010-10-13