如何给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或者安装错的alsa sudo apt-get --purge remove linux-sound-base alsa-base alsa-utils。
  注意:
  这一步很重要,在删除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驱动的主要内容,如果未能解决你的问题,请参考以下文章

UBUNTU如何编译安装??

如何在ubuntu中安装无线网卡

Linux Ubuntu 编译FFMPEG音视频库,并实现例程

如何在ubuntu里安装b-link usb无线网卡驱动

windows10环境下装ubuntu双系统,装显卡驱动,配置CUDA,cudnn环境

解决Ubuntu SMPlayer播放视频无声音问题