{
 "site": "Known Good",
 "url": "https://www.misc2.com/technotes/",
 "license": "https://creativecommons.org/licenses/by/4.0/",
 "generated": "2026-10-09T05:09:20Z",
 "posts": [
  {
   "slug": "vertical-japanese-ocr-benchmark-dots-ocr-lightonocr-3-chandra",
   "title": "Vertical Japanese (tategaki) OCR benchmark: dots.ocr-1.5 vs LightOnOCR-3 vs chandra-ocr-2",
   "date": "2026-10-09",
   "updated": null,
   "summary": "On 33 vertical Japanese pages (21k chars, exact ground truth), dots.ocr-1.5 had 1.27% CER, LightOnOCR-3-4B 2.59%, chandra-ocr-2 10.96% (repetition loops; turns small kana っ into つ). LightOnOCR-3-1B ships mis-keyed weights and 0.8B ships use_cache=false.",
   "tags": [
    "ocr",
    "japanese",
    "vlm",
    "benchmark",
    "transformers",
    "cuda",
    "python"
   ],
   "environment": "Arch Linux (kernel 7.2); NVIDIA RTX 5080 16 GB, driver 610.57; PyTorch 2.10.0+cu128 (2.7.0+cu128 for dots.ocr); transformers 5.19.0 (LightOnOCR-3), 5.3.0 (chandra-ocr 0.2.0), 4.56.1 (dots.ocr); LightOnOCR-3 snapshots of 2026-10-08; dots.ocr-1.5; chandra-ocr-2; Chromium 152 for rendering",
   "author": "shaun, written up with claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/vertical-japanese-ocr-benchmark-dots-ocr-lightonocr-3-chandra/",
   "source": "https://www.misc2.com/technotes/vertical-japanese-ocr-benchmark-dots-ocr-lightonocr-3-chandra/post.md.txt"
  },
  {
   "slug": "sp-flash-tool-linux-mt6592-com-port-open-fail-pmt-changed",
   "title": "SP Flash Tool on Linux (MT6592): S_COM_PORT_OPEN_FAIL (1013) in BROM, then \"PMT changed for the ROM\"",
   "date": "2026-10-03",
   "updated": null,
   "summary": "Writing /system on an unrooted MT6592 handheld from Linux. BROM port-open fails because new cdc_acm rejects TIOCCBRK; Download refuses with \"PMT changed\". Use SP Flash Tool v5.1648, an LD_PRELOAD shim, Preloader mode and write-memory at the physical address.",
   "tags": [
    "firmware",
    "mediatek",
    "mt6592",
    "sp-flash-tool",
    "mtkclient",
    "android",
    "kernel",
    "linux"
   ],
   "environment": "Arch Linux, kernel 7.2.3 (cdc_acm); SP Flash Tool v5.1648 Linux (console mode); mtkclient (git 2026-09-12); target: MT6592 clone handheld, Android 5.1, 8 GB eMMC, unlocked BROM (no SBC/SLA/DAA)",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/sp-flash-tool-linux-mt6592-com-port-open-fail-pmt-changed/",
   "source": "https://www.misc2.com/technotes/sp-flash-tool-linux-mt6592-com-port-open-fail-pmt-changed/post.md.txt"
  },
  {
   "slug": "chromium-x11-drag-warp-net-wm-moveresize",
   "title": "Chromium window drag warps the window (xfwm4) or the cursor (KWin) on X11",
   "date": "2026-10-03",
   "updated": null,
   "summary": "Dragging a Chromium window by its own title bar on X11 makes the window jump hundreds of pixels (often off-screen) under xfwm4, or makes the mouse cursor jump under KWin. Chromium sends a _NET_WM_MOVERESIZE request with wrong root coordinates; turning on \"Use system title bar and borders\" avoids it.",
   "tags": [
    "x11",
    "chromium",
    "xfwm4",
    "kwin",
    "window-manager",
    "csd"
   ],
   "environment": "Arch Linux; Chromium 152.0.7977.82 with its own title bar (client-side decorations); xfwm4 4.20.0 + picom, then KWin 6.7.5 (kwin_x11); NVIDIA driver 610 on X11",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/chromium-x11-drag-warp-net-wm-moveresize/",
   "source": "https://www.misc2.com/technotes/chromium-x11-drag-warp-net-wm-moveresize/post.md.txt"
  },
  {
   "slug": "chrome-remote-desktop-pipewire-no-audio-host-is-down",
   "title": "No audio in Chrome Remote Desktop session on PipeWire: \"ALSA: Couldn't open audio device: Host is down\"",
   "date": "2026-09-11",
   "updated": null,
   "summary": "In a Chrome Remote Desktop X session on PipeWire, apps were silent or failed with \"Host is down\". CRD puts PULSE_RUNTIME_PATH, PULSE_SINK and PIPEWIRE_REMOTE into the session, pointing at its own PipeWire, which had not started. Unset them before dbus-launch, bridge system PipeWire to CRD's FIFO, check sink volume.",
   "tags": [
    "chrome-remote-desktop",
    "pipewire",
    "audio",
    "dbus",
    "arch"
   ],
   "environment": "Arch Linux; PipeWire 1.6.8 with pipewire-pulse and WirePlumber; Chrome Remote Desktop (Linux host, X session from ~/.chrome-remote-desktop-session); LXQt 2.3 / Openbox",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/chrome-remote-desktop-pipewire-no-audio-host-is-down/",
   "source": "https://www.misc2.com/technotes/chrome-remote-desktop-pipewire-no-audio-host-is-down/post.md.txt"
  },
  {
   "slug": "systemd-unit-restart-loop-failed-to-load-environment-files",
   "title": "systemd unit restarted 2 million times unnoticed: \"Failed to load environment files: No such file or directory\"",
   "date": "2026-09-10",
   "updated": null,
   "summary": "Template units whose EnvironmentFile and user had been deleted restart-looped every 3 s for 73 days (1,958,017 restarts each). systemd fails before spawning a process, so CPU and ps show nothing, and RestartSec=3 stays under the start limit. Find them by NRestarts; vacuum the journal by size.",
   "tags": [
    "systemd",
    "journald",
    "linux",
    "monitoring"
   ],
   "environment": "Arch Linux (40-thread Xeon server); systemd and journald, versions not recorded",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/systemd-unit-restart-loop-failed-to-load-environment-files/",
   "source": "https://www.misc2.com/technotes/systemd-unit-restart-loop-failed-to-load-environment-files/post.md.txt"
  },
  {
   "slug": "faster-whisper-libcublas-so-12-not-found-on-cuda-13",
   "title": "faster-whisper: Library libcublas.so.12 is not found or cannot be loaded (system has CUDA 13)",
   "date": "2026-09-10",
   "updated": null,
   "summary": "faster-whisper fails at the first GPU compute with \"Library libcublas.so.12 is not found\" because the ctranslate2 wheel is built for CUDA 12 and the system has CUDA 13. Install nvidia-cublas-cu12 and nvidia-cudnn-cu12 into the venv and set LD_LIBRARY_PATH in a wrapper before Python starts.",
   "tags": [
    "cuda",
    "python",
    "faster-whisper",
    "ctranslate2",
    "whisper",
    "nvidia",
    "arch"
   ],
   "environment": "Arch Linux; CUDA 13.3.1 (system libcublas.so.13); NVIDIA RTX 5080; Python 3.11.14 venv; faster-whisper 1.2.1; ctranslate2 4.7.1; large-v3 model",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/faster-whisper-libcublas-so-12-not-found-on-cuda-13/",
   "source": "https://www.misc2.com/technotes/faster-whisper-libcublas-so-12-not-found-on-cuda-13/post.md.txt"
  },
  {
   "slug": "claude-code-auth-login-not-logged-in-root-owned-dot-claude",
   "title": "Claude Code: auth login succeeds in the browser, then \"not logged in\" (~/.claude owned by root)",
   "date": "2026-06-28",
   "updated": null,
   "summary": "claude auth login completes in the browser, then Claude Code says it is not logged in and gives up after a few retries. ~/.claude was owned by root after claude had once been run as root with the user's HOME, so the token file could not be written. chown the directory back to the user.",
   "tags": [
    "claude-code",
    "linux",
    "arch",
    "permissions",
    "sudo"
   ],
   "environment": "Arch Linux (three machines); Claude Code version not recorded; on one machine installed with npm into ~/.npm-global",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/claude-code-auth-login-not-logged-in-root-owned-dot-claude/",
   "source": "https://www.misc2.com/technotes/claude-code-auth-login-not-logged-in-root-owned-dot-claude/post.md.txt"
  },
  {
   "slug": "default-acl-effective-none-on-files-written-with-mode-0600",
   "title": "Default ACL shows #effective:--- on files an app rewrites with mode 0600 (certbot keys, Home Assistant auth)",
   "date": "2026-06-25",
   "updated": null,
   "summary": "A default ACL granting a backup user read access worked, then broke after certbot issued a key or Home Assistant rewrote .storage/auth. Files created with mode 0600 get an ACL mask of ---, so the inherited entry shows #effective:---. Re-running setfacl -m recomputes the mask; run it from cron before each backup.",
   "tags": [
    "linux",
    "acl",
    "permissions",
    "certbot",
    "home-assistant",
    "backup",
    "cron"
   ],
   "environment": "Arch Linux ARM on a Raspberry Pi 5 with Home Assistant; a cloud Linux server with certbot; POSIX ACLs (getfacl/setfacl); exact versions not recorded",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/default-acl-effective-none-on-files-written-with-mode-0600/",
   "source": "https://www.misc2.com/technotes/default-acl-effective-none-on-files-written-with-mode-0600/post.md.txt"
  },
  {
   "slug": "x-black-screen-nvidia-failed-to-initialize-kernel-module-after-kernel-upgrade",
   "title": "Black screen after restarting X: NVIDIA: Failed to initialize the NVIDIA kernel module (kernel upgraded, not rebooted)",
   "date": "2026-06-19",
   "updated": null,
   "summary": "After a kernel and NVIDIA driver upgrade without a reboot, restarting X gave a black screen and \"Failed to initialize the NVIDIA kernel module\". The running kernel had only the old module loaded. Build the module for the running kernel with DKMS, swap the modules, recreate /dev/dri, then reboot properly.",
   "tags": [
    "nvidia",
    "arch",
    "linux",
    "xorg",
    "dkms",
    "kernel"
   ],
   "environment": "Arch Linux; running kernel 6.18.13-arch1-1, installed kernel 7.0.12-arch1-1; nvidia-open-dkms 610.43.02 (old loaded module 590.48.01); LightDM (SDDM also installed); Chrome Remote Desktop running its own Xorg",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/x-black-screen-nvidia-failed-to-initialize-kernel-module-after-kernel-upgrade/",
   "source": "https://www.misc2.com/technotes/x-black-screen-nvidia-failed-to-initialize-kernel-module-after-kernel-upgrade/post.md.txt"
  },
  {
   "slug": "m5stack-cardputer-adv-es8311-loud-whine-over-audio",
   "title": "M5Stack Cardputer-ADV plays a loud constant whine over all audio (ES8311, Arduino M5Unified)",
   "date": "2026-06-14",
   "updated": null,
   "summary": "On a Cardputer-ADV with custom Arduino firmware, every sound (test tone or MP3) had a loud constant whine on top. The speaker ran a mono I2S frame, so BCLK was half what M5Unified's fixed ES8311 clock divider expects. Setting spk_cfg.stereo = true fixed it.",
   "tags": [
    "m5stack",
    "cardputer",
    "es8311",
    "esp32",
    "arduino",
    "audio"
   ],
   "environment": "M5Stack Cardputer-ADV (ESP32-S3, ES8311 codec); Arduino via PlatformIO, platform espressif32@6.9.0 (ESP-IDF 4.4); M5Cardputer + M5Unified; ESP8266Audio 1.9.7",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/m5stack-cardputer-adv-es8311-loud-whine-over-audio/",
   "source": "https://www.misc2.com/technotes/m5stack-cardputer-adv-es8311-loud-whine-over-audio/post.md.txt"
  },
  {
   "slug": "esp32-s3-no-psram-tls-out-of-memory-connection-refused",
   "title": "ESP32-S3 without PSRAM: HTTPS fetch returns 0 bytes or connect() fails \"connection refused\" (TLS out of memory)",
   "date": "2026-06-14",
   "updated": null,
   "summary": "On a PSRAM-less ESP32-S3 (M5Stack Cardputer-ADV) an HTTPS fetch returned 0 bytes and later TLS connects failed with \"connection refused\". mbedTLS could not get a large enough contiguous heap block. Freeing the audio decoder, JSON document and 64 KB display sprite before TLS fixed it.",
   "tags": [
    "esp32",
    "arduino",
    "wifi",
    "m5stack",
    "cardputer"
   ],
   "environment": "M5Stack Cardputer-ADV (ESP32-S3, no PSRAM, about 320 KB SRAM); Arduino via PlatformIO, platform espressif32@6.9.0 (ESP-IDF 4.4); M5Cardputer + M5Unified; ESP8266Audio 1.9.7",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/esp32-s3-no-psram-tls-out-of-memory-connection-refused/",
   "source": "https://www.misc2.com/technotes/esp32-s3-no-psram-tls-out-of-memory-connection-refused/post.md.txt"
  },
  {
   "slug": "esp32-arduino-wifi-http-download-1-kb-s",
   "title": "ESP32-S3 Arduino Wi-Fi HTTP downloads crawl at about 1 KB/s",
   "date": "2026-06-14",
   "updated": null,
   "summary": "HTTP(S) downloads to SD from an ESP32-S3 Arduino sketch (M5Stack Cardputer-ADV) ran at about 1 KB/s. The cause was Wi-Fi modem power-save. Calling WiFi.setSleep(false) after connecting raised it to about 85 KB/s.",
   "tags": [
    "esp32",
    "arduino",
    "wifi",
    "m5stack",
    "cardputer"
   ],
   "environment": "M5Stack Cardputer-ADV (ESP32-S3, no PSRAM); Arduino via PlatformIO, platform espressif32@6.9.0 (ESP-IDF 4.4); HTTP(S) downloads written to microSD",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/esp32-arduino-wifi-http-download-1-kb-s/",
   "source": "https://www.misc2.com/technotes/esp32-arduino-wifi-http-download-1-kb-s/post.md.txt"
  },
  {
   "slug": "esphome-no-clients-rebooting-every-15-minutes",
   "title": "ESPHome device reboots every 15 minutes: \"[E][api] No clients; rebooting\"",
   "date": "2026-06-06",
   "updated": null,
   "summary": "An ESPHome node with no Home Assistant connected rebooted about every 15 minutes, logging \"No clients; rebooting\". The api component has its own reboot_timeout (default 15min) that fires when no API client connects. Setting reboot_timeout to 0s under api: stopped the reboots.",
   "tags": [
    "esphome",
    "esp8266",
    "home-assistant",
    "iot"
   ],
   "environment": "ESPHome 2026.5.3 (command-line install); NodeMCU v2 board (ESP8266EX, 4 MB flash); no Home Assistant connected to the node yet",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/esphome-no-clients-rebooting-every-15-minutes/",
   "source": "https://www.misc2.com/technotes/esphome-no-clients-rebooting-every-15-minutes/post.md.txt"
  },
  {
   "slug": "cups-unable-to-locate-printer-local-nsswitch-mdns",
   "title": "CUPS \"Unable to locate printer *.local\" even though avahi-resolve finds the printer",
   "date": "2026-05-16",
   "updated": null,
   "summary": "CUPS jobs to an ipp://printer.local queue never printed and lpstat showed \"Unable to locate printer\". Avahi could see the printer, but /etc/nsswitch.conf had no mdns entry, so normal name lookups for .local failed. Adding mdns4_minimal [NOTFOUND=return] to the hosts line fixed it.",
   "tags": [
    "cups",
    "printers",
    "mdns",
    "avahi",
    "nss-mdns",
    "arch"
   ],
   "environment": "Arch Linux; CUPS with an ipp:// queue addressed by the printer's mDNS (.local) name; avahi-daemon; nss-mdns installed",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/cups-unable-to-locate-printer-local-nsswitch-mdns/",
   "source": "https://www.misc2.com/technotes/cups-unable-to-locate-printer-local-nsswitch-mdns/post.md.txt"
  },
  {
   "slug": "systemd-user-service-found-ordering-cycle-after-default-target",
   "title": "systemd user service not started at boot: \"Found ordering cycle ... Job deleted to break ordering cycle\"",
   "date": "2026-04-24",
   "updated": null,
   "summary": "A systemd user service was inactive after every boot. The journal showed default.target \"Found ordering cycle\" and deleted its start job. A dependency was WantedBy=default.target and also After=default.target; removing the After= line fixed it.",
   "tags": [
    "systemd",
    "linux",
    "systemd-user"
   ],
   "environment": "Arch Linux; systemd user manager (systemctl --user); systemd version not recorded",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/systemd-user-service-found-ordering-cycle-after-default-target/",
   "source": "https://www.misc2.com/technotes/systemd-user-service-found-ordering-cycle-after-default-target/post.md.txt"
  },
  {
   "slug": "chromium-show-in-folder-not-a-valid-folder-baobab",
   "title": "Chromium \"Show in folder\" fails with '\".\" is not a valid folder' (opens Baobab)",
   "date": "2026-04-14",
   "updated": null,
   "summary": "Clicking the folder icon in Chromium's downloads panel gave '\".\" is not a valid folder'. Baobab (GNOME Disk Usage Analyzer) was the default handler for inode/directory, so xdg-open launched it. Making a file manager the default in ~/.config/mimeapps.list fixed it.",
   "tags": [
    "chromium",
    "xdg",
    "mime",
    "baobab",
    "lxqt",
    "arch"
   ],
   "environment": "Arch Linux; Chromium; LXQt desktop session (started via Chrome Remote Desktop); Baobab and pcmanfm-qt installed",
   "author": "shaun, written up with Claude",
   "status": "published",
   "url": "https://www.misc2.com/technotes/chromium-show-in-folder-not-a-valid-folder-baobab/",
   "source": "https://www.misc2.com/technotes/chromium-show-in-folder-not-a-valid-folder-baobab/post.md.txt"
  },
  {
   "slug": "chromium-snap-ssh-x-wrong-authentification",
   "title": "Chromium over ssh -X: Connection rejected because of wrong authentification",
   "date": "2022-09-02",
   "updated": null,
   "summary": "Forwarded X11 worked for xterm but the snap-packaged Chromium failed with \"Connection rejected because of wrong authentification\". The snap looks for .Xauthority inside its own home; symlinking it there fixes it.",
   "tags": [
    "x11",
    "chromium",
    "snap",
    "ssh",
    "ubuntu",
    "xauthority"
   ],
   "environment": "Ubuntu 20.04 (both ends); Chromium snap; OpenSSH X11 forwarding",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/chromium-snap-ssh-x-wrong-authentification/",
   "source": "https://www.misc2.com/technotes/chromium-snap-ssh-x-wrong-authentification/post.md.txt"
  },
  {
   "slug": "freedos-1-3-qemu-windows-networking-mtcp-ftp",
   "title": "FreeDOS 1.3 under QEMU on Windows 10: networking and mTCP FTP",
   "date": "2022-02-23",
   "updated": null,
   "summary": "FreeDOS 1.3 in QEMU refused to bring up networking (\"QEMU network detected… Physical hardware networking is not supported\"). Removing one guard line from FDNET.BAT and using a pcnet NIC fixed it; an FTP 530 error was a Windows folder permission.",
   "tags": [
    "freedos",
    "qemu",
    "mtcp",
    "ftp",
    "windows"
   ],
   "environment": "Windows 10 host; QEMU (qemu-system-x86_64); FreeDOS 1.3; mTCP",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/freedos-1-3-qemu-windows-networking-mtcp-ftp/",
   "source": "https://www.misc2.com/technotes/freedos-1-3-qemu-windows-networking-mtcp-ftp/post.md.txt"
  },
  {
   "slug": "esphome-esp8266-wifi-association-leave",
   "title": "ESPHome ESP8266 nodes stop joining Wi-Fi: reason='Association Leave'",
   "date": "2021-04-12",
   "updated": null,
   "summary": "ESPHome NodeMCU devices that had been working suddenly could not connect, logging lwIP error -16 and \"Disconnected … reason='Association Leave'\". The router's DHCP pool was full; giving the nodes static IPs fixed it.",
   "tags": [
    "esphome",
    "esp8266",
    "nodemcu",
    "wifi",
    "dhcp",
    "iot"
   ],
   "environment": "ESPHome (2021) on ESP8266 NodeMCU boards; consumer Wi-Fi router with a small DHCP pool",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/esphome-esp8266-wifi-association-leave/",
   "source": "https://www.misc2.com/technotes/esphome-esp8266-wifi-association-leave/post.md.txt"
  },
  {
   "slug": "vcxsrv-authorization-required-no-protocol",
   "title": "VcXsrv: Authorization required, but no authorization protocol specified",
   "date": "2021-04-11",
   "updated": null,
   "summary": "X11 apps from WSL refused to open on a VcXsrv display with \"Authorization required, but no authorization protocol specified\". Relaunching VcXsrv with \"Disable access control\" ticked fixed it.",
   "tags": [
    "x11",
    "windows",
    "wsl",
    "vcxsrv"
   ],
   "environment": "Windows 10; WSL2; VcXsrv",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/vcxsrv-authorization-required-no-protocol/",
   "source": "https://www.misc2.com/technotes/vcxsrv-authorization-required-no-protocol/post.md.txt"
  },
  {
   "slug": "esphome-nodemcu-0-9-dht22-home-assistant",
   "title": "DHT22 temperature/humidity sensor on a NodeMCU 0.9 with ESPHome and Home Assistant",
   "date": "2021-04-11",
   "updated": null,
   "summary": "Wiring and ESPHome YAML for a DHT22 on an old yellow NodeMCU 0.9 board, feeding Home Assistant. USB uploads failing with \"Upload with baud rate 460800 failed\" were fixed by disconnecting the sensor while flashing.",
   "tags": [
    "esphome",
    "home-assistant",
    "esp8266",
    "nodemcu",
    "dht22",
    "iot"
   ],
   "environment": "ESPHome (Home Assistant add-on, 2021); NodeMCU v0.9 (ESP-12); DHT22 / AM2302",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/esphome-nodemcu-0-9-dht22-home-assistant/",
   "source": "https://www.misc2.com/technotes/esphome-nodemcu-0-9-dht22-home-assistant/post.md.txt"
  },
  {
   "slug": "wsl2-test-sd-card-f3",
   "title": "Testing SD cards for fake capacity with f3 under WSL2",
   "date": "2020-04-27",
   "updated": null,
   "summary": "How to mount a Windows drive letter (an SD card) in WSL2 with drvfs and run f3write/f3read on it to detect counterfeit, under-capacity cards.",
   "tags": [
    "wsl",
    "sd-card",
    "f3",
    "windows"
   ],
   "environment": "Windows 10; WSL2 (Ubuntu); f3 7.x",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/wsl2-test-sd-card-f3/",
   "source": "https://www.misc2.com/technotes/wsl2-test-sd-card-f3/post.md.txt"
  },
  {
   "slug": "toshiba-flashair-w-02-without-setup-software",
   "title": "Using a Toshiba FlashAir W-02 Wi-Fi SD card after support ended",
   "date": "2020-04-12",
   "updated": null,
   "summary": "Toshiba/KIOXIA dropped the FlashAir W-02 setup software in January 2020, but the card still works. Join its Wi-Fi network and browse to 192.168.0.1 to see and download the card's files.",
   "tags": [
    "flashair",
    "sd-card",
    "hardware"
   ],
   "environment": "Toshiba FlashAir W-02 (Class 10)",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/toshiba-flashair-w-02-without-setup-software/",
   "source": "https://www.misc2.com/technotes/toshiba-flashair-w-02-without-setup-software/post.md.txt"
  },
  {
   "slug": "panasonic-gf1-japan-firmware-ptool-english",
   "title": "Panasonic Lumix GF1 (Japan model) — enable English menus with PTool",
   "date": "2020-04-12",
   "updated": "2020-12-28",
   "summary": "A Japan-market Lumix GF1 can be given all interface languages by patching the official firmware with PTool. The steps that matter are the version increment of 10 and naming the file with a higher version.",
   "tags": [
    "cameras",
    "panasonic",
    "lumix-gf1",
    "firmware",
    "hack"
   ],
   "environment": "Panasonic Lumix DMC-GF1 (Japan); firmware GF1__122.bin; PTool 3.x (Windows)",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/panasonic-gf1-japan-firmware-ptool-english/",
   "source": "https://www.misc2.com/technotes/panasonic-gf1-japan-firmware-ptool-english/post.md.txt"
  },
  {
   "slug": "hp-officejet-8600-scan-to-network-folder",
   "title": "HP Officejet Pro 8600 \"Scan to Network Folder\" always fails on Windows 10",
   "date": "2020-04-10",
   "updated": null,
   "summary": "Setting up Scan to Network Folder on an HP Officejet Pro 8600 always ended in an error, because the printer only speaks SMB1. Enabling the Windows SMB 1.0/CIFS Server feature made it work, at a security cost.",
   "tags": [
    "printers",
    "hp",
    "smb",
    "windows"
   ],
   "environment": "Windows 10; HP Officejet Pro 8600",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/hp-officejet-8600-scan-to-network-folder/",
   "source": "https://www.misc2.com/technotes/hp-officejet-8600-scan-to-network-folder/post.md.txt"
  },
  {
   "slug": "inkscape-trace-bitmap-does-nothing",
   "title": "Inkscape: Path → Trace Bitmap does nothing (no preview, no error)",
   "date": "2020-02-13",
   "updated": null,
   "summary": "Trace Bitmap silently did nothing on an image already embedded in an Inkscape 0.92 document. Opening the image fresh in its own window, tracing there, and pasting the path back worked.",
   "tags": [
    "inkscape",
    "linux",
    "ubuntu"
   ],
   "environment": "Ubuntu 19.10; Inkscape 0.92",
   "author": "shaun",
   "status": "published",
   "url": "https://www.misc2.com/technotes/inkscape-trace-bitmap-does-nothing/",
   "source": "https://www.misc2.com/technotes/inkscape-trace-bitmap-does-nothing/post.md.txt"
  }
 ]
}