日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux yum安装驱动,centos8安装alsa驱动

發布時間:2023/12/18 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux yum安装驱动,centos8安装alsa驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.聲卡驅動

1.鏈接

2.鏈接

嘗試在兩個平臺:CentOS-8-x86_64-1905-dvd1.iso(kernel-4.18.0-80.el8)與Fedora-Everything-netinst-x86_64-29-1.2.iso(linux-5.3.11)開啟聲卡播放聲音。

fedora由于工具比較全,所以可以做先期嘗試。而centos由于穩定性高,適合企業級應用,所以最終還是要在它上面跑起來。

我先點明,其實centos8上支持很多的聲卡,所以首先要看是否自己聲卡已經被支持了,支持的話就沒必要再去安裝alsa驅動,下面的內容是我所做過的嘗試,最后才發現其實什么都不需要做。

2.步驟

先說明一下,這個步驟是按照按照rme聲卡驅動的鏈接來做的,但是實際上,用處不大。所以這章基本上算是浪費掉了。

alsa官網地址:鏈接

alsa-driver地址:鏈接

更詳細的alsa源碼:鏈接

1.下載alsa-driver代碼

$ git clone git://git.alsa-project.org/alsa-driver.git

下載完成后,需要經過處理:

cd alsa-driver

git checkout build

git pull origin build

git checkout mirror

git pull origin mirror

git checkout release

git pull origin release

make ALSAKERNELDIR=../alsa-kernel all-deps

(if the alsa-kernel-dir is really there)

aclocal

autoconf

./configure

make dep

make

編譯該源碼需要kernel代碼的參與,所以沒有的話,可以參照下面的步驟進行安裝。

安裝工具:

$ yum install elfutils-libelf-devel

2.解壓

$ xz -d /lib/modules/4.18.0-80.el8.x86_64/kernel/sound/soundcore.ko.xz

$ yum install kernel*

$ yum install patch

$ yum install ncurses-devel (安裝alsa-utils需要)

下載的內容會在/usr/src/kernels/4.18.0-80.11.2.el8_0.x86_64呈現出來。

下載過alsa-driver-1.0.25.tar發現編譯錯誤挺多。

還需要安裝:alsa-utils,alsa-libs.

如果報錯缺少version.h,則:

拷貝include/uapi/linux/dvb/version.h 到include/linux/version.h

$ ./configure --with-cards=hdspm --with-sequencer=yes --with-kernel=/usr/src/kernels/4.18.0-80.11.2.el8_0.x86_64

播放器安裝地址:

3.系統

centos7:鏈接 注意下載everything版本,這樣包含圖形界面等所有軟件。

centos6:鏈接

centos6內核源碼:鏈接 ,這樣不一定對應的是centos6的版本,可以使用yum install kernel-devel安裝內核代碼。

centos所有版本:鏈接

3.1 問題

發現在centos6,centos7,centos8上均無法安裝alsa-driver,還有一個alsa-driver是使用git維護的,使用aclocal,autoconf等編譯方式,這個也沒有安裝成功。

alsa-driver在centos上安裝錯誤有.h文件找不到,函數找不到等等錯誤。

在centos8上編譯alsa-driver-1.0.25主要是centos版本過高,而alsa-driver-1.0.25版本低,故要處理KERNEL_VERSION等宏定義問題。

centos6,centos7上則要處理io_remap等函數問題。

3.2 centos成功安裝alsa-driver方法

centos版本:CentOS-7.0-1406-x86_64-Everything.iso

$ git clone git://git.alsa-project.org/alsa-driver.git

$ 壓縮 tar -zcvf alsa-driver.tar alsa-driver

$ 解壓 tar -zxvf alsa-driver.tar

$ git checkout build

$ git pull origin build

$ git checkout mirror

$ git pull origin mirror

$ git checkout release

$ git pull origin release

使用命令:

$ ./utils/setup-alsa-kernel /usr/src/kernels/3.10.0-123.el7.x86-64

$ cp ../Documentation /usr/src/kernels/3.10.0-123.el7.x86-64/ -rf

$ ./utils/setup-alsa-kernel -c /usr/src/kernels/3.10.0-123.el7.x86-64

$ ./gitcompile

$ make install

$ ./snddevices

下一步提示:

the mixer channels for the alsa driver are muted by default,you would use some alsa or oss mixer to set the appropriate volume

下載alsa-lib,alsa-firmware,alsa-utils文件:

$ wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.2.1.2.tar.bz2

$ wget ftp://ftp.alsa-project.org/pub/firmware/alsa-firmware-1.2.1.tar.bz2

$ wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.2.1.tar.bz2

可以使用命令:

$ less SUPPORTED_KERNELs

看支持的內核版本。

4.嘗試ubuntu安裝alsa

4.1 ubuntu18.04

獲取源碼:apt-get source linux-image-$(uname -r)

$ sudo apt-get install dpkg-dev

apt-cache search linux-source 和 apt-get install linux-source

5.快速安裝alsa

6.fedora安裝alsa

fedore29鏡像地址:鏈接 ,它的內核版本為 linux-5.3.11。

fedora29的一些關鍵信息如下:

$ cat /proc/version

Linux version 5.3.11-100.fc29.x86_64 (mockbuild@bkernel03.phx2.fedoraproject.org) (gcc version 8.3.1 20190223 (Red Hat 8.3.1-2) (GCC)) #1 SMP Tue Nov 12 20:41:25 UTC 2019

$ alsactl -v

alsactl version 1.1.9

$ ls /dev/snd

by-path controlC0 pcmC0D0c pcmC0D0p pcmC0D1c seq timer

$ lspci | grep -i audio

00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)

$ aplay -l

**** List of PLAYBACK Hardware Devices ****

card 0: HDMI [HDA Intel HDMI], device 3: HDMI 0 [HDMI 0]

Subdevices: 1/1

Subdevice #0: subdevice #0

card 1: PCH [HDA Intel PCH], device 0: ALC662 rev3 Analog [ALC662 rev3 Analog]

Subdevices: 1/1

Subdevice #0: subdevice #0

card 2: HDSPMx59356d [RME MADI_59356d], device 0: RME MADI [RME MADI]

Subdevices: 1/1

Subdevice #0: subdevice #0

$ cat /proc/asound/cards

0 [HDMI ]: HDA-Intel - HDA Intel HDMI

HDA Intel HDMI at 0xf7e14000 irq 49

1 [PCH ]: HDA-Intel - HDA Intel PCH

HDA Intel PCH at 0xf7e10000 irq 50

2 [HDSPMx59356d ]: HDSPM - RME MADI_59356d

RME MADI S/N 0x59356d at 0xf7d00000, irq 17

$ aplay -Dhw:1,0 -r48000 test.wav

$ cat /proc/asound/pcm

另外,如果需要停止當前的alsa服務,則:

$ sudo /etc/init.d/alsa-utils stop

查看支持的內核版本:

$ less alsa-driver/SUPPORTED_KERNELS

查看聲卡解碼芯片:

$ tail -2 /proc/asound/oss/sndstat

或者:

$ head -1 /proc/asound/card0/codec#0

在 alsa-driver/alsa-kernel/Documentation/ALSA-Configuration.txt 中查找自己聲卡解碼芯片對應的model 名字,比如alc655 對應的就是:

- alc_jack For ALC65x, turn on the jack sense mode

查看具體的聲卡信息:

$ lshw -C sound

查看聲卡模塊:

$ cat sndmodules

使用alsamixer設置參數并且保存:

$ alsactl store

可以使用命令:

$ speaker-test -c 6

測試6個聲道的聲音。

7.擴展知識

alsa聲卡驅動程序一般命名規則是snd-card-,soundcard表示的是不同類型的聲卡。例如對于所有的16位的soundblaster聲卡,驅動程序模塊為snd-card-sb16。

如果要做到向后兼容,需要兩個模塊,snd-pcm-oss和snd-mixer-oss。

在成功插入了alsa聲卡模塊后,系統會出現/proc/asound目錄。

在加載了snd-pcm-oss模塊之后,也能使用與oss兼容的方式讀取聲卡,有這樣的映射關系:

alsa設備

oss設備

次設備

/dev/snd/pcmC0D0

/dev/audio0(/dev/audio)

4

/dev/snd/pcmC0D0

/dev/dsp0(/dev/dsp)

3

/dev/snd/pcmC0D1

/dev/adsp(/dev/adsp)

12

/dev/snd/pcmC1D0

/dev/audio1

20

/dev/snd/pcmC1D0

/dev/dsp1

19

為了讓alsa正常工作,需要設置一些設備別名,例如:

設置alsa設備的主設備號,固定為116:

alas char-major-116 snd

設置oss設備的主設備號,固定為14,這樣alsa復用oss設備:

alas char-major-14 soundcore

建立源碼樹:

1.添加mockbuild用戶

$ useradd -s /sbin/nologin mockbuild

2.添加需要用到的工具

$ yum install audit-libs-devel binutils-devel

$ yum install elfutils-devel elfutils-libelf-devel

$ yum install java-devel kabi-dw openssl-devel

$ yum install perl-devel python3-devel xmlto

$ yum install python3-docutils

3.安裝源碼

$ rpm -iV xxx.src.rpm

$ cd ~/rpmbuild/SPECS

$ rpmbuild -bp --target=$(uname -m) kernel.spec

$ cd ~/rpmbuild/BUILD/..

$ cp /boot/config-3.10.0-327.el7.x86_64 .config

$ make oldconfig

$ make -j2

$ make modules_install (編譯內核模塊)

最好加上-V,這樣有錯誤也能顯示出來。要注意make -jn的使用,并不是n越大越好啊,如果不指定n的值,在centos上也是容易死機的。

后面使用:

$ modprobe snd-pcm-oss.ko

$ modprobe snd-mixer-oss.ko

$ modprobe snd-seq-oss.ko

如果報錯,可以嘗試depmod命令。

實在不行,可以考慮查看dmesg的輸出信息,如果是版本不正確,可以查看include/config/kernel.release里面的版本是否和模塊的版本一致。

最終還是不行,那就只能使用自己編譯的系統內核來啟動整個系統。

$ make install

這樣可以添加自己的內核程序到整個系統中。也就是在系統啟動的時候會多加一個系統的選擇。

下面是查看模塊是否被安裝到內核中:

$ lsmod | grep -i "snd"

如果沒有被安裝,可以到/lib/modules/4.18.0-80.el8.x86_64/modules.dep進一步查看。

查看具體聲卡的信息:

$ cat /proc/asound/card0/hdsmp

可以看出lineout是打開的。

要想開機自動加載snd-pcm-oss.ko,snd-mixer-oss.ko,snd-seq-oss.ko,則需要在/etc/modules-load.d/alsa.conf,沒有alsa.conf則自己建立,添加如下內容:

snd-pcm-oss

snd-mixer-oss

snd-seq-oss

可以將聲音輸出來。另外要注意使用alsamixer將64個通道的生意都調節一下。否則會沒有聲音的。經過仔細對比,發現其左右聲道是集中在63與64上的。

另外注意:

/usr/share/sounds/alsa/中有一些測試信號,例如:Front_Center.wav

發現使用這個文件播放聲音是沒有問題的。

還有一個地方有文件:

/usr/share/sounds/freedesktop/stereo/complete.oga,不過這個文件是播不了的。

8.重新建立source-tree并且編譯模塊與安裝

8.1 找到內核源碼并且安裝

$ rpm -iV xxx.src.rpm

$ cd ~/rpmbuild/SPECS

$ rpmbuild -bp --target=$(uname -m) kernel.spec

$ cd ~/rpmbuild/BUILD/..

$ cp /boot/config-3.10.0-327.el7.x86_64 .config

$ make oldconfig

$ make -j2

$ make modules_install (編譯內核模塊)

$ make install

使用make install可以在啟動的時候或者在啟動之后能將模塊插入到/lib/modules/4.18.0-80.el8.x86_64/modules.dep中。如果使用lsmod | grep -i "snd"發現沒有被安裝,可以在/etc/modules-load.d/alsa.conf(沒有alsa.conf則自己添加)添加如下內容:

snd-pcm-oss

snd-mixer-oss

snd-seq-oss

模塊snd-pcm-oss.ko,snd-mixer-oss.ko,snd-seq-oss.ko作用是建立/dev/dsp,/dev/audio等節點。其實,最終實驗發現聲卡hdspm不需要

這幾個節點也是沒有關系的。

聲卡最終可以使用:

$ cat test.wav > /dev/audio

或者

$ cat test.wav > /dev/dsp

初步驗證是否能工作。

后期需要使用:

$ aplay -Dsysdefault:CARD=HDSPMx59356d /usr/share/sounds/alsa/Front_Left.wav

真正能播放出聲音才是表明沒問題了。

另外,貼出實驗過程中使用的圖片:

$ cat /proc/devices

alsa與sound設備節點

$ cat /proc/asound/cards

1.jpg

$ lspci | grep -i audio

2.jpg

$ aplay -l

3.jpg

$ aplay -Dhw:0,0 -r44100 test.wav

4.jpg

$ alsamixer

5.jpg

$ aplay -L

6.jpg

$ speaker-test -Dplug:sysdefault -c2

7.jpg

$ speaker-test -Dsysdefault:CARD=HDSPMx59356d -c2

8.jpg

$ aplay -Dsysdefault:CARD=HDSPMx59356d test.wav

9.jpg

$ alsactl -v

10.jpg

$ 安裝 pavucontrol

11.jpg

直接編譯kernel-dev會報錯,因為已經不是整個源碼樹了,估計是擔心整個系統由于開發人員的問題而崩潰

12.jpg

節點與節點的作用

13.jpg

直接modprobe xx ,發現會導致版本等相關錯誤而安裝不成功,后面就使用源碼樹編譯整個內核來安裝模塊,就不會有問題了。

14.jpg

可以查看Makefile來修改linux版本與名稱等內容。

15.jpg

源碼樹的版本與存放的位置

16.jpg

查看模塊是否在某一個文件中。

17.jpg

$ cat /proc/asound/oss/sndstat

18.jpg

9.x11桌面環境

當前使用的桌面系統環境可以使用:

$ echo $DESKTOP_SESSION

gnome

$ xhost +

總結

以上是生活随笔為你收集整理的linux yum安装驱动,centos8安装alsa驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。