LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2701|回复: 26

kernel 2.6.28.* 上安装alsa-driver的问题(我想我是找到原因,测试中)

[复制链接]
发表于 2009-2-4 09:01:02 | 显示全部楼层 |阅读模式
因内核自带的声卡驱动会在3D游戏里有比较严重延迟现象,所以,只好用alsa的源码安装,在2.6.27.*的内核上安装alsa的源码没问题,但在2.6.28.×的内核上安装alsa就有问题, kernel都自己编译的, .config文件用的是同一个。
我用的是:./configure  --with-cards=intel8x0 --with-sequencer=yes
这个参数来编译alsa-driver的, 没问题,但在启动 :
modprobe snd_intel8x0
时出现以下错误:

  1. [root@Fedora alsa-driver]# modprobe snd_intel8x0
  2. FATAL: Error inserting snd_pcm (/lib/modules/2.6.28.3/kernel/sound/acore/snd-pcm.ko): Unknown symbol in module,or unknown parameter (see dmesg)
  3. WARNING: Error running install command for snd_pcm
  4. FATAL: Error inserting snd_intel8x0 (/lib/modules/2.6.28.3/kernel/sound/pci/snd-intel8x0.ko): Unknown symbol inmodule, or unknown parameter (see dmesg)
复制代码


不知道是什么问题,我搞不明白了,请兄弟帮我一下吧,谢谢了。
 楼主| 发表于 2009-2-4 09:07:37 | 显示全部楼层
这是dmesg 里的信息:
  1. snd: Unknown symbol unregister_sound_special
  2. snd: Unknown symbol register_sound_special_device
  3. snd_timer: Unknown symbol snd_info_register
  4. snd_timer: Unknown symbol snd_info_create_module_entry
  5. snd_timer: Unknown symbol snd_info_free_entry
  6. snd_timer: Unknown symbol snd_verbose_printk
  7. snd_timer: Unknown symbol snd_iprintf
  8. snd_timer: Unknown symbol snd_ecards_limit
  9. snd_timer: Unknown symbol snd_oss_info_register
  10. snd_timer: Unknown symbol snd_unregister_device
  11. snd_timer: Unknown symbol snd_device_new
  12. snd_timer: Unknown symbol snd_register_device_for_dev
  13. snd: Unknown symbol unregister_sound_special
  14. snd: Unknown symbol register_sound_special_device
  15. snd_timer: Unknown symbol snd_info_register
  16. snd_timer: Unknown symbol snd_info_create_module_entry
  17. snd_timer: Unknown symbol snd_info_free_entry
  18. snd_timer: Unknown symbol snd_verbose_printk
  19. snd_timer: Unknown symbol snd_iprintf
  20. snd_timer: Unknown symbol snd_ecards_limit
  21. snd_timer: Unknown symbol snd_oss_info_register
  22. snd_timer: Unknown symbol snd_unregister_device
  23. snd_timer: Unknown symbol snd_device_new
  24. snd_timer: Unknown symbol snd_register_device_for_dev
  25. snd_pcm: Unknown symbol snd_info_register
  26. snd_pcm: Unknown symbol snd_info_create_module_entry
  27. snd_pcm: Unknown symbol snd_timer_notify
  28. snd_pcm: Unknown symbol snd_timer_interrupt
  29. snd_pcm: Unknown symbol snd_info_free_entry
  30. snd_pcm: Unknown symbol snd_add_device_sysfs_file
  31. snd_pcm: Unknown symbol snd_info_get_str
  32. snd_pcm: Unknown symbol snd_verbose_printk
  33. snd_pcm: Unknown symbol snd_ctl_register_ioctl
  34. snd_pcm: Unknown symbol snd_card_file_add
  35. snd_pcm: Unknown symbol snd_iprintf
  36. snd_pcm: Unknown symbol snd_major
  37. snd_pcm: Unknown symbol snd_unregister_device
  38. snd_pcm: Unknown symbol snd_timer_new
  39. snd_pcm: Unknown symbol snd_device_new
  40. snd_pcm: Unknown symbol snd_ctl_unregister_ioctl
  41. snd_pcm: Unknown symbol snd_lookup_minor_data
  42. snd_pcm: Unknown symbol snd_info_create_card_entry
  43. snd_pcm: Unknown symbol snd_power_wait
  44. snd_pcm: Unknown symbol snd_device_free
  45. snd_pcm: Unknown symbol snd_card_file_remove
  46. snd_pcm: Unknown symbol snd_register_device_for_dev
  47. snd_pcm: Unknown symbol snd_device_register
  48. snd_pcm: Unknown symbol snd_info_get_line
  49. snd_ac97_codec: Unknown symbol snd_info_register
  50. snd_ac97_codec: Unknown symbol snd_ctl_add
  51. snd_ac97_codec: Unknown symbol snd_info_free_entry
  52. snd_ac97_codec: Unknown symbol snd_interval_refine
  53. snd_ac97_codec: Unknown symbol snd_ctl_find_id
  54. snd_ac97_codec: Unknown symbol snd_verbose_printk
  55. snd_ac97_codec: Unknown symbol snd_ctl_new1
  56. snd_ac97_codec: Unknown symbol snd_ctl_remove_id
  57. snd_ac97_codec: Unknown symbol snd_component_add
  58. snd_ac97_codec: Unknown symbol snd_ctl_make_virtual_master
  59. snd_ac97_codec: Unknown symbol snd_pcm_hw_rule_add
  60. snd_ac97_codec: Unknown symbol snd_iprintf
  61. snd_ac97_codec: Unknown symbol snd_ctl_boolean_mono_info
  62. snd_ac97_codec: Unknown symbol snd_device_new
  63. snd_ac97_codec: Unknown symbol _snd_ctl_add_slave
  64. snd_ac97_codec: Unknown symbol snd_info_create_card_entry
  65. snd_intel8x0: Unknown symbol snd_ac97_pcm_close
  66. snd_intel8x0: Unknown symbol snd_ac97_resume
  67. snd_intel8x0: Unknown symbol snd_pcm_new
  68. snd_intel8x0: Unknown symbol snd_pcm_limit_hw_rates
  69. snd_intel8x0: Unknown symbol snd_card_register
  70. snd_intel8x0: Unknown symbol snd_card_free
  71. snd_intel8x0: Unknown symbol snd_pcm_lib_preallocate_pages_for_all
  72. snd_intel8x0: Unknown symbol snd_card_proc_new
  73. snd_intel8x0: Unknown symbol snd_ac97_pcm_open
  74. snd_intel8x0: Unknown symbol snd_ac97_set_rate
  75. snd_intel8x0: Unknown symbol snd_ac97_update_bits
  76. snd_intel8x0: Unknown symbol snd_ac97_mixer
  77. snd_intel8x0: Unknown symbol snd_ac97_bus
  78. snd_intel8x0: Unknown symbol snd_verbose_printk
  79. snd_intel8x0: Unknown symbol snd_ac97_pcm_double_rate_rules
  80. snd_intel8x0: Unknown symbol snd_ac97_update_power
  81. snd_intel8x0: Unknown symbol snd_ac97_suspend
  82. snd_intel8x0: Unknown symbol snd_iprintf
  83. snd_intel8x0: Unknown symbol snd_pcm_lib_malloc_pages
  84. snd_intel8x0: Unknown symbol snd_pcm_lib_ioctl
  85. snd_intel8x0: Unknown symbol snd_pcm_lib_free_pages
  86. snd_intel8x0: Unknown symbol snd_pcm_set_ops
  87. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_list
  88. snd_intel8x0: Unknown symbol snd_device_new
  89. snd_intel8x0: Unknown symbol snd_ac97_get_short_name
  90. snd_intel8x0: Unknown symbol snd_pcm_suspend_all
  91. snd_intel8x0: Unknown symbol snd_card_disconnect
  92. snd_intel8x0: Unknown symbol snd_ac97_pcm_assign
  93. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_integer
  94. snd_intel8x0: Unknown symbol snd_pci_quirk_lookup
  95. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_msbits
  96. snd_intel8x0: Unknown symbol snd_card_create
  97. snd_intel8x0: Unknown symbol snd_pcm_period_elapsed
  98. snd_intel8x0: Unknown symbol snd_ac97_tune_hardware
  99. snd: Unknown symbol unregister_sound_special
  100. snd: Unknown symbol register_sound_special_device
  101. snd_timer: Unknown symbol snd_info_register
  102. snd_timer: Unknown symbol snd_info_create_module_entry
  103. snd_timer: Unknown symbol snd_info_free_entry
  104. snd_timer: Unknown symbol snd_verbose_printk
  105. snd_timer: Unknown symbol snd_iprintf
  106. snd_timer: Unknown symbol snd_ecards_limit
  107. snd_timer: Unknown symbol snd_oss_info_register
  108. snd_timer: Unknown symbol snd_unregister_device
  109. snd_timer: Unknown symbol snd_device_new
  110. snd_timer: Unknown symbol snd_register_device_for_dev
  111. snd: Unknown symbol unregister_sound_special
  112. snd: Unknown symbol register_sound_special_device
  113. snd_timer: Unknown symbol snd_info_register
  114. snd_timer: Unknown symbol snd_info_create_module_entry
  115. snd_timer: Unknown symbol snd_info_free_entry
  116. snd_timer: Unknown symbol snd_verbose_printk
  117. snd_timer: Unknown symbol snd_iprintf
  118. snd_timer: Unknown symbol snd_ecards_limit
  119. snd_timer: Unknown symbol snd_oss_info_register
  120. snd_timer: Unknown symbol snd_unregister_device
  121. snd_timer: Unknown symbol snd_device_new
  122. snd_timer: Unknown symbol snd_register_device_for_dev
  123. snd_pcm: Unknown symbol snd_info_register
  124. snd_pcm: Unknown symbol snd_info_create_module_entry
  125. snd_pcm: Unknown symbol snd_timer_notify
  126. snd_pcm: Unknown symbol snd_timer_interrupt
  127. snd_pcm: Unknown symbol snd_info_free_entry
  128. snd_pcm: Unknown symbol snd_add_device_sysfs_file
  129. snd_pcm: Unknown symbol snd_info_get_str
  130. snd_pcm: Unknown symbol snd_verbose_printk
  131. snd_pcm: Unknown symbol snd_ctl_register_ioctl
  132. snd_pcm: Unknown symbol snd_card_file_add
  133. snd_pcm: Unknown symbol snd_iprintf
  134. snd_pcm: Unknown symbol snd_major
  135. snd_pcm: Unknown symbol snd_unregister_device
  136. snd_pcm: Unknown symbol snd_timer_new
  137. snd_pcm: Unknown symbol snd_device_new
  138. snd_pcm: Unknown symbol snd_ctl_unregister_ioctl
  139. snd_pcm: Unknown symbol snd_lookup_minor_data
  140. snd_pcm: Unknown symbol snd_info_create_card_entry
  141. snd_pcm: Unknown symbol snd_power_wait
  142. snd_pcm: Unknown symbol snd_device_free
  143. snd_pcm: Unknown symbol snd_card_file_remove
  144. snd_pcm: Unknown symbol snd_register_device_for_dev
  145. snd_pcm: Unknown symbol snd_device_register
  146. snd_pcm: Unknown symbol snd_info_get_line
  147. snd_ac97_codec: Unknown symbol snd_info_register
  148. snd_ac97_codec: Unknown symbol snd_ctl_add
  149. snd_ac97_codec: Unknown symbol snd_info_free_entry
  150. snd_ac97_codec: Unknown symbol snd_interval_refine
  151. snd_ac97_codec: Unknown symbol snd_ctl_find_id
  152. snd_ac97_codec: Unknown symbol snd_verbose_printk
  153. snd_ac97_codec: Unknown symbol snd_ctl_new1
  154. snd_ac97_codec: Unknown symbol snd_ctl_remove_id
  155. snd_ac97_codec: Unknown symbol snd_component_add
  156. snd_ac97_codec: Unknown symbol snd_ctl_make_virtual_master
  157. snd_ac97_codec: Unknown symbol snd_pcm_hw_rule_add
  158. snd_ac97_codec: Unknown symbol snd_iprintf
  159. snd_ac97_codec: Unknown symbol snd_ctl_boolean_mono_info
  160. snd_ac97_codec: Unknown symbol snd_device_new
  161. snd_ac97_codec: Unknown symbol _snd_ctl_add_slave
  162. snd_ac97_codec: Unknown symbol snd_info_create_card_entry
  163. snd_intel8x0: Unknown symbol snd_ac97_pcm_close
  164. snd_intel8x0: Unknown symbol snd_ac97_resume
  165. snd_intel8x0: Unknown symbol snd_pcm_new
  166. snd_intel8x0: Unknown symbol snd_pcm_limit_hw_rates
  167. snd_intel8x0: Unknown symbol snd_card_register
  168. snd_intel8x0: Unknown symbol snd_card_free
  169. snd_intel8x0: Unknown symbol snd_pcm_lib_preallocate_pages_for_all
  170. snd_intel8x0: Unknown symbol snd_card_proc_new
  171. snd_intel8x0: Unknown symbol snd_ac97_pcm_open
  172. snd_intel8x0: Unknown symbol snd_ac97_set_rate
  173. snd_intel8x0: Unknown symbol snd_ac97_update_bits
  174. snd_intel8x0: Unknown symbol snd_ac97_mixer
  175. snd_intel8x0: Unknown symbol snd_ac97_bus
  176. snd_intel8x0: Unknown symbol snd_verbose_printk
  177. snd_intel8x0: Unknown symbol snd_ac97_pcm_double_rate_rules
  178. snd_intel8x0: Unknown symbol snd_ac97_update_power
  179. snd_intel8x0: Unknown symbol snd_ac97_suspend
  180. snd_intel8x0: Unknown symbol snd_iprintf
  181. snd_intel8x0: Unknown symbol snd_pcm_lib_malloc_pages
  182. snd_intel8x0: Unknown symbol snd_pcm_lib_ioctl
  183. snd_intel8x0: Unknown symbol snd_pcm_lib_free_pages
  184. snd_intel8x0: Unknown symbol snd_pcm_set_ops
  185. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_list
  186. snd_intel8x0: Unknown symbol snd_device_new
  187. snd_intel8x0: Unknown symbol snd_ac97_get_short_name
  188. snd_intel8x0: Unknown symbol snd_pcm_suspend_all
  189. snd_intel8x0: Unknown symbol snd_card_disconnect
  190. snd_intel8x0: Unknown symbol snd_ac97_pcm_assign
  191. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_integer
  192. snd_intel8x0: Unknown symbol snd_pci_quirk_lookup
  193. snd_intel8x0: Unknown symbol snd_pcm_hw_constraint_msbits
  194. snd_intel8x0: Unknown symbol snd_card_create
  195. snd_intel8x0: Unknown symbol snd_pcm_period_elapsed
  196. snd_intel8x0: Unknown symbol snd_ac97_tune_hardware
复制代码
回复 支持 反对

使用道具 举报

发表于 2009-2-4 09:17:44 | 显示全部楼层
听说升级内核是很复杂,而且好容易搞跨系统的,是不是吧楼主?!28内核发布一段时间了,但F10还没升级,我本人没水平所以也没胆量自己手支升级内核,但又好想试一下,请能人们给一个教程吧,谢谢!
回复 支持 反对

使用道具 举报

发表于 2009-2-4 09:28:25 | 显示全部楼层
吃螃蟹的 人

帮你顶一个


用linux 发行版  只求稳定

以前用freebsd  遇到硬件问题就编译内核(编译之后还不一定能用,能用还不一定稳定03年的经历),草 白白浪费时间。

该干什么就干什么,我现在想开了。不折腾了  o(∩_∩)o...哈哈

能用就好,不求作大师级别
回复 支持 反对

使用道具 举报

发表于 2009-2-4 09:41:23 | 显示全部楼层
Post by csbbb;1943682
吃螃蟹的 人

帮你顶一个


用linux 发行版  只求稳定

以前用freebsd  遇到硬件问题就编译内核(编译之后还不一定能用,能用还不一定稳定03年的经历),草 白白浪费时间。

该干什么就干什么,我现在想开了。不折腾了  o(∩_∩)o...哈哈

能用就好,不求作大师级别


我自已编 了下最新的内核,结果内存识别变成1.9G了,性能上也没太大提高,问了下我们学校计算机的一个高手,他们是做嵌入式开发的,常编内核,建议我不要编太新的内核,一般用稳定内核编译。去掉一些自已用不上的功能,以提高性能。
新手的话,建议不要在这方面浪费时间,很容易把系统搞坏。

楼主是高人,在下水平有限,帮不上忙,希望这里有人帮,帮你顶下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 09:44:07 | 显示全部楼层
谢谢ls三位兄弟,说明几点:
1、2.6.28内核在FC10上已有升级,那是RPM版本的,我是用源码包自己编译的,这个从FC2就开始自己编译内核了。
2、编译内核不会搞坏系统的,新内核不行,就还有原来的内核嘛,没什么大不了啦。
3、我的精华帖子里有个如何编译内核的帖子,3L的兄弟可以看下。
4、现在FC10用的是EXT4的分区格式,2.6.27系列的内核要打补丁才能用EXT4,老是感觉不稳定,所以才用2.6.28系列的内核的,同在唯一的问题就是声卡驱动,内核自带的驱动的确有问题,可能大家在LINUX下玩3D游戏的比较少,我玩QUAKE3时,**声一多,立刻就严重的LAG,原来以为是游戏的原因,昨天,在2.6.27.7内核里不选择声卡驱动,使用alsa的官方驱动,没这个问题,所以确定了是内核声卡驱动的问题。

现在就是这个问题让我头痛呀,GOOGLE上也没找到解决的办法   5555555555555555555


编译自己的内核,可能会让系统运行的更快一些,这点我是有感觉的,因为RPM安装的内核里有好多不用的M 和选项,所以  55555555555555555555  再找办法解决了。
回复 支持 反对

使用道具 举报

发表于 2009-2-4 10:32:19 | 显示全部楼层
从koji上的编译看,fedora 10 有可能会跳过2.6.28的内核,等以后直接升级到2.6.29 ?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 11:24:42 | 显示全部楼层
Post by landrewl;1943712
从koji上的编译看,fedora 10 有可能会跳过2.6.28的内核,等以后直接升级到2.6.29 ?


[hades@Fedora ~]$ rpm -qa |grep kernel
kernel-2.6.28-3.fc11.i686
kerneloops-0.12-1.fc10.i386
kernel-headers-2.6.28-3.fc11.i386
kernel-devel-2.6.28-3.fc11.i686
kernel-firmware-2.6.28-3.fc11.noarch

我用的是开发版 哈哈

另外,声卡驱动问题可能是要在内核里加入声卡的驱动的M,我刚才在2.6.28.3上这样尝试了下,没再出现上边的错误,可是ALSA的安装说明上说:


                Advanced Linux Sound Architecture - Driver
                ==========================================
                            Installation guide


The ALSA driver replaces the OSS/Free driver.  Since version 0.4.0,
ALSA has supported only 2.2 or later kernels. The 2.0 kernels are no
longer supported.

You must compile the kernel with sound support (CONFIG_SOUND on
2.2/2.4 kernels) either as module or built-in.  You do not need to
select any of the other sound modules apart from sound support.

看来,新的2.6.28.×以上的内核要重新看待这个问题 了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-4 21:00:20 | 显示全部楼层
基本确定原因所在,重新编译一下内核再测试安装一次。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-5 08:48:02 | 显示全部楼层
更新一下:
原来alsa要求在内核里不用选择声卡的相应驱动模块现在在2.6.28及以上内核不适用了,只能在声卡部分把相对应的驱动以M的形势选择上,再安装alsa的官方驱动才行,暂时只能这样,看alsa或是新的KERNEL内核有没有计划再象2.6.27系列内核那样不用选择就可以安装了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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