Linux2.6.25内核升级小记

1.系统2.6.9因安装无线网卡需要进行升级,参考网页http://hi.baidu.com/baowup/blog/item/a8e24e1b9cf0f5ffaf51339c.html进行成功。

升级以后有声卡,小喇叭,可调节音量,但是没有声音。希望能通过如下方法解决。http://blog.cfan.com.cn/html/49/302849-155624.html

---------------------------------------------------

参考资料:

1. Linux内核升级(2.6.9-22.EL到2.6.18.8)

2008年04月11日 星期五 18:08

     在VMware6.0下我经过无数次编译,苦战差不多两个星期,终于把内核编译成功,不过还是在换了一台主机的情况下编译成功的,而且换了linux虚拟机,我原先那台机子老是在启动后不久突然断电,用不了,就换了一台,我也在怀疑我在原先的那台机子上为什么总是在编译成功后却启动不了,我估计是和硬件有关,是不是哪个地方不兼容什么的,而我又对硬件了解得比较少,原先的机子用新内核启动时出现如下信息:
Unable to find volume group "VolGroup00"
ERROR: /bin/lvm exited abnormally (pid 326)
mount: error 6 mounting ext3
mount: error 2 mounting none
switchroot: mount failed: 22
umount: /initrd/dev failed: 2
Kernel panic - not syncing: Attempted to kill init!
之后就死掉了.我已经充分考虑了编译配置选项,什么scsi,lvm什么的,都选上了.百度,Google没有一个解决方案,晕.
换了一台主机后终于成功了,要是出现和我上面一样错误的同胞(你们也已经充分考虑了编译配置选项)可以试着换一台机子(有条件的情况下).下面为升级的步骤:
1、查看一下你的内核版本# uname -a
我的为2.6.9-22.EL,好了可以进行下一步骤:
2、下载2.6.18.8内核源码
3、下载内核升级工具
下载module-init-tools-3.2.tar.bz2
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2
由于我之前系统depmod的版本为3.1,所以就下了这个。可以用depmod --version来查看你module-tools的版本。
参考网上文章说要下载mkinitrd-4.1.18-2.i386.rpm,lvm2-2.00.25-1.01.i386.rpm
device-mapper-1.00.19-2.i386.rpm
但是我Red Hat AS4中自带的版本都要比这些高,因此就不用下载了。
4、将下载好的内核源码包和一个升级工具都拷贝到/usr/src文件夹下
5、拷贝完毕,开始解压新内核,具体操作请依次执行以下命令:
# cd /usr/src (进入到/usr/src目录下,如果已经在/usr/src目录下,可不执行该命令)
# rm –rf linux (删除linux文件夹。值得一提的是,如果内核先前从未编译过,则没有这个文件夹,此命令行可略过)
# tar jvxf linux-2.6.18.tar.bz2 (解压新内核)
# ln -s linux-2.6.18 linux (重新生成linux文件夹)

6、安装module-init-tools工具
在/usr/src目录下,依次执行下列命令:
# tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools)
# cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下)
#./configure --prefix=/
# make moveold
# make all install
#./generate-modprobe.conf /etc/modprobe.conf
7、配置内核选项。
# cd linux-2.6.18.8(进入到/usr/src/linux-2.6.18.8目录下)
# make mrproper (该命令可确保源代码目录下没有不正确的.o文件)
# make menuconfig (配置内核各选项)

此时会出现一个图形界面,列出了所有的内核配置选项,有的选项下还有子选项,你可以用方向键来选择,用Y键来确定。经过我多次试验,大多数选项默认就行,以下几个选项必须选择(请认真核对下面每一个选项,否则编译很有可能前功尽弃):
(1)Loadable Module support选项中,选上“Module unloading”和“Automatic kernel module loading”这两项;
(2)Device Drivers--->Block Devices中选上“Loopback device support“以及“Ram disk support”
Device Drivers--->Multi-device support(RAID and LVM)处要选上“device mapper support”;
Device Drivers--->Graphics support,一定要选上“ Support for frame buffer devices”;
Device Drivers --->USB support --->选上“USB Mass Storage support”(如果是在实环境中,想要更多USB支持,就全选吧。我的是在虚拟机中,用不着了)
Device Drivers --->;Network device support --->Ethernet (10 or 100Mbit) ---><*> AMD PCnet32 PCI support
Device Drivers --->Character devices -à Serial derivers -à 8250/16650 and Compatiable serial support
Device Drivers-->Fusion MPT device support à<*> Fusion MPT ScsiHost drivers for SPI                                                                   
Device Drivers-->Fusion MPT device supportà<*> Fusion MPT ScsiHost drivers for FC                                                                   
Device Drivers-->Fusion MPT device supportà<*> Fusion MPT ScsiHost drivers for SAS                                                                   
Device Drivers-->Fusion MPT device supportà (128) Maximum number of scatter gather entries (16 - 128)                                                
Device Drivers-->Fusion MPT device support à<*> Fusion MPT misc device (ioctl) driver                                                                
Device Drivers-->Fusion MPT device supportà<*> Fusion MPT LAN driver
Device Drivers--->
Networking support--->
Ethernet (10 or 100Mbit)   --->
<*>   RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)
<*>   RealTek RTL-8139 PCI Fast Ethernet Adapter support
(3)File system--->(以下9个选项是关于ext2和ext3文件系统配置,全部选上)
Second extended fs support
Ext2 extended attributes
Ext2 POSIX Access Control Lists
Ext2 Security Labels
Ext3 journalling file system support
Ext3 extended attributes
Ext3 POSIX Access Control Lists
Ext3 Security Labels
JBB (ext3) debugging support
File system--->DOS/FAT/NT Filesystems --->选上“NTFS file system support”;
File Systems --> Miscellaneous filesystems ---><*> Compressed ROM file system support (cramfs)
注意:
ext2和ext3文件系统配置很重要,也是必需的,如果对Ext3、Ext2文件的支持直接编译进内核,在你reboot时机器就会当掉,出现如下错误信息:
kernel panic : no init found ,try passing init = option to kernel.....
或者是:
VFS:Cannot open root device "hdxy" or unknow-block(0,0)
Please append a correct "root=" boot option
kernel panic:VFS:Unable to mount root fs on unknown-block(0,0)
或者是:
mount: error 19 mounting ext3
pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc fail: 2
Freeing unused kernel memory: 244k freed
Kernel panic – not syncing: No init found. Try passing init = option to kernel
如果你在vmware下编译内核,硬盘用的是scsi的,以下三个选项必选:
Device Drivers ---><*>SCSI device support (此项不选的话,下面两项就选择不上)
Device Drivers ---><*>SCSI device support ---><*>SCSI disk support
Device Drivers---><8>SCSI device support--->SCSI low-level drivers---><*>; BusLogic SCSI support
8、开始编译
在/usr/src/linux-2.6.18目录下,执行以下命令即可编译。编译需要一段时间,给自己倒杯茶耐心等候吧!
# make dep (建立编译时所需的从属文件。注意:如果内核从未编译过,此步可跳过)
# make clean (清除内核编译的目标文件。注意:如果内核从未编译过,此步可跳过)
# make bzImage (注意大小写。这一步才是真正编译内核)
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage编译,内核很大的话,系统会提示你使用make bzImage命令来编译,所以我直接用make bzImage来编译。
# make modules (编译可加载模块)
# make modules_install (安装可加载模块)
安装成功后,系统会在/lib/modules目录下生成一个2.6.18.8子目录,里面存放着新内核的所有可加载模块。
# make install (安装新内核)
9、将新内核和System.map文件拷贝到/boot目录下,依次执行以下命令:
# cp /usr/src/linux-2.6.18.8/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18.8
# cp /usr/src/linux-2.6.18.8/System.map /boot/System.map-2.6.18.8
# cd /boot (进入boot目录)
# rm –rf System.map (删除原来的连接)
# ln –s System.map-2.6.18.8 System.map (重新建立连接)
注:这一步(网上看到的)其实在make install的时候就已经建立了,我们没有必要再去输这些命令了。
10、你会发现在你的/boot目录下已经有一个initrd-2.6.18.8.img的文件了,你可以用以下命令来更新它:
# new-kernel-pkg --mkinitrd --depmod --install 2.6.18.8
这时/boot/grub/grub.conf已经配置好了,可以不要动它。
11、ok了,你可以用命令reboot重启了,重启之后选择那个2.6.18.8的内核版本就行了。
12、我在启动时又遇到了一个问题:
......(前面的信息省略)

Enforcing mode requested but no policy loaded, halting now.

Kernel panic - not syncing : Attempted to kill init!
我之前编译2.6.7成功后,启动也遇到了这个问题,我在启动时编辑了这个:kernel /vmlinuz-2.6.18.8 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
修改为:kernel /vmlinuz-2.6.18.8 ro root=/dev/VolGroup00/LogVol00 enforcing=0 rhgb quiet
就是加了enforcing=0就可以启动了.
至此,启动后查看内核版本#uname -r
显示:2.6.18.8
成功了,但是在编译中有好多问题我现在都还没有搞懂,以后再慢慢研究吧。

2.

   

  当然您要有安装开发工具、开发库等;如果不能进行源码包安装alsa等,所以我们要补装系统所缺少的软件;请参考 《Fedora / Redhat 软件包管理指南》

  这样我们就有 alsaconf 工具可用了;这样编译 alsa也不会对系统造成破坏;

  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  中场休息:我已经精疲力尽,上面所提到的我都尝试了,但还是不能驱动声卡;我该怎么办?
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  如果上面的的内容您都明白了,那我得为您祝贺,说明您对硬件的驱动方法已经有所了解了;虽然声卡的问题还是没有解决,但您把基本的必备知识掌握,解决声卡的发声还不是什么难事;

  您看到这里已经是很疲惫,呵,我写到这里也有点累;但为了初学者在Linux能听到音乐,我还得接着努力,直到把您的问题解决为止;

  四、安装新版本的ALSA;

  1、对ALSA软件包的说明;

  通过上面的一系列工程,可能您发现还不能解决您的问题,这时我们有必要升级ALSA;至于是否升级内核,我们还得等完成这步,看是否有必要;比如在Fedora 4.0 中,我们通过 rpm -qa |grep alsa 查询时会发现没有 alsa-driver 这个包,这是怎么回事?

  代码:
  [root@localhost alsa]# rpm -qa |grep alsa
  alsa-utils-1.0.9rf-2.FC4
  alsa-lib-1.0.9rf-2.FC4

  现就ALSA 相关的软件包做一说明(在alsa-project.org 上有列出);

  alsa-lib 是alsa-driver 或者alsa其它包的时候,必须先安装这个包;

  alsa-driver 是音频设备的驱动;一般内核都集成在里面,大多是以模块的方式,安装在了 /lib/modules/内核的版本/kernel/sound 或 /lib/modules/内核的版本/kernel/drviers/sound/ 中了;每个版本的内核都是如此;这也是我们没有在 Fedora Core 4.0 中没有发现 alsa-driver的原因 ;如果我们自己编译升级 alsa,其中 alsa-driver 也是被安装在 /lib/modules/内核的版本/kernel/sound 中或 /lib/modules/内核的版本/kernel/drviers/sound 中 ;明白了吧;

  alsa-utils 这个包主要是一些声卡配置工具,比如 alsaconf 、 alsamixer等;

  alsa-oss 这个包和alsa-driver 一样,也没有以独立的包出现在 Fedora Core 4.0 中,原因和alsa-driver 一样,是集成在内核了,这个包极有必要的;如果我们升级ALSA的话,有些声卡用ALSA是驱动不起来的,是必须用alsa-oss才行;alsa- oss 包括了oss驱动库;alsa-oss,我们自己安装一般是默认放在了 /usr目录中;

  alsa-tools 这个是额外的工具包,不是必须的;是针对一些特别的声卡的工具或者解码器之类,您可以根据自己的声卡来安装;不安装也是可以的;

  其它的包就不说了,到 alsa-project.org 上去看吧;比较重要的就是 alsa-lib 、alsa-driver、alsa-utils 、alsa-oss ;

  2、ALSA的编译安装的前期准备;

  编译安装ALSA,我们需要什么环境,就如同我们在Windows中打开一个file.doc文档一样,是需要先把Word安装上一样;Linux也是如此,我们必須先把软件包编译所需要的工具安装上;另外还要安装kerenel-devel或者其它一些支持的库,如果您没有安装这些,编译无法进行;这样开发工具都在系统安装盘中;如果您不知道如何安装,对于Fedora /Redhat 请参见 《Fedora / Redhat 软件包管理指南》

  您也要在线升级内核及内核的源码包,以Fedora 4.0为例,必须保证kernel 和kernel-devel 包是同一个版本;可能您看到好多kernel的包,还有什么smp之类的;如果您只是单处理器的,就不要用smp的;看图作业(点击看大图,升级内核时,请选择图中标记的颜色对应的内核和源码升级,也就是说版本要对应)

  重要:通过在线升级内核可能会解决您的声卡所存在的问题,要试着用前面所说的来尝试解决;您还可以通在在线升级alsa-lib ;alsa-tools ;alsa-utils 等包;

  如果通过在线升级内核及alsa-lib;alsa-utils;alsa-tools 等能解决您的问题,请不必看以下的内容;

  为什么说,通过在线长级内核能解决呢?因为通过内核的升级,内核包内置的alsa-driver 可能也得到了升级,如果打包的人升级了alsa-driver的话;如果是不能解决,说明alsa-driver 还是老版本;起重要作用的是alsa-driver ; 如果在线升级的过程中,alsa-lib没有新版本,肯定新内核中的alsa-driver 也没有更新,因为他们是配套的;明白了吧;

  判断是否有必要重编内核:

  代码:
[root@localhost beinan]# modinfo soundcore
filename:       /lib/modules/2.6.11-1.1369_FC4/kernel/soundBAK/soundcore.ko
descrīption:    Core sound module
author:         Alan Cox
license:        GPL
alias:          char-major-14-*
vermagic:       2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0
depends:
srcversion:     E11490DC3F523551C4C2A6D

  如果出现上面类似的信息,则不必编译内核;

 

  五、重新编译内核;

  1、为什么要编译内核?

  因为您的声卡没有被当前所用的内核版本配置进去,所以我们要新编译内核;

  2、我不会编内核怎么办?;

  可能新手弟兄会说,我不会编内核怎么办?答曰:不会编内核,就得学习,谁也不是天生就会的;学习改变命运,不是吗?其实编译内核目前看来是极为简单的事,只是我们第一次接触到Linux,太习惯Windows的点鼠标,不太习惯Linux的命令行操作罢了。只要努力,没有什么做不成的;你看北南这水平都会写教程。呵。。。坐在电脑前大侠如果认为北南写的这篇文章或许对你有所帮助的话,那您也能行;加油~~~~

  3、内核的选择;

  一般的情况下选择发行版所提供的内核升级包及源码包要好;您可以通过 apt+synaptic 来选择装,但不要把老内核删除,系统的完整性是很重要的;一般的情况下如果通过新内核的在线升级能解决问题的,我们也没有必要编译了;我们前面已经说过了;如果不能用新的内核来驱动,我们可以在新的内核的基础上进行编译,当然我们必须要下载kernel-devel 或者 kernel-source 包;

  为什么要选择系统提供的内核及源码升级包呢?

  一是主要是为了方便,对于大多数的选项,我们按默认就好了,我们只是针对比较重要的地方改一改;比如对于Fedora Core 4.0 ,目前在线升级源有很多版本可下载使用;我们要把同一版本的内核包及源码包都要安装;

  二是如果我们用新编的内核启动不了系统,可以用老内核来引导,这是为了系统的安全。对新手和老手都是适用的;

  当然您也能从 kernel.org 上下载最新最稳定的内核;目前最新版本是 2.6.13 ;kernel.org 下载的内核包含的声卡驱动也是来自 alsa-driver ;

  4、编译内核参考文档;

  《编译内核操作流程 ──为新手指南》

  根据《编译内核操作流程 ──为新手指南》 中所说的,有针对性的来解决问题;编译好内核后,用alsaconf 来配置声卡;或者重新编译 alsa-lib 、alsa-oss、alsa-utils 等;经过我的测试,一般的情况下重新编译过内核后,用 alsaconf 配置一下就能用了;

  后记:

  至此,关于声卡的问题就算解决流程就算完工了;如果您认为我的这篇文档写的还不够详细,或者不能解决您的问题;问题无非是两种,一是您的声卡没有被ALSA所支持,请查相应的列表;二是如果 ALSA已经支持了您的声卡,您看了我的文档还是不能解决您的问题(看与不看只是一个假设,就看我的文档值不值得您一看了);

  对于第二种情况无非又是有两种原因,一是北南写的文档不行,您看不懂;二是您可能是真的初学者,可能需要更多的尝试和努力;

  如果还是解决不了,或行您静下心仔细看一下本文档所提到的流程,或许能找到一点对您有所启示的内容;最好是... ...

  再解决不了怎么办呢,如果您和北南在同一个城市的话,把机器抱到我这里,我感觉差不多能解决吧;哈哈。。。。。。。。。

 

误区之一:看到论坛的好多弟兄,总认为只要在线升级了alsa-lib 和alsa-utils 或 alsa-tools 就能解决声卡不发声的问题;其实不是这样的;因为起关健作用的是内核,而内核中的声卡驱动也是来自alsa-driver ;所以我们要尝试升级 alsa-driver 才能解决问题,只升级alsa-lib和alsa-utils 有何用?声卡的驱动并没有更新;有时升级alsa-lib 和alsa-utils 或许也能让声卡发声;只能说明是alsa-lib或alsa-utils存在了问题才导致声卡不发声;

  误区之二:也有弟兄认为驱动声卡是一定要重新从 kernel.org 下载内核,然后自己编译内核来解决声卡的问题;通过kernel.org 下载的内核,是能解决您的问题;但kernel.org 的内核集成声卡驱动也是来自于 alsa-project.org ;如果我们为了解决声卡驱动,没有在尝试用 alsa-driver 新版本的情况下,是没有必要重新编译内核的;

  正确观点:只要内核中的soundcore 是以模块的形式编译的,并且通过modinfo soundcore查看版本信息输出,我们就没有太大必要重编内核;因为系统几乎对所有的声卡及设备都有编译进去;所以我们先不要重编内核;除非做了升级 alsa-driver后,还是不能解决问题,这时才能重编译核;alsa-driver 是和内核配置文件相关联的;也就是说,alsa-driver 是根据内核的配置文件来进行判断,对哪些声卡应该支持等;如果内核的配置文件没有配置对您的声卡进行支持;这时才需要我们来配置内核;另外内核中对声卡的支持的驱动也是来自于 alsa-driver ;

  3、尝试编译安装ALSA ;

  比如我下载了alsa 1.0.10rc1 版本,要下载配套的,比如 alsa-driver、alsa-lib、alsa-oss、alsa-utils 要下载同一系列的版本;我们先要安装alsa-lib;然后再安装其它的包;

  警告: 在编译alsa所有包的时候,对于Fedora Core ,请不要卸载系统自带的alsa-lib 及alsa-utils 等;这样能欺骗系统,说明系统完整的;alsa是基础包之一,不是随便可以卸载的,因为有很多的包依赖这几个旧的包;比如xmms,如果您把alsa- lib系统自带的包卸掉了,xmms就不能用 alsa驱动,只能用oss驱动了,除非您在升级alsa-lib后重新编译xmms;另外最严重的后果,如果卸掉了这几个包,会破坏系统整体的依赖关系,yum和apt升级系统将无关正常运行;

  代码:
[root@localhost alsa]# tar jxvf alsa-lib-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-lib-1.0.10rc1
[root@localhost alsa-lib-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar jxvf alsa-utils-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-utils-1.0.10rc1
[root@localhost alsa-utils-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar jxvf alsa-driver-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-driver-1.0.10rc1
[root@localhost alsa-driver-1.0.10rc1]# ./configure ;make ;make install

[root@localhost alsa]# tar zxvf alsa-oss-1.0.10rc1.tar.bz2
[root@localhost alsa]# cd alsa-oss-1.0.10rc1
[root@localhost alsa-oss-1.0.10rc1]# ./configure ;make;make install

  提示:其中alsa-driver 可以定义声卡来编译,这个对于老手还比较适用,如果您还不太会查看alsa的文档的话,就直接用通用的./configure;make;make install 来安装;这样所有的声卡都安装进去了;

  4、尝试通过用新的ALSA驱动来配置声卡 ;

  在这个时候,我们才用到前面讲的基础知识;呵。。。。。书到用时方恨少;不学习怎么也不行;

  1)通过alsaconf 来配置声卡;

  我们要通过alsaconf 来配置,看能否找到声卡;在运行alsaconf的时候,对于FC4请修改/etc/modprobe.conf 对其它的版本按前面的说,可能是 /etc/modules.conf ,把所有关于声卡的项目前面加#注掉,或者删除;

  在选行alsaconf时,我们有必要运行一下如下的两个命令;目的是更新文件的索引数据库;

  代码:
  [root@localhost beinan]# rpm -rebuilddb 这个是针对RPM包的系统的;
  [root@localhost beinan]# updatedb然后再来运行alsaconf

  代码:
  [root@localhost beinan]# /usr/sbin/alsaconf

  我们用过alsaconf后,要查看 /etc/modprobe.conf 或/etc/modules.conf ;还要lsmod ,看声卡模块有没有加载进来。如果没有加载进来,我们还要会用 modprobe 加载模块,前面有说,请回头看看;

  如果运行 alsaconf 后,配置文件 /etc/modprobe.conf 并没有发生变化,没有发现声卡的配置内容;您要到 alsa-project.org 上查看相应的信息,只看关于 /etc/modprobe.conf 的内容就行;比如他在上面说的是modules.conf 的,您可以直接写到 modprobe.conf (如果是Fedora 的话),各个系统的配置文件都差不多,如果不是modprobe.conf就是modules.conf ;

  请参见:ALSA 声卡支持列表和文档

  请根据文档所说的来加载模块和配置 modprobe.conf或 modules.conf ;

  2) 调节音量;

  我们可能已经把声卡驱动起来了,但没有声音,所要一定要打开音量;调节工具:kmix 、aumix 、alsamixer及system-config-soundcard等工具;

  3)值得注意是的,如果您播放mp3时,要注意以下系统;

  自从Redhat 8.0以后,也就是说 Redhat 9.0 ,Fedora 1.0,Fedora 2.0,Fedora 3.0 ,Fedora 4.0的媒体播放软件不再对mp3提供支持;究其原因是版权方面的原因;但这不是意味着我们不能在Fedora 系统中让播放软件支持 mp3;我们可以安装mp3支持补丁或者下载全新的播放器;而这一切都离不开在线安装工具 apt或yum ;

  提示:测试。。。。能成功吗? 不成功接着看下面。。。。。。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  下半场:前半场下来,您还是不能解决声卡,只能用最后一招;重新编译内核~
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

代码:
  [root@localhost beinan]# ls /lib/modules/2.6.11-1.1369_FC4/kernel/
  arch/    crypto/  drivers/ fs/      lib/     net/     sound/其中,sound 就是声卡模块存放目录,大多数的硬件驱动放在 drivers目录,fs 是文件系统模块的目录;net是与网络有关的存放目录,比如一些网络协议支持的模块、防火墙支持的模块等;arch 是cpu方面 ... ...

  如果我们想自己加载模块,就到这些目录中查看相应模块的信息,然后用 modprobe 来加载;

  代码:
  [root@localhost beinan]# modinfo snd-intel8x0

  查看一个模块的信息,我们用 modinfo 来查看,所要查看的模块不要带 .ko 或者.o 之类的;比如查看到类似下面的信息;

  descrīption: Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455

  通过这个我们足可以知道这是Intel 集成声卡,通过lspci -v 得到的声卡信息,感觉他们很相近;所以就能尝试用这个模块来驱动;

  代码:
  [root@localhost beinan]# modprobe snd-intel8x0

  用 modprobe 加载了模块,然后我们通过 lsmod 就能看到了;对于声卡模块是这么加载的,其它设备的驱动模块也是如此;

  <font color=red>注意:[/b][/size]这些只是教您一点基础知识,遇到什么问题,知道怎么去查看解决;如果您在论坛求助的时候,是必须把 lsmod 输入内容以及 /etc/modprobe.conf 或 modules.conf 的内容帖出来。这样能节省很多时间,否则大家不会明白问题出在哪里;

  三、针对自己系统的声卡不发声,我是否有必要来升级内核解决;

  可能存在这样的情况,比如有时我在Mandriva Linux时,声卡是有声音的,但安装好Fedora 系统后却没有声音了;所以我们有必要弄清楚如下的几个问题;可能声卡已经驱动起来了,只是我们不太了解系统的原因所致;下面我们以Fedora 为例;

  1、声卡是不是被系统识别支持了;

  我们可以用Fedora 提供的配置工具 system-config-soundcard 来测试;

  代码:
  [beinan@localhost ~]# system-config-soundcard

  通过测试,如果能听到声音,证明声卡已经驱动好了;如果听不到声音,但反应在也不迟钝,不是打开 system-config-soundcard ,按测试播放声音时会出现假死的情况;可能是声量没有打开;

  2、是否把声卡的音量打开了,比如PCM 和MASTER等;

  我们可以用下面几个工具;

  代码:
  [beinan@localhost ~]# gnome-volume-control
  [beinan@localhost ~]# kmix
  [beinan@localhost ~]# alsamixer
  [beinan@localhost ~]# aumix

  上面的四个工具,可以尝试一下,有时这几个工具存在BUG的事;所以我们还要引入一个工具 aumix ,目前已经被Fedora 删除了;我们自己安装上就行了;

  3、我的声卡是测试时是有声音的,但我为什么不能播放CD和听mp3呢?

  自从Redhat 8.0以后,也就是说 Redhat 9.0 ,Fedora 1.0,Fedora 2.0,Fedora 3.0 ,Fedora 4.0的媒体播放软件不再对mp3提供支持;究其原因是版权方面的原因;但这不是意味着我们不能在Fedora 系统中让播放软件支持 mp3;我们可以安装mp3支持补丁或者下载全新的播放器;而这一切都离不开在线安装工具 apt或yum ;

  至于CD为什么不能播放的问题,在论坛上已经说过多次了;首先要保证CDROM的音频线和主板相连接;有的弟兄会问,Windows为什么就能直接播放,我也没有把CDROM的音频线接在主板上;我答复您的是:咱们得转换观念,咱们是在用Linux,而不是Windows;

  4、查看声卡是否有模块冲突;

  比如Intel 主板集成了猫和声卡、网卡等,这时可能猫的蜂鸣器会被系统识别为声卡,所以要通过 lsmod 来查看,是否有 snd-intel8x0m;如果有则要处理一下;把在/lib/modules/内核的版本/kernel/sound/pci 中或 /lib/modules/内核的版本/kernel/drviers/sound/pci中的 snd-intel8x0m.ko改名为 snd-intel8x0m.koBAK ;

  还有类似的主板,比如 VIA 主板集成了声卡和猫的, 如果声卡不发声,大多也与这有关,比如内核模块有snd-via82xx.ko 和snd-via82xx-modem.ko,可能系统会把 snd-via82xx-modem.ko模块当成是声卡的驱动。如果您出现这样的情况,也要改名;

  5、通过 alsaconf 来配置声卡;

  一般的情况下,系统在安装的时候,会自动把声卡配好;如果能识别的,就基本没有问题了;但如果出现识别了,但还是不发声;或者识别成猫的蜂鸣器;所以我们除了要把前面所说的猫的蜂鸣器模块改名后,还要重新运行一下声卡配置工具 alsaconf ;可能我们还需要前面的一点知识,比如 modprobe 、lsmod等;有必要的时候还要启新启动机器;

  如果我没有alsaconf 这个命令怎么办?

  代码:
  [root@localhost beinan]# /usr/sbin/alsaconf

  比如在Fedora Core 4.0 中,可能您不能发现这个命令;您采取的办法只能是重新编译 alsa-utils ;但也要保守编译;不能把alsa相关的包全都删除,只能是选择对应版本来编译;现在的Fedora 通过yum和apt升级,如果系统所依赖的包出被移除,比较重要的,alsa 就是其中的一个;会导致一些程序不能用;因为有版本对应关系;我们不能把系统整体的依赖关系打破;当然无关紧要的,比如这个软件包是依赖于其它包,而这个包不为其它包提供依赖的包,这样的包是可以移除的;

  自己编译alsa-utils 的办法是:

  首先,确认系统alsa软件包的版本;

  代码:
  [root@localhost alsa]# rpm -qa |grep alsa
  alsa-utils-1.0.9rf-2.FC4
  alsa-lib-1.0.9rf-2.FC4
  alsa-tools-1.0.9-1.fc4

我们要到 alsa-project.org 中下载 1.0.9的源码包;主要下载alsa-lib-1.0.9 和 alsa-utils-1.0.9a;不要卸载原来的RPM包;先安装 alsa-lib-1.0.9,然后再安装alsa-utils-1.0.9a ;编译方法无非是 tar zxvf file.tar.gz 或者 tar jxvf file.tar.bz2 ,然后是进入相应的解压目录 ./configure;make;make install ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值