Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15357764
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: LINUX

2009-12-09 15:22:59

1. 查看你的pc上声卡驱动所需模块
可以看到我的声卡为intel8x0,所以需要snd-intel8x0.ko
另外当然还要alsa必须的2个经典驱动:snd.ko和snd-pcm.ko了.
luther@gliethttp:~$ lsmod |grep snd
snd_intel8x0           29976  8
snd_ac97_codec        101600  1 snd_intel8x0
ac97_bus                1596  1 snd_ac97_codec
snd_pcm_oss            37472  0
snd_mixer_oss          16188  1 snd_pcm_oss
snd_pcm                75136  6 snd_intel8x0,snd_ac97_codec,snd_pcm_oss
snd_seq_dummy           2752  0
snd_seq_oss            29216  0
snd_seq_midi            6624  0
snd_rawmidi            22208  1 snd_seq_midi
snd_seq_midi_event      7036  2 snd_seq_oss,snd_seq_midi
snd_seq                50896  6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer              21540  5 snd_pcm,snd_seq
snd_seq_device          7208  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd                    60164  22 snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore               7264  1 snd
snd_page_alloc          9124  2 snd_intel8x0,snd_pcm
2. 卸载当前声卡驱动
luther@gliethttp:~$ sudo /etc/init.d/alsasound stop
luther@gliethttp:~$ sudo rmmod snd_page_alloc
或者
luther@gliethttp:~$ sudo service alsasound stop
luther@gliethttp:~$ sudo rmmod snd_page_alloc
3. 编译alsa声卡驱动《浅析ubuntu 9.10编译安装alsa-1.0.21驱动alsa-driver和alsa-lib》(如果alsa声卡驱动源码与pc上linux系统的声卡驱动版本号不一致,
   那么需要先更新linux系统alsa声卡驱动和lib库到与调试源码版本号一致)
因为上面查到的我的pc声卡为intel8x0,所以这里只编译它
luther@gliethttp:/vobs/alsa/alsa-driver-1.0.21$ ./configure --with-cards=intel8x0
luther@gliethttp:/vobs/alsa/alsa-driver-1.0.21$ make -j4
luther@gliethttp:/vobs/alsa/alsa-driver-1.0.21$ vim Makefile
注释掉第206行# -/sbin/depmod -a $(kaversion) $(SYSTEM_MAP_OPT)
因为依赖关系在《浅析ubuntu 9.10编译安装alsa-1.0.21驱动alsa-driver和alsa-lib》中已经完成了建立,不用每次都建立,否则很耗时[luther.gliethttp]
luther@gliethttp:/vobs/alsa/alsa-driver-1.0.21$ sudo make install
4. 加载编译的驱动,进行alsa源码级调试
luther@gliethttp:~$ sudo modprobe snd
luther@gliethttp:~$ sudo modprobe snd-pcm
luther@gliethttp:~$ sudo modprobe snd-intel8x0
5. 一切都ok了,你可以看到自己加入的log信息了!

PS:驱动模块对应的.c源文件
  snd.ko            对应alsa-driver-1.0.21/acore/sound.c==>alsa_sound_init函数
  snd-pcm.ko        对应alsa-driver-1.0.21/acore/pcm.c==>alsa_pcm_init函数
  snd-intel8x0.ko   对应alsa-driver-1.0.21/pci/intel8x0==>alsa_card_intel8x0_init函数

阅读(2434) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~