openairplay / open-airplay

A collection of libraries for Apple's AirPlay protocol
1.73k stars 184 forks source link

Segmentation fault when mirroring screen #21

Open Cisneiros opened 6 years ago

Cisneiros commented 6 years ago

I'm unable to mirror my desktop to my 4th generation Apple TV. Photos work fine, but desktop mirroring gives me a segfault. My Apple TV has no passcode/password.

$ java -version
openjdk version "1.8.0_144"
OpenJDK Runtime Environment (build 1.8.0_144-b01)
OpenJDK 64-Bit Server VM (build 25.144-b01, mixed mode)

$ java -jar airplay.jar -h 192.168.25.46 -p photo.jpg # this works fine
Press ctrl-c to quit 
^C%                                                                                                                                                                      

$ java -jar airplay.jar -h 192.168.25.46 -d # this will crash
Press ctrl-c to quit
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f8e9976a9a9, pid=7867, tid=0x00007f8e99d54700
#
# JRE version: OpenJDK Runtime Environment (8.0_144-b01) (build 1.8.0_144-b01)
# Java VM: OpenJDK 64-Bit Server VM (25.144-b01 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libawt_xawt.so+0x409a9]
#
# Core dump written. Default location: /home/cisneiros/Downloads/core or core.7867
#
# An error report file with more information is saved as:
# /home/cisneiros/Downloads/hs_err_pid7867.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
[1]    7867 abort (core dumped)  java -jar airplay.jar -h 192.168.25.46 -d

I'm on Fedora 26


OS:Fedora release 26 (Twenty Six)

uname:Linux 4.13.5-200.fc26.x86_64 #1 SMP Thu Oct 5 16:53:13 UTC 2017 x86_64
libc:glibc 2.25 NPTL 2.25 
rlimit: STACK 8192k, CORE infinity, NPROC 63395, NOFILE 4096, AS infinity
load average:0.65 0.66 0.60```
mackowiakp commented 6 years ago

The same here. But after upgrade 4th generation AppleTV to version 11,0 of TVOS, it works as previously. I dont remember exactly the version number, but starting from ver 10.X.X of TVOS, it was not possible to mirror desktop to AppleTV. And when I run airplay.jar, the segfault occurs. As I wrote, now it works fine but even if something was wrong in TVOS ver 10.X.X it should not cause segfoult on Linux machine. Of course any connection error info should be necessary.

Cisneiros commented 6 years ago

Hi @mackowiakp, thanks for the information. I just verified I'm running tvOS 11.0, and the error persists. I'm not sure what other diagnostic information I can provide to help troubleshoot this issue, unfortunately. If anyone can direct me as to what info might be useful, I'm happy yo post here :)

mackowiakp commented 6 years ago

FYI, my environment is Mageia 5 (Fedora fork), KDE, tested on my desktop and laptop. Both the same OS, both works fine with Apple mirroring. [root@Piotr Pobrane]# java -version openjdk version "1.8.0_141" OpenJDK Runtime Environment (build 1.8.0_141-b16) OpenJDK 64-Bit Server VM (build 25.141-b16, mixed mode) [root@Piotr Pobrane]# uname -a Linux Piotr 4.9.56-desktop-1.mga6 #1 SMP Thu Oct 12 22:55:31 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux If You interested, below small bash script I wrote to use desktop miggoring to AppleTV (Sorry, but infos are display in my language (Polish))

if [ -f ~/tmp/apple ] then proc=cat ~/tmp/apple` kill -9 $proc rm -f ~/tmp/apple 2>/dev/null kdialog --passivepopup "Koniec udostpniania na Apple TV" 5 2>/dev/null else choice="$(avahi-browse _airplay._tcp -ptr|grep IPv4|awk -F';' '{print $7}'|grep -v ^$|zenity --list --hide-header --title="Wybór Apple TV" --text="Wybierz Apple TV..." --column="IP adresses" 2>/dev/null)"

echo Wybór

echo $choice

if [ -z "$choice" ] then kdialog --passivepopup "Błąd - Nie dokonano wyboru" 5 2>/dev/null exit else java -jar /home/maciek/Pobrane/airplay.jar -h "$choice" -a futza -d & kdialog --passivepopup "Klonowanie ekranu na Apple TV" 5 2>/dev/null proc=$! echo $proc > ~/tmp/apple fi fi`