RemoteObserving icon indicating copy to clipboard operation
RemoteObserving copied to clipboard

Soundplay issue with M1 Mac

Open caridlin opened this issue 2 years ago • 2 comments

Hi Keck Remote Observing Development Team,

I'm having soundplay issues with my M1 Macbook. The error message basically says 'invalid soundplay binary name: soundplay.darwin.x86_64'. My suspicion is that it's not compatible with the arm86 architecture of the M1 Mac.

Thanks and below is the full log:

./start_keck_viewers kcwi6 INFO: Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:00:30) [Clang 11.0.1 ] INFO: Remote Observing Software Version = 2.0.1 WARNING: Unable to verify remote version INFO: Using config file: local_config.yaml INFO: Checking whether firewall is open INFO: firewall is open INFO: Validating ssh key... INFO: SSH key OK INFO: Determining VNC server for 'kcwi6' (via API) INFO: Got VNC server: 'kcwi' INFO: Opening VNCviewer for 'control0' INFO: Opening SSH tunnel for [email protected]:5925 on local port 5901. INFO: Opening VNCviewer for 'control1' INFO: Opening SSH tunnel for [email protected]:5926 on local port 5902. INFO: Opening VNCviewer for 'control2' INFO: Opening SSH tunnel for [email protected]:5927 on local port 5903. INFO: Opening VNCviewer for 'telstatus' INFO: Opening SSH tunnel for [email protected]:5928 on local port 5904. INFO: Opening SSH tunnel for [email protected]:9798 on local port 5905. INFO: Starting soundplayer: server=localhost, instrument=kcwi ERROR: Could not start soundplayer ERROR: invalid soundplay binary name: soundplay.darwin.x86_64

caridlin avatar Mar 01 '22 07:03 caridlin

@caridlin This configuration should work. The M1 based Macs automatically handle the x86_64 binaries. Can you send me the full log file (located in the logs/ subdirectory)? I suspect something in your configuration is causing it to fail to find the correct set of binaries.

joshwalawender avatar Mar 02 '22 20:03 joshwalawender

@joshwalawender - based on reading the soundplay.py file, it looks like the soundplay executable name is determined from the architecture of the machine if no file is provided. @caridlin - as Josh says, the M1 is supposed to be binary compatible. The simplest solution maybe to copy the old file that says x86 to the new arm file name. The nice thing is you can test this by JUST running soundplay.py, you do not need to run all of the VNC software.

bpholden avatar Mar 02 '22 21:03 bpholden

Solution in #102 .

Summary:

  • make sure Rosetta is installed: softwareupdate --install-rosetta
  • If necessary, run the soundly binary on its own one via the command line (you get errors, that's ok, we just need macOS to "see" that it is an x86 binary)
  • If that fails, try the solution in the link from issue #102 arch -x86_64 [filename] or arch -x86_64 soundplay.darwin.x86_64

joshwalawender avatar Nov 22 '23 22:11 joshwalawender