m1k1o / neko

A self hosted virtual browser that runs in docker and uses WebRTC.
https://neko.m1k1o.net/
Apache License 2.0
5.94k stars 449 forks source link

Blank screen with local non-docker neko chromium #369

Open deipkumar opened 4 months ago

deipkumar commented 4 months ago

OS: macOS 14.2.1 arm64 (Mac Studio M2 Ultra) Tested browsers: Chromium

I have installed all the required dependencies for both base/Dockerfile.arm and chromium/Dockerfile.arm.

Dbus is running successfully:

➜ ps aux | grep dbus-daemon
deip             33188   0.0  0.0 408543424   1696   ??  S     2:32PM   0:00.02 /opt/local/bin/dbus-daemon --nofork --session
_messagebus      32506   0.0  0.0 408535232    928   ??  Ss    2:27PM   0:00.02 /opt/local/bin/dbus-daemon --system --nofork

➜ ls ~/Library/LaunchAgents/ | grep dbus
org.freedesktop.dbus-session.plist

➜ ls /Library/LaunchAgents/ | grep dbus
org.freedesktop.dbus-session.plist

➜ ls /Library/LaunchDaemons/ | grep dbus
org.freedesktop.dbus-system.plist

➜ dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.GetId
method return time=1708564874.051269 sender=org.freedesktop.DBus -> destination=:1.2 serial=3 reply_serial=2
   string "d8f06e212f2eb7a459d8bbed65d679f5"

➜ launchctl list | grep dbus
33188   0   org.freedesktop.dbus-session

Graphical environment:

Xvfb :99 -screen 0 1280x720x24

Openbox:

openbox --config-file ~/.config/openbox/rc.xml

Chromium (I see the browser window pop up):

chromium \
  --window-position=0,0 \
  --display=:99.0 \
  --user-data-dir=/Users/deip/.config/chromium \
  --no-first-run \
  --start-maximized \
  --bwsi \
  --force-dark-mode \
  --disable-file-system \
  --disable-gpu \
  --disable-software-rasterizer \
  --disable-dev-shm-usage > /Users/deip/Library/Logs/neko/chromium.log 2>&1

Neko:

➜ neko serve --static /Users/deip/dev/neko/client/dist/

    _   __     __
   / | / /__  / /______   \    /\
  /  |/ / _ \/ //_/ __ \   )  ( ')
 / /|  /  __/ ,< / /_/ /  (  /  )
/_/ |_/\___/_/|_|\____/    \(__)|
  nurdism/m1k1o server master@✗-798bf57
5:28PM WRN preflight complete without config file config= debug=false logging=false
5:28PM INF starting neko server service=neko
5:28PM ERR setting initial screen size error="unknown screen configuration 1280x720@30" module=desktop screen_size=1280x720@30
5:28PM INF webrtc starting ephemeral_port_range=59000-59100 ice_lite=false ice_servers="[{URLs:[stun:stun.l.google.com:19302] Username: Credential:<nil> CredentialType:password}]" module=webrtc nat_ips=65.132.146.134
5:28PM WRN http listening on 127.0.0.1:8080 module=http
5:28PM INF neko ready service=neko
5:28PM INF creating pipeline codec=vp8 module=capture src="ximagesrc display-name=:99.0 show-pointer=true use-damage=false ! video/x-raw,framerate=25/1 ! videoconvert ! queue !  vp8enc target-bitrate=1996800 cpu-used=4 end-usage=cbr threads=4 deadline=1 undershoot=95 buffer-size=12288 buffer-initial-size=6144 buffer-optimal-size=9216 keyframe-max-dist=25 min-quantizer=4 max-quantizer=20  ! appsink name=appsinkvideo" submodule=stream-sink video_id=video
5:28PM INF first listener, starting module=capture submodule=stream-sink video_id=video
5:28PM INF signaling state changed to have-local-offer module=webrtc submodule=pion subsystem=pc
5:28PM INF signal update - LocalCandidate id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=session
5:28PM WRN could not get server reflexive address udp6 stun:stun.l.google.com:19302: write udp6 [::]:59099->[2607:f8b0:400e:c0a::7f]:19302: sendto: no route to host module=webrtc submodule=pion subsystem=ice
5:28PM INF signal update - LocalCandidate id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=session
5:28PM INF sent all ICECandidates module=webrtc
5:28PM INF signal update - RemoteAnswer id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=session
5:28PM INF signaling state changed to stable module=webrtc submodule=pion subsystem=pc
5:28PM INF Setting new connection state: Checking module=webrtc submodule=pion subsystem=ice
5:28PM INF ICE connection state changed: checking module=webrtc submodule=pion subsystem=pc
5:28PM WRN pingAllCandidates called with no candidate pairs. Connection is not possible yet. module=webrtc submodule=pion subsystem=ice
5:28PM INF connection state has changed connection_state=checking module=webrtc
5:28PM INF signal update - RemoteCandidate id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=session
5:28PM WRN pingAllCandidates called with no candidate pairs. Connection is not possible yet. module=webrtc submodule=pion subsystem=ice
5:28PM INF signal update - RemoteCandidate id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=session
5:28PM WRN discard success message from (192.168.0.169:62641), no such remote module=webrtc submodule=pion subsystem=ice
5:28PM WRN discard success message from (192.168.0.169:62641), no such remote module=webrtc submodule=pion subsystem=ice
5:28PM INF Setting new connection state: Connected module=webrtc submodule=pion subsystem=ice
5:28PM INF ICE connection state changed: connected module=webrtc submodule=pion subsystem=pc
5:28PM INF connection state has changed connection_state=connected module=webrtc
5:28PM INF peer connection state changed: connected module=webrtc submodule=pion subsystem=pc
5:28PM INF peer connected id=WAqHMDSrqyx1XdvpcTlJNZr3JmZrr58H module=webrtc
deipkumar commented 4 months ago

Happy to collect debug/logs or explain the steps I took with more detail if that would help.

m1k1o commented 3 months ago

I am not sure about macOS and arm arch, if i could help you somehow. If you can see the remote cursor, then its only the browser failing. Is the chromium itself starting propery?