web-dev-qa-db-ja.com

USBオーディオデバイスを読み込もうとしていますが、/ dev / hidraw0を読み込めません

Xubuntu 14.04でUSBサウンドカード用の簡単なドライバーを(楽しみのために)書き込もうとしています。たとえば、このデバイスを介してラップトップの音量を制御する機会が欲しいのです。

問題は-Sudo cat /dev/hidraw0の出力には何もありません。私はこの方法でUSBマウスをテストしました-クリックと移動でいくつかの出力を取得していました。デバイスは正確に/dev/hidraw0だと思います。これは、プラグを差し込むと/dev/ディレクトリに表示され、プラグを抜くと消える唯一のものだからです。

また、この例 http://lxr.free-electrons.com/source/samples/hidraw/hid-example.c は私を示しています

Report Descriptor Size: 50
Report Descriptor:
5 c 9 1 a1 1 15 0 25 1 9 e9 9 ea 75 1 95 2 81 2 9 e2 9 0 81 6 9 0 95 4 81 2 26 ff 0 9 0 75 8 95 f 81 2 9 0 95 10 91 2 c0 

Raw Name: C-Media Electronics Inc. USB Advanced Audio Device
Raw Phys: usb-0000:00:1a.0-1.2/input3
Raw Info:
        bustype: 3 (USB)
        vendor: 0x0b05
        product: 0x1743
HIDIOCSFEATURE: Broken pipe
HIDIOCGFEATURE: Broken pipe
Error: 32
write: Broken pipe
read: Resource temporarily unavailable

このデバイスから入力を読み取るにはどうすればよいですか?どうしましたか?

[編集1]

コマンドSudo lsusb -v -d 0b05:1743は示しています

Bus 001 Device 005: ID 0b05:1743 ASUSTek Computer, Inc. Xonar U1 Audio Station
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0b05 ASUSTek Computer, Inc.
  idProduct          0x1743 Xonar U1 Audio Station
  bcdDevice            1.00
  iManufacturer           3 C-Media Electronics Inc.
  iProduct                1 USB Advanced Audio Device
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          293
    bNumInterfaces          4
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      1 Control Device
      bInterfaceProtocol      0 
      iInterface              0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      1 (HEADER)
        bcdADC               1.00
        wTotalLength          128
        bInCollection           2
        baInterfaceNr( 0)       1
        baInterfaceNr( 1)       2
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             1
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             2
        wTerminalType      0x0201 Microphone
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             3
        wTerminalType      0x0603 Line Connector
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                12
        bDescriptorType        36
        bDescriptorSubtype      2 (INPUT_TERMINAL)
        bTerminalID             4
        wTerminalType      0x0605 SPDIF interface
        bAssocTerminal          0
        bNrChannels             2
        wChannelConfig     0x0003
          Left Front (L)
          Right Front (R)
        iChannelNames           0 
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             6
        wTerminalType      0x0301 Speaker
        bAssocTerminal          0
        bSourceID               9
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
        bTerminalID             7
        wTerminalType      0x0101 USB Streaming
        bAssocTerminal          0
        bSourceID               8
        iTerminal               0 
      AudioControl Interface Descriptor:
        bLength                 9
        bDescriptorType        36
        bDescriptorSubtype      5 (SELECTOR_UNIT)
        bUnitID                 8
        bNrInPins               3
        baSource( 0)           10
        baSource( 1)           11
        baSource( 2)           12
        iSelector               0 
      AudioControl Interface Descriptor:
        bLength                13
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                 9
        bSourceID               1
        bControlSize            2
        bmaControls( 0)      0x01
        bmaControls( 0)      0x02
          Mute Control
          Loudness Control
        bmaControls( 1)      0x02
        bmaControls( 1)      0x00
          Volume Control
        bmaControls( 2)      0x02
        bmaControls( 2)      0x00
          Volume Control
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                10
        bSourceID               2
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                11
        bSourceID               3
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x02
          Volume Control
        bmaControls( 2)      0x02
          Volume Control
        iFeature                0 
      AudioControl Interface Descriptor:
        bLength                10
        bDescriptorType        36
        bDescriptorSubtype      6 (FEATURE_UNIT)
        bUnitID                12
        bSourceID               4
        bControlSize            1
        bmaControls( 0)      0x01
          Mute Control
        bmaControls( 1)      0x00
        bmaControls( 2)      0x00
        iFeature                0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           1
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                20
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            4 Discrete
        tSamFreq[ 0]         8000
        tSamFreq[ 1]        16000
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            9
          Transfer Type            Isochronous
          Synch Type               Adaptive
          Usage Type               Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         1 Milliseconds
          wLockDelay              1 Milliseconds
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       1
      bNumEndpoints           1
      bInterfaceClass         1 Audio
      bInterfaceSubClass      2 Streaming
      bInterfaceProtocol      0 
      iInterface              0 
      AudioStreaming Interface Descriptor:
        bLength                 7
        bDescriptorType        36
        bDescriptorSubtype      1 (AS_GENERAL)
        bTerminalLink           7
        bDelay                  1 frames
        wFormatTag              1 PCM
      AudioStreaming Interface Descriptor:
        bLength                20
        bDescriptorType        36
        bDescriptorSubtype      2 (FORMAT_TYPE)
        bFormatType             1 (FORMAT_TYPE_I)
        bNrChannels             2
        bSubframeSize           2
        bBitResolution         16
        bSamFreqType            4 Discrete
        tSamFreq[ 0]         8000
        tSamFreq[ 1]        16000
        tSamFreq[ 2]        44100
        tSamFreq[ 3]        48000
      Endpoint Descriptor:
        bLength                 9
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            5
          Transfer Type            Isochronous
          Synch Type               Asynchronous
          Usage Type               Data
        wMaxPacketSize     0x00c8  1x 200 bytes
        bInterval               1
        bRefresh                0
        bSynchAddress           0
        AudioControl Endpoint Descriptor:
          bLength                 7
          bDescriptorType        37
          bDescriptorSubtype      1 (EP_GENERAL)
          bmAttributes         0x01
            Sampling Frequency
          bLockDelayUnits         0 Undefined
          wLockDelay              0 Undefined
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        3
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 No Subclass
      bInterfaceProtocol      0 None
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x87  EP 7 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

コマンドprintf '01%030d' | xxd -ps -r | Sudo tee /dev/hidraw0はエラーtee: /dev/hidraw0: Broken pipeを表示します。

[編集2]

コマンドSudo evtest /dev/input/event14はデバイスとの対話に反応しません

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0xb05 product 0x1743 version 0x100
Input device name: "C-Media Electronics Inc. USB Advanced Audio Device"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)
Properties:
Testing ... (interrupt to exit)

[編集3]

これが私のSudo dumpcap -i usbmon1 -w - > usb.pcapngの結果です: http://www.wikiupload.com/Q3QZA5LCTAUS5P2

4
Charlie

制御メッセージはオーディオメッセージとは異なるエンドポイントで処理されるため、/dev/hidraw0のオーディオは「表示」されません。制御メッセージには信頼性の高い送信が必要ですが、音声が失われる可能性があり、通常は アイソクロナス転送 を使用します。

テストプログラムは、長さ2のレポートを書き込もうとしたため、エラーが発生します。

デコードされたHIDレポート記述子(hidrd-convertを使用して変換)は次のとおりです。

Usage Page (Consumer),          ; 05 0C     - Consumer (0Ch)
Usage (Consumer Control),       ; 09 01     - Consumer control (01h, application collection)
Collection (Application),       ; A1 01
    Logical Minimum (0),        ; 15 00
    Logical Maximum (1),        ; 25 01
    Usage (Volume Inc),         ; 09 E9     - Volume increment (E9h, re-trigger control)
    Usage (Volume Dec),         ; 09 EA     - Volume decrement (EAh, re-trigger control)
    Report Size (1),            ; 75 01
    Report Count (2),           ; 95 02
    Input (Variable),           ; 81 02
    Usage (Mute),               ; 09 E2     - Mute (E2h, on/off control)
    Usage (00h),                ; 09 00
    Input (Variable, Relative), ; 81 06
    Usage (00h),                ; 09 00
    Report Count (4),           ; 95 04
    Input (Variable),           ; 81 02
    Logical Maximum (255),      ; 26 FF 00
    Usage (00h),                ; 09 00
    Report Size (8),            ; 75 08
    Report Count (15),          ; 95 0F
    Input (Variable),           ; 81 02
    Usage (00h),                ; 09 00
    Report Count (16),          ; 95 10
    Output (Variable),          ; 91 02
End Collection                  ; C0

この記述子は、(制御パイプを介して)Set_Report要求を使用して送信できるデータのバイナリ形式を記述します。 (詳細については、 ヒューマンインターフェイスデバイス(HID)ドキュメントのデバイスクラス定義 、特に8.5レポートの例を参照してください)。

Inputレポートのビットレイアウトの記述子の解釈(デバイスからホスト、割り込みエンドポイントを介して受信します。HID1.1のセクション4.4を参照してください) )::

0.0: Volume Increment
0.1: Volume Decrement
0.2: Mute
0.3: (null)
0.4-7: (null)
15 times 8 bits (1 byte): (null)

HIDレポートを送信する必要がある場合は、出力レポートのレポート数が16(およびビットサイズが8)であることに注意してください。したがって、Outputレポート(Interrupt Outエンドポイントを介して送信されるレポート)は16バイトです。

私が見る限り、お使いのデバイスは、OSによって処理される必要がある重要なイベントのみを送信できます。ソフトウェアを介してハードウェアのオーディオレベルを調整する機能はありません。

読み取れないことに関しては、デバイスには制御パイプを介して報告する意味のあるデータがないため、製造元がGet_Reportメソッドをわざわざ実装しなかった可能性があります。ちなみに、Sudo lsusb -v -d 0b05:1743はどのように見えますか?

1
Lekensteyn