2011-11-18

Linux Kernel enable USB sound

這次在版子上要測試USB SPEAKER,所以要將LINUX KERNEL重新設定&編譯。
USB SPEAKER:
USB SPEAKER是一個標準的USB class,一個USB接頭直接接到一對喇叭,而在喇叭中直接有
音訊解碼器及擴大機,可以播放各音樂檔檔式(mp3 or wav...),在kernel中有其標準的驅動程式可供使用,必須enable才能使用。




Kernel驅動程式的選項
在原始LINUX Kernel中已有現成的驅動程式,只要設定使用它就可以
# make menuconfig
首先要進入『Device Driver'的選項如下:
Device Driver --->
  [*]USB support --->
      [*] Support for Host-side USB
      [*] EHCI HCD (USB2.0) support
      [ *] OHCI HCD support
  [*] Sound card support --->
      [*] Advanced Linux Sound Architecture --->
      [*] Sequencer support
      [*] Sequencer dummy client
      [*] OSS Mixer API
      [*] OSS PCM (digital audio) API
      [*] OSS PCM (digital audio) API - Include plugin system
      [*] OSS Sequencer API
      .
      .
      [*] Generic sound device
      [*] USB sound device --->
            [*] USB Audio/MIDI driver
            [*] Native Instruments USB audio device
以上完成kernel的選項設定,重新編繹kernel即可.


需要建立的Device Node
有幾個device node必需建立給應用程式使用如下:
# mknod dsp c 14 3
# mknod audio c 14 4
# mknod mixer c 14 0

若USB Speaker插入有被正常找到的話
可話dmesg觀看:
usb 2-1: new full speed USB device using rtl8652-ohci and address 3
usb 2-1: configuration #1 chosen from 1 choice
可以在目錄/proc/asound之下看到檔案 :
# ls /proc/asound/ -al
dr-xr-xr-x    5 root     root            0 Nov 18 17:06 .
dr-xr-xr-x   43 root     root            0 Jan  1  1970 ..
lrwxrwxrwx    1 root     root            5 Nov 18 17:06 Audio -> card0
dr-xr-xr-x    3 root     root            0 Nov 18 17:06 card0
-r--r--r--    1 root     root            0 Nov 18 17:06 cards
-r--r--r--    1 root     root            0 Nov 18 17:06 devices
-r--r--r--    1 root     root            0 Nov 18 17:06 hwdep
dr-xr-xr-x    2 root     root            0 Nov 18 17:06 oss
-r--r--r--    1 root     root            0 Nov 18 17:06 pcm
dr-xr-xr-x    2 root     root            0 Nov 18 17:06 seq
-r--r--r--    1 root     root            0 Nov 18 17:06 timers
-r--r--r--    1 root     root            0 Nov 18 17:06 version
這時就可以測試一下有沒有聲音,製造一些雜音來聽聽:
# cat /dev/urandom > /dev/dsp
再來就可以用mplayer來測試play一下mp3看看了。