Forum: PC Hard- und Software [Linux+CDC] BOGUS urb xfer, pipe 3 != type 1


von Max D. (max_d)


Lesenswert?

Ich habe eine CDC-Usb SPI-Interface auf Basis von vusb ( 
http://www.recursion.jp/avrcdc/ ).
Bis jetzt lief das relativ zuverlässig, aber seit dem Update auf 
(K)ubuntu 15.04 mag es nichtmehr.
Wenn man es ansteckt erscheint zwar ein ttyACMx, aber ein Zugriff darauf 
bewirkt keine Reaktion in der Hardware.

Also mit dmesg nachgesehen was da hängt:
Neben einer langen Liste mit geladenen Modulen und Hardware-Infos 
erscheint die Meldung "BOGUS urb xfer, pipe 3 != type 1" in dem Log.

Ich hab dann nach diesem Fehler gegoogled, aber die meisten Ergebnisse 
waren von Leuten bei denen das von WLAN-Hardware ausgelöst wurde.
Als jemand der eher auf dem µC zuhause ist sind die riesigen 
Verstrickungen über unzählige Kernel-Module hinweg auch etwas schwer zu 
durchschauen.

Vielleicht hat ja jemand hier eine Lösung dazu ?
Danke für euer Hilfe :)

PS: Kernel-Version ist "3.19.0-25-generic"

Nachtrag: Wenn man eine frühere Version (14.04 hatte ich grade da) in 
der V-Box bootet und das Device da "durchschleift", dann funktioniert es 
in der vm ganz normal.....

So sehen die ganzen Fehler aus:
1
[11815.912822] ------------[ cut here ]------------
2
[11815.912825] WARNING: CPU: 3 PID: 7379 at /build/linux-OdodyZ/linux-3.19.0/drivers/usb/core/urb.c:450 usb_submit_urb.part.6+0x14f/0x5b0()
3
[11815.912826] usb 6-1.5.1: BOGUS urb xfer, pipe 3 != type 1
4
[11815.912826] Modules linked in: cdc_acm pci_stub vboxpci(OE) vboxnetadp(OE) vboxnetflt(OE) vboxdrv(OE) cfg80211 binfmt_misc ftdi_sio cp210x usbserial uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common snd_usb_audio videodev snd_usbmidi_lib media joydev fglrx(POE) snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_hda_controller snd_hda_codec snd_hwdep snd_pcm intel_rapl iosf_mbi x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_seq_midi aesni_intel snd_seq_midi_event aes_x86_64 lrw gf128mul snd_rawmidi snd_seq glue_helper ablk_helper cryptd amd_iommu_v2 snd_seq_device snd_timer serio_raw mei_me ie31200_edac mei snd edac_core nuvoton_cir rc_core shpchp soundcore 8250_fintek lpc_ich mac_hid
5
[11815.912852]  parport_pc ppdev lp parport autofs4 uas usb_storage hid_generic usbhid hid mxm_wmi i915 i2c_algo_bit psmouse tg3 drm_kms_helper ptp pps_core drm ahci libahci wmi video
6
[11815.912861] CPU: 3 PID: 7379 Comm: gtkterm Tainted: P        W  OE  3.19.0-25-generic #26-Ubuntu
7
[11815.912862] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./Z77 Extreme6, BIOS P2.80 07/01/2013
8
[11815.912863]  ffffffff81b23440 ffff8801bf507978 ffffffff817c4518 0000000000000007
9
[11815.912865]  ffff8801bf5079c8 ffff8801bf5079b8 ffffffff81076a6a 00000000000000d0
10
[11815.912867]  ffff880030e83e40 0000000000000003 ffff88037a15d800 0000000000000000
11
[11815.912869] Call Trace:
12
[11815.912871]  [<ffffffff817c4518>] dump_stack+0x45/0x57
13
[11815.912873]  [<ffffffff81076a6a>] warn_slowpath_common+0x8a/0xc0
14
[11815.912875]  [<ffffffff81076ae6>] warn_slowpath_fmt+0x46/0x50
15
[11815.912878]  [<ffffffff815bf39f>] usb_submit_urb.part.6+0x14f/0x5b0
16
[11815.912881]  [<ffffffff815bf845>] usb_submit_urb+0x45/0x90
17
[11815.912883]  [<ffffffffc09f0175>] acm_submit_read_urb+0x45/0xa0 [cdc_acm]
18
[11815.912886]  [<ffffffffc09f021a>] acm_submit_read_urbs+0x4a/0x70 [cdc_acm]
19
[11815.912888]  [<ffffffffc09f3487>] acm_port_activate+0x197/0x218 [cdc_acm]
20
[11815.912891]  [<ffffffff814ae281>] tty_port_open+0x91/0x110
21
[11815.912893]  [<ffffffffc09f0ec7>] acm_tty_open+0x37/0x70 [cdc_acm]
22
[11815.912896]  [<ffffffff814a6027>] tty_open+0xf7/0x680
23
[11815.912898]  [<ffffffff811f96df>] chrdev_open+0x9f/0x1d0
24
[11815.912901]  [<ffffffff81314cb6>] ? security_file_open+0x76/0x80
25
[11815.912903]  [<ffffffff811f9640>] ? cdev_put+0x30/0x30
26
[11815.912905]  [<ffffffff811f2112>] do_dentry_open+0x1d2/0x330
27
[11815.912907]  [<ffffffff811f23d9>] vfs_open+0x49/0x50
28
[11815.912910]  [<ffffffff81202547>] do_last+0x247/0x12c0
29
[11815.912913]  [<ffffffff812055b0>] path_openat+0x80/0x5f0
30
[11815.912916]  [<ffffffff8121124c>] ? destroy_inode+0x3c/0x70
31
[11815.912918]  [<ffffffff81206d3a>] do_filp_open+0x3a/0xb0
32
[11815.912920]  [<ffffffff81213b27>] ? __alloc_fd+0xa7/0x130
33
[11815.912922]  [<ffffffff811f3d2a>] do_sys_open+0x12a/0x280
34
[11815.912925]  [<ffffffff81093eec>] ? task_work_run+0xbc/0xf0
35
[11815.912931]  [<ffffffff811f3e9e>] SyS_open+0x1e/0x20
36
[11815.912933]  [<ffffffff817cb5cd>] system_call_fastpath+0x16/0x1b
37
[11815.912934] ---[ end trace 5b0723b367ccbd43 ]---

: Bearbeitet durch User
von Clemens L. (c_l)


Lesenswert?

Max D. schrieb:
> http://www.recursion.jp/avrcdc/

Zitat:
| three endpoints and the bulk transfer on low-speed device violates the
| USB standard
| [...]
| switch to the HID protocol or to MCU having on-chip USB controller

: Bearbeitet durch User
von Max D. (max_d)


Lesenswert?

Grade eben wolltest du noch lsusb sehen...
Ich weiß, das v-usb an sich nich 100% konform is, aber bis jetzt ging es 
doch auch....
So sieht lsusb aus:
1
max@max-desktop:~$ sudo lsusb -v -s6:22
2
                                                                                                                                                                                                                                                                               
3
Bus 006 Device 022: ID 16c0:05e1 Van Ooijen Technische Informatica Free shared USB VID/PID pair for CDC devices                                                                                                                                                                
4
Device Descriptor:                                                                                                                                                                                                                                                             
5
  bLength                18                                                                                                                                                                                                                                                    
6
  bDescriptorType         1                                                                                                                                                                                                                                                    
7
  bcdUSB               1.10                                                                                                                                                                                                                                                    
8
  bDeviceClass            2 Communications                                                                                                                                                                                                                                     
9
  bDeviceSubClass         0                                                                                                                                                                                                                                                    
10
  bDeviceProtocol         0                                                                                                                                                                                                                                                    
11
  bMaxPacketSize0         8                                                                                                                                                                                                                                                    
12
  idVendor           0x16c0 Van Ooijen Technische Informatica                                                                                                                                                                                                                  
13
  idProduct          0x05e1 Free shared USB VID/PID pair for CDC devices                                                                                                                                                                                                       
14
  bcdDevice            1.00                                                                                                                                                                                                                                                    
15
  iManufacturer           1 (error)                                                                                                                                                                                                                                            
16
  iProduct                2 (error)                                                                                                                                                                                                                                            
17
  iSerial                 0                                                                                                                                                                                                                                                    
18
  bNumConfigurations      1                                                                                                                                                                                                                                                    
19
  Configuration Descriptor:                                                                                                                                                                                                                                                    
20
    bLength                 9                                                                                                                                                                                                                                                  
21
    bDescriptorType         2                                                                                                                                                                                                                                                  
22
    wTotalLength           67                                                                                                                                                                                                                                                  
23
    bNumInterfaces          2                                                                                                                                                                                                                                                  
24
    bConfigurationValue     1                                                                                                                                                                                                                                                  
25
    iConfiguration          0                                                                                                                                                                                                                                                  
26
    bmAttributes         0x80
27
      (Bus Powered)
28
    MaxPower              100mA
29
    Interface Descriptor:
30
      bLength                 9
31
      bDescriptorType         4
32
      bInterfaceNumber        0
33
      bAlternateSetting       0
34
      bNumEndpoints           1
35
      bInterfaceClass         2 Communications
36
      bInterfaceSubClass      2 Abstract (modem)
37
      bInterfaceProtocol      1 AT-commands (v.25ter)
38
      iInterface              0 
39
      CDC Header:
40
        bcdCDC               1.10
41
      CDC ACM:
42
        bmCapabilities       0x06
43
          sends break
44
          line coding and serial state
45
      CDC Union:
46
        bMasterInterface        0
47
        bSlaveInterface         1 
48
      CDC Call Management:
49
        bmCapabilities       0x03
50
          call management
51
          use DataInterface
52
        bDataInterface          1
53
      Endpoint Descriptor:
54
        bLength                 7
55
        bDescriptorType         5
56
        bEndpointAddress     0x83  EP 3 IN
57
        bmAttributes            3
58
          Transfer Type            Interrupt
59
          Synch Type               None
60
          Usage Type               Data
61
        wMaxPacketSize     0x0008  1x 8 bytes
62
        bInterval             255
63
    Interface Descriptor:
64
      bLength                 9
65
      bDescriptorType         4
66
      bInterfaceNumber        1
67
      bAlternateSetting       0
68
      bNumEndpoints           2
69
      bInterfaceClass        10 CDC Data
70
      bInterfaceSubClass      0 Unused
71
      bInterfaceProtocol      0 
72
      iInterface              0 
73
      Endpoint Descriptor:
74
        bLength                 7
75
        bDescriptorType         5
76
        bEndpointAddress     0x01  EP 1 OUT
77
        bmAttributes            2
78
          Transfer Type            Bulk
79
          Synch Type               None
80
          Usage Type               Data
81
        wMaxPacketSize     0x0008  1x 8 bytes
82
        bInterval               0
83
      Endpoint Descriptor:
84
        bLength                 7
85
        bDescriptorType         5
86
        bEndpointAddress     0x81  EP 1 IN
87
        bmAttributes            2
88
          Transfer Type            Bulk
89
          Synch Type               None
90
          Usage Type               Data
91
        wMaxPacketSize     0x0008  1x 8 bytes
92
        bInterval               0
93
Device Status:     0x0001
94
  Self Powered

: Bearbeitet durch User
von Clemens L. (c_l)


Lesenswert?

Max D. schrieb:
>       Endpoint Descriptor:
>           Transfer Type            Bulk
>       Endpoint Descriptor:
>           Transfer Type            Bulk

Das ist bei Low-Speed-Geräten nicht erlaubt.

Und das Problem ist nicht die Warnung (die wird einfach nur ausgegeben, 
und der Code macht dann weiter), sondern eine andere Änderung irgendwo 
im USB-Stack.

> Ich weiß, das v-usb an sich nich 100% konform is, aber bis jetzt ging es
> doch auch....

Auch wenn V-USB an sich Blödsinn ist: eine Regression wird grundsätzlich 
als Fehler gesehen. Aber ein Bugreport hat eine größere Chance, behoben 
zu werden, wenn du herausfindest, welche konkrete Änderung dein Problem 
verursacht hat: https://wiki.ubuntu.com/Kernel/KernelBisection

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.