QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3110|回复: 18

升级内核(2.6.9)后出现的一些问题,及总结(最终版:)

[复制链接]
发表于 2004-11-23 09:44:42 | 显示全部楼层 |阅读模式
ENV: fc 2, new kernel 2.6.9
1、声卡问题
     本来认为将模块全部打到内核中会更好的加载声卡,不想打进内核之后却不能播放声音。
      在当前系统用lsmod命令列出当前所使用的所有的mod,查看时,未加载的modules的确已经打进内核中。
     修改.config将打进内核中的声卡驱动编译成模块,安装,起动,声音播放问题解决(lsmod模块加载正与原系统相同)。

2、ntfs问题
    ntfs的写支持是这次编译真正要解决的问题。在配置时已经加入了ntfs写支持,但是当挂载文件系统后,却不能向ntfs系统中写入东西。mtab中的内容为:
                  dev/hda1 /windows ntfs rw 0 0

3、ext2/ext3问题(VFS)
    看到一些人编译时出现系统不能引导的问题。比如说:
     VFS不能在block(0,0)上找到rootfs的问题,这个问题与grub中的配置有关(也无关:-),
    首先:如果不知道grub配置。可以写成下面的样子。
     title Fedora Core (2.6.9)
        root (hd0,4)
        kernel /vmlinuz-2.6.9 ro   //这儿是不须要其它的参数
        initrd /initrd-2.6.9.img
    为什么kernel行参数是这样子就可行?原因在与当make bzImage的时候,已经确定了启动的设备为(3, 8 ),这代表从硬盘hda的第八分区为根分区。你也可以用root=0308来代表该意思。
     但由于这个错误实际上在make时已经解决,所以出现VFS的问题一般是因为内核配置问题。我出错的过程大体如下:
    我认为ext2我已经不再使用,但为了兼容,我将其编译成为模块。而将ext3直接加入的内核中。但是在VFS挂载时,内核要求ext2的文件格试,所以出VFS不能挂载的问题,可能是将ext2没有打入内核的原因。修改后重新打包,问题解决。(能否将ext2打进内核,而ext3打成模块?我没有试过,如果哪位知道请告知)
   

4、网卡问题
     在新内核启动的过程中,eth0的启动失败。出错的其本意是资源已经在使用用。然后出现SIOCSIFFLAGS。
      我想可能与中断有关,不但不知道如何解决??

5、USB鼠标问题
     USB的选项基本上都选择啦,可是当系统启动之后鼠标不能动。

6、TouchPad问题
     FC2安装好后直接支持我的compaq上的Touchpad,可是现在我在配置中根本找不到相关的信息。在现有的系统中lsmod也没有列出任何与mouse,touchpad相关的模块,想来应该是打进内核中啦。
   
7、X问题
     进入新的系统之后,直接启动X,X启动,用户,密码,登入,出现splash界面,然后过一了会儿Xwindows自动重新启动(或者根本不动,停下来)
     重新引导进入旧系统,root,passwd出现与新系统相同的问题,用oracle登录,成功...,用root,不行。只好重新启动,不行。过一半天再启动竟然在绝忘中重生(这个问题有的时候会出现,想来不应该是内核的问题)
    但新系统的问题却的确是真的不能登录。我用的是ATI的显示卡,交将ATI 的old driver和new driver都打进内核中啦(后来将old driver取掉,再编译,启动内有问题拉,也不知道是不是这个原因)

8、关闭问题
   看到有人说关闭的时候有问题,可是我的却是好的。不知道为什么。

     总结:最好在现有系统性的配置文件上进行修改改,而不要自己全部重新搞一套,这样太花时间,而且会出现很多问题(我是不想去下原来的那个src.rpm)。其次,声卡等问题,你可以参考现有的系统所加载的哪些模块,然后将这些功能打成模块,其它的打进内核,不要想着都打进内核或者都打成模块。
  
       如果新的内核没有想要的一些功能,请仔细比较新旧内核生成的不同dmesg,然后调整编译选项。其次要用lsmod对内核调整。

      在配置的时候,打开qconf/kconf的option->show all options,show debug info选项,这机样你就可以清晰的看到各种模块之间的依赖关系。
 楼主| 发表于 2004-11-25 09:50:09 | 显示全部楼层
先解一下问题:
1、ext2/ext3问题
     ext2必须进入内核,ext3可以打成模块
2、TOUCHPAD的问题
     MOUSE_PS必须要打内核,同时还要有DVDEV也打内核
3、中文字符集的问题
    在fc2下面,挂载windows硬盘后直接直接中文文件名。
   故在编译内核时,修改
   default_codebase=936     //437
   default_iocharset="utf8" //iso8859-1

其它问题也已经解决,但还没做进一步的测试,等测试完成后再接
回复

使用道具 举报

发表于 2004-11-25 16:47:06 | 显示全部楼层
good
回复

使用道具 举报

 楼主| 发表于 2004-11-27 09:22:37 | 显示全部楼层

最终总结

硬件: compaq Evo N800v
软件环境:fedora core 2(2.6.5) ,gcc33
新内核:kernel 2.6.9


1、default_codebase=936     //437
   default_iocharset="utf8" //iso8859-1
   这种设置,在挂载vfat文件后就可以直接支持中文文件名的显示(挂上ntfs之后中文也可以直接支持mount -t ntfs /dev/hda1 /mnt).
   启动时,系统提示;UTF8不是FAT 推荐的IO 字符集,采用UTF8之后文件系统将是大小写敏感的!( FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!)  但是文件名WEB-INF从ext3移动到vfat格式的文件系统后,还是变成了web-inf,这是因为文件名是与codepage相关联吧(推测)。

2、compaq evo N800v notebook触摸板支持解决(支持大多的touchpad
        INPUT_JOYDEV             //通常的安装版本中,这个模块被安装,完全可以不要,除非是个游戏玩家。
        SERIO_SERPORT=y      //可以不要,虽然在内核起动时大都有这个模块的启动,但没有必要。
        MOUSE_PS2=Y          //如果将它打进内核,可以支持touchpad;如果是模块,touchpad不被支持。虽然在
                             //http://web.telia.com/讲到MOUSE_PS2要有INPUT_DEDEV才支持更高级的touchpad的操作,但实际正明,INPUT_DVDEV可以将其打成模块,也可以不要

3、USB鼠标问题
       当Usb Device ->Usb Human interface Device编译成模块,而HID input layer support不被支持时(这时USB_MOUSE为可选,但未被选择),USB鼠标不可以用(这时可以用touchpad来完成工作:)

      当HID input layer support不被支持,但是USB_MOUSE 被打进内核或者编译成模块时,鼠标被良好的支持。
      也就是要,USB 的支持有两种解决方法,第一种是USB_HID ,第二种是USB_MOUSE。一般情况最好用第一种。

4、声卡
   ac97(我是有intel8x0 chips)
     只要编译下面的模块及可支持普通声卡,
            snd_mixer_oss,
        snd_intel8x0,
        snd_ac97_codec,
        snd_pcm,
        snd_timer,
        snd_mpu401_uart,
        snd_rawmidi,
        snd_seq_device,
        snd_page_alloc,
        soundcore,
        snd
     其它的pcmcia, alsa, pci,isa , pci(除了必要的snd_intel8x0请选择你自己的声卡)之外都可以不要)。


5、ntfs的支持仍然是只支持读不支持写!

6、ext2/ext3的问题,ext2必须被打入内核,而ext3可以打入内核写可编成模块。
     msdos=n msdos与vfat没有任何关系,可以不要。


7、网络
        只编译自己的那卡网卡就行啦,其它的都不要。
        CONFIG_EEPRO100=m
       系统检测出我的网卡是82801CAM(ICH#) pro/100 ve(LOM) ethernet controller
       可是我只编译EEPRO100(EtherExpressPro/100)时不网卡不被支持.
        但是如果只编译了E100(Intel(R) PRO/100+)也会被支持(硬件不太懂).
       建议:基于以前编译后系统会发生中断分配时的冲突,故而请尽力减少编译不必要的模块,以免出错。


8、显示卡
        FC2安装好后,我的ATI radeon 7500对3D支持很好,而当我编译新内核之后我旧的内核的操作系统也不能支持3D啦!我只有一个游戏呀,专们用来试3D的.
        我记得编译前我的系统中有一个叫做RADEON的模块被引用,但是新编译后我的模块中没有这个东西!(config文件中有,但make xconfig时看不到这个模块)。


9、apmsleep问题
    [root@do root]# apmsleep 21:57
        apmsleep: Your kernel does not support APM.
        apmsleep: Recompile kernel with APM and /dev/rtc support
    但实际上,
     CONFIG_APM=y
     # CONFIG_APM_IGNORE_USER_SUSPEND is not set
     CONFIG_APM_DO_ENABLE=y
     CONFIG_APM_CPU_IDLE=y
     CONFIG_APM_DISPLAY_BLANK=y
     CONFIG_APM_RTC_IS_GMT=y
     # CONFIG_APM_ALLOW_INTS is not set
     CONFIG_APM_REAL_MODE_POWER_OFF=y

     CONFIG_RTC=y

    [root@do root]# ll /dev/rtc
    crw-r--r--  1 root root 10, 135 2004-02-24  /dev/rtc

   不知道为什么...


10、我在编译的时候,根据现实情况
   10.1下面的大块内容可以完全不要:
          0、 memory Technology devices
          1、 old cd-rom drivers(not scci, not ide)
          2、 mutil-device support (我不知道soft raid要不要这个)
            3、 fusion mpt device support
          4、 iee 1394
            5、 macintosh device drivers
          6、 ISDN
            7、 Telephone support
          8、 IPMI
            9、 Ftape, the floppy tape device driver,(软件是在块设备里)
            10、PCMCIA character devices
            11、Dallas's l-wire bus
          12、misc device
            13、digital video broadcasting devices
          14、usb support -> usb gadget support
            15、profiling support
            16、kernel hacking
            17、security options(掉后为默认值)
   
   10.2、下面的一些项可以去掉大部分:
          0、executable file format只要先ELF即可.
          1、sound中去掉了除上面提到的几个模块外所有的条目。   
          2、Input device support中,只留下  MICE->PS/2 mouse和ps/2依赖的,一共六项.
          3、在networking support 中,只留下
                networking support -> network options(去除其中的ipv6,apple网络的支持)
                network device support -> ethernet(10,or 10m)->网卡驱动(和依赖的MII)
                其它的都不要啦(拨号的也不要啦)

    10.3 启动后查看/var/log/dmesg
     isapnp: Scanning for PnP cards...
     131 isapnp: No Plug & Play device found
     
     将plug and play support去掉,重新编译
   
     至于,cpu,mem,等于的设置想来大家也不会搞错:) ACPI中,我只去除了一些专用的项目,其它都打进包啦。file system中,按需配置吧。
     在编译内核时,不要想的太远,先打一个又小,又稳定的内核,然后再向赶时里面加东西(在第二次编译内核时,只会编译没有编译过的,所以很快,不用担心时间:)
     编译的新内核大小为1178kb.
     
     经过几天的试用,其本上没有什么问题,如果上面的实践与总结有任何失误,请指正。
回复

使用道具 举报

发表于 2004-12-3 17:09:39 | 显示全部楼层
我在编译fc3内核的时候  make menuconfig& make
此时提示:CHK include/linux/version.h
               CHK include/asm-i386/asm_offsets.h
               /bin/sh: arch/i386/kernel/asm-offsets.s: No such file or directory
               UPD include/asm--386/asm_offsets.h
               mv: cannot stat 'include/asm-i386/asm_offsets.h.tmp': No such file or directory
make:*** [include/asm-i386/asm_offsets.h] Error 1

无法进行下一步,请问这是怎么回事?
回复

使用道具 举报

发表于 2004-12-6 16:19:58 | 显示全部楼层
我编译通过了
但是从grub加载后,没反应了
回复

使用道具 举报

 楼主| 发表于 2004-12-17 15:08:28 | 显示全部楼层
chenzs:你的问题我也不知道...好像是缺什么文件,但是又缺的是.s和.tmp的文件...不清楚
suowei1979: 你的没反应是什么意思?
回复

使用道具 举报

发表于 2004-12-17 21:53:51 | 显示全部楼层
[quote:8d53a8e645="chenzs"]我在编译fc3内核的时候  make menuconfig& make
此时提示:CHK include/linux/version.h
               CHK include/asm-i386/asm_offsets.h
               /bin/sh: arch/i386/kernel/asm-offsets.s: No such file or directory
               UPD include/asm--386/asm_offsets.h
               mv: cannot stat 'include/asm-i386/asm_offsets.h.tmp': No such file or directory
make:*** [include/asm-i386/asm_offsets.h] Error 1

无法进行下一步,请问这是怎么回事?[/quote]
是不是改内核头文件的连接了?
回复

使用道具 举报

 楼主| 发表于 2004-12-23 13:52:53 | 显示全部楼层
8、显示卡
FC2安装好后,我的ATI radeon 7500对3D支持很好,而当我编译新内核之后我旧的内核的操作系统也不能支持3D啦!我只有一个游戏呀,专们用来试3D的.
我记得编译前我的系统中有一个叫做RADEON的模块被引用,但是新编译后我的模块中没有这个东西!(config文件中有,但make xconfig时看不到这个模块)。



上面的问题已经解解,我将fc2的x windows服务器升级
升级时,可能会出现依赖关系的问题,如果一个个安装包的话装不上。
可以用rpm -Uvh *.rpm --force的方式安装。
xorg-x11-100dpi-fonts-6.7.0-11.i386.rpm  
xorg-x11-libs-data-6.7.0-11.i386.rpm
xorg-x11-6.7.0-11.i386.rpm
xorg-x11-twm-6.7.0-11.i386.rpm
xorg-x11-75dpi-fonts-6.7.0-11.i386.rpm
xorg-x11-xfs-6.7.0-11.i386.rpm
xorg-x11-base-fonts-6.7.0-11.i386.rpm
xorg-x11-Xnest-6.7.0-11.i386.rpm
xorg-x11-devel-6.7.0-11.i386.rpm
xorg-x11-Xvfb-6.7.0-11.i386.rpm
xorg-x11-libs-6.7.0-11.i386.rpm


再运行chromium游戏,呵呵,可以啦...跑的和以前一样爽..呵呵
上面的问题解决实现是一个意外,我跟踪x server时发现的...它是找xserver的扩展中的东西,具体我还是不很清楚)
回复

使用道具 举报

发表于 2004-12-23 14:23:30 | 显示全部楼层
大侠帮我看一下:2.6.8内核编译后没声音X-window也挂了(这些先不管,因为我要装驱动的),但最重要的是网卡不能工作
ifconfig检测不到eth0;ifconfig -a可以看到eht0,但无法ifconfig eth0 up.症状和你说的一样。dmesg出现如下情况:
...ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
    ACPI-0352: *** Error: Looking up [\_SB_.LNKH] in namespace, AE_NOT_FOUND
search_node cff2b620 start_node cff2b620 return_node 00000000
    ACPI-1133: *** Error: [NULL NAME], AE_NOT_FOUND
    ACPI-1133: *** Error: Method execution failed [\_SB_.PCI0._PRT] (Node cff2b5e0), AE_NOT_FOUND
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
SCSI subsystem initialized
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
ACPI: PCI interrupt 0000:00:10.0[A]: no GSI
ACPI: PCI interrupt 0000:00:10.1[B]: no GSI
ACPI: PCI interrupt 0000:00:10.2[C]: no GSI
ACPI: PCI interrupt 0000:00:10.3[D]: no GSI
ACPI: PCI interrupt 0000:00:11.1[A]: no GSI
ACPI: PCI interrupt 0000:00:11.5[C]: no GSI
ACPI: PCI interrupt 0000:00:12.0[A]: no GSI
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11
vesafb: probe of vesafb0 failed with error -6
Simple Boot Flag at 0x3a set to 0x1
audit: initializing netlink socket (disabled)
audit(1103791472.603:0): initialized
Installing knfsd (copyright (C) 1996 [email protected]).
udf: registering filesystem
Initializing Cryptographic API
ACPI: Power Button (FF) [PWRF]
ACPI: Processor [CPU0] (supports C1)
lp: driver loaded but no devices found
Linux agpgart interface v0.100 (c) Dave Jones
parport0: PC-style at 0x378 (0x77 [PCSPP,TRISTATE]
parport0: irq 7 detected
lp0: using parport0 (polling).
.....。
奇怪的是我用apt-get install kernel-image-2.6.9-1-k7(amd cpu,kt400主板),居然也出现了相同的问题。还有你建议是把声卡网卡做进内核还是打成模块呢?
回复

使用道具 举报

发表于 2004-12-23 16:54:08 | 显示全部楼层
我的问题解决了,把ACPI换APM了,就不冲突了,hoho,但谁能告诉我我该如何办呢?

因为我想用ACPI
回复

使用道具 举报

发表于 2004-12-26 02:36:18 | 显示全部楼层
指点一下哈,我是新手,刚将内核升级为2.6.9,可是升级成功之后挂不起xp下的两个fat32格式的分区,好像是配置文件有问题,其中的fs里面的dos fs support选项扩展出的msdos support ,vfat support,ntfs fs support,这三个应该怎么选我,我自己已经试了很都次了,都不行,还请指教一下啊,谢谢!!
回复

使用道具 举报

发表于 2004-12-26 21:29:08 | 显示全部楼层
大侠,急啊,帮帮忙,快指点一下啊
回复

使用道具 举报

 楼主| 发表于 2005-1-4 11:06:34 | 显示全部楼层
我自己已经试了很都次了,都不行


我回家了,刚回来。

是怎么个不行法?是不是你挂载的命令有问题?出什么错....
回复

使用道具 举报

发表于 2005-1-4 12:56:18 | 显示全部楼层
我试着选了1,2,可启动的时候出现
vfat: Unknown symbol fat_dir_empty
vfat: Unknown symbol fat_scan
vfat: Unknown symbol fat_new_dir
...................

这个该怎么解决啊????
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-17 02:07 , Processed in 0.071613 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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