導航:首頁 > 編程系統 > linuxusbmic

linuxusbmic

發布時間:2023-09-20 13:52:21

1. linux audio micphone alsa 怎麼判斷插入

需求:USB Headset插上去後,聲音要從本地CODEC切換到USB Headset輸出/輸入。
上網搜了有關USB Audio Hotplug的東西,比較適用的資源如下:1、Hotplugging USB audio devices (Howto)
題目看起來很吻合我們的問題,事實上並沒有多少參考價值。其中腳本
/etc/hotplug/usb/extigy或許可以捕捉到USB Audio設備的熱插拔事件則隱,應該可以進一步驗證和利用,留意這點。
2、Example to map USB Ports to ALSA card numbers and
add each sound card to a combined, single interface device
這是利用udev來獲取USB熱插拔事件,雖然Android沒有udev,但例子程序對熱插拔事件字元串的處理值得參考。
3、USB mic on Linux
其實我們工作的第一步:驗證USB Headset是否可以回放錄音。
3.1、插上USB Headset,可以看到alsa的確載入了USB Audio,如下:
~ # cat /proc/asound/cards
0 [WMTSOC ]: HWDAC - WMT_SOC
WMT_SOC (HWDAC)
1 [default ]: USB-Audio - C-Media USB Headphone Set
3.2、參考了這個鏈接,寫了如下的配置文件/etc/asond.conf:
pcm.!default {type asymplayback.pcm {type plugslave.pcm hw:1,0}capture.pcm {type plugslave.pcm hw:1,0}}
重啟後,聲音就從Headset出來了。
hw:1,0對應card1即USB-Audio - C-Media USB Headphone Set4、Linux下USB設備熱插拔
到此,需要考慮在Android平台切換USB Audio的實現問題了。有幾個途徑:1/
hotplug/usb;2/ udev;3/ netlink。這里就是netlink的實現方式,鏈接里有個證實可用的例子程序,目前可能需要做熱插拔事件字元串的處理。
難點:Android音頻設備的切換底層入口是alsa_default.cpp,目前看來需要在asound.conf定義好local CODEC和USB Audio的plug;還需要修改
alsa_default.cpp,最主要Android要知道USBAudio插上時打開
USB Audio的plug,
USB Audio拔下時打開local CODEC的plug。這樣一想,修改的幅度還是蠻大的。而且未能確定如果在播放的過程中,切換音頻設備是否有影響?如果alsa允許只是配置好asound.conf達到同樣的目的,那就好辦了,可惜目前找不困昌到這方面的資料,應該沒有這個便利了。
進展:2011/9/19:按照以上難點分析,大致完成了整個Android框架層的代碼汪盯扒和ALSA配置文件,基本實現了USB Audio熱插拔時的音頻設備切換。但有個很大的問題:在播放時切換音頻設備會導致AudioFlinger服務crash(之前做2G通話時也遇到這個問題,用其他辦法規避了)。看來在切換音頻設備時,應該停止播放;等切換完成後,再恢復播放。

2. 現在市面上的USB介面的耳麥,是否支持Linux系統啊,比如Ubuntu不要求多聲道,能發聲就行。

不一定,這個USB耳麥相當與一個USB音效卡,在ubuntu下lsusb看一下是否能識別,不然就去晶元廠家官網下載linux驅動。

3. linux操作系統怎麼識別USB介面設備

linux系統會自動識別USB介面為串口磁碟sda(通常為sda1,可通過fdisk
-l命令查詢),掛載就可用。
例:新建掛載目錄mkdir
/mnt/usb,掛載mount
/dev/sda1
/mnt/usb,用完卸載掛起點unmount
/dev/sda1
/mnt/usb。

4. LINUX下如何添加一個USB音效卡

1、買一個外置的USB音效卡免驅動的,插上就可以啦
2、如果要安裝驅動,建議你安裝驅動人生這個軟體打開立即體檢驅動一鍵安裝就好了
3、若還有疑問你也可以咨詢驅動人生的客服人員幫你解決疑難雜症

5. linuxusb麥克風被禁用

題主是否想詢問「linuxusb麥克風被禁用怎麼辦」?1、首先在linuxusb的當前界面右擊。
2、然後點擊顯示禁用設備。
3、最後再右擊,點擊啟用此設備即可打開麥克風。

6. linux下怎麼查找usb對應的設備,比如滑鼠....

1、首先Linux 系統使用 /dev 目錄下特定的設備文件來標識插入的設備。會發現該目錄下的某些文件,包括 /dev/sda 或者 /dev/hda 表示第一個主設備,每個分區使用一個數字來表示,比如 /dev/sda1 或 /dev/hda1 表示主設備的第一個分區等。

7. Linux USB主機控制器驅動的整體結構

USB主機控制器有這些規格:OHCI (Open Host Controller Interface)、UHCI (Universal HostController Interface)、EHCI (Enhanced Host Controller Interface)和xHCI (eXtensible Host ControllerInterface)。OHCI驅動程序用來為非PC系統上以及帶有SiS和ALi晶元組的PC主板上的USB晶元提供支持。UHCI驅動程序多用來為大多數其他PC主板(包括Intel和Via)上的USB晶元提供支持。EHCI由USB2.0規范所提出,它兼容於OHCI和UHCI。由於UHCI的硬體線路比OHCI簡單,所以成本較低,但需要較復雜的驅動程序,CPU負荷稍重。xHCI,即可擴展的主機控制器介面是Intel公司開發的一個USB主機控制器介面,它目前主要是面向USB 3.0的,同時它也支持USB 2.0及以下的設備。
1.主機控制器驅動
在Linux內核中,用usb hed結構體描述USB主機控制器驅動,它包含USB主機控制器的「家務」信息、硬體資源、狀態描述和用於操作主機控制器的hc_driver。
2.EHCI主機控制器驅動
EHCI HCD驅動屬於HCD驅動的實例,它定義了一個ehci_hed結構體,通常作為代碼清單16.6定義的usb_hed結構體的私有數據(hed_priv),這個結構體的定義位於rivers/usb/host/ehci.h中。

8. linux 怎麼通過usb通信

USB驅動程序基礎 在動手寫USB驅動程序這前,讓我們先看看寫的USB驅動程序在內核中的結構,如下圖: USB驅動程序存在於不同的內核子系統和USB硬體控制器之間,USB核心為USB驅動程序提供了一個用於訪問和控制USB硬體的介面,而不必考慮系統當前存在的各種不同類型的USB硬體控制器。USB是一個非常復雜的設備,linux內核為我們提供了一個稱為USB的核心的子系統來處理大部分的復雜性,USB設備包括配置(configuration)、介面(interface)和端點(endpoint),USB設備綁定到介面上,而不是整個USB設備。如下圖所示: USB通信最基本的形式是通過端點(USB端點分中斷、批量、等時、控制四種,每種用途不同),USB端點只能往一個方向傳送數據,從主機到設備或者從設備到主機,端點可以看作是單向的管道(pipe)。所以我們可以這樣認為:設備通常具有一個或者更多的配置,配置經常具有一個或者更多的介面,介面通常具有一個或者更多的設置,介面沒有或具有一個以上的端點。驅動程序把驅動程序對象注冊到USB子系統中,稍後再使用製造商和設備標識來判斷是否已經安裝了硬體。USB核心使用一個列表(是一個包含製造商ID和設備號ID的一個結構體)來判斷對於一個設備該使用哪一個驅動程序,熱插撥腳本使用它來確定當一個特定的設備插入到系統時該自動裝載哪一個驅動程序。 上面我們簡要說明了驅動程序的基本理論,在寫一個設備驅動程序之前,我們還要了解以下兩個概念:模塊和設備文件。 模塊:是在內核空間運行的程序,實際上是一種目標對象文件,沒有鏈接,不能獨立運行,但是可以裝載到系統中作為內核的一部分運行,從而可以動態擴充內核的功能。模塊最主要的用處就是用來實現設備驅動程序。Linux下對於一個硬體的驅動,可以有兩種方式:直接載入到內核代碼中,啟動內核時就會驅動此硬體設備。另一種就是以模塊方式,編譯生成一個.ko文件(在2.4以下內核中是用.o作模塊文件,我們以2.6的內核為准,以下同)。當應用程序需要時再載入到內核空間運行。所以我們所說的一個硬體的驅動程序,通常指的就是一個驅動模塊。 設備文件:對於一個設備,它可以在/dev下面存在一個對應的邏輯設備節點,這個節點以文件的形式存在,但它不是普通意義上的文件,它是設備文件,更確切的說,它是設備節點。這個節點是通過mknod命令建立的,其中指定了主設備號和次設備號。主設備號表明了某一類設備,一般對應著確定的驅動程序;次設備號一般是區分不同屬性,例如不同的使用方法,不同的位置,不同的操作。這個設備號是從/proc/devices文件中獲得的,所以一般是先有驅動程序在內核中,才有設備節點在目錄中。這個設備號(特指主設備號)的主要作用,就是聲明設備所使用的驅動程序。驅動程序和設備號是一一對應的,當你打開一個設備文件時,操作系統就已經知道這個設備所對應的驅動程序。對於一個硬體,Linux是這樣來進行驅動的:首先,我們必須提供一個.ko的驅動模塊文件。我們要使用這個驅動程序,首先要載入它,我們可以用insmod xxx.ko,這樣驅動就會根據自己的類型(字元設備類型或塊設備類型,例如滑鼠就是字元設備而硬碟就是塊設備)向系統注冊,注冊成功系統會反饋一個主設備號,這個主設備號就是系統對它的唯一標識。驅動就是根據此主設備號來創建一個一般放置在/dev目錄下的設備文件。在我們要訪問此硬體時,就可以對設備文件通過open、read、write、close等命令進行。而驅動就會接收到相應的read、write操作而根據自己的模塊中的相應函數進行操作了。 USB驅動程序實踐 了解了上述理論後,我們就可以動手寫驅動程序,如果你基本功好,而且寫過linux下的硬體驅動,USB的硬體驅動和pci_driver很類似,那麼寫USB的驅動就比較簡單了,如果你只是大體了解了linux的硬體驅動,那也不要緊,因為在linux的內核源碼中有一個框架程序可以拿來借用一下,這個框架程序在/usr/src/~(你的內核版本,以下同)/drivers/usb下,文件名為usb-skeleton.c。寫一個USB的驅動程序最基本的要做四件事:驅動程序要支持的設備、注冊USB驅動程序、探測和斷開、提交和控制urb(USB請求塊)(當然也可以不用urb來傳輸數據,下文我們會說到)。 驅動程序支持的設備:有一個結構體struct usb_device_id,這個結構體提供了一列不同類型的該驅動程序支持的USB設備,對於一個只控制一個特定的USB設備的驅動程序來說,struct usb_device_id表被定義為: /* 驅動程序支持的設備列表 */ static struct usb_device_id skel_table [] = { { USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) }, { } /* 終止入口 */ }; MODULE_DEVICE_TABLE (usb, skel_table); 對於PC驅動程序,MODULE_DEVICE_TABLE是必需的,而且usb必需為該宏的第一個值,而USB_SKEL_VENDOR_ID和USB_SKEL_PRODUCT_ID就是這個特殊設備的製造商和產品的ID了,我們在程序中把定義的值改為我們這款USB的,如: /* 定義製造商和產品的ID號 */ #define USB_SKEL_VENDOR_ID 0x1234 #define USB_SKEL_PRODUCT_ID 0x2345 這兩個值可以通過命令lsusb,當然你得先把USB設備先插到主機上了。或者查看廠商的USB設備的手冊也能得到,在我機器上運行lsusb是這樣的結果: Bus 004 Device 001: ID 0000:0000 Bus 003 Device 002: ID 1234:2345 Abc Corp. Bus 002 Device 001: ID 0000:0000 Bus 001 Device 001: ID 0000:0000 得到這兩個值後把它定義到程序里就可以了。 注冊USB驅動程序:所有的USB驅動程序都必須創建的結構體是struct usb_driver。這個結構體必須由USB驅動程序來填寫,包括許多回調函數和變數,它們向USB核心代碼描述USB驅動程序。創建一個有效的struct usb_driver結構體,只須要初始化五個欄位就可以了,在框架程序中是這樣的: static struct usb_driver skel_driver = { .owner = THIS_MODULE, .name = "skeleton", .probe = skel_probe, .disconnect = skel_disconnect, .id_table = skel_table, };

閱讀全文

與linuxusbmic相關的資料

熱點內容
猥瑣貓表情教程 瀏覽:599
android音頻文件格式 瀏覽:458
漫畫臉app哪裡可以下載 瀏覽:959
購買歡樂升級歡樂豆 瀏覽:282
學習智能機器人用什麼編程最好 瀏覽:655
蘋果手機如何管控app 瀏覽:633
mn文件夾 瀏覽:590
安卓平板通用刷機包下載 瀏覽:751
安卓獲取內部存儲路徑 瀏覽:880
寫代碼兩台顯示器 瀏覽:327
unitypackage壓縮文件 瀏覽:493
奕心安卓 瀏覽:563
使用土地的有關證明文件包含哪些 瀏覽:493
數據標注哪裡可以接 瀏覽:482
在家自學編程下什麼學 瀏覽:705
最近很火的app軟體是什麼軟體 瀏覽:862
ai文字工具 瀏覽:157
蘭博玩游戲路徑怎麼選擇正確文件 瀏覽:972
淘寶直通車恢復老版本 瀏覽:510
播放草莓的圖片我都文件 瀏覽:55

友情鏈接