lsusb 可以看到设备

1
2
3
4
(dev) jetson@ubuntu:~/project/jetson_code/audio$ lsusb
...
Bus 001 Device 017: ID 2207:0001 Fuzhou Rockchip Electronics Company XFM-DP-V0.0.18
...

执行 arecord -l 显示设备被占用、不可用

1
2
3
4
5
(dev) jetson@ubuntu:~/project/jetson_code/audio$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 1: XFMDPV0018 [XFM-DP-V0.0.18], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
  1. 查看设备状态文件
1
2
3
4
5
6
# 语法:/proc/asound/card{N}/pcm{M}c/sub0/status
# N = 声卡编号(从 arecord -l 获取)
# M = 设备编号(通常是 0)
# c = capture(录音),p = playback(播放)

cat /proc/asound/card1/pcm0c/sub0/status

输出示例:

1
2
3
4
5
6
state: RUNNING          ← 设备状态
owner_pid : 117951 ← 🎯 占用进程的 PID!
trigger_time: 7395.987017061
tstamp : 7922.194297481
delay : 1504
avail : 1504
  1. 找到占用进程 PID
1
2
3
4
5
# 方法 1:查看进程命令行
ps -p 117951 -o pid,ppid,cmd,etime

# 方法 2:查看进程完整信息
ps aux | grep 117951
  1. 杀掉进程
1
kill -9 xxx