m1k1o / neko

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

Raspberry pi 5 error #408

Open Sapu98 opened 2 months ago

Sapu98 commented 2 months ago

I'm running ubuntu on raspberry pi 5.

I've used this configuration for the docker file:

version: "3.4"
services:
  neko:
    # see docs for more variants
    image: "ghcr.io/m1k1o/neko/arm-chromium:latest"
    restart: "unless-stopped"
    # increase on rpi's with more then 1gb ram.
    shm_size: "520mb"
    ports:
      - "8088:8080"
      - "52000-52100:52000-52100/udp"
    # note: this is important since we need a GPU for hardware acceleration alternatively
    #       mount the devices into the docker.
    privileged: true
    environment:
      NEKO_SCREEN: '1280x720@30'
      NEKO_PASSWORD: 'xxxxxx'
      NEKO_PASSWORD_ADMIN: 'xxxxxx'
      NEKO_EPR: 52000-52100
      # note: when setting NEKO_VIDEO, then variables NEKO_MAX_FPS and NEKO_VIDEO_BITRATE
      #       are not being used, you can adjust them in this variable.
      NEKO_VIDEO: |
        ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false
          ! video/x-raw,framerate=30/1
          ! videoconvert
          ! queue
          ! video/x-raw,framerate=30/1,format=NV12
          ! v4l2h264enc extra-controls="controls,h264_profile=1,video_bitrate=1250000;"
          ! h264parse config-interval=3
          ! video/x-h264,stream-format=byte-stream,profile=constrained-baseline
      NEKO_VIDEO_CODEC: h264

When running the command docker-compose, I get no error and no warnings, but from the container logs, I'm getting this error:

2024-08-11 19:01:02,668 DEBG 'pulseaudio' stdout output:
I: [pulseaudio] main.c: Using runtime directory /tmp/runtime-neko/pulse.
I: [pulseaudio] main.c: Using state directory /home/neko/.config/pulse.
I: [pulseaudio] main.c: Using modules directory /usr/lib/pulse-14.2/modules.
I: [pulseaudio] main.c: Running in system mode: no
I: [pulseaudio] main.c: System supports high resolution timers
I: [pulseaudio] sink.c: Created sink 0 "audio_output" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] sink.c:     device.description = "Virtual Audio Output"
I: [pulseaudio] sink.c:     device.class = "abstract"
I: [pulseaudio] sink.c:     device.icon_name = "audio-card"
I: [pulseaudio] source.c: Created source 0 "audio_output.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] source.c:     device.description = "Monitor of Virtual Audio Output"
I: [pulseaudio] source.c:     device.class = "monitor"
I: [pulseaudio] source.c:     device.icon_name = "audio-input-microphone"
2024-08-11 19:01:02,673 DEBG 'pulseaudio' stdout output:
I: [null-sink] util.c: Failed to acquire real-time scheduling: No such file or directory
2024-08-11 19:01:02,677 DEBG 'pulseaudio' stdout output:
I: [pulseaudio] core.c: default_source: (unset) -> audio_output.monitor
I: [pulseaudio] core.c: default_sink: (unset) -> audio_output
I: [pulseaudio] module.c: Loaded "module-null-sink" (index: #0; argument: "sink_name=audio_output sink_properties=device.description="Virtual\ Audio\ Output"").
W: [pulseaudio] authkey.c: Failed to open cookie file '/home/neko/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/home/neko/.config/pulse/cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to open cookie file '/home/neko/.pulse-cookie': No such file or directory
W: [pulseaudio] authkey.c: Failed to load authentication key '/home/neko/.pulse-cookie': No such file or directory
I: [pulseaudio] module.c: Loaded "module-native-protocol-unix" (index: #1; argument: "socket=/tmp/pulseaudio.socket auth-anonymous=1").
I: [pulseaudio] module.c: Loaded "module-always-sink" (index: #2; argument: "").
2024-08-11 19:01:02,765 DEBG 'chromium' stdout output:
[13:13:0811/190102.764674:ERROR:zygote_host_impl_linux.cc(127)] No usable sandbox! If this is a Debian system, please install the chromium-sandbox package to solve this problem. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
2024-08-11 19:01:02,775 DEBG fd 19 closed, stopped monitoring <POutputDispatcher at 281472876947344 for <Subprocess at 281472876947296 with name chromium in state STARTING> (stdout)>
2024-08-11 19:01:02,775 INFO exited: chromium (exit status 1; not expected)
2024-08-11 19:01:02,775 INFO reaped unknown pid 49 (exit status 0)
2024-08-11 19:01:02,776 DEBG received SIGCHLD indicating a child quit
2024-08-11 19:01:02,868 DEBG 'pulseaudio' stdout output:
I: [pulseaudio] main.c: Daemon startup complete.
2024-08-11 19:01:02,868 INFO reaped unknown pid 51 (exit status 0)
2024-08-11 19:01:02,868 DEBG received SIGCHLD indicating a child quit
2024-08-11 19:01:03,019 DEBG 'neko' stdout output:

    _   __     __
   / | / /__  / /______   \    /\
  /  |/ / _ \/ //_/ __ \   )  ( ')
 / /|  /  __/ ,< / /_/ /  (  /  )
/_/ |_/\___/_/|_|\____/    \(__)|
  nurdism/m1k1o server @
2024-08-11 19:01:03,021 DEBG 'neko' stdout output:
7:01PM WRN preflight complete without config file config= debug=false logging=false
2024-08-11 19:01:03,181 DEBG 'neko' stdout output:
7:01PM INF starting neko server service=neko
2024-08-11 19:01:03,187 DEBG 'neko' stdout output:
7:01PM INF setting initial screen size module=desktop screen_size=1280x720@30
2024-08-11 19:01:03,187 DEBG 'neko' stdout output:
7:01PM INF webrtc starting ephemeral_port_range=52000-52100 ice_lite=false ice_servers="[{URLs:[stun:stun.l.google.com:19302] Username: Credential:<nil> CredentialType:password}]" module=webrtc nat_ips=77.32.67.107
2024-08-11 19:01:03,187 DEBG 'neko' stdout output:
7:01PM WRN http listening on :8080 module=http
7:01PM INF neko ready service=neko
2024-08-11 19:01:04,189 INFO success: dbus entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-08-11 19:01:04,189 INFO success: openbox entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-08-11 19:01:04,189 INFO success: pulseaudio entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-08-11 19:01:04,189 INFO success: x-server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-08-11 19:01:04,192 INFO spawned: 'chromium' with pid 67
2024-08-11 19:01:04,192 INFO success: neko entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-08-11 19:01:04,281 DEBG 'chromium' stdout output:
[67:67:0811/190104.281581:ERROR:zygote_host_impl_linux.cc(127)] No usable sandbox! If this is a Debian system, please install the chromium-sandbox package to solve this problem. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
2024-08-11 19:01:04,291 DEBG fd 19 closed, stopped monitoring <POutputDispatcher at 281472876423536 for <Subprocess at 281472876947296 with name chromium in state STARTING> (stdout)>
2024-08-11 19:01:04,291 INFO exited: chromium (exit status 1; not expected)
2024-08-11 19:01:04,292 INFO reaped unknown pid 81 (exit status 0)
2024-08-11 19:01:04,292 INFO reaped unknown pid 83 (exit status 0)
2024-08-11 19:01:04,292 DEBG received SIGCHLD indicating a child quit
2024-08-11 19:01:06,297 INFO spawned: 'chromium' with pid 87
2024-08-11 19:01:06,385 DEBG 'chromium' stdout output:
[87:87:0811/190106.385259:ERROR:zygote_host_impl_linux.cc(127)] No usable sandbox! If this is a Debian system, please install the chromium-sandbox package to solve this problem. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
2024-08-11 19:01:06,395 DEBG fd 19 closed, stopped monitoring <POutputDispatcher at 281472876424400 for <Subprocess at 281472876947296 with name chromium in state STARTING> (stdout)>
2024-08-11 19:01:06,395 INFO exited: chromium (exit status 1; not expected)
2024-08-11 19:01:06,395 INFO reaped unknown pid 101 (exit status 0)
2024-08-11 19:01:06,395 INFO reaped unknown pid 103 (exit status 0)
2024-08-11 19:01:06,395 DEBG received SIGCHLD indicating a child quit
Sapu98 commented 2 months ago

If you need more infos just tell me pls :)

m1k1o commented 2 months ago

[67:67:0811/190104.281581:ERROR:zygote_host_impl_linux.cc(127)] No usable sandbox! If this is a Debian system, please install the chromium-sandbox package to solve this problem. If you want to live dangerously and need an immediate workaround, you can try using --no-sandbox.
2024-08-11 19:01:04,291 DEBG fd 19 closed, stopped monitoring <POutputDispatcher at 281472876423536 for <Subprocess at 281472876947296 with name chromium in state STARTING> (stdout)>
2024-08-11 19:01:04,291 INFO exited: chromium (exit status 1; not expected)

This seems to be the issue. Chrome is not starting. You could try firefox or try installing suggested package. Looks like something has changed with the versions or the repositories.

Sapu98 commented 2 months ago

I Installed chromium since the sandbox alone doesnt exist as a package but I still get the same error.

Even tried to add this to the docker file: NEKO_CHROMIUM_FLAGS: '--no-sandbox' probably it's not the right way to do it but also it gives me no results

m1k1o commented 1 month ago

Currently don't have raspberry pi 5 to test, but the issue seems outside of neko, in google chrome.