我有一台 Garmin eTrex 30 GPS,它在主机上显示为 USB 闪存驱动器,或者更准确地说,像两个驱动器,一个用于设备的内部存储器,另一个用于其 MicroSD 扩展卡。它在 Ubuntu 16.04 和 18.04 下运行良好,并允许我传输 GPX 文件(轨迹和航点)或地图和路线。
在 22.04 下,连接和数据传输继续正常工作,但单击卸载按钮或选择弹出会导致 Ubuntu 无限期地显示警告“正在写入数据...不应拔出设备”,至少持续五分钟。即使我没有向设备写入任何内容,也会发生这种情况。通常我会在三十秒左右后厌恶地放弃并拔出 USB 电缆。
当 eTrex 插入时,dmesg 报告以下内容:
[46887.498981] usb 1-2.3.1: new full-speed USB device number 16 using ehci-pci
[46887.582986] usb 1-2.3.1: device descriptor read/64, error -32
[46895.694932] usb 1-2.3.1: new full-speed USB device number 17 using ehci-pci
[46896.190917] usb 1-2.3.1: device not accepting address 17, error -32
[46920.010761] usb 1-2.3.1: new full-speed USB device number 19 using ehci-pci
[46920.123869] usb 1-2.3.1: New USB device found, idVendor=091e, idProduct=2519, bcdDevice= 5.09
[46920.123885] usb 1-2.3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=5
[46920.123892] usb 1-2.3.1: SerialNumber: 0000e4ed7a4a
[46920.128048] usb-storage 1-2.3.1:1.0: USB Mass Storage device detected
[46920.128320] scsi host7: usb-storage 1-2.3.1:1.0
[46921.152451] scsi 7:0:0:0: Direct-Access Garmin GARMIN Flash 1.00 PQ: 0 ANSI: 5
[46921.153423] scsi 7:0:0:1: Direct-Access Garmin GARMIN Card 1.00 PQ: 0 ANSI: 5
[46921.154100] sd 7:0:0:0: Attached scsi generic sg5 type 0
[46921.155136] sd 7:0:0:1: Attached scsi generic sg6 type 0
[46921.156492] sd 7:0:0:0: Power-on or device reset occurred
[46921.158386] sd 7:0:0:0: [sde] 3907584 512-byte logical blocks: (2.00 GB/1.86 GiB)
[46921.160372] sd 7:0:0:1: Power-on or device reset occurred
[46921.164399] sd 7:0:0:1: [sdf] 3987456 512-byte logical blocks: (2.04 GB/1.90 GiB)
[46921.168536] sd 7:0:0:0: [sde] Write Protect is off
[46921.168547] sd 7:0:0:0: [sde] Mode Sense: 23 00 00 00
[46921.169890] sd 7:0:0:1: [sdf] Write Protect is off
[46921.169904] sd 7:0:0:1: [sdf] Mode Sense: 23 00 00 00
[46921.172770] sd 7:0:0:1: [sdf] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[46921.173874] sd 7:0:0:0: [sde] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[46921.204897] sdf: sdf1
[46921.211648] sde:
[46921.226755] sd 7:0:0:0: [sde] Attached SCSI removable disk
[46921.229745] sd 7:0:0:1: [sdf] Attached SCSI removable disk
[46924.066200] FAT-fs (sde): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[46925.340299] FAT-fs (sdf1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
(我确实运行了 fsck,它只发现引导扇区和其备份之间存在“无害”的差异,而且设置了脏位。)
弹出 /dev/sde 会产生以下 dmesg 输出,Ubuntu (1) 显然认为 GPS 是一个旋转介质(!),并且 (2) 不断重复相同无望的操作序列:
[47205.939981] sde:
[47256.893229] clocksource: timekeeping watchdog on CPU1: hpet wd-wd read-back delay of 375955ns
[47256.893267] clocksource: wd-tsc-wd read-back delay of 436088ns, clock-skew test skipped!
[47346.911845] sde:
[47393.254086] sde:
[47408.077282] sde:
[47479.867714] clocksource: timekeeping watchdog on CPU3: hpet wd-wd read-back delay of 404800ns
[47479.867728] clocksource: wd-tsc-wd read-back delay of 436088ns, clock-skew test skipped!
[47526.340704] sd 7:0:0:0: [sde] Spinning up disk...
[47527.354518] ..................................................................................................not responding...
[47626.687513] sd 7:0:0:0: [sde] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[47626.687527] sd 7:0:0:0: [sde] Sense Key : Not Ready [current]
[47626.687532] sd 7:0:0:0: [sde] Add. Sense: Logical unit is in process of becoming ready
[47626.687541] sd 7:0:0:0: [sde] 0 512-byte logical blocks: (0 B/0 B)
[47626.690256] sde: detected capacity change from 3907584 to 0
[47626.703490] sd 7:0:0:0: [sde] Spinning up disk...
[47627.737819] ......................................................
[47682.874249] clocksource: timekeeping watchdog on CPU1: hpet wd-wd read-back delay of 375955ns
[47682.874264] clocksource: wd-tsc-wd read-back delay of 436088ns, clock-skew test skipped!
[47683.033410] ............................................not responding...
[47727.071274] sd 7:0:0:0: [sde] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[47727.071287] sd 7:0:0:0: [sde] Sense Key : Not Ready [current]
[47727.071292] sd 7:0:0:0: [sde] Add. Sense: Logical unit is in process of becoming ready
[47727.083279] sd 7:0:0:0: [sde] Spinning up disk...
[47728.125093] ..................................................................................................not responding...
[47827.454163] sd 7:0:0:0: [sde] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[47827.454178] sd 7:0:0:0: [sde] Sense Key : Not Ready [current]
[47827.454185] sd 7:0:0:0: [sde] Add. Sense: Logical unit is in process of becoming ready
[47828.174947] sd 7:0:0:0: [sde] Spinning up disk...
[47829.208344] ..................................................................................................not responding...
[47928.541872] sd 7:0:0:0: [sde] Read Capacity(10) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[47928.541885] sd 7:0:0:0: [sde] Sense Key : Not Ready [current]
[47928.541891] sd 7:0:0:0: [sde] Add. Sense: Logical unit is in process of becoming ready
[47928.558731] sd 7:0:0:0: [sde] Spinning up disk...
[47929.591651] ....................
[47949.880341] clocksource: timekeeping watchdog on CPU3: hpet wd-wd read-back delay of 436088ns
[47949.880355] clocksource: wd-tsc-wd read-back delay of 405288ns, clock-skew test skipped!
[47950.071452] ..............................
这时我拔掉了 USB 电缆。可能相关:在此期间的某个时间点,Ubuntu 22.04“遇到了内部错误”,即 udevadm 在 __GI___ioctl() 中因 SIGABRT 而崩溃。
还有谁见过类似的行为,或者对如何使其正常工作有什么建议吗?