Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 May 2020 18:43:34 +0200
From:      =?UTF-8?Q?Jos=C3=A9_P=C3=A9rez?= <fbl@aoek.com>
To:        multimedia@freebsd.org
Subject:   Sony handycam suitable for video via USB? Help needed.
Message-ID:  <52870a6ee331aa06a16f0559f0160938@mail.yourbox.net>

next in thread | raw e-mail | index | archive | help
Hi,
trying to get a Sony Handycam work with FreeBSD with
the hope to use it as a video source from USB.

Mass storage works, but no video.

# usbconfig -d 2.2 dump_device_desc
ugen2.2: <Sony HDR-CX240E> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) 
pwr=ON (500mA)

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0200
   bDeviceClass = 0x0000  <Probed by interface class>
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x054c
   idProduct = 0x08c4
   bcdDevice = 0x0200
   iManufacturer = 0x0001  <Sony>
   iProduct = 0x0002  <HDR-CX240E>
   iSerialNumber = 0x0003  <68C9E05597A9>
   bNumConfigurations = 0x0004


Ok, spd=HIGH is no video quality, now the camera is just
charging. I set the camera USB via camerca menu and I get
spd=HIGH, now we can dig further:

# usbconfig -d 2.2 dump_all_desc
ugen2.2: <Sony HDR-CX240E> at usbus2, cfg=0 md=HOST spd=HIGH (480Mbps) 
pwr=ON (500mA)

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0200
   bDeviceClass = 0x0000  <Probed by interface class>
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x054c
   idProduct = 0x08c4
   bcdDevice = 0x0200
   iManufacturer = 0x0001  <Sony>
   iProduct = 0x0002  <HDR-CX240E>
   iSerialNumber = 0x0003  <68C9E05597A9>
   bNumConfigurations = 0x0004

  Configuration index 0

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0027
     bNumInterfaces = 0x0001
     bConfigurationValue = 0x0001
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0080
     bMaxPower = 0x00fa

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x0008  <Mass storage>
       bInterfaceSubClass = 0x0006
       bInterfaceProtocol = 0x0050
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0020
         bInterval = 0x0007
         bRefresh = 0x0000
         bSynchAddress = 0x0000



  Configuration index 1

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0027
     bNumInterfaces = 0x0001
     bConfigurationValue = 0x0002
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x0080
     bMaxPower = 0x00fa

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x0006  <Still imaging>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0020
         bInterval = 0x0007
         bRefresh = 0x0000
         bSynchAddress = 0x0000



  Configuration index 2

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0027
     bNumInterfaces = 0x0001
     bConfigurationValue = 0x0003
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00c0
     bMaxPower = 0x0032

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x0008  <Mass storage>
       bInterfaceSubClass = 0x0006
       bInterfaceProtocol = 0x0050
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0020
         bInterval = 0x0007
         bRefresh = 0x0000
         bSynchAddress = 0x0000



  Configuration index 3

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x0027
     bNumInterfaces = 0x0001
     bConfigurationValue = 0x0004
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00c0
     bMaxPower = 0x0032

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0003
       bInterfaceClass = 0x0006  <Still imaging>
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0001
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0081  <IN>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0002  <OUT>
         bmAttributes = 0x0002  <BULK>
         wMaxPacketSize = 0x0200
         bInterval = 0x0000
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 2
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0083  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0020
         bInterval = 0x0007
         bRefresh = 0x0000
         bSynchAddress = 0x0000

The mass storages work, if I set
usbconfig -d 2.2 set_config 0 or
usbconfig -d 2.2 set_config 2

(It seems the difference is charging/not charging).

When I set
usbconfig -d 2.2 set_config 1 or
usbconfig -d 2.2 set_config 3
the camera switches to and MTP source.

webcamd (compiled with DEBUG) reports:
# webcamd -N Sony-HDR-CX240E -S 68C9E05597A9 -M 0
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR XMP protocol handler initialized
b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded 
successfully
USB Video Class driver (1.1.1)
cpia2: V4L-Driver for Vision CPiA2 based cameras v3.0.1
USBVision USB Video Device Driver for Linux : 0.9.11
webcamd: Cannot find USB device

But I can't go any further than this.

Is it possible to set it as a video source somehow?

Thank you.

BR,

-- 
José Pérez



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?52870a6ee331aa06a16f0559f0160938>