更新:有问题的硬件已被另一个 SATA(DVD 驱动器)转 USB 适配器取代。我相信 VANTEC 硬件最终并不完全兼容。
我正在尝试让外部 USB DVD 播放器在 Linux(Ubuntu 和 Debian)上运行。硬件是 VANTEC NST-536S3-BK DVD 外壳:带有我知道可以在 Debian 上运行的蓝光/DVD 驱动器 [1]。
这个故事中有两台计算机:
- Debian 测试/buster 桌面和
- 带有 libreELEC 的 Raspberry Pi。 (第三台计算机是 iMac。)
当我将此外部 DVD 盒 + 驱动器插入两台计算机并插入数据 CD/DVD 时,硬件工作正常:我可以安装驱动器并正常使用它。
问题是当我放入 DVD 电影时,外部 DVD 盒不起作用。这种行为是硬件似乎停滞了很长一段时间,最终我不得不通过关闭设备来终止它。
为了进行比较,我也恰巧借用了一台LG GP50NB40便携式DVD光驱进行测试。在这种情况下,硬件在两台计算机上都工作正常,并且可以播放 DVD。
为了排除故障,我尝试将外部 DVD 盒插入 2011 年 iMac。它加载数据 DVD并演奏电影 DVD 没有问题。
因此我得出结论,DVD 驱动器/硬件可能不是问题所在。至少这不是简单的硬件故障。
因此,我的 DVD 盒由于某种原因无法播放 DVD 电影。我唯一的线索是 Debian 测试桌面的内核输出,我已将其复制到此处和上帕斯特宾。
INFO: task scsi_eh_8:3561 blocked for more than 120 seconds.
Tainted: P O 4.16.0-1-amd64 #1 Debian 4.16.5-1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
scsi_eh_8 D 0 3561 2 0x80000000
Call Trace:
? __schedule+0x291/0x870
? __switch_to_asm+0x40/0x70
schedule+0x28/0x80
schedule_preempt_disabled+0xa/0x10
__mutex_lock.isra.1+0x1a0/0x4e0
? __switch_to_asm+0x34/0x70
? __switch_to_asm+0x34/0x70
? __switch_to_asm+0x40/0x70
? scsi_try_target_reset+0x90/0x90 [scsi_mod]
? scsi_eh_get_sense+0x240/0x240 [scsi_mod]
? device_reset+0x1d/0x50 [usb_storage]
device_reset+0x1d/0x50 [usb_storage]
scsi_eh_ready_devs+0x356/0xe20 [scsi_mod]
? __pm_runtime_resume+0x54/0x70
? scsi_try_target_reset+0x90/0x90 [scsi_mod]
? scsi_eh_get_sense+0x240/0x240 [scsi_mod]
scsi_error_handler+0x4c8/0x5b0 [scsi_mod]
? scsi_eh_get_sense+0x240/0x240 [scsi_mod]
kthread+0x113/0x130
? kthread_create_worker_on_cpu+0x70/0x70
? SyS_exit_group+0x10/0x10
ret_from_fork+0x22/0x40
INFO: task usb-storage:3563 blocked for more than 120 seconds.
Tainted: P O 4.16.0-1-amd64 #1 Debian 4.16.5-1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
usb-storage D 0 3563 2 0x80000000
Call Trace:
? __schedule+0x291/0x870
schedule+0x28/0x80
schedule_timeout+0x1ee/0x380
? usb_hcd_submit_urb+0xbd/0xb00 [usbcore]
wait_for_completion+0x12c/0x190
? wake_up_q+0x70/0x70
usb_sg_wait+0x11e/0x170 [usbcore]
usb_stor_bulk_transfer_sglist.part.1+0x64/0xb0 [usb_storage]
usb_stor_bulk_srb+0x49/0x80 [usb_storage]
usb_stor_Bulk_transport+0x163/0x3d0 [usb_storage]
? usb_stor_disconnect+0xc0/0xc0 [usb_storage]
? usb_stor_disconnect+0xc0/0xc0 [usb_storage]
usb_stor_invoke_transport+0x3d/0x4f0 [usb_storage]
? usb_stor_disconnect+0xc0/0xc0 [usb_storage]
? wait_for_completion_interruptible+0x176/0x1e0
? wake_up_q+0x70/0x70
usb_stor_control_thread+0x1ba/0x280 [usb_storage]
kthread+0x113/0x130
? kthread_create_worker_on_cpu+0x70/0x70
ret_from_fork+0x22/0x40
INFO: task mount:4293 blocked for more than 120 seconds.
Tainted: P O 4.16.0-1-amd64 #1 Debian 4.16.5-1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
mount D 0 4293 4292 0x00000000
Call Trace:
? __schedule+0x291/0x870
schedule+0x28/0x80
schedule_timeout+0x1ee/0x380
wait_for_completion+0x12c/0x190
? wake_up_q+0x70/0x70
? get_work_pool+0x40/0x40
flush_work+0x11e/0x1d0
? worker_attach_to_pool+0x90/0x90
__cancel_work_timer+0x126/0x1b0
? exact_lock+0xd/0x20
? kobj_lookup+0x113/0x160
disk_block_events+0x78/0x90
__blkdev_get+0x70/0x510
blkdev_get+0x12a/0x330
? bd_acquire+0xd0/0xd0
do_dentry_open+0x1b3/0x2d0
path_openat+0x661/0x1660
? filename_lookup+0xf2/0x190
do_filp_open+0x9b/0x110
? __check_object_size+0xa7/0x1a0
? do_sys_open+0x1bd/0x250
do_sys_open+0x1bd/0x250
do_syscall_64+0x6c/0x130
entry_SYSCALL_64_after_hwframe+0x3d/0xa2
RIP: 0033:0x7f6211edadde
RSP: 002b:00007fff54368010 EFLAGS: 00000246 ORIG_RAX: 0000000000000101
RAX: ffffffffffffffda RBX: 00007fff54368240 RCX: 00007f6211edadde
RDX: 0000000000080002 RSI: 00005572587c4c00 RDI: 00000000ffffff9c
RBP: 0000000000000002 R08: 000000000000fff0 R09: 00007fff54368140
R10: 0000000000000000 R11: 0000000000000246 R12: 00005572587b7c20
R13: 00007fff54368240 R14: 0000000000000000 R15: 0000000000000000
usb 5-4: USB disconnect, device number 3
sr 8:0:0:0: Device offlined - not ready after error recovery
sr 8:0:0:0: [sr2] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sr 8:0:0:0: [sr2] tag#0 CDB: Read(10) 28 00 00 3c f8 80 00 00 3c 00
print_req_error: I/O error, dev sr2, sector 15983104
sr 8:0:0:0: [sr2] tag#0 FAILED Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK
sr 8:0:0:0: [sr2] tag#0 CDB: Read(10) 28 00 00 3c f8 bc 00 00 04 00
print_req_error: I/O error, dev sr2, sector 15983344
更新:回答一些问题-
- 我尝试过的光盘是商业购买的光盘,可以在其他 DVD 驱动器中使用。我不怀疑它们是问题的根源。
- 我确信机箱内的蓝光/DVD/CD 驱动器正在工作。它的旧“家”是一台台式计算机,通过 SATA 连接直接连接到主板。在此位置,它可以毫无问题地处理 DVD 光盘:数据和电影。
太棒了;我的外部 USB DVD 外壳可以加载数据 DVD,但无法在运行 libreELEC 的 R Pi 上播放电影 DVD。故障排除要点
[1] 它来自一台旧的 Debian 计算机。