Is this just a weirdly unsupported piece of hardware, or does it seem partially broken?
Notes
Images are hosted on Catbox.
The drive is connected via USB. ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
Information provided is from memory as I wasn't noting down results. It took several days to do the tests, often due to unrelated software issues, and my lack of knowledge regarding the different OSs.
Logs
Below are filtered kernel log messages - some messages were repeated way too much
Linux
[303803.821623] usb 1-4: new high-speed USB device number 62 using xhci_hcd
[303803.953712] usb 1-4: New USB device found, idVendor=152d, idProduct=2338, bcdDevice= 1.00
[303803.953735] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=5
[303803.953745] usb 1-4: Product: USB to ATA/ATAPI bridge
[303803.953752] usb 1-4: Manufacturer: JMicron
[303803.953758] usb 1-4: SerialNumber: 622222222222
[303803.956959] usb-storage 1-4:1.0: USB Mass Storage device detected
[303803.957727] scsi host0: usb-storage 1-4:1.0
[303804.972734] scsi 0:0:0:0: CD-ROM ATAPI CD-R/RW 48X16 9.GH PQ: 0 ANSI: 0 CCS
[303809.784518] sr 0:0:0:0: [sr0] scsi3-mmc drive: 48x/48x writer cd/rw xa/form2 cdda tray
[303818.737158] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303826.573935] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303838.238333] sr 0:0:0:0: Attached scsi CD-ROM sr0
[303838.238795] sr 0:0:0:0: Attached scsi generic sg0 type 5
[303845.622418] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303918.801647] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303936.512741] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303941.673166] usb 1-4: reset high-speed USB device number 62 using xhci_hcd
[303950.281142] sr 0:0:0:0: [sr0] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=1s
[303950.281164] sr 0:0:0:0: [sr0] tag#0 Sense Key : Illegal Request [current]
[303950.281176] sr 0:0:0:0: [sr0] tag#0 Add. Sense: Illegal mode for this track
[303950.281186] sr 0:0:0:0: [sr0] tag#0 CDB: Read(10) 28 00 00 05 5d ec 00 00 02 00
[303950.281192] blk_print_req_error: 80 callbacks suppressed
[303950.281198] I/O error, dev sr0, sector 1406896 op 0x0:(READ) flags 0x80700 phys_seg 1 prio class 2
REMOVED LINES
[303961.227527] I/O error, dev sr0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 2 prio class 2
[303961.227544] Buffer I/O error on dev sr0, logical block 0, async page read
[303961.227559] Buffer I/O error on dev sr0, logical block 1, async page read
[303961.408769] Buffer I/O error on dev sr0, logical block 14, async page read
[303961.497219] Buffer I/O error on dev sr0, logical block 15, async page read
[303965.403967] scsi_io_completion_action: 46 callbacks suppressed
GhostBSD
ugen0.2: <JMicron USB to ATA/ATAPI bridge> at usbus0
umass0 on uhub0
umass0: <JMicron USB to ATA/ATAPI bridge, class 0/0, rev 2.00/1.00, addr 1> on usbus0
umass0: SCSI over Bulk-Only; quirks = 0x4000<NO_SYNCHRONIZE_CACHE>
umass0:2:0: Attached to scbus2
cd1 at umass-sim0 bus 0 scbus2 target 0 lun 0
cd1: <ATAPI CD-R/RW 48X16 9.GH> Removable CD-ROM SCSI device
cd1: Serial Number 622222222222
cd1: 40.000MB/s transfers
cd1: 0MB (1 2048 byte sectors)
cd1: quirks=0x10<10_BYTE_ONLY>
(cd1:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 00 00 00 00 00 01 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:21,0 (Logical block address out of range)
(cd1:umass-sim0:0:0:0): Error 22, Unretryable error
(cd1:umass-sim0:0:0:0): cddone: got error 0x16 back
REMOVED LINES
pid 3525 (xfburn), jid 0, uid 1001: exited on signal 11 (core dumped)
(cd1:umass-sim0:0:0:0): READ CD. CDB: be 00 00 00 00 00 00 00 01 f8 00 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
(cd1:umass-sim0:0:0:0): Error 22, Unretryable error
(cd1:umass-sim0:0:0:0): cddone: got error 0x16 back
REMOVED LINES
(cd1:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 02 71 16 00 00 01 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:64,0 (Illegal mode for this track)
(cd1:umass-sim0:0:0:0): Error 6, Unretryable error
(cd1:umass-sim0:0:0:0): cddone: got error 0x6 back
REMOVED LINES
(cd1:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 02 71 16 00 00 01 00
(cd1:umass-sim0:0:0:0): CAM status: CCB request completed with an error
(cd1:umass-sim0:0:0:0): Retrying command, 3 more tries remain
(cd1:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 02 71 16 00 00 01 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:29,0 (Power on, reset, or bus device reset occurred)
(cd1:umass-sim0:0:0:0): Retrying command (per sense data)
(cd1:umass-sim0:0:0:0): READ(10). CDB: 28 00 00 02 71 16 00 00 01 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: UNIT ATTENTION asc:28,0 (Not ready to ready change, medium may have changed)
REMOVED LINES
(cd1:umass-sim0:0:0:0): PAUSE/RESUME. CDB: 4b 00 00 00 00 00 00 00 00 00
(cd1:umass-sim0:0:0:0): CAM status: SCSI Status Error
(cd1:umass-sim0:0:0:0): SCSI status: Check Condition
(cd1:umass-sim0:0:0:0): SCSI sense: ABORTED COMMAND asc:b9,0 (Vendor Specific ASC)
(cd1:umass-sim0:0:0:0): Retrying command (per sense data)
Haiku OS
KERN: usb_disk: got device name "ATAPI CD-R/RW 48X16 9.GH": No error
KERN: Media changed from /dev/disk/usb/3/0/raw
KERN: DMAResource@0xffffffff95066028: low/high 0/ffffffff, max segment count 16, align 1, boundary 0, max transfer 524288, max segment size 18446744073709551615
KERN: usb_disk: got device name "ATAPI CD-R/RW 48X16 9.GH": No error
KERN: usb_disk: unhandled ioctl 10102
KERN: Last message repeated 3 times.
KERN: usb_disk: sending or receiving of the data failed: No error
KERN: identify(110, 0xffffffff955a3978)
KERN: usb_disk: sending or receiving of the data failed: No error
KERN: usb error control pipe 38: timeout waiting for queued request to complete
Last message repeated 2 times
REMOVED LINES
KERN: usb_disk: unhandled ioctl 10102
KERN: usb_disk: sending the command block wrapper failed: No error
KERN: usb error control pipe 38: timeout waiting for queued request to complete
Last message repeated 2 times
REMOVED LINES
KERN: usb_disk: sending the command block wrapper failed: No error
KERN: usb error control pipe 38: timeout waiting for queued request to complete
Last message repeated 2 times
Testing methods
Operating systems were installed and set up in Oracle VirtualBox on Arch Linux host. CD-RW drive was passed to VMs via USB passthrough.
Usability summary
| Operating system | Status |
|---|---|
| Linux | Fully broken |
| OS/2 Warp 4.52 | Fully broken |
| Haiku OS | Disc size detection, eject/load |
| OpenIndiana (Solaris) | Data read, analog audio playback |
| ReactOS | Data read - same as known good drive |
| Android | Data read via 3rd party app - limited by app feature set |
| GhostBSD (FreeBSD) | Digital and analog audio playback (incl. CD-Text) |
| Windows | Full functionality |
Test results
I'll start with common OSs first.
Linux
Detects the drive when it's empty.
Otherwise it just keeps resetting it over and over, as can be seen in logs.
It might eventually load disc info after several minutes, as well as initiate disc blanking over cdrecord, but that will also take several minutes of waiting, if it ever happens.
There's also a small chance of full system freeze-up until the drive is physically disconnected.
This has been tested with other distributions inside a VM, with the same results.
Windows
Mostly used under Windows 2000, but it also worked on Windows 10.
Everything fully works.

GhostBSD (based on FreeBSD)
Analog (left) and digital (right) audio playback work just fine.

Data discs do not load.
Burning has started randomly on one occasion, but eventually failed.

OpenIndiana (fork of OpenSolaris)
Loading data discs works, despite (probably unrelated) error being shown first.

When it comes to audio playback, I don't know what to use. VLC doesn't support audio CDs over there, and sound-juicer appears broken. It is however possible to use analog playback, though CD-Text isn't being displayed like it was on BSD (cdda-player).

Burning discs did not work. Brasero always reports the disc as full, even when blank.

OS/2 Warp 4.52
This one was a bit painful to set up as I had to install and set up (in CONFIG.SYS) USB and USB CD drivers. Former I had to download, latter was already provided in CP2 (but disabled by default).
Audio CDs cause a time-out.

Data discs won't load either.

Haiku OS (Beta)
Disc drive is recognized, as well as formatted size of the disc, but that's it.

Eject/load works.
Other software (SMPlayer and BurnItNow) did not see the drive.
Android (using MLUSB mounter)
It may be based on Linux, but it acts so dumb someone had to make an app that acts as a USB device driver.

It gets recognized just fine.

And it loads data from the disc. That's all this app can do.

Everything this does works here.
ReactOS (open-source clone of Windows) (Alpha)
Data reads quickly and reliably, just as well as in Windows.

When it comes to audio and other software, it either isn't recognized at all, or causes a freeze-up.

Opening audio CD with file explorer only shows 1KB .cda files which are of no use.
Bittersweet news: it behaves exactly the same with a known-good drive. So maybe once those issues are fixed, it will be just as good as in Windows.
Conclusion
I have no idea whether this is a drive issue, or it's just doing something really non-standard.
I have also tried it with a different controller, making a chain of IDE -> SATA -> USB, but this was equally broken.
Edit 1: :::spoiler -> ::: spoiler to fix formatting outside of Lemmy-UI





Virtualised on Linux host, USB passed to guests. Linux guests acted the same as host, and I only ever tried Windows as a guest (where it works).