Shine Ultra - FreeBSD

Hardware info on main page.

local links

c1,

History

2021-12-12: c1 - disconnecting the scanner results in these lines in /var/log/messages

Dec 12 19:24:35 kg-core1 kernel: ugen3.4: <vendor 0x1e4f ET13R> at usbus3 (disconnected)
Dec 12 19:24:35 kg-core1 kernel: uaudio0: at uhub8, port 2, addr 4 (disconnected)
Dec 12 19:24:35 kg-core1 kernel: pcm4: detached
Dec 12 19:24:35 kg-core1 kernel: uaudio0: detached

2021-12-12: c1 - connecting the scanner to a FreeBSD workstation running FreeBSD 13.0-release-p5 to get some info.

root@kg-core1:~ # freebsd-version -ku
13.0-RELEASE-p4
13.0-RELEASE-p5

from /var/log/messages

Dec 12 18:41:17 kg-core1 kernel: usb_alloc_device: set address 4 failed (USB_ERR_IOERROR, ignored)
Dec 12 18:41:17 kg-core1 kernel: ugen3.4: <vendor 0x1e4f ET13R> at usbus3
Dec 12 18:41:17 kg-core1 kernel: uaudio0 on uhub8
Dec 12 18:41:17 kg-core1 kernel: uaudio0: <CZUR USB HD MIC> on usbus3
Dec 12 18:41:17 kg-core1 kernel: uaudio0: No playback.
Dec 12 18:41:17 kg-core1 kernel: uaudio0: Record[0]: 48000 Hz, 2 ch, 16-bit S-LE PCM format, 2x8ms buffer.
Dec 12 18:41:17 kg-core1 kernel: uaudio0: No MIDI sequencer.
Dec 12 18:41:17 kg-core1 kernel: pcm4: <USB audio> on uaudio0
Dec 12 18:41:17 kg-core1 kernel: uaudio0: No HID volume keys found.

usbconfig info

root@kg-core1:~ # usbconfig -d ugen3.4
ugen3.4: <vendor 0x1e4f ET13R> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)

device descriptor

root@kg-core1:~ # usbconfig -d ugen3.4 dump_device_desc
ugen3.4: <vendor 0x1e4f ET13R> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)

  bLength = 0x0012 
  bDescriptorType = 0x0001 
  bcdUSB = 0x0200 
  bDeviceClass = 0x00ef  <Miscellaneous device>
  bDeviceSubClass = 0x0002 
  bDeviceProtocol = 0x0001 
  bMaxPacketSize0 = 0x0040 
  idVendor = 0x1e4f 
  idProduct = 0x1301 
  bcdDevice = 0x0328 
  iManufacturer = 0x0000  <no string>
  iProduct = 0x0002  <ET13R>
  iSerialNumber = 0x0003  <HU012345>
  bNumConfigurations = 0x0001 

current config descriptor

root@kg-core1:~ # usbconfig -d ugen3.4 dump_curr_config_desc
ugen3.4: <vendor 0x1e4f ET13R> at usbus3, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (200mA)


 Configuration index 0

    bLength = 0x0009 
    bDescriptorType = 0x0002 
    wTotalLength = 0x0331 
    bNumInterfaces = 0x0004 
    bConfigurationValue = 0x0001 
    iConfiguration = 0x0000  <no string>
    bmAttributes = 0x0080 
    bMaxPower = 0x0064 

    Additional Descriptor

    bLength = 0x08
    bDescriptorType = 0x0b
    bDescriptorSubType = 0x00
     RAW dump: 
     0x00 | 0x08, 0x0b, 0x00, 0x02, 0x0e, 0x03, 0x00, 0x00


    Interface 0
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0000 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0d, 0x24, 0x01, 0x00, 0x01, 0x6e, 0x00, 0x00, 
       0x08 | 0x2d, 0x31, 0x01, 0x01, 0x01


      Additional Descriptor

      bLength = 0x12
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x12, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x00, 
       0x08 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x20, 
       0x10 | 0x0a, 0x02


      Additional Descriptor

      bLength = 0x1d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x1d, 0x24, 0x06, 0x02, 0x92, 0x42, 0x39, 0x46, 
       0x08 | 0xd0, 0x0c, 0xe3, 0x4a, 0x87, 0x83, 0x31, 0x33, 
       0x10 | 0xf9, 0xea, 0xaa, 0x3b, 0x0a, 0x01, 0x01, 0x04, 
       0x18 | 0xff, 0x03, 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x1d
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x1d, 0x24, 0x06, 0x09, 0x82, 0x06, 0x61, 0x63, 
       0x08 | 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 
       0x10 | 0x5e, 0x8d, 0x22, 0x1d, 0x0a, 0x01, 0x02, 0x04, 
       0x18 | 0x02, 0xe2, 0x03, 0x31, 0x00


      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x05
       RAW dump: 
       0x00 | 0x0c, 0x24, 0x05, 0x03, 0x09, 0x00, 0x00, 0x03, 
       0x08 | 0x3f, 0x04, 0x00, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x04, 0x01, 0x01, 0x00, 0x03, 
       0x08 | 0x00

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0081  <IN>
        bmAttributes = 0x0003  <INTERRUPT>
        wMaxPacketSize = 0x0080 
        bInterval = 0x0008 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x05
      bDescriptorType = 0x25
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x05, 0x25, 0x03, 0x80, 0x00



    Interface 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

      Additional Descriptor

      bLength = 0x0e
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x0e, 0x24, 0x01, 0x01, 0x18, 0x02, 0x82, 0x00, 
       0x08 | 0x04, 0x02, 0x00, 0x00, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x06, 0x02, 0x0d, 0x01, 0x01, 0x00, 
       0x08 | 0x00, 0x02, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x01, 0x01, 0x80, 0x07, 0x38, 
       0x08 | 0x04, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0xd2, 0x0f, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x02, 0x01, 0x00, 0x0f, 0x70, 
       0x08 | 0x08, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x48, 0x3f, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x03, 0x01, 0x20, 0x0a, 0x98, 
       0x08 | 0x07, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x80, 0x71, 0x26, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x04, 0x01, 0x00, 0x08, 0x00, 
       0x08 | 0x06, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x00, 0x18, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x05, 0x01, 0x00, 0x05, 0xd0, 
       0x08 | 0x02, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x08, 0x07, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x06, 0x01, 0x40, 0x06, 0xb0, 
       0x08 | 0x04, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0xa6, 0x0e, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x07, 0x01, 0x00, 0x04, 0x00, 
       0x08 | 0x03, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x00, 0x06, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x08, 0x01, 0x00, 0x04, 0x40, 
       0x08 | 0x02, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x80, 0x04, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x09, 0x01, 0x20, 0x03, 0xe0, 
       0x08 | 0x01, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0xee, 0x02, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x0a, 0x01, 0x80, 0x02, 0xe0, 
       0x08 | 0x01, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x58, 0x02, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x0b, 0x01, 0x40, 0x10, 0x30, 
       0x08 | 0x0c, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x83, 0x31, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x0c, 0x01, 0x00, 0x06, 0x80, 
       0x08 | 0x04, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0x00, 0x80, 0x0d, 0x00, 0x5b, 0xcc, 0x15, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x26
      bDescriptorType = 0x24
      bDescriptorSubType = 0x07
       RAW dump: 
       0x00 | 0x26, 0x24, 0x07, 0x0d, 0x01, 0x58, 0x0e, 0xc2, 
       0x08 | 0x0a, 0x00, 0xec, 0x1d, 0x20, 0x00, 0xec, 0x1d, 
       0x10 | 0x20, 0xac, 0x93, 0x26, 0x00, 0x2a, 0x2c, 0x0a, 
       0x18 | 0x00, 0x03, 0x2a, 0x2c, 0x0a, 0x00, 0x40, 0x42, 
       0x20 | 0x0f, 0x00, 0x5b, 0xcc, 0x15, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x03, 0x82, 0x01, 0x40, 0x10, 0x30, 
       0x08 | 0x0c, 0x01, 0x01


      Additional Descriptor

      bLength = 0x06
      bDescriptorType = 0x24
      bDescriptorSubType = 0x0d
       RAW dump: 
       0x00 | 0x06, 0x24, 0x0d, 0x05, 0x05, 0x05



    Interface 1 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0001 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x000e  <Video device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0000  <no string>

     Endpoint 0
        bLength = 0x0007 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0082  <IN>
        bmAttributes = 0x0001  <ISOCHRONOUS>
        wMaxPacketSize = 0x1400 
        bInterval = 0x0001 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x08
      bDescriptorType = 0x0b
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x08, 0x0b, 0x02, 0x02, 0x01, 0x02, 0x00, 0x04



    Interface 2
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0002 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0001 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR USB HD MIC>

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x27, 0x00, 0x01, 
       0x08 | 0x03

      Additional Descriptor

      bLength = 0x0c
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0c, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x01, 
       0x08 | 0x00, 0x00, 0x00, 0x00


      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x06
       RAW dump: 
       0x00 | 0x09, 0x24, 0x06, 0x02, 0x01, 0x02, 0x03, 0x00, 
       0x08 | 0x00

      Additional Descriptor

      bLength = 0x09
      bDescriptorType = 0x24
      bDescriptorSubType = 0x03
       RAW dump: 
       0x00 | 0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x02, 
       0x08 | 0x00


    Interface 3
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0000 
      bNumEndpoints = 0x0000 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR USB HD MIC>


    Interface 3 Alt 1
      bLength = 0x0009 
      bDescriptorType = 0x0004 
      bInterfaceNumber = 0x0003 
      bAlternateSetting = 0x0001 
      bNumEndpoints = 0x0001 
      bInterfaceClass = 0x0001  <Audio device>
      bInterfaceSubClass = 0x0002 
      bInterfaceProtocol = 0x0000 
      iInterface = 0x0004  <CZUR USB HD MIC>

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x24
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


      Additional Descriptor

      bLength = 0x0b
      bDescriptorType = 0x24
      bDescriptorSubType = 0x02
       RAW dump: 
       0x00 | 0x0b, 0x24, 0x02, 0x01, 0x02, 0x02, 0x10, 0x01, 
       0x08 | 0x80, 0xbb, 0x00


     Endpoint 0
        bLength = 0x0009 
        bDescriptorType = 0x0005 
        bEndpointAddress = 0x0083  <IN>
        bmAttributes = 0x0001  <ISOCHRONOUS>
        wMaxPacketSize = 0x00d8 
        bInterval = 0x0004 
        bRefresh = 0x0000 
        bSynchAddress = 0x0000 

      Additional Descriptor

      bLength = 0x07
      bDescriptorType = 0x25
      bDescriptorSubType = 0x01
       RAW dump: 
       0x00 | 0x07, 0x25, 0x01, 0x00, 0x00, 0x01, 0x00

2021-12-12: I created this page.