如何给ubuntu装alsa驱动
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何给ubuntu装alsa驱动相关的知识,希望对你有一定的参考价值。
安装好了系统之后没声音,查看alsa版本发现是1.025的,怀疑是版本太旧不支持我的声卡
alsa-lib-1.0.27.2.tar.bz2
alsa-utils-1.0.27.2.tar.bz2
已下好但在官网找不到driver
束手无策,求指点
注意:
这一步很重要,在删除alsa-utils的时候会同时删除gdm和ubuntu-desktop,意味着将失去桌面,所以得重新安装桌面 sudo apt-get in。
第二步,下载最新的alsa驱动
下载下面这三个文件
alsa-driver-1.0.16.tar.bz2
alsa-lib-1.0.16.tar.bz2
alsa-utils-1.0.16.tar.bz2
安装步骤:
1、升级之前,必须现要确定当前系统的alsa版本,命令如下:
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
2、为确保在升级Alsa-utils时候不会出现问题,先要用下面命令停止它:
sudo /etc/init.d/alsa-utils stop
3、安装驱动前必须要先安装编译内核必须的工具组件,如下:
sudo apt-get -y install build-essential ncurses-dev gettext xmlto
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev
4、接着进入到个人的根目录下下载这三个包:alsa-driver、alsa-lib 和 alsa-utils:
cd ~
rm -rf ~/alsa*
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.21.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.21a.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.21.tar.bz2
5、之后需要创建编译它们所需要的目录。然后,移动下载的这三个文件到刚创建的目录中:
sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .
6、解压这三个文件:
sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*
7、开始编译安装 alsa-driver:
cd alsa-driver*
sudo ./configure
sudo make
sudo make install
8、编译安装 alsa-lib:
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install
9、编译安装 alsa-utils:
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install
10、如果运行最后一次 “sudo ./configure” 遇到下面提示错误:
checking form.h presence... yes
checking for form.h... yes
checking for new_panel in -lpanelw... no
configure: error: panelw library not found
11、需要添加下面文件映射链接(没有出错的跳过这步)并重新运行最后一个 “sudo ./configure” 命令:
sudo ln -s libpanelw.so.5 /usr/lib/libpanelw.so
sudo ln -s libformw.so.5 /usr/lib/libformw.so
sudo ln -s libmenuw.so.5 /usr/lib/libmenuw.so
sudo ln -s libncursesw.so.5 /lib/libncursesw.so
12、然后,安装下载的这三个不需要的文件:
rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*
13、最后,只需要重新启动电脑,Alsa应该已经是 最新版本!可以用下面命令确定你系统当前的 alsa 版本:
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.21.
Compiled on Aug 31 2009 for kernel 2.6.28-15-generic (SMP).
14、确定所有都配置好以后,退出这个命令对话:
sudo alsaconf
参考技术A http://blog.csdn.net/king_of_fighter/article/details/8986068 参考技术B 驱动精灵有试吗?
如何将 CD 音轨输入 ALSA 驱动的声音输出设备?
【中文标题】如何将 CD 音轨输入 ALSA 驱动的声音输出设备?【英文标题】:How do I feed CD audio tracks into an ALSA-driven sound output device? 【发布时间】:2020-03-16 17:30:39 【问题描述】:我正在使用没有内置声音解码器的 USB CD/DVD 驱动器,并通过 ALSA 控制它,它已经可以工作了。主机是带有当前 Raspbian 的 Raspberry Pi 3B。下面是对应的配置文件:
pi@autoradio:/etc $ cat asound.conf
pcm.dmixer
type dmix
ipc_key 1024
ipc_perm 0666
slave
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 192000
format S32_LE
channels 2
bindings
0 0
1 1
pcm.dsnooper
type dsnoop
ipc_key 2048
ipc_perm 0666
slave
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 192000
format S32_LE
channels 2
bindings
0 0
1 1
pcm.duplex
type asym
playback.pcm "dmixer"
capture.pcm "dsnooper"
pcm.!default
type plug
slave.pcm "duplex"
ctl.!default
type hw
card 0
要从 CD-DA 读取音乐,我将使用 CDIO++ library。它的cd-info
实用程序可以识别驱动器和音频CD:
pi@autoradio:/etc $ cd-info
cd-info version 2.1.0 armv7l-unknown-linux-gnueabihf
CD location : /dev/cdrom
CD driver name: GNU/Linux
access mode: IOCTL
Vendor : MATSHITA
Model : CD-RW CW-8124
Revision : DA0D
Hardware : CD-ROM or DVD
Can eject : Yes
Can close tray : Yes
Can disable manual eject : Yes
Can select juke-box disc : No
Can set drive speed : No
Can read multiple sessions (e.g. PhotoCD) : Yes
Can hard reset device : Yes
Reading....
Can read Mode 2 Form 1 : Yes
Can read Mode 2 Form 2 : Yes
Can read (S)VCD (i.e. Mode 2 Form 1/2) : Yes
Can read C2 Errors : Yes
Can read IRSC : Yes
Can read Media Channel Number (or UPC) : Yes
Can play audio : Yes
Can read CD-DA : Yes
Can read CD-R : Yes
Can read CD-RW : Yes
Can read DVD-ROM : Yes
Writing....
Can write CD-RW : Yes
Can write DVD-R : No
Can write DVD-RAM : No
Can write DVD-RW : No
Can write DVD+RW : No
__________________________________
Disc mode is listed as: CD-DA
我已经获得了some code to send the PCM data to the sound card 和一些关于(记录相当差的)CDIO API 的见解(我知道readSectors()
方法用于从 CD 扇区一个扇区地读取声音数据),但并不是真正的关于如何正确地将数据从 CD-DA 输入传递到 ALSA 输出例程的线索。
请注意 mplayer
对我来说是禁区,因为此例程将成为更大解决方案的一部分。
任何帮助将不胜感激。
更新:音频 CD(2,352 字节)和声音输出(910 字节,至少在我的特定情况下)的不同块大小是否重要?
【问题讨论】:
【参考方案1】:CD 音频数据只是 44.1 kHz 的两个小端 16 位样本通道。
如果您将数据输出到标准输出,您可以将其通过管道传输到您的声音播放程序中,或者aplay
:
./my-read-cdda | ./play 44100 2 99999
./my-read-cdda | aplay --file-type raw --format cd
如果您想在单个程序中执行所有操作,请将 read(0, ...)
替换为 readSectors()
。 (缓冲区大小不需要与ALSA的周期大小或缓冲区大小有任何关系。)
【讨论】:
好的,谢谢。我现在有另一个问题,您可以在我的原始帖子中找到。以上是关于如何给ubuntu装alsa驱动的主要内容,如果未能解决你的问题,请参考以下文章
Linux Ubuntu 编译FFMPEG音视频库,并实现例程