参考文章:
关于USB-AUDIO使用ALSA编程的一点问题:http://blog.chinaunix.net/uid-25272011-id-3153434.html
手把手教你用树莓派(Raspberry Pi)打造宇宙翻译机 :
http://oszine.com/universal-translator/
Creating a Simple USB Audio and HID Accesory for Android using a Raspberry Pi:
http://tcorley.me/simple-aoa-raspberry-pi/
https://bugzilla.kernel.org/show_bug.cgi?id=60769
https://source.android.com/devices/accessories/aoa2.html#hid-support
https://source.android.com/devices/input/overview.html
http://wiki.audacityteam.org/index.php?title=USB_mic_on_Linux
https://wiki.archlinux.org/index.php/Advanced_Linux_Sound_Architecture#Configuration
http://wiki.audacityteam.org/wiki/USB_mic_on_Linux
https://help.ubuntu.com/community/UbuntuStudio/UsbAudioDevices
http://www.alsa-project.org/main/index.php/Matrix:Module-usb-audio
http://raspberrypi.stackexchange.com/questions/40831/how-do-i-configure-my-sound-for-jasper-on-raspbian-jessie
http://android.serverbox.ch/?p=262
http://forum.xda-developers.com/showthread.php?t=1852343
https://github.com/KunYi/pcaoa/blob/master/sw_droid_accessory_mode.cpp
http://oszine.com/universal-translator/
http://wiki.audacityteam.org/index.php?title=USB_mic_on_Linux
http://users.suse.com/~mana/alsa090_howto.html
http://equalarea.com/paul/alsa-audio.html
Linux_ALSA声卡驱动原理分析
参考代码:
sw_droid_accessory_mode
root@clq-ubuntu:~# sudo apt-get install mtpfs libfuse-dev libmad0-dev
apt-get source libusb
apt-get install libusb-dev
apt-get install libusb-1.0-0-dev
gcc simplectrl.c -I/usr/include/ -o simplectrl -lusb-1.0 -I/usr/include/ -I/usr/include/libusb-1.0如何判断是否支持Audio:
sudo lsusb -d 18d1:2d04 -v | grep "Audio"bInterfaceClass 1 Audio # 表示支持Audio
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
AudioControl Interface Descriptor:
bInterfaceClass 1 Audio
bInterfaceClass 1 Audio
AudioStreaming Interface Descriptor:
AudioStreaming Interface Descriptor:
AudioControl Endpoint Descriptor:cat /proc/asound/cards
0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI
Ensoniq AudioPCI ENS1371 at 0x2080, irq 16
1 [Pro ]: USB-Audio - MX4 Pro
MEIZU MX4 Pro at usb-0000:02:03.0-1, high speedcat /proc/asound/modules
0 snd_ens1371
1 snd_usb_audiocard 0(预设输出)的驱动程序是snd_ens1371,。card 1的驱动程序是snd_usb_audio
调试ALSA常用命令:
aplay -lls -lart /dev/snd
cat /dev/sndstat
lsmod | grep snd
alsactl -v //查看ALSA版本
lsusb -vvv
wget -O alsa-info.sh http://www.alsa-project.org/alsa-info.sh && chmod +x ./alsa-info.sh && ./alsa-info.sh┌───────────────────────────── AlsaMixer v1.0.22 ──────────────────────────────┐
│ Card: MX4 Pro F1: Help │
│ Chip: USB Mixer F2: System information │
│ View: F3: Playback F4: Capture F5: All F6: Select sound card │
│ Item: Esc: Exit │
│ │
│ │
│ │
│ This sound device does not have any controls.安装alsa-driver,alsa-utils,alsa-lib
参考:http://www.360doc.com/content/12/0913/22/9615799_235991212.shtml
http://www.alsa-project.org/main/index.php/Download//查看当前版本号
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.21.//停止ALSA应用
sudo /sbin/alsa-utils stop//安装编译所依赖的工具
sudo apt-get -y install build-essential ncurses-dev gettext xmlto libasound2-dev
sudo apt-get -y install linux-headers-`uname -r` libncursesw5-dev//下载源文件
cd ~
rm -rf ~/alsa* ~/.pulse*
wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.23.tar.bz2
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.23.tar.bz2//删除原来的目录,并拷贝源文件过来
sudo rm -rf /usr/src/alsa
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/alsa* .//解压
sudo tar xjf alsa-driver*
sudo tar xjf alsa-lib*
sudo tar xjf alsa-utils*//编译driver
cd alsa-driver*
sudo ./configure
sudo make
sudo make install//编译library
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install//编译应用
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install//删除源文件
rm -f ~/alsa-driver*
rm -f ~/alsa-lib*
rm -f ~/alsa-utils*
//重启系统
sudo reboot
//查看版本号
cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.23.
Compiled on May 2 2010 for kernel 2.6.32-21-generic (SMP).但是用下面的命令却没有生效 不知道为什么。
denny@ubuntu:/dev/snddpkg -l | grep asou
ii libasound2 1.0.22-0ubuntu7 shared library for ALSA applications
ii libasound2-dev 1.0.22-0ubuntu7 shared library for ALSA applications -- deve
ii libasound2-plugins 1.0.22-0ubuntu6 ALSA library additional plugins
denny@ubuntu:/dev/snd dpkg -l | grep alsa
ii alsa-base 1.0.22.1+dfsg-0ubuntu3 ALSA driver configuration files
ii alsa-firmware-loaders 1.0.22-0ubuntu1 ALSA software loaders for specific hardware
ii alsa-source 1.0.22.1+dfsg-0ubuntu3 ALSA driver sources
ii alsa-utils 1.0.22-0ubuntu5 ALSA utilities
ii alsamixergui 0.9.0rc2-1-9 graphical soundcard mixer for ALSA soundcard
ii bluez-alsa 4.60-0ubuntu8 Bluetooth audio support
ii gstreamer0.10-alsa 0.10.28-1 GStreamer plugin for ALSA//确认功能是否正常
sudo alsaconfWhen I use Ubuntu 10.04, after switch LG G4 to Audio mode:
ls /dev/snd
by-id controlC0 midiC0D0 pcmC0D0p timer
by-path controlC1 pcmC0D0c pcmC0D1p seqsudo arecord -l
[sudo] password for denny:
**** List of CAPTURE Hardware Devices ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0I can not find my USB Audio device,only controlC1 is shown but no pcmC1D0c.
So I have to update my Ubuntu from 10.04 to 12.04 ,then my USB Audio device appear:
ls /dev/snd
by-id controlC0 midiC0D0 pcmC0D0p pcmC1D0c timer
by-path controlC1 pcmC0D0c pcmC0D1p seqsudo arecord -l
[sudo] password for denny:
**** List of CAPTURE Hardware Devices ****
card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Phone [LGE Android Phone], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0But I have another issue:
http://comments.gmane.org/gmane.linux.usb.general/71286
sudo arecord -f cd -d 5 -D hw:1,0
Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
arecord: pcm_read:1801: read error: Input/output error#dmesg
[ 5092.841145] capture write error (DMA or IRQ trouble?)
[ 5093.840767] timeout: still 11 active urbs on EP #82
[ 5094.840698] timeout: still 10 active urbs on EP #82
[ 5095.840688] timeout: still 9 active urbs on EP #82