# Ubuntu 系统设置 USB PnP 音频设备为默认设备的完整教程

Ubuntu 系统设置 USB PnP 音频设备为默认设备的完整教程

在使用 Ubuntu 系统时,尤其是在嵌入式设备如 NVIDIA Jetson 系列上,我们经常需要将 USB PnP 音频设备设置为默认设备。本文将详细介绍如何通过命令行配置,使 USB PnP 音频设备在系统重启后保持为默认设备。

确认系统信息

首先,让我们确认一下系统版本信息:

uname -a

在本文示例中,输出为:

Linux ubuntu 5.10.216-tegra #1 SMP PREEMPT Thu May 15 18:33:30 PDT 2025 aarch64 aarch64 aarch64 GNU/Linux

这表明我们使用的是基于 ARM 架构的 Ubuntu 系统,内核版本为 5.10.216-tegra。

识别 USB PnP 音频设备

要设置默认设备,首先需要准确识别 USB PnP 音频设备的标识符。运行以下命令:

pactl list sinks | grep -A 10 "USB PnP"

该命令会列出所有音频输出设备,并筛选出包含 “USB PnP” 的设备信息。在本文示例中,输出包含以下关键信息:

Description: USB PnP Audio Device Analog Stereo
...
Monitor Source: alsa_output.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo.monitor
...
device.product.name = "USB PnP Audio Device"
...

从输出中,我们可以提取出 USB PnP 音频设备的完整标识符:

  • 输出设备:alsa_output.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo
  • 输入设备(通常名称类似):alsa_input.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo

配置 PulseAudio

PulseAudio 是 Ubuntu 系统默认的音频服务器,我们可以通过修改其配置文件来设置默认音频设备。

  1. 打开 PulseAudio 配置文件:
sudo vim /etc/pulse/default.pa
  1. 在文件末尾添加以下内容(使用上一步获取的设备标识符):
# 设置USB PnP音频设备为默认输出
set-default-sink alsa_output.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo# 设置USB PnP音频设备为默认输入(如果需要)
set-default-source alsa_input.usb-Solid_State_System_Co._Ltd._USB_PnP_Audio_Device_000000000000-00.analog-stereo
### 开机把默认输出音量设为 70%
load-module module-cli-protocol-unix
.nofail
exec pactl set-sink-volume @DEFAULT_SINK@ 70%
.fail
  1. 保存并退出编辑器(在 Vim 中,按 ESC 键,然后输入 :wq 并按回车)。

重启 PulseAudio 服务

配置修改后,需要重启 PulseAudio 服务使设置生效:

pulseaudio -k
pulseaudio --start
  • pulseaudio -k:终止当前运行的 PulseAudio 进程
  • pulseaudio --start:启动 PulseAudio 服务

验证设置

为了确认设置是否成功,可以运行以下命令检查当前默认音频设备:

pactl get-default-sink
pactl get-default-source

上面的命令不一样的pactl版本不一定能使用 可以打开 设置->声音查看输入和输出设备 是否变化

如果输出显示为我们设置的 USB PnP 音频设备,则说明配置成功。

检查系统设置

你也可以通过图形界面验证设置是否生效:

  1. 打开系统设置(Settings)
  2. 导航到声音(Sound)选项
  3. 在输出设备(Output Device)和输入设备(Input Device)下拉菜单中,确认默认设备是否为你的 USB PnP 音频设备

重启系统验证

为了确保设置在系统重启后仍然有效,建议重启系统并再次验证:

sudo reboot

系统重启后,重复上述验证步骤,确认 USB PnP 音频设备仍然是默认设备。

总结

通过以上步骤,我们成功将 USB PnP 音频设备设置为 Ubuntu 系统的默认音频设备,并且确保了设置在系统重启后仍然有效。这种方法通过直接配置 PulseAudio 服务,比图形界面设置更加持久和可靠,特别适用于服务器环境或嵌入式系统。

如果后续更换了 USB 音频设备,只需重复上述步骤,更新设备标识符即可。

系统音量、设备音量与应用音量的协同控制机制

在音频播放过程中,系统音量、设备音量和应用音量并不是独立工作的,而是通过层级化的协同控制共同决定最终的输出音量。理解它们之间的关系,可以帮助你更精准地控制音频输出。
三者的层级关系与作用机制
想象音量控制是一个 “多级阀门” 系统:

最底层:设备硬件音量这是音频信号离开计算机前的最后一道控制,由物理设备或其驱动程序直接控制例如你的 USB PnP 设备可能有内置放大器,其硬件音量决定了信号的基础放大倍数即使系统音量调至最大,如果设备音量被设为 0,也不会有声音输出
中间层:系统音量(PulseAudio 主音量)作用于所有应用程序的音频信号总和,相当于一个 "总控阀门"系统音量会对所有应用的音频输出进行统一缩放例如:系统音量设为 50% 时,所有应用的声音都会被减半输出
最上层:应用程序音量针对单个应用的独立控制,每个应用可以有自己的音量比例应用音量是在系统音量之前生效的,先单独调节每个应用,再汇总到系统音量控制例如:音乐播放器设为 100%,视频播放器设为 50%,则后者的声音会比前者小一半(再叠加系统音量的影响)

实际计算示例
假设:

设备硬件音量:100%(无衰减)
系统音量:80%
音乐播放器应用音量:100%
浏览器应用音量:50%

最终输出音量计算:

音乐播放器:100%(应用) × 80%(系统) × 100%(设备) = 80%
浏览器:50%(应用) × 80%(系统) × 100%(设备) = 40%

如果此时将设备音量调至 50%:

音乐播放器最终音量:100% × 80% × 50% = 40%
浏览器最终音量:50% × 80% × 50% = 20%

常见问题与解决方案

声音过小但已调大系统音量可能是设备音量被限制,可通过alsamixer检查设备硬件音量操作:运行alsamixer,按 F6 选择 USB PnP 设备,确保所有通道音量未被静音或调至过低
个别应用声音异常打开pavucontrol,在 "应用程序" 选项卡中检查该应用的音量滑块可能是应用被单独静音或音量被降至最低
插拔设备后音量突变新设备可能有不同的默认硬件音量可在/etc/pulse/default.pa中添加设备音量初始化命令:bash

设置USB设备默认音量为80%

set-sink-volume alsa_output.usb-xxx-xxx.analog-stereo 80%

总结
音频系统的音量控制是一个 “串联” 的过程:应用音量 → 系统音量 → 设备音量,每一级都会对声音信号进行缩放处理。理解这种层级关系后,你可以:

用应用音量平衡不同程序的声音比例
用系统音量快速调节整体听觉体验
用设备音量控制硬件输出的基础强度

这种多层次控制机制既保证了全局调节的便捷性,又保留了针对特定应用和设备的精细控制能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/917028.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/917028.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop JMX 配置的完整文档

一、JMX 基础概念与 Hadoop 支持 1、JMX 作用。 Java Management Extensions(JMX)提供标准 API 监控 JVM 应用运行时状态(内存、线程、GC)及 Hadoop 组件指标(HDFS 容量、RPC 性能、节点状态) 2、Hadoop 组…

arm架构系统打包qt程序--麒麟操作系统为例

检查系统架构 uname -a如果显示是aarch644或arm64,说明你使用的是ARM架构,,需要下载ARM版本。 下载对应架构的linuxdeployqt 编写脚本 vim deploy.sh#!/bin/bash APP_NAME"sunny450_silc"# 确保deploy目录存在 mkdir -p deploy# 复…

Kong API Gateway深度解析:插件系统与微服务架构的技术基石

在微服务(microservices)架构主导的今天,API网关(API Gateway)作为服务入口的“交通枢纽”,承担着流量调度、安全防护、可观测性(observability)等核心职责。Kong作为开源API网关领域…

Linux应用开发基础知识——Makefile初级教程(九)

目录 一、Makefile是啥? 1.1、了解几种文件(.o 文件和.c文件 ) 1.2、关于Makefile的写法 1.3、简单使用Makefile基本指令 1.4、引入伪目标 1.5、Makefile的优点 1.6、Makefile的使用 二、Makefile创建和使用变量 2.1、创建变量的目的…

面试问题收集——卷积神经网络

博主会经常分享自己在人工智能阶段的学习笔记,欢迎大家访问我滴个人博客!(养成系Blog!) 小牛壮士滴Blog~ - 低头赶路 敬事如仪https://kukudelin.top/ 01-卷积基础知识 问:简述卷积基本操作,…

Kubernetes 全面解析:从基础设施变革到核心架构详解

引言在容器化技术席卷全球的今天,Kubernetes(简称 K8s)已成为容器编排领域的事实标准。无论是互联网企业还是传统行业,都在通过 Kubernetes 实现应用的高效部署、弹性扩展和自动化运维。但对于初学者而言,Kubernetes 的…

哈希相关的模拟实现

哈希相关的模拟实现哈希表的模拟实现闭散列除留取余法查找、插入和删除闭散列参考程序开散列除留取余法(数组链表)迭代器查找和删除插入开散列参考程序unordered_map和unordered_set的模拟实现unordered_mapunordered_set建议先看 哈希的概念及其应用-CS…

Vue3+Vite项目如何简单使用tsx

安装必要的依赖npm install vitejs/plugin-vue-jsx -D在 vite.config.ts 中添加以下内容import vueJsx from vitejs/plugin-vue-jsx export default {plugins: [vueJsx()] }在Vue页面使用<script lang"ts"> import { defineComponent } from vue export defaul…

05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡

05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡引言此前只是把关于如何把查询内容导出pdf库的代码实现了&#xff0c;但是我们并没有完成整个项目&#xff0c;这最后一个步骤就是安装composer再安装tcpdf库&…

模型训练速度慢排查

一、nvidia-smi 查看 GPU 的利用率与显存。若 GPU 利用率低或波动&#xff0c;说明 CPU 处理数据的速度跟不上 GPU 计算的速度&#xff0c;需要检查数据传输并调整 num_workers&#xff1b;若 GPU 显存充足&#xff0c;可以逐步增加 batch_size_per_card 直至显存占满&#xff…

STM32学习记录--Day4

今天了解了一下SPI总线&#xff1a;1.SPI内部结构​​&#x1f50c; SPI 四大核心引脚功能详解​​1. ​​MOSI (Master Output Slave Input)​​​​功能​​&#xff1a;​​主机输出数据线​​​​工作流程​​&#xff1a;主机内部发送数据寄存器 (TxDR) 的数据 → 移位寄存…

【网络安全】等级保护2.0解决方案

等保2.0&#xff08;网络安全等级保护2.0&#xff09;是我国网络安全领域的基础性制度&#xff0c;在1.0版本基础上扩展了云计算、大数据、物联网等新兴领域&#xff0c;形成覆盖全场景的安全防护框架。其核心是按信息系统重要程度划分等级&#xff08;1-5级&#xff09;&#…

TypeScript 基础介绍(二)

引言&#xff1a;从基础到结构化类型 在《TypeScript 基础介绍&#xff08;一&#xff09;》TypeScript基础介绍&#xff08;一&#xff09;-CSDN博客中&#xff0c;我们探讨了 TypeScript 的类型系统基础、联合类型、类型断言和类型守卫等核心特性。这些内容解决了 JavaScript…

【科研绘图系列】R语言绘制线性相关性

文章目录 介绍 加载R包 数据下载 导入数据 数据预处理 画图 系统信息 参考 介绍 【科研绘图系列】R语言绘制线性相关性 加载R包 library(tidyverse) library(ggplot2) library(ggsignif) library(RColorBrewer) library(dplyr) library(reshape2

FastAPI的请求-响应周期为何需要后台任务分离?

url: /posts/c7b54d6b3b6b5041654e69e5610bf3b9/ title: FastAPI的请求-响应周期为何需要后台任务分离? date: 2025-07-31T06:11:25+08:00 lastmod: 2025-07-31T06:11:25+08:00 author: cmdragon summary: FastAPI 的请求-响应周期遵循 ASGI 协议,类似于餐厅点餐流程。同步处…

多种录音笔录音芯片方案推荐

多种录音笔录音芯片方案推荐一、引言随着信息技术的飞速发展&#xff0c;录音笔作为一种重要的音频记录设备&#xff0c;在会议记录、采访、学习等众多场景中得到广泛应用。其核心的录音芯片方案直接影响录音质量、功能特性以及产品成本。唯创知音作为音频芯片领域的知名厂商&a…

Linux系统编程Day2-- Linux常用操作

一、Linux 基本命令概览以下是一些常用的Linux命令操作&#xff0c;后续我们会对其每个单独如何使用进行讲解。操作类型常用命令示例文件/目录操作ls, cd, cp, mv, rm, mkdir, rmdir查看文件内容cat, less, more, head, tail查找操作find, grep, locate, which权限管理chmod, c…

cs336 assignment1 作业环境配置

代码结构 所有的代码写到cs336_basics/* 下面&#xff0c;在adapters.py里调用自己的.py&#xff0c;通过所有的test。 作业资料参考 karpathy视频仓库&#xff1a; 视频 github仓库 测试项目运行环境 下载uv uv官网仓库 使用命令&#xff1a; powershell -ExecutionPoli…

YOLOv11来了,使用YOLOv11训练自己的数据集和推理(附YOLOv11网络结构图)

文章目录前言一、YOLOv11代码下载地址1.YOLOv11模型结构图二、数据集准备1.数据集标注软件2.voc数据集格式转换3.数据集划分4.修改yolo的训练配置文件三、YOLO环境配置教程1.pytorch环境安装2.其他依赖安装四、YOLOv11训练五、YOLOv11推理六、解决训练过程中断怎么继续上次训练…

20250731在荣品的PRO-RK3566开发板的Android13下跑通敦泰的FT8206触控芯片

20250731在荣品的PRO-RK3566开发板的Android13下跑通敦泰的FT8206触控芯片 2025/7/31 17:48缘起&#xff1a;本文前置条件&#xff1a;已经解决FT8206和PRO-RK3566的硬件连接。 通过i2cdect可以扫描到i2c从机地址&#xff1a;0x38。【8位地址为0x70】缘起&#xff1a;本文只分析…