Solved FreeBSD-15.0+OLYMPUS WS-806: dictaphone OLYMPUS WS-806 [umass0: detached]

The motherboard (Intel B75A) is a noname.
The voice recorder is connected via USB for 9 seconds and then disconnected. This process is not random, but rather regular and repetitive.
$ uname -aKU
Code:
FreeBSD none 15.0-RELEASE-p1 FreeBSD 15.0-RELEASE-p1 releng/15.0-n280999-7bceec30b351 GENERIC amd64 1500068 1500068

$ tail /var/log/messages
Code:
Dec 31 08:41:03 none kernel: (da0:umass-sim0:0:0:0): CACHE PAGE TOO SHORT data len 3 desc len 0
Dec 31 08:41:03 none kernel: (da0:umass-sim0:0:0:0): Mode page 8 missing, disabling SYNCHRONIZE CACHE
Dec 31 08:41:03 none kernel: da1 at umass-sim0 bus 0 scbus3 target 0 lun 1
Dec 31 08:41:03 none kernel: da1: <OLYMPUS DVR 1.02> Removable Direct Access SCSI-2 device
Dec 31 08:41:03 none kernel: da1: Serial Number 2001347530000000
Dec 31 08:41:03 none kernel: da1: 40.000MB/s transfers
Dec 31 08:41:03 none kernel: da1: 14910MB (30535680 512 byte sectors)
Dec 31 08:41:03 none kernel: da1: quirks=0x2<NO_6_BYTE>
Dec 31 08:41:03 none kernel: (da1:umass-sim0:0:0:1): CACHE PAGE TOO SHORT data len 3 desc len 0
Dec 31 08:41:03 none kernel: (da1:umass-sim0:0:0:1): Mode page 8 missing, disabling SYNCHRONIZE CACHE

$ tail /var/log/messages
Code:
Dec 31 08:41:03 none kernel: (da1:umass-sim0:0:0:1): Mode page 8 missing, disabling SYNCHRONIZE CACHE
Dec 31 08:41:09 none kernel: ugen1.5: <OLYMPUS CORPORATION DIGITAL VOICE RECORDER> at usbus1 (disconnected)
Dec 31 08:41:09 none kernel: umass0: at uhub4, port 3, addr 5 (disconnected)
Dec 31 08:41:09 none kernel: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
Dec 31 08:41:09 none kernel: da0: <OLYMPUS DVR 1.02>  s/n 2001347530000000 detached
Dec 31 08:41:09 none kernel: da1 at umass-sim0 bus 0 scbus3 target 0 lun 1
Dec 31 08:41:09 none kernel: da1: <OLYMPUS DVR 1.02>  s/n 2001347530000000 detached
Dec 31 08:41:09 none kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Dec 31 08:41:09 none kernel: (da1:umass-sim0:0:0:1): Periph destroyed
Dec 31 08:41:09 none kernel: umass0: detached

$ gpart show
Code:
=>     63  7602113  da0  MBR  (3.6G)
       63     8129       - free -  (4.0M)
     8192  7593984    1  fat32  (3.6G)

=>      63  30535617  da1  MBR  (15G)
        63      8129       - free -  (4.0M)
      8192  30527488    1  fat32  (15G)

$ gpart show
Code:
=>      40  62533216  ada0  GPT  (30G)
        40    532480     1  efi  (260M)
    532520      1024     2  freebsd-boot  (512K)
    533544       984        - free -  (492K)
    534528   8388608     3  freebsd-swap  (4.0G)
   8923136  53608448     4  freebsd-zfs  (26G)
  62531584      1672        - free -  (836K)

=>      40  62533216  ada1  GPT  (30G)
        40    532480     1  efi  (260M)
    532520      1024     2  freebsd-boot  (512K)
    533544       984        - free -  (492K)
    534528   8388608     3  freebsd-swap  (4.0G)
   8923136  53608448     4  freebsd-zfs  (26G)
  62531584      1672        - free -  (836K)
$ gpart show da0
Code:
gpart: No such geom: da0.


On a different motherboard ASUS (AMD) and on version 14.3-p7 the voice recorder does not fail.
 
your cable might be marginal, or you might be tripping the current limit.
Great idea about the poor current pumping! I thought the same thing at first. But... unfortunately, it didn't work. I had to install the sacred Windows 11 to clear things up. Read below to find out what happened...
Tested with Windows on the same hardware - no issues.
Yes, I also upgraded the recorder to Windows 11 using the same hardware and the same cables. Yes... nothing crashes. Everything works perfectly: automounting, internal memory detection, SD card detection, reading directories, stable display in Disk Manager... In short, NO, it's not the hardware or the amps being poorly supplied to the USB line. I wanted to believe the recorder was consuming amps well, but there wasn't enough juice (not like a regular flash drive). But damn, if this is an annoying bug, then I'm disappointed... In 2025, not being able to manage a stable connection for a recorder is bad form...
 
have you tried, per the bugzilla, declaring a quirk to the USB driver so it doesn't even try the cache detection logic?
 
have you tried, per the bugzilla, declaring a quirk to the USB driver so it doesn't even try the cache detection logic?
atax1a, I'll try this as soon as I have time. I'm without electricity for 12 hours a day. If I have time, I'll try this:
Code:
You can create a Quirk for this device which disables
the SYNCHRONIZED CACHE feature and see if that helps.
That will short-circuit the test entirely, and also
disable SYNCHRONIZED CACHE. If it works manually adding
a SYNC CACHE quirk, then we can add that to the kernel.
 
Time passed. Patch 1-Patch 4. Still the same.
$ uname -aKU
Code:
FreeBSD none 15.0-RELEASE-p4 FreeBSD 15.0-RELEASE-p4 releng/15.0-n281010-8ef0ed690df2 GENERIC amd64 1500068 1500068
$ less /var/log/messages
Code:
Mar  3 08:03:27 none kernel: ugen1.4: <OLYMPUS CORPORATION DIGITAL VOICE RECORDER> at usbus1
Mar  3 08:03:27 none kernel: umass0 on uhub3
Mar  3 08:03:27 none kernel: umass0: <OLYMPUS CORPORATION DIGITAL VOICE RECORDER, class 0/0, rev 2.00/1.00, addr 4> on usbus1
Mar  3 08:03:27 none kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0
Mar  3 08:03:27 none kernel: umass0:3:0: Attached to scbus3
Mar  3 08:03:27 none kernel: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
Mar  3 08:03:27 none kernel: da0: <OLYMPUS DVR 1.02> Removable Direct Access SCSI-2 device
Mar  3 08:03:27 none kernel: da0: Serial Number 2001347530000000
Mar  3 08:03:27 none kernel: da0: 40.000MB/s transfers
Mar  3 08:03:27 none kernel: da0: 3712MB (7602176 512 byte sectors)
Mar  3 08:03:27 none kernel: da0: quirks=0x2<NO_6_BYTE>
Mar  3 08:03:27 none kernel: (da0:umass-sim0:0:0:0): CACHE PAGE TOO SHORT data len 3 desc len 0
Mar  3 08:03:27 none kernel: (da0:umass-sim0:0:0:0): Mode page 8 missing, disabling SYNCHRONIZE CACHE
Mar  3 08:03:27 none kernel: da1 at umass-sim0 bus 0 scbus3 target 0 lun 1
Mar  3 08:03:27 none kernel: da1: <OLYMPUS DVR 1.02> Removable Direct Access SCSI-2 device
Mar  3 08:03:27 none kernel: da1: Serial Number 2001347530000000
Mar  3 08:03:27 none kernel: da1: 40.000MB/s transfers
Mar  3 08:03:27 none kernel: da1: 14910MB (30535680 512 byte sectors)
Mar  3 08:03:27 none kernel: da1: quirks=0x2<NO_6_BYTE>
Mar  3 08:03:27 none kernel: (da1:umass-sim0:0:0:1): CACHE PAGE TOO SHORT data len 3 desc len 0
Mar  3 08:03:27 none kernel: (da1:umass-sim0:0:0:1): Mode page 8 missing, disabling SYNCHRONIZE CACHE
Mar  3 08:03:51 none kernel: ugen1.4: <OLYMPUS CORPORATION DIGITAL VOICE RECORDER> at usbus1 (disconnected)
Mar  3 08:03:51 none kernel: umass0: at uhub3, port 1, addr 4 (disconnected)
Mar  3 08:03:51 none kernel: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
Mar  3 08:03:51 none kernel: da0: <OLYMPUS DVR 1.02>  s/n 2001347530000000 detached
Mar  3 08:03:51 none kernel: da1 at umass-sim0 bus 0 scbus3 target 0 lun 1
Mar  3 08:03:51 none kernel: da1: <OLYMPUS DVR 1.02>  s/n 2001347530000000 detached
Mar  3 08:03:51 none kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Mar  3 08:03:51 none kernel: (da1:umass-sim0:0:0:1): Periph destroyed
Mar  3 08:03:51 none kernel: umass0: detached
 
Very funny! The action camera won't detach, but the voice recorder "disconnects" after a few seconds. What difference does it make to FreeBSD whether it's a camera or a voice recorder? All devices are the same type—symbolic... how can FreeBSD be so selective? For example, Alpine Linux "eats everything" and nothing disconnects, even on a castrated Alpine desktop...
Action camera AirOn ProCam 4K Black :
Code:
Mar  3 08:37:02 none kernel: ugen1.4: <iCatchtek Co Ltd iCatchtek SPCA6350> at usbus1
Mar  3 08:37:02 none kernel: umass0 on uhub3
Mar  3 08:37:02 none kernel: umass0: <iCatchtek Co Ltd iCatchtek SPCA6350, class 0/0, rev 2.00/1.00, addr 4> on usbus1
Mar  3 08:37:02 none kernel: umass0:  SCSI over Bulk-Only; quirks = 0x0
Mar  3 08:37:02 none kernel: umass0:3:0: Attached to scbus3
Mar  3 08:37:02 none kernel: da0 at umass-sim0 bus 0 scbus3 target 0 lun 0
Mar  3 08:37:02 none kernel: da0: <iCatchte iCatchtek SPCA63 1.00> Removable Direct Access SPC-2 SCSI device
Mar  3 08:37:02 none kernel: da0: Serial Number 01.00.00
Mar  3 08:37:02 none kernel: da0: 40.000MB/s transfers
Mar  3 08:37:02 none kernel: da0: 30528MB (62521344 512 byte sectors)
Mar  3 08:37:02 none kernel: da0: quirks=0x2<NO_6_BYTE>

OLYMPUS & AirON are:
$ ls -l /dev/da0
Code:
crw-r-----  1 root operator 0x1bf Mar  3 08:37 /dev/da0
 
Unfortunately, I have to switch to Alpine Linux at work. I can't do anything with the voice recorder here. I have to check 30 of these recorders every Friday. Work can't wait. This topic is closed.
It's a shame that they broke a system issue in version 15. Most likely, it's because the recorder has two "levels" of memory: built-in and an SD card ("external").
 
Back
Top