Linux Simulator requires device to be mounted when uploading a game

The PlaydateSimulator program on linux displays a "Waiting for playdate disk . . ." pop-up when uploading a game to the PlayDate console through it. If you let this go it will eventually time out, but if you mount the disk through the KDE desktop it will continue correctly to upload the game, unmount the device, and reboot to playing your game. The udev rule appears to be in place correctly in /etc/udev/rules.d/50-playdate.rules (as I'd expect since operations other than mounting are working correctly).
I am on Debian 12, running KDE for my desktop.

My "uname -a" reads:

Linux piglet 6.1.0-12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.52-1 (2023-09-07) x86_64 GNU/Linux

The console output for a failed upload reads:

16:16:45: SDK: /home/devel/PlaydateSDK-2.1.1
16:16:45: Release: 2.1.1
16:16:45: CMD: first.pdx
16:16:46: Device Connected: /dev/ttyACM0
16:16:46: Loading: first.pdx/
16:16:46: Loading: OK
echo off
target=h7d1
build=712beb42-2.1.1-release.161138-buildbot-231103
boot_build=712beb42-2.1.1-release.161138-buildbot
SDK=2.1.1
pdxversion=20100
serial#=PDU1-Y059904
cc=9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599]
pcbver=0x13
time and date set
16:16:53: Game to install: first.pdx/
16:16:53: PDX name: first.pdx
16:16:54: Device Disconnected: /dev/ttyACM0
Copying game to the Playdate encountered an error.

The udev rule in /etc/udev/rules.d/50-playdate.rules reads:

KERNEL=="ttyACM[0-9]*",MODE="0666"

udevadm output for /dev/ttyACM0 reads:
P: /devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12.1/1-12.1:1.0/tty/ttyACM0
M: ttyACM0
R: 0
U: tty
D: c 166:0
N: ttyACM0
L: 0
S: serial/by-id/usb-Panic_Inc_Playdate_PDU1-Y059904-if00
S: serial/by-path/pci-0000:00:14.0-usb-0:12.1:1.0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-12/1-12.1/1-12.1:1.0/tty/ttyACM0
E: DEVNAME=/dev/ttyACM0
E: MAJOR=166
E: MINOR=0
E: SUBSYSTEM=tty
E: USEC_INITIALIZED=2639717253
E: ID_BUS=usb
E: ID_MODEL=Playdate
E: ID_MODEL_ENC=Playdate
E: ID_MODEL_ID=5740
E: ID_SERIAL=Panic_Inc_Playdate_PDU1-Y059904
E: ID_SERIAL_SHORT=PDU1-Y059904
E: ID_VENDOR=Panic_Inc
E: ID_VENDOR_ENC=Panic\x20Inc
E: ID_VENDOR_ID=1331
E: ID_REVISION=0200
E: ID_TYPE=generic
E: ID_USB_MODEL=Playdate
E: ID_USB_MODEL_ENC=Playdate
E: ID_USB_MODEL_ID=5740
E: ID_USB_SERIAL=Panic_Inc_Playdate_PDU1-Y059904
E: ID_USB_SERIAL_SHORT=PDU1-Y059904
E: ID_USB_VENDOR=Panic_Inc
E: ID_USB_VENDOR_ENC=Panic\x20Inc
E: ID_USB_VENDOR_ID=1331
E: ID_USB_REVISION=0200
E: ID_USB_TYPE=generic
E: ID_USB_INTERFACES=:020201:0a0000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=cdc_acm
E: ID_USB_CLASS_FROM_DATABASE=Communications
E: ID_USB_SUBCLASS_FROM_DATABASE=Abstract (modem)
E: ID_PATH=pci-0000:00:14.0-usb-0:12.1:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_12_1_1_0
E: ID_MM_CANDIDATE=1
E: DEVLINKS=/dev/serial/by-id/usb-Panic_Inc_Playdate_PDU1-Y059904-if00 /dev/serial/by-path/pci>
E: TAGS=:systemd:
E: CURRENT_TAGS=:systemd:

I don't consider this a high priority, since I have already found a work-around. But it's interesting.

1 Like

Are you using a straight Debian 12 install or some distro?

Nope, bog-standard Debian 12, straight from https://debian.org .

FWIW, here's what mount(8) says about it if I manually mount it through System->Reboot to Data Disk

:/home/devel/Playdate_src/first> mount | grep PLAYDATE
/dev/sdh1 on /media/devel/PLAYDATE type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=
0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount
-ro,uhelper=udisks2)

So what it sounds like is the Sim can see the device and trigger it to reboot into disk mode, but the KDE desktop/debian isn't automatically mounting it? Is there a setting to force KDE to automatically mount external disks?

Hah. I'll poke around on that. Sounds plausible.

Try this? Auto mount drives without password kde? - #3 by keybreak - General system - EndeavourOS

Hah. You are a Gentleman (Lady? Other? ) and a Scholar.

The trick on KDE is to reboot the playdate console to 'Data Disk', then mount it through the GUI. After that, you can go to 'System Settings'->[Hardware]'->Removable Storage->Removable Devices. You'll see 'PLAYDATE' in the list under 'Attached Devices'. There you can check the 'On Attach' box to automount it properly and avoid this trouble.

I suspect other desktops have a similar procedure? I'll update the reddit thread too.

Excellent, glad you got it figured out! I hadn't heard of this particular issue, but I'm also a Gnome desktop guy so. Maybe getting a KDE box set up is in my future. :slight_smile:

1 Like