欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关

程序员文章站 2022-07-14 16:31:28
...

关联博客:

【硬件和驱动相关】wifi设备没有工作 ubuntu18.0.4 无线网卡 intel 6 AX200
【硬件】搭建自己的深度学习服务器 or 高性能电脑——从0到1装机指南

参考网站【1】:如何查看linux的驱动有没有装好?

linux系统中的设备驱动是否安装好一般检查几个方面:

1、系统日志。嵌入式系统多是直接dmesg一下,看有没有设备关键字相关的出错信息(通用系统可检查/var/log/messages文件)。
【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关

2、已加载的模块。检查模块加载列表中有没有相关设备道的模块。
lsmod
【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关

例如

nvidia_drm, nvidia_modeset ,nvidia 等等就是显卡驱动,你还可以看到,
nvidia_drm被系统 9 调用,
nvidia_modeset 被 nvidia_drm 调用,
nvidia 被 nvidia_uvm,nvidia_modeset 调用。

3、设备列专表。检查已加载的设备中有没有相关设备
cat /proc/devices
4、设备入口。如果以上检查都正常,还需要检查设备目录下设备入口是否已经创建
ls /dev/xxxx

如果以上检查都正常(驱动模块已经正常加载、设备入口存在且没有错误),而设备还不能正常工作,就需要检查设备驱动是否与芯片匹配或者属驱动中的硬件资源配置是否与硬件对应了。

例子:声卡的驱动检查和过程

debian9 xfce :声音和声量

播放视频,音频文件时没声音的,需要用alsamixer来配置,过程如下:
apt-get install alsa-base alsa-utils alsa-oss alsa-tools

检查是否安装了这个硬件,只要安装了,就能用lspci看到
$ lspci |grep Audio
2d:00.1 Audio device: NVIDIA Corporation Device 10f8 (rev a1)
2f:00.4 Audio device: Advanced Micro Devices, Inc. [AMD] Device 1487
说明系统已经识别出了声卡

下一步查找是否有声卡模块启动了
$ lsmod | grep snd
snd_hda_codec_hdmi     57344  1
snd_hda_codec_realtek   118784  1
snd_hda_codec_generic    81920  1 snd_hda_codec_realtek
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_hda_codec_realtek
snd_hda_intel          53248  11
snd_intel_nhlt         20480  1 snd_hda_intel
snd_hda_codec         131072  4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core           90112  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep              20480  1 snd_hda_codec
snd_pcm               102400  5 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_seq_midi           20480  0
snd_seq_midi_event     16384  1 snd_seq_midi
snd_rawmidi            36864  1 snd_seq_midi
snd_seq                69632  2 snd_seq_midi,snd_seq_midi_event
snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer              36864  3 snd_seq,snd_pcm
snd                    86016  31 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
soundcore              16384  1 snd
系统也加载了相应的内核模块

然后检查系统音量
$  alsamixer
aaa@qq.com-MS-7C35:/etc/network$ alsactl init
Found hardware: "HDA-Intel" "Nvidia GPU 92 HDMI/DP" "HDA:10de0092,1b4c139f,00100100" "0x1b4c" "0x139f"
Hardware is initialized using a generic method
声卡各通道音量正常

问题解决,看来主要问题在于基本系统没有初始化声卡,需要手工初始化一下。
最后尝试初始化声卡
$ alsactl init
Found hardware: "HDA-Intel" "IDT 92HD81B1C5" "HDA:111d76d5,1028040a,00100104 HDA:14f12c06,14f1000f,00100000 HDA:80862804,80860101,00100000" "0x1028" "0x040a"
Hardware is initialized using a generic method

如果还没有声音的话
终端下运行
$ modprobe snd_pcm_oss
然后在/etc/modules里加上一行
snd_pcm_oss

控制台例子:

【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关

我这里两个声卡,

cat /proc/asound/cards

可以自己决定优先级。具体操作见图片右上角的指示。
【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关
如果还是没有声音:
alsamixer设置默认声卡及调节音量保存配置

安装好xfce4自后播放视频,音频文件时没声音的,需要用alsamixer来配置,过程如下:

apt-get install alsa-base  alsa-oss alsa-tools

如果默认声卡不是需要的
在home目录添加.asoundrc文件
内容类似如下

defaults.ctl.card 1 defaults.pcm.card 1

数字1代表声卡序号

可以通过以下指令查看
cat /proc/asound/cards

alsamixer调节声音
其中的 Master和PCM是必须打开的。
Master和PCM声道默认是静音的,标记是MM,用左右方向键选择,按M来修改为OO就是开启,上下键调节音量大小。 

配置好之后执行:
alsactl store
保存配置

配置会保存在/var/lib/alsa/asound.state

reboot
应该就正常了

master开到91 和 pcm开到100:
【硬件和驱动】如何查看linux的驱动有没有装好 ——声卡无声音,有驱动为例子,网卡wifi驱动相关