Czurtek CZUR scanner - FreeBSD
More details on main page.
links
local links
u35jc,
History / work log
2016-11-21: a quick test with xcam revealed that the scanner works in color mode. Now try that with scanimage:
tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --mode=Color -T scanimage: scanning image of size 640x480 pixels at 24 bits/pixel scanimage: acquiring RGB frame, 8 bits/sample scanimage: reading one scanline, 1920 bytes... PASS scanimage: reading one byte... PASS scanimage: stepped read, 2 bytes... PASS scanimage: stepped read, 4 bytes... PASS scanimage: stepped read, 8 bytes... PASS scanimage: stepped read, 16 bytes... PASS scanimage: stepped read, 32 bytes... PASS scanimage: stepped read, 64 bytes... PASS scanimage: stepped read, 128 bytes... PASS scanimage: stepped read, 256 bytes... PASS scanimage: stepped read, 512 bytes... PASS scanimage: stepped read, 1024 bytes... PASS scanimage: stepped read, 2048 bytes... PASS scanimage: stepped read, 2047 bytes... PASS scanimage: stepped read, 1023 bytes... PASS scanimage: stepped read, 511 bytes... PASS scanimage: stepped read, 255 bytes... PASS scanimage: stepped read, 127 bytes... PASS scanimage: stepped read, 63 bytes... PASS scanimage: stepped read, 31 bytes... PASS scanimage: stepped read, 15 bytes... PASS scanimage: stepped read, 7 bytes... PASS scanimage: stepped read, 3 bytes... PASS
try an image
tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --mode=Color --format=jpg > test1.jpg tingo@kg-u35jc$ ll t* -rw-r--r-- 1 tingo tingo - 921635 Nov 21 23:20 test1.jpg tingo@kg-u35jc$ file test1.jpg test1.jpg: Netpbm image data, size = 640 x 480, rawbits, pixmap
ok, the format option should be '--format=jpeg'
tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --mode=Color --format=jpeg > test2.jpg tingo@kg-u35jc$ file t* test1.jpg: Netpbm image data, size = 640 x 480, rawbits, pixmap test2.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 640x480, frames 3
nice! It doesn't look like I can't change x and y (scan area size)
tingo@kg-u35jc$ scanimage -d v4l:/dev/video1 --mode=color --format=jpeg > test4.jpg tingo@kg-u35jc$ file test4.jpg test4.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 640x480, frames 3 tingo@kg-u35jc$ scanimage -d v4l:/dev/video1 --mode=color --format=jpeg -x 767 -y 511 > test5.jpg tingo@kg-u35jc$ file test5.jpg test5.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 640x480, frames 3
strange.
tingo@kg-u35jc$ scanimage -d v4l:/dev/video1 --mode=color --format=jpeg -l 0 -t 0 -x 767 -y 511 > test6.jpg scanimage: attempted to set inactive option tl-x
and it didn't like the -l option try this
tingo@kg-u35jc$ scanimage -d v4l:/dev/video1 --mode=color --format=jpeg -x 320 -y 240 > test7.jpg tingo@kg-u35jc$ file test7.jpg test7.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 640x480, frames 3
still strange.
2016-11-21: scanimage - testing with debug to full, video1 device
tingo@kg-u35jc$ SANE_DEBUG_V4L=128 scanimage -d v4l:/dev/video1 -T [sanei_debug] Setting debug level of v4l to 128. [v4l] SANE v4l backend version 1.0 build 5 from sane-backends 1.0.25 [v4l] attach: trying to open /dev/bttv0 [v4l] attach: failed to open device `/dev/bttv0': No such file or directory [v4l] attach: trying to open /dev/video0 [v4l] attach: found videodev `CZUR' on `/dev/video0' [v4l] attach: trying to open /dev/video1 [v4l] attach: found videodev `CZUR' on `/dev/video1' [v4l] attach: trying to open /dev/video2 [v4l] attach: failed to open device `/dev/video2': No such file or directory [v4l] attach: trying to open /dev/video3 [v4l] attach: failed to open device `/dev/video3': No such file or directory [v4l] sane_open: device /dev/video1 found in devlist [v4l] sane_open: 1 channels, 0 audio devices [v4l] sane_open: minwidth=320, minheight=240, maxwidth=2304, maxheight=1728 [v4l] sane_open: V4L device can capture to memory [v4l] sane_open: channel 0 (Camera 1), tuners=0, flags=0x0, type=2, norm=0 [v4l] sane_open: input is camera input [v4l] sane_open: brightness=0, hue=0, colour=0, contrast=0 [v4l] sane_open: whiteness=0, depth=16, palette=8 [v4l] sane_open: ioctl VIDIOCSPICT failed (Invalid argument) [v4l] sane_open: x=0, y=0, width=640, height=480 [v4l] sane_get_option_descriptor: option 0 (Number of options) [v4l] sane_control_option: get option 0 (Number of options) [v4l] sane_get_option_descriptor: option 0 (Number of options) [v4l] sane_control_option: get option 0 (Number of options) [v4l] sane_get_option_descriptor: option 1 (Scan Mode) [v4l] sane_get_option_descriptor: option 2 (mode) [v4l] sane_get_option_descriptor: option 3 (channel) [v4l] sane_get_option_descriptor: option 4 (Geometry) [v4l] sane_get_option_descriptor: option 5 (tl-x) [v4l] sane_get_option_descriptor: option 6 (tl-y) [v4l] sane_get_option_descriptor: option 7 (br-x) [v4l] sane_get_option_descriptor: option 8 (br-y) [v4l] sane_get_option_descriptor: option 9 (Enhancement) [v4l] sane_get_option_descriptor: option 10 (brightness) [v4l] sane_get_option_descriptor: option 11 (hue) [v4l] sane_get_option_descriptor: option 12 (color) [v4l] sane_get_option_descriptor: option 13 (contrast) [v4l] sane_get_option_descriptor: option 14 (white-level) [v4l] sane_control_option: get option 7 (br-x) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 5 (tl-x) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 8 (br-y) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 6 (tl-y) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 5 (tl-x) [v4l] sane_control option: option is inactive [v4l] sane_get_option_descriptor: option 7 (br-x) [v4l] sane_control_option: get option 6 (tl-y) [v4l] sane_control option: option is inactive [v4l] sane_get_option_descriptor: option 8 (br-y) [v4l] sane_start [v4l] sane_start: mmap frame, buffersize: 67108864 bytes, buffers: 4, offset 0 0 [v4l] sane_start: mmapped frame, capture 1 pict into 0x803608000 [v4l] sane_start: mmapped frame 640 x 480 with palette 1 [v4l] sane_start: ioctl VIDIOCMCAPTURE failed: Invalid argument scanimage: sane_start: Invalid argument [v4l] sane_cancel [v4l] sane_close: trying to close handle 0x803267000 [v4l] sane_exit: all devices freed
same problem as video0.
2016-11-21: scanimage - testing with debug to full, video0 device
tingo@kg-u35jc$ SANE_DEBUG_V4L=128 scanimage -d v4l:/dev/video0 -T [sanei_debug] Setting debug level of v4l to 128. [v4l] SANE v4l backend version 1.0 build 5 from sane-backends 1.0.25 [v4l] attach: trying to open /dev/bttv0 [v4l] attach: failed to open device `/dev/bttv0': No such file or directory [v4l] attach: trying to open /dev/video0 [v4l] attach: found videodev `CZUR' on `/dev/video0' [v4l] attach: trying to open /dev/video1 [v4l] attach: found videodev `CZUR' on `/dev/video1' [v4l] attach: trying to open /dev/video2 [v4l] attach: failed to open device `/dev/video2': No such file or directory [v4l] attach: trying to open /dev/video3 [v4l] attach: failed to open device `/dev/video3': No such file or directory [v4l] sane_open: device /dev/video0 found in devlist [v4l] sane_open: 1 channels, 0 audio devices [v4l] sane_open: minwidth=320, minheight=240, maxwidth=640, maxheight=480 [v4l] sane_open: V4L device can capture to memory [v4l] sane_open: channel 0 (Camera 1), tuners=0, flags=0x0, type=2, norm=0 [v4l] sane_open: input is camera input [v4l] sane_open: brightness=0, hue=0, colour=0, contrast=0 [v4l] sane_open: whiteness=0, depth=16, palette=8 [v4l] sane_open: ioctl VIDIOCSPICT failed (Invalid argument) [v4l] sane_open: x=0, y=0, width=640, height=480 [v4l] sane_get_option_descriptor: option 0 (Number of options) [v4l] sane_control_option: get option 0 (Number of options) [v4l] sane_get_option_descriptor: option 0 (Number of options) [v4l] sane_control_option: get option 0 (Number of options) [v4l] sane_get_option_descriptor: option 1 (Scan Mode) [v4l] sane_get_option_descriptor: option 2 (mode) [v4l] sane_get_option_descriptor: option 3 (channel) [v4l] sane_get_option_descriptor: option 4 (Geometry) [v4l] sane_get_option_descriptor: option 5 (tl-x) [v4l] sane_get_option_descriptor: option 6 (tl-y) [v4l] sane_get_option_descriptor: option 7 (br-x) [v4l] sane_get_option_descriptor: option 8 (br-y) [v4l] sane_get_option_descriptor: option 9 (Enhancement) [v4l] sane_get_option_descriptor: option 10 (brightness) [v4l] sane_get_option_descriptor: option 11 (hue) [v4l] sane_get_option_descriptor: option 12 (color) [v4l] sane_get_option_descriptor: option 13 (contrast) [v4l] sane_get_option_descriptor: option 14 (white-level) [v4l] sane_control_option: get option 7 (br-x) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 5 (tl-x) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 8 (br-y) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 6 (tl-y) [v4l] sane_control option: option is inactive [v4l] sane_control_option: get option 5 (tl-x) [v4l] sane_control option: option is inactive [v4l] sane_get_option_descriptor: option 7 (br-x) [v4l] sane_control_option: get option 6 (tl-y) [v4l] sane_control option: option is inactive [v4l] sane_get_option_descriptor: option 8 (br-y) [v4l] sane_start [v4l] sane_start: mmap frame, buffersize: 67108864 bytes, buffers: 4, offset 0 0 [v4l] sane_start: mmapped frame, capture 1 pict into 0x803608000 [v4l] sane_start: mmapped frame 640 x 480 with palette 1 [v4l] sane_start: ioctl VIDIOCMCAPTURE failed: Invalid argument scanimage: sane_start: Invalid argument [v4l] sane_cancel [v4l] sane_close: trying to close handle 0x803267000 [v4l] sane_exit: all devices freed
interesting.
2016-11-21: scanimage - testing
tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 > test1.jpg scanimage: sane_start: Invalid argument tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --channel Camera 1 > test1.jpg scanimage: attempted to set inactive option channel tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --channel=Camera 1 > test1.jpg scanimage: attempted to set inactive option channel tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --mode Gray > test1.jpg scanimage: sane_start: Invalid argument tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 --format=jpg > test1.jpg scanimage: sane_start: Invalid argument tingo@kg-u35jc$ tingo@kg-u35jc$ scanimage -d v4l:/dev/video0 -T scanimage: sane_start: Invalid argument tingo@kg-u35jc$ su Password: root@kg-u35jc# scanimage -d v4l:/dev/video0 -T scanimage: sane_start: Invalid argument root@kg-u35jc# scanimage -d v4l:/dev/video1 -T scanimage: sane_start: Invalid argument
ok, so it doesn't work. test SANE with the "test" backend
tingo@kg-u35jc$ scanimage -d test -T scanimage: scanning image of size 157x196 pixels at 8 bits/pixel scanimage: acquiring gray frame, 8 bits/sample scanimage: reading one scanline, 157 bytes... PASS scanimage: reading one byte... PASS scanimage: stepped read, 2 bytes... PASS scanimage: stepped read, 4 bytes... PASS scanimage: stepped read, 8 bytes... PASS scanimage: stepped read, 16 bytes... PASS scanimage: stepped read, 32 bytes... PASS scanimage: stepped read, 64 bytes... PASS scanimage: stepped read, 128 bytes... PASS scanimage: stepped read, 256 bytes... PASS scanimage: stepped read, 255 bytes... PASS scanimage: stepped read, 127 bytes... PASS scanimage: stepped read, 63 bytes... PASS scanimage: stepped read, 31 bytes... PASS scanimage: stepped read, 15 bytes... PASS scanimage: stepped read, 7 bytes... PASS scanimage: stepped read, 3 bytes... PASS
that works.
2016-11-21: try to get the scanner recognized as a usb video class device. I have installed webcamd. the scanner is still at ugen1.4
root@kg-u35jc# usbconfig -d ugen1.4 ugen1.4: <CZUR iCatchtek Co Ltd> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
start webcamd:
root@kg-u35jc# service webcamd onestatus webcamd is not running. root@kg-u35jc# service webcamd onestart ugen1.4 Attached to ugen1.4[0]
verify
root@kg-u35jc# service webcamd onestatus webcamd is running as pid 60542.
check for video devices
root@kg-u35jc# ls -l /dev/video* crw-rw---- 1 webcamd webcamd 0x96 Nov 21 22:07 /dev/video0 crw-rw---- 1 webcamd webcamd 0x97 Nov 21 22:07 /dev/video1
and see what scanimage -L thinks
root@kg-u35jc# scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).
nothing? hmm, strange.
root@kg-u35jc# cd /usr/ports/graphics/sane-backends root@kg-u35jc# make showconfig ===> The following configuration options are available for sane-backends-1.0.25: AVAHI=off: Zeroconf support via Avahi DOCS=on: Build and/or install documentation GPHOTO=off: Digital cameras support via libgphoto2 IEEE1284=off: Parallel port support via libieee1284 IPV6=on: IPv6 protocol support NLS=on: Native Language Support SNMP=off: SNMP network protocol support USB=on: USB support V4L=off: Video 4 Linux support ===> Use 'make config' to modify these settings
Ok, v4l support missing. So i changed V4L=on and reinstalled sane-backends. New check with scanimage -L
root@kg-u35jc# scanimage -L device `v4l:/dev/video1' is a Noname CZUR virtual device device `v4l:/dev/video0' is a Noname CZUR virtual device
looks better. What options does video0 support?
root@kg-u35jc# scanimage --help --device-name v4l:/dev/video0 Usage: scanimage [OPTION]... Start image acquisition on a scanner device and write image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff|png|jpeg file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), %i (index number), and %n (newline) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' `out%d.tif' `out%d.png' or `out%d.jpg' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase page number in filename by # --batch-double increment page number by two, same as --batch-increment=2 --batch-print print image filenames to stdout --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -A, --all-options list all available backend options -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size=# change input buffer size (in kB, default 32) -V, --version print version information Options specific to device `v4l:/dev/video0': Scan Mode: --mode Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --channel Camera 1 [inactive] Selects the channel of the v4l device (e.g. television or video-in. Geometry: -l 0..320pel (in steps of 1) [inactive] Top-left x position of scan area. -t 0..240pel (in steps of 1) [inactive] Top-left y position of scan area. -x 320..640pel (in steps of 1) [inactive] Width of scan-area. -y 240..480pel (in steps of 1) [inactive] Height of scan-area. Enhancement: --brightness 0..255 [0] Controls the brightness of the acquired image. --hue 0..255 [0] Controls the "hue" (blue-level) of the acquired image. --color 0..255 [0] Sets the picture's color. --contrast 0..255 [0] Controls the contrast of the acquired image. --white-level 0..255 [0] Selects what radiance level should be considered "white". Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video1 v4l:/dev/video0
and options for video1?
root@kg-u35jc# scanimage --help -d v4l:/dev/video1 Usage: scanimage [OPTION]... Start image acquisition on a scanner device and write image data to standard output. Parameters are separated by a blank from single-character options (e.g. -d epson) and by a "=" from multi-character options (e.g. --device-name=epson). -d, --device-name=DEVICE use a given scanner device (e.g. hp:/dev/scanner) --format=pnm|tiff|png|jpeg file format of output file -i, --icc-profile=PROFILE include this ICC profile into TIFF file -L, --list-devices show available scanner devices -f, --formatted-device-list=FORMAT similar to -L, but the FORMAT of the output can be specified: %d (device name), %v (vendor), %m (model), %t (type), %i (index number), and %n (newline) -b, --batch[=FORMAT] working in batch mode, FORMAT is `out%d.pnm' `out%d.tif' `out%d.png' or `out%d.jpg' by default depending on --format --batch-start=# page number to start naming files with --batch-count=# how many pages to scan in batch mode --batch-increment=# increase page number in filename by # --batch-double increment page number by two, same as --batch-increment=2 --batch-print print image filenames to stdout --batch-prompt ask for pressing a key before scanning a page --accept-md5-only only accept authorization requests using md5 -p, --progress print progress messages -n, --dont-scan only set options, don't actually scan -T, --test test backend thoroughly -A, --all-options list all available backend options -h, --help display this help message and exit -v, --verbose give even more status messages -B, --buffer-size=# change input buffer size (in kB, default 32) -V, --version print version information Options specific to device `v4l:/dev/video1': Scan Mode: --mode Gray|Color [Gray] Selects the scan mode (e.g., lineart, monochrome, or color). --channel Camera 1 [inactive] Selects the channel of the v4l device (e.g. television or video-in. Geometry: -l 0..447pel (in steps of 1) [inactive] Top-left x position of scan area. -t 0..271pel (in steps of 1) [inactive] Top-left y position of scan area. -x 320..767pel (in steps of 1) [inactive] Width of scan-area. -y 240..511pel (in steps of 1) [inactive] Height of scan-area. Enhancement: --brightness 0..255 [0] Controls the brightness of the acquired image. --hue 0..255 [0] Controls the "hue" (blue-level) of the acquired image. --color 0..255 [0] Sets the picture's color. --contrast 0..255 [0] Controls the contrast of the acquired image. --white-level 0..255 [0] Selects what radiance level should be considered "white". Type ``scanimage --help -d DEVICE'' to get list of all options for DEVICE. List of available devices: v4l:/dev/video1 v4l:/dev/video0
are both the same?
2016-11-21: firmware upgrade mode - if you hold the "zoom in" button while powering on the scanner, it starts up as a usb disk device, used for firmware upgrade. From /var/log/messages:
Nov 21 20:34:37 kg-u35jc kernel: ugen1.4: <iCatchtek Co Ltd> at usbus1 Nov 21 20:34:37 kg-u35jc kernel: umass0 on uhub3 Nov 21 20:34:37 kg-u35jc kernel: umass0: <iCatchtek Co Ltd CZUR, class 0/0, rev 2.00/1.00, addr 4> on usbus1 Nov 21 20:34:37 kg-u35jc kernel: umass0: SCSI over Bulk-Only; quirks = 0xc100 Nov 21 20:34:37 kg-u35jc kernel: umass0:2:0: Attached to scbus2 Nov 21 20:34:37 kg-u35jc kernel: da0 at umass-sim0 bus 0 scbus2 target 0 lun 0 Nov 21 20:34:37 kg-u35jc kernel: da0: <iCatchte CZUR 1.00> Removable Direct Access SPC-2 SCSI device Nov 21 20:34:37 kg-u35jc kernel: da0: Serial Number 01.00.00 Nov 21 20:34:37 kg-u35jc kernel: da0: 40.000MB/s transfers Nov 21 20:34:37 kg-u35jc kernel: da0: 7639MB (15644672 512 byte sectors) Nov 21 20:34:37 kg-u35jc kernel: da0: quirks=0x2<NO_6_BYTE>
list it
root@kg-u35jc# ls -l /dev/da0* crw-r----- 1 root operator 0x92 Nov 21 20:34 /dev/da0 crw-r----- 1 root operator 0x93 Nov 21 20:34 /dev/da0s1
what does disktype think about it?
root@kg-u35jc# disktype /dev/da0 --- /dev/da0 Character device, size 7.460 GiB (8010072064 bytes) DOS/MBR partition map Partition 1: 7.460 GiB (8010055680 bytes, 15644640 sectors from 32) Type 0x0C (Win95 FAT32 (LBA)) FAT32 file system (hints score 5 of 5) Volume size 7.458 GiB (8008073216 bytes, 244387 clusters of 32 KiB) Volume name ""
FAT32. mount it (readonly for now)
root@kg-u35jc# mount -t msdosfs -r /dev/da0s1 /mnt
examine
root@kg-u35jc# df -h /mnt Filesystem Size Used Avail Capacity Mounted on /dev/da0s1 7.5G 288K 7.5G 0% /mnt
check contents
root@kg-u35jc# ll /mnt total 228 drwxr-xr-x 1 root wheel 32768 Jan 1 1980 ./ drwxr-xr-x 18 root wheel 1024 Nov 6 20:48 ../ drwxr-xr-x 1 root wheel 32768 Jun 1 2012 EVENT/ drwxr-xr-x 1 root wheel 32768 Jun 1 2012 JPG/ -rwxr-xr-x 1 root wheel 41508 Jun 1 2012 LASTER.txt* -rwxr-xr-x 1 root wheel 22 Jun 1 2012 UID.txt* drwxr-xr-x 1 root wheel 32768 Jun 1 2012 VIDEO/
ok, a couple of text files and some directories
root@kg-u35jc# ll /mnt/EVENT total 64 drwxr-xr-x 1 root wheel 32768 Jun 1 2012 ./ drwxr-xr-x 1 root wheel 32768 Jan 1 1980 ../ root@kg-u35jc# ll /mnt/JPG total 64 drwxr-xr-x 1 root wheel 32768 Jun 1 2012 ./ drwxr-xr-x 1 root wheel 32768 Jan 1 1980 ../ root@kg-u35jc# ll /mnt/VIDEO total 64 drwxr-xr-x 1 root wheel 32768 Jun 1 2012 ./ drwxr-xr-x 1 root wheel 32768 Jan 1 1980 ../
directories are empty.
root@kg-u35jc# file /mnt/*txt /mnt/LASTER.txt: data /mnt/UID.txt: data
and "text" files are data. Use hexdump on the small one:
root@kg-u35jc# hd /mnt/UID.txt 00000000 6a 6c 7b 6b 54 57 6c 2f 3e 07 66 7c 1a 1e 50 47 |jl{kTWl/>.f|..PG| 00000010 3a 54 53 25 3d 3d |:TS%==| 00000016
hmm, ok. The LASTER.txt file doesn't have any recognizable text strings in it, perhaps the data is compressed. I unmount the scanner
root@kg-u35jc# umount /mnt
then I unplug the usb cable - nothing happens on the scanner side (no visual activity). Turning the scanner off then on again verifies that it works as before.
2016-11-20: I connected the scanner to my U35jc laptop, running FreeBSD 11.0-stable.
root@kg-u35jc# uname -a FreeBSD kg-u35jc.kg4.no 11.0-STABLE FreeBSD 11.0-STABLE #0 r307748: Sun Oct 23 19:17:49 CEST 2016 root@kg-u35jc.kg4.no:/usr/obj/usr/src/sys/GENERIC amd64
from /var/log/messages:
Nov 20 20:58:35 kg-u35jc kernel: ugen1.4: <iCatchtek Co Ltd> at usbus1 Nov 20 20:58:35 kg-u35jc root: Unknown USB device: vendor 0x04fc product 0x6333 bus uhub3 Nov 20 20:58:36 kg-u35jc last message repeated 3 times Nov 20 20:58:36 kg-u35jc kernel: uaudio0 on uhub3 Nov 20 20:58:36 kg-u35jc kernel: uaudio0: <iCatchtek Co Ltd CZUR, class 239/2, rev 2.00/1.00, addr 4> on usbus1 Nov 20 20:58:36 kg-u35jc root: Unknown USB device: vendor 0x064e product 0xa136 bus uhub2 Nov 20 20:58:36 kg-u35jc root: Unknown USB device: vendor 0x064e product 0xa136 bus uhub2 Nov 20 20:58:36 kg-u35jc kernel: uaudio0: No playback. Nov 20 20:58:36 kg-u35jc kernel: uaudio0: Record: 48000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer. Nov 20 20:58:36 kg-u35jc kernel: uaudio0: Record: 24000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer. Nov 20 20:58:36 kg-u35jc kernel: uaudio0: Record: 16000 Hz, 1 ch, 16-bit S-LE PCM format, 2x8ms buffer. Nov 20 20:58:36 kg-u35jc kernel: uaudio0: No MIDI sequencer. Nov 20 20:58:36 kg-u35jc kernel: pcm2: <USB audio> on uaudio0 Nov 20 20:58:36 kg-u35jc kernel: uaudio0: No HID volume keys found. Nov 20 20:58:36 kg-u35jc root: Unknown USB device: vendor 0x04fc product 0x6333 bus uhub3 Nov 20 20:58:36 kg-u35jc last message repeated 2 times Nov 20 20:58:36 kg-u35jc root: Unknown USB device: vendor 0x0b05 product 0x1788 bus uhub2 Nov 20 20:58:36 kg-u35jc root: Unknown USB device: vendor 0x0b05 product 0x1788 bus uhub2
usbconfig output
root@kg-u35jc# usbconfig ugen0.1: <EHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA) ugen1.1: <EHCI root HUB Intel> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA) ugen0.2: <product 0x0020 vendor 0x8087> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA) ugen1.2: <product 0x0020 vendor 0x8087> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=SAVE (0mA) ugen0.3: <USB 2.0 UVC 0.3M Webcam SuYin> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA) ugen1.3: <product 0x05da MLK> at usbus1, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON (100mA) ugen0.4: <BT-270 Broadcom Corp> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (0mA) ugen1.4: <CZUR iCatchtek Co Ltd> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA)
the scanner is at ugen1.4 usb device descriptor
root@kg-u35jc# usbconfig -d ugen1.4 dump_device_desc ugen1.4: <CZUR iCatchtek Co Ltd> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA) bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x00ef <Miscellaneous device> bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0040 idVendor = 0x04fc idProduct = 0x6333 bcdDevice = 0x0100 iManufacturer = 0x0001 <iCatchtek Co Ltd > iProduct = 0x0002 <CZUR> iSerialNumber = 0x0003 <01.00.00> bNumConfigurations = 0x0001
current config
root@kg-u35jc# usbconfig -d ugen1.4 dump_curr_config_desc ugen1.4: <CZUR iCatchtek Co Ltd> at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (100mA) Configuration index 0 bLength = 0x0009 bDescriptorType = 0x0002 wTotalLength = 0x050b bNumInterfaces = 0x0005 bConfigurationValue = 0x0001 iConfiguration = 0x0000 <no string> bmAttributes = 0x00c0 bMaxPower = 0x0032 Additional Descriptor bLength = 0x08 bDescriptorType = 0x0b bDescriptorSubType = 0x00 RAW dump: 0x00 | 0x08, 0x0b, 0x00, 0x03, 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 = 0x0e bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x0e, 0x24, 0x01, 0x00, 0x01, 0x5a, 0x00, 0x00, 0x08 | 0x6c, 0xdc, 0x02, 0x02, 0x02, 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, 0x2e, 0x10 | 0x00, 0x02 Additional Descriptor bLength = 0x0b bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x0b, 0x24, 0x05, 0x02, 0x01, 0x00, 0x00, 0x02, 0x08 | 0x40, 0x20, 0x00 Additional Descriptor bLength = 0x1d bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x1d, 0x24, 0x06, 0x03, 0x82, 0x06, 0x61, 0x63, 0x08 | 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x10 | 0x5e, 0x8d, 0x22, 0x1d, 0x00, 0x01, 0x02, 0x04, 0x18 | 0xff, 0xff, 0xff, 0xff, 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x04, 0x01, 0x01, 0x00, 0x03, 0x08 | 0x00 Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x05, 0x01, 0x01, 0x00, 0x03, 0x08 | 0x00 Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0087 <IN> bmAttributes = 0x0003 <INTERRUPT> wMaxPacketSize = 0x0020 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x05 bDescriptorType = 0x25 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x05, 0x25, 0x03, 0x20, 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, 0xc5, 0x00, 0x88, 0x00, 0x08 | 0x04, 0x01, 0x00, 0x00, 0x01, 0x00 Additional Descriptor bLength = 0x1b bDescriptorType = 0x24 bDescriptorSubType = 0x04 RAW dump: 0x00 | 0x1b, 0x24, 0x04, 0x01, 0x03, 0x59, 0x55, 0x59, 0x08 | 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x10 | 0xaa, 0x00, 0x38, 0x9b, 0x71, 0x10, 0x01, 0x00, 0x18 | 0x00, 0x00, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x32, 0x24, 0x05, 0x01, 0x01, 0x80, 0x02, 0xe0, 0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x32, 0x24, 0x05, 0x02, 0x01, 0x40, 0x01, 0xf0, 0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x32, 0x24, 0x05, 0x03, 0x01, 0x80, 0x01, 0xd8, 0x08 | 0x00, 0x00, 0x40, 0x65, 0x00, 0x00, 0x80, 0x5f, 0x10 | 0x02, 0x00, 0x88, 0x02, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x0d RAW dump: 0x00 | 0x06, 0x24, 0x0d, 0x01, 0x01, 0x04 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 = 0x0088 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0080 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 Alt 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0002 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0088 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0180 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 Alt 3 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0003 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0088 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0200 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 1 Alt 4 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0001 bAlternateSetting = 0x0004 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0088 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x1280 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0000 bNumEndpoints = 0x0000 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Additional Descriptor bLength = 0x0f bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x0f, 0x24, 0x01, 0x02, 0xc7, 0x01, 0x81, 0x00, 0x08 | 0x05, 0x02, 0x01, 0x01, 0x01, 0x00, 0x00 Additional Descriptor bLength = 0x0b bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x0b, 0x24, 0x06, 0x02, 0x05, 0x01, 0x01, 0x00, 0x08 | 0x00, 0x00, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x07 RAW dump: 0x00 | 0x32, 0x24, 0x07, 0x01, 0x00, 0x80, 0x02, 0xe0, 0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x07 RAW dump: 0x00 | 0x32, 0x24, 0x07, 0x02, 0x00, 0x40, 0x01, 0xf0, 0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x07 RAW dump: 0x00 | 0x32, 0x24, 0x07, 0x03, 0x00, 0x00, 0x05, 0xd0, 0x08 | 0x02, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x1e bDescriptorType = 0x24 bDescriptorSubType = 0x07 RAW dump: 0x00 | 0x1e, 0x24, 0x07, 0x04, 0x00, 0x00, 0x06, 0x80, 0x08 | 0x04, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x01, 0x15, 0x16, 0x05, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x07 RAW dump: 0x00 | 0x32, 0x24, 0x07, 0x05, 0x00, 0x00, 0x09, 0xc0, 0x08 | 0x06, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x16 bDescriptorType = 0x24 bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x16, 0x24, 0x03, 0x00, 0x04, 0x00, 0x12, 0x80, 0x08 | 0x0d, 0x80, 0x02, 0xe0, 0x01, 0x00, 0x05, 0xd0, 0x10 | 0x02, 0x20, 0x0a, 0x98, 0x07, 0x00 Additional Descriptor bLength = 0x1b bDescriptorType = 0x24 bDescriptorSubType = 0x04 RAW dump: 0x00 | 0x1b, 0x24, 0x04, 0x01, 0x04, 0x59, 0x55, 0x59, 0x08 | 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x10 | 0xaa, 0x00, 0x38, 0x9b, 0x71, 0x10, 0x01, 0x00, 0x18 | 0x00, 0x00, 0x00 Additional Descriptor bLength = 0x1e bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x1e, 0x24, 0x05, 0x01, 0x00, 0x80, 0x02, 0xe0, 0x08 | 0x01, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x2a, 0x2c, 0x0a, 0x18 | 0x00, 0x01, 0x2a, 0x2c, 0x0a, 0x00 Additional Descriptor bLength = 0x32 bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x32, 0x24, 0x05, 0x02, 0x00, 0x40, 0x01, 0xf0, 0x08 | 0x00, 0x00, 0xc0, 0x5d, 0x00, 0x00, 0x80, 0x32, 0x10 | 0x02, 0x00, 0x58, 0x02, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x06, 0x15, 0x16, 0x05, 0x00, 0x80, 0x1a, 0x20 | 0x06, 0x00, 0x20, 0xa1, 0x07, 0x00, 0x2a, 0x2c, 0x28 | 0x0a, 0x00, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x30 | 0x1e, 0x00 Additional Descriptor bLength = 0x22 bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x22, 0x24, 0x05, 0x03, 0x00, 0x00, 0x05, 0xd0, 0x08 | 0x02, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x80, 0x84, 0x1e, 0x18 | 0x00, 0x02, 0x40, 0x42, 0x0f, 0x00, 0x80, 0x84, 0x20 | 0x1e, 0x00 Additional Descriptor bLength = 0x1e bDescriptorType = 0x24 bDescriptorSubType = 0x05 RAW dump: 0x00 | 0x1e, 0x24, 0x05, 0x04, 0x00, 0x00, 0x09, 0xc0, 0x08 | 0x06, 0x00, 0x00, 0x77, 0x01, 0x00, 0x00, 0xca, 0x10 | 0x08, 0x00, 0x60, 0x09, 0x00, 0x15, 0x16, 0x05, 0x18 | 0x00, 0x01, 0x80, 0x84, 0x1e, 0x00 Additional Descriptor bLength = 0x06 bDescriptorType = 0x24 bDescriptorSubType = 0x0d RAW dump: 0x00 | 0x06, 0x24, 0x0d, 0x01, 0x01, 0x04 Interface 2 Alt 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0001 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0080 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 Alt 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0002 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0180 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 Alt 3 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0003 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0200 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Interface 2 Alt 4 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0002 bAlternateSetting = 0x0004 bNumEndpoints = 0x0001 bInterfaceClass = 0x000e <Video device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Endpoint 0 bLength = 0x0007 bDescriptorType = 0x0005 bEndpointAddress = 0x0081 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x1280 bInterval = 0x0001 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x08 bDescriptorType = 0x0b bDescriptorSubType = 0x03 RAW dump: 0x00 | 0x08, 0x0b, 0x03, 0x02, 0x01, 0x02, 0x00, 0x00 Interface 3 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0003 bAlternateSetting = 0x0000 bNumEndpoints = 0x0000 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0001 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Additional Descriptor bLength = 0x09 bDescriptorType = 0x24 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x26, 0x00, 0x01, 0x08 | 0x04 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 = 0x03 RAW dump: 0x00 | 0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x05, 0x08 | 0x00 Additional Descriptor bLength = 0x08 bDescriptorType = 0x24 bDescriptorSubType = 0x06 RAW dump: 0x00 | 0x08, 0x24, 0x06, 0x05, 0x01, 0x01, 0x03, 0x00 Interface 4 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0000 bNumEndpoints = 0x0000 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> Interface 4 Alt 1 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0001 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0x80, 0x3e, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0020 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 2 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0002 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0xc0, 0x5d, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0040 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 3 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0003 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0xc0, 0x5d, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0060 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 4 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0004 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0x80, 0xbb, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x0080 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 5 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0005 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0x80, 0xbb, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x00a0 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 6 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0006 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0x80, 0xbb, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x00c0 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00 Interface 4 Alt 7 bLength = 0x0009 bDescriptorType = 0x0004 bInterfaceNumber = 0x0004 bAlternateSetting = 0x0007 bNumEndpoints = 0x0001 bInterfaceClass = 0x0001 <Audio device> bInterfaceSubClass = 0x0002 bInterfaceProtocol = 0x0000 iInterface = 0x0000 <no string> 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, 0x01, 0x02, 0x10, 0x01, 0x08 | 0x80, 0xbb, 0x00 Endpoint 0 bLength = 0x0009 bDescriptorType = 0x0005 bEndpointAddress = 0x0086 <IN> bmAttributes = 0x0005 <ASYNC-ISOCHRONOUS> wMaxPacketSize = 0x00e0 bInterval = 0x0004 bRefresh = 0x0000 bSynchAddress = 0x0000 Additional Descriptor bLength = 0x07 bDescriptorType = 0x25 bDescriptorSubType = 0x01 RAW dump: 0x00 | 0x07, 0x25, 0x01, 0x01, 0x00, 0x00, 0x00
very long.