TinyPilot Pro log dump https://tinypilotkvm.com Timestamp: 2023-09-02T01:10:14+01:00 Software versions TinyPilot version: 2.6.0 uStreamer version: 5.38 OS version: Linux tinypilot 5.15.84-v7l+ #1613 SMP Thu Jan 5 12:01:26 GMT 2023 armv7l GNU/Linux Distribution name: Raspbian Distribution version: 11 Hardware information Hardware: BCM2711 Revision: d03115 Model: Raspberry Pi 4 Model B Rev 1.5 TinyPilot state Read-only filesystem: off SSH access: enabled temp=34.5'C throttled=0x0 voltage logs TinyPilot settings.yml ustreamer_encoder: hw ustreamer_format: jpeg ustreamer_h264_bitrate: 17150 ustreamer_persistent: true ustreamer_port: 8001 ustreamer_resolution: 1920x1080 TinyPilot configuration [Unit] Description=TinyPilot - RPi-based virtual KVM After=syslog.target network.target StartLimitIntervalSec=0 [Service] Type=simple User=tinypilot WorkingDirectory=/opt/tinypilot ExecStart=/opt/tinypilot/venv/bin/python app/main.py Environment=HOST=127.0.0.1 Environment=PORT=8000 Environment=APP_SETTINGS_FILE=/home/tinypilot/app_settings.cfg Restart=always [Install] WantedBy=multi-user.target TinyPilot logs -- Journal begins at Sat 2023-09-02 00:51:38 BST, ends at Sat 2023-09-02 01:10:14 BST. -- Sep 02 00:51:42 tinypilot systemd[1]: Started TinyPilot - RPi-based virtual KVM. Sep 02 00:51:46 tinypilot python[530]: 2023-09-02 00:51:46.270 __main__ INFO Starting app Sep 02 00:51:51 tinypilot python[530]: 2023-09-02 00:51:51.922 db.store INFO Loading database migrations from /opt/tinypilot/app/db/migrations/*.sql Sep 02 00:51:51 tinypilot python[530]: 2023-09-02 00:51:51.927 db.store INFO Read 7 database migrations from disk Sep 02 00:51:52 tinypilot python[530]: 2023-09-02 00:51:52.369 socket_api INFO Client EZSUebU2Z23xfsy4AAAC connected Sep 02 00:53:38 tinypilot python[936]: Process ProcessWithResult-1: Sep 02 00:53:38 tinypilot python[936]: Traceback (most recent call last): Sep 02 00:53:38 tinypilot python[936]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 00:53:38 tinypilot python[936]: self.run() Sep 02 00:53:38 tinypilot python[936]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 00:53:38 tinypilot python[936]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 00:53:38 tinypilot python[936]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 00:53:38 tinypilot python[936]: hid_handle.write(bytearray(buffer)) Sep 02 00:53:38 tinypilot python[936]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 00:53:38 tinypilot python[530]: 2023-09-02 00:53:38.518 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 00:53:39 tinypilot python[937]: Process ProcessWithResult-2: Sep 02 00:53:39 tinypilot python[937]: Traceback (most recent call last): Sep 02 00:53:39 tinypilot python[937]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 00:53:39 tinypilot python[937]: self.run() Sep 02 00:53:39 tinypilot python[937]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 00:53:39 tinypilot python[937]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 00:53:39 tinypilot python[937]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 00:53:39 tinypilot python[937]: hid_handle.write(bytearray(buffer)) Sep 02 00:53:39 tinypilot python[937]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 00:53:39 tinypilot python[530]: 2023-09-02 00:53:39.107 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 00:53:40 tinypilot python[530]: 2023-09-02 00:53:40.254 socket_api INFO Client EZSUebU2Z23xfsy4AAAC disconnected Sep 02 00:53:40 tinypilot python[530]: 2023-09-02 00:53:40.567 socket_api INFO Client 1uoUIjTKkTrkhG_tAAAE connected Sep 02 01:08:43 tinypilot python[1114]: Process ProcessWithResult-3: Sep 02 01:08:43 tinypilot python[1114]: Traceback (most recent call last): Sep 02 01:08:43 tinypilot python[1114]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 01:08:43 tinypilot python[1114]: self.run() Sep 02 01:08:43 tinypilot python[1114]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 01:08:43 tinypilot python[1114]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 01:08:43 tinypilot python[1114]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 01:08:43 tinypilot python[1114]: hid_handle.write(bytearray(buffer)) Sep 02 01:08:43 tinypilot python[1114]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 01:08:43 tinypilot python[530]: 2023-09-02 01:08:43.985 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 01:08:44 tinypilot python[1115]: Process ProcessWithResult-4: Sep 02 01:08:44 tinypilot python[1115]: Traceback (most recent call last): Sep 02 01:08:44 tinypilot python[1115]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 01:08:44 tinypilot python[1115]: self.run() Sep 02 01:08:44 tinypilot python[1115]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 01:08:44 tinypilot python[1115]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 01:08:44 tinypilot python[1115]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 01:08:44 tinypilot python[1115]: hid_handle.write(bytearray(buffer)) Sep 02 01:08:44 tinypilot python[1115]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 01:08:44 tinypilot python[530]: 2023-09-02 01:08:44.601 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 01:10:10 tinypilot python[1120]: Process ProcessWithResult-5: Sep 02 01:10:10 tinypilot python[1120]: Traceback (most recent call last): Sep 02 01:10:10 tinypilot python[1120]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 01:10:10 tinypilot python[1120]: self.run() Sep 02 01:10:10 tinypilot python[1120]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 01:10:10 tinypilot python[1120]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 01:10:10 tinypilot python[1120]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 01:10:10 tinypilot python[1120]: hid_handle.write(bytearray(buffer)) Sep 02 01:10:10 tinypilot python[1120]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 01:10:10 tinypilot python[530]: 2023-09-02 01:10:10.900 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 01:10:12 tinypilot python[1121]: Process ProcessWithResult-6: Sep 02 01:10:12 tinypilot python[1121]: Traceback (most recent call last): Sep 02 01:10:12 tinypilot python[1121]: File "/usr/lib/python3.9/multiprocessing/process.py", line 315, in _bootstrap Sep 02 01:10:12 tinypilot python[1121]: self.run() Sep 02 01:10:12 tinypilot python[1121]: File "/opt/tinypilot/app/hid/write.py", line 45, in run Sep 02 01:10:12 tinypilot python[1121]: result.return_value = self._target(*self._args, **self._kwargs) Sep 02 01:10:12 tinypilot python[1121]: File "/opt/tinypilot/app/hid/write.py", line 65, in _write_to_hid_interface_immediately Sep 02 01:10:12 tinypilot python[1121]: hid_handle.write(bytearray(buffer)) Sep 02 01:10:12 tinypilot python[1121]: BrokenPipeError: [Errno 108] Cannot send after transport endpoint shutdown Sep 02 01:10:12 tinypilot python[530]: 2023-09-02 01:10:12.350 socket_api ERROR [SENSITIVE] Failed to forward mouse event: Failed to write to HID interface: /dev/hidg1. Is USB cable connected? [/SENSITIVE] Sep 02 01:10:14 tinypilot sudo[1122]: tinypilot : PWD=/opt/tinypilot ; USER=root ; COMMAND=/opt/tinypilot-privileged/scripts/collect-debug-logs -q Sep 02 01:10:14 tinypilot sudo[1122]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=110) TinyPilot update logs TASK [ansible-role-ustreamer : install Janus package and C header files] ******* ok: [localhost] TASK [ansible-role-ustreamer : patch Janus plugin.h file to successfully include refcount.h file] *** ok: [localhost] TASK [ansible-role-ustreamer : create Janus config files] ********************** ok: [localhost] => (item=janus.jcfg) ok: [localhost] => (item=janus.transport.websockets.jcfg) TASK [ansible-role-ustreamer : get multi-arch target triplet (i.e., machine-vendor-operatingsystem)] *** ok: [localhost] TASK [ansible-role-ustreamer : determine Janus plugins directory] ************** ok: [localhost] TASK [ansible-role-ustreamer : create ustreamer group] ************************* ok: [localhost] TASK [ansible-role-ustreamer : create ustreamer user] ************************** ok: [localhost] TASK [ansible-role-ustreamer : check for a boot config file] ******************* ok: [localhost] TASK [ansible-role-ustreamer : save whether boot config file exists] *********** ok: [localhost] TASK [ansible-role-ustreamer : check whether this machine has a uStreamer settings file] *** ok: [localhost] TASK [ansible-role-ustreamer : read uStreamer settings file] ******************* ok: [localhost] TASK [ansible-role-ustreamer : decode settings file] *************************** ok: [localhost] TASK [ansible-role-ustreamer : read ustreamer_capture_device from config file if it's not already defined] *** ok: [localhost] TASK [ansible-role-ustreamer : enable TC358743 overlay in /boot/config.txt] **** skipping: [localhost] TASK [ansible-role-ustreamer : enable TC358743-audio overlay in /boot/config.txt] *** skipping: [localhost] TASK [ansible-role-ustreamer : set GPU memory to 256MB in /boot/config.txt] **** skipping: [localhost] TASK [ansible-role-ustreamer : check for a boot cmdline file] ****************** skipping: [localhost] TASK [ansible-role-ustreamer : read /boot/cmdline.txt] ************************* skipping: [localhost] TASK [ansible-role-ustreamer : decode command-line string] ********************* skipping: [localhost] TASK [ansible-role-ustreamer : change cma to 128M if it's set to a different value] *** skipping: [localhost] TASK [ansible-role-ustreamer : add cma=128M to cmdline.txt if it's missing] **** skipping: [localhost] TASK [ansible-role-ustreamer : create EDIDs folder] **************************** skipping: [localhost] TASK [ansible-role-ustreamer : copy TC358743 EDID file] ************************ skipping: [localhost] TASK [ansible-role-ustreamer : install TC358743 initializer service] *********** skipping: [localhost] TASK [ansible-role-ustreamer : use custom settings for TC358743 chip for any facts not already defined] *** skipping: [localhost] TASK [ansible-role-ustreamer : remove TC358743 initializer service file] ******* ok: [localhost] TASK [ansible-role-ustreamer : disable TC358743 overlay in /boot/config.txt] *** ok: [localhost] TASK [ansible-role-ustreamer : disable TC358743-audio overlay in /boot/config.txt] *** ok: [localhost] TASK [ansible-role-ustreamer : collect universal required apt packages] ******** ok: [localhost] TASK [ansible-role-ustreamer : collect Raspberry Pi OS specific required apt packages] *** ok: [localhost] TASK [ansible-role-ustreamer : collect Raspberry Pi OS and Debian specific required apt packages for audio] *** ok: [localhost] TASK [ansible-role-ustreamer : collect Debian-specific required apt packages] *** skipping: [localhost] TASK [ansible-role-ustreamer : collect Ubuntu-specific required apt packages] *** skipping: [localhost] TASK [ansible-role-ustreamer : collect Janus WebRTC plugin specific required apt packages] *** ok: [localhost] TASK [ansible-role-ustreamer : install uStreamer pre-requisite packages] ******* ok: [localhost] TASK [ansible-role-ustreamer : install uStreamer Debian package] *************** changed: [localhost] TASK [ansible-role-ustreamer : create uStreamer folder] ************************ skipping: [localhost] TASK [ansible-role-ustreamer : get uStreamer repo] ***************************** skipping: [localhost] TASK [ansible-role-ustreamer : clean uStreamer repository] ********************* skipping: [localhost] TASK [ansible-role-ustreamer : build uStreamer] ******************************** skipping: [localhost] TASK [ansible-role-ustreamer : fix uStreamer folder permissions] *************** changed: [localhost] TASK [ansible-role-ustreamer : install uStreamer as a service] ***************** ok: [localhost] TASK [ansible-role-ustreamer : enable systemd uStreamer service file] ********** ok: [localhost] TASK [ansible-role-ustreamer : save uStreamer settings file] ******************* ok: [localhost] TASK [ansible-role-ustreamer : create uStreamer Janus plugin config] *********** ok: [localhost] TASK [ansible-role-ustreamer : install uStreamer Janus plugin] ***************** skipping: [localhost] TASK [ansible-role-ustreamer : define ansible to yq architecture mapping] ****** ok: [localhost] TASK [ansible-role-ustreamer : canonicalize yq binary architecture] ************ ok: [localhost] TASK [ansible-role-ustreamer : install yq] ************************************* ok: [localhost] TASK [ansible-role-ustreamer : create uStreamer launcher directories] ********** ok: [localhost] => (item=/opt/ustreamer-launcher) ok: [localhost] => (item=/opt/ustreamer-launcher/configs.d) TASK [ansible-role-ustreamer : create runtime variables dictionary] ************ ok: [localhost] TASK [ansible-role-ustreamer : collect non-null runtime variables] ************* ok: [localhost] => (item=ustreamer_interface) ok: [localhost] => (item=ustreamer_port) skipping: [localhost] => (item=ustreamer_video_path) ok: [localhost] => (item=ustreamer_encoder) ok: [localhost] => (item=ustreamer_format) ok: [localhost] => (item=ustreamer_resolution) skipping: [localhost] => (item=ustreamer_desired_fps) skipping: [localhost] => (item=ustreamer_workers) skipping: [localhost] => (item=ustreamer_quality) skipping: [localhost] => (item=ustreamer_brightness) ok: [localhost] => (item=ustreamer_persistent) skipping: [localhost] => (item=ustreamer_use_dv_timings) skipping: [localhost] => (item=ustreamer_drop_same_frames) skipping: [localhost] => (item=ustreamer_tcp_nodelay) ok: [localhost] => (item=ustreamer_h264_sink) ok: [localhost] => (item=ustreamer_h264_sink_mode) ok: [localhost] => (item=ustreamer_h264_sink_rm) skipping: [localhost] => (item=ustreamer_h264_bitrate) TASK [ansible-role-ustreamer : print uStreamer runtime variables] ************** ok: [localhost] => { "ustreamer_runtime_vars": { "ustreamer_encoder": "hw", "ustreamer_format": "jpeg", "ustreamer_h264_sink": "tinypilot::ustreamer::h264", "ustreamer_h264_sink_mode": 777, "ustreamer_h264_sink_rm": true, "ustreamer_interface": "127.0.0.1", "ustreamer_persistent": true, "ustreamer_port": 8001, "ustreamer_resolution": "1920x1080" } } TASK [ansible-role-ustreamer : write uStreamer runtime variables to file] ****** ok: [localhost] TASK [ansible-role-ustreamer : install uStreamer launcher script] ************** ok: [localhost] TASK [ansible-role-tinypilot-pro : install TinyPilot Debian package] *********** changed: [localhost] TASK [ansible-role-tinypilot-pro : install TinyPilot as a service] ************* ok: [localhost] TASK [ansible-role-tinypilot-pro : enable systemd TinyPilot service file] ****** ok: [localhost] TASK [ansible-role-tinypilot-pro : generate nginx ca keys] ********************* ok: [localhost] TASK [ansible-role-tinypilot-pro : generate nginx tls keys] ******************** ok: [localhost] TASK [ansible-role-nginx : Include OS-specific variables.] ********************* ok: [localhost] TASK [ansible-role-nginx : Define nginx_user.] ********************************* ok: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** skipping: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** skipping: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** included: /mnt/tinypilot-installer/roles/ansible-role-nginx/tasks/setup-Debian.yml for localhost TASK [ansible-role-nginx : Update apt cache.] ********************************** ok: [localhost] TASK [ansible-role-nginx : Ensure nginx is installed.] ************************* ok: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** skipping: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** skipping: [localhost] TASK [ansible-role-nginx : include_tasks] ************************************** skipping: [localhost] TASK [ansible-role-nginx : Remove default nginx vhost config file (if configured).] *** ok: [localhost] TASK [ansible-role-nginx : Ensure nginx_vhost_path exists.] ******************** ok: [localhost] TASK [ansible-role-nginx : Add managed vhost config files.] ******************** ok: [localhost] => (item={'listen': [80, '443 ssl http2'], 'server_name': 'tinypilot', 'filename': 'tinypilot.conf', 'root': '/opt/tinypilot', 'index': 'index.html', 'error_page': '497 =307 https://$http_host$request_uri', 'extra_parameters': 'ssl_certificate "/etc/ssl/certs/tinypilot-nginx.crt";\nssl_certificate_key "/etc/ssl/private/tinypilot-nginx.key";\nssl_protocols TLSv1.2;\nssl_prefer_server_ciphers on;\nssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384;\nssl_ecdh_curve secp384r1;\nssl_session_timeout 10m;\nssl_session_cache shared:SSL:10m;\nssl_session_tickets off;\nproxy_buffers 16 16k;\nproxy_buffer_size 16k;\nproxy_set_header Host $http_host;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;\nproxy_http_version 1.1;\nlocation /socket.io {\n proxy_pass http://tinypilot;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "Upgrade";\n # Since this is a connection upgrade, we don\'t inherit the settings from\n # above. We need these so that nginx forwards requests properly to\n # Flask-SocketIO.\n # See: https://github.com/miguelgrinberg/Flask-SocketIO/issues/1501#issuecomment-802082048\n proxy_set_header Host $http_host;\n proxy_set_header X-Forwarded-Host $http_host;\n proxy_set_header X-Forwarded-Proto $scheme;\n}\nlocation /state {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://ustreamer;\n}\nlocation /stream {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n postpone_output 0;\n proxy_buffering off;\n proxy_ignore_headers X-Accel-Buffering;\n proxy_pass http://ustreamer;\n}\nlocation /snapshot {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://ustreamer;\n}\nlocation /janus/ws {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://janus-ws;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "Upgrade";\n proxy_set_header Host $http_host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Scheme $scheme;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_set_header X-Forwarded-Port $server_port;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n}\nlocation /ca.crt {\n alias "/etc/ssl/certs/tinypilot-ca.crt";\n}\nlocation / {\n proxy_pass http://tinypilot;\n}\nlocation /api/massStorage/backingFiles {\n # Allow large file transfers without buffering them.\n client_max_body_size 0;\n proxy_request_buffering off;\n proxy_read_timeout 1d;\n proxy_pass http://tinypilot;\n}\nlocation ~* ^/.+\\.(html|js|js.map|css|woff|woff2)$ {\n root "/opt/tinypilot/app/static";\n\n # We cache assets to prevent the browser from making redundant\n # requests to the same files while loading the page. (Observed on\n # Chrome 91.) We don’t want caching otherwise, though, in order to\n # avoid stale files after users update their device. Note, that in\n # addition to `max-age`, the browser’s caching behaviour is relative\n # to the `Last-Modified` header, so we make that seem recent.\n add_header Last-Modified $date_gmt;\n add_header Cache-Control \'public, max-age=10s\';\n}\nlocation ~* ^/.+\\.(jpg|jpeg|png|ico)$ {\n root "/opt/tinypilot/app/static";\n}\n# Authenticate any protected routes that are outside of the core\n# TinyPilot web app.\nlocation = /auth {\n internal;\n proxy_pass http://tinypilot/api/auth;\n proxy_pass_request_body off;\n proxy_set_header Content-Length "";\n proxy_set_header X-Original-URI $request_uri;\n\n # Redefine header directives, as they are not inherited here:\n # See http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header\n proxy_set_header X-Forwarded-Proto $scheme;\n}\n'}) TASK [ansible-role-nginx : Remove managed vhost config files.] ***************** skipping: [localhost] => (item={'listen': [80, '443 ssl http2'], 'server_name': 'tinypilot', 'filename': 'tinypilot.conf', 'root': '/opt/tinypilot', 'index': 'index.html', 'error_page': '497 =307 https://$http_host$request_uri', 'extra_parameters': 'ssl_certificate "/etc/ssl/certs/tinypilot-nginx.crt";\nssl_certificate_key "/etc/ssl/private/tinypilot-nginx.key";\nssl_protocols TLSv1.2;\nssl_prefer_server_ciphers on;\nssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384;\nssl_ecdh_curve secp384r1;\nssl_session_timeout 10m;\nssl_session_cache shared:SSL:10m;\nssl_session_tickets off;\nproxy_buffers 16 16k;\nproxy_buffer_size 16k;\nproxy_set_header Host $http_host;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;\nproxy_http_version 1.1;\nlocation /socket.io {\n proxy_pass http://tinypilot;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "Upgrade";\n # Since this is a connection upgrade, we don\'t inherit the settings from\n # above. We need these so that nginx forwards requests properly to\n # Flask-SocketIO.\n # See: https://github.com/miguelgrinberg/Flask-SocketIO/issues/1501#issuecomment-802082048\n proxy_set_header Host $http_host;\n proxy_set_header X-Forwarded-Host $http_host;\n proxy_set_header X-Forwarded-Proto $scheme;\n}\nlocation /state {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://ustreamer;\n}\nlocation /stream {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n postpone_output 0;\n proxy_buffering off;\n proxy_ignore_headers X-Accel-Buffering;\n proxy_pass http://ustreamer;\n}\nlocation /snapshot {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://ustreamer;\n}\nlocation /janus/ws {\n auth_request /auth;\n auth_request_set $auth_status $upstream_status;\n proxy_pass http://janus-ws;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "Upgrade";\n proxy_set_header Host $http_host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Scheme $scheme;\n proxy_set_header X-Forwarded-Proto $scheme;\n proxy_set_header X-Forwarded-Port $server_port;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n}\nlocation /ca.crt {\n alias "/etc/ssl/certs/tinypilot-ca.crt";\n}\nlocation / {\n proxy_pass http://tinypilot;\n}\nlocation /api/massStorage/backingFiles {\n # Allow large file transfers without buffering them.\n client_max_body_size 0;\n proxy_request_buffering off;\n proxy_read_timeout 1d;\n proxy_pass http://tinypilot;\n}\nlocation ~* ^/.+\\.(html|js|js.map|css|woff|woff2)$ {\n root "/opt/tinypilot/app/static";\n\n # We cache assets to prevent the browser from making redundant\n # requests to the same files while loading the page. (Observed on\n # Chrome 91.) We don’t want caching otherwise, though, in order to\n # avoid stale files after users update their device. Note, that in\n # addition to `max-age`, the browser’s caching behaviour is relative\n # to the `Last-Modified` header, so we make that seem recent.\n add_header Last-Modified $date_gmt;\n add_header Cache-Control \'public, max-age=10s\';\n}\nlocation ~* ^/.+\\.(jpg|jpeg|png|ico)$ {\n root "/opt/tinypilot/app/static";\n}\n# Authenticate any protected routes that are outside of the core\n# TinyPilot web app.\nlocation = /auth {\n internal;\n proxy_pass http://tinypilot/api/auth;\n proxy_pass_request_body off;\n proxy_set_header Content-Length "";\n proxy_set_header X-Original-URI $request_uri;\n\n # Redefine header directives, as they are not inherited here:\n # See http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_set_header\n proxy_set_header X-Forwarded-Proto $scheme;\n}\n'}) TASK [ansible-role-nginx : Remove legacy vhosts.conf file.] ******************** ok: [localhost] TASK [ansible-role-nginx : Copy nginx configuration in place.] ***************** changed: [localhost] TASK [ansible-role-nginx : Ensure nginx service is running as configured.] ***** ok: [localhost] RUNNING HANDLER [ansible-role-nginx : reload nginx] **************************** changed: [localhost] PLAY RECAP ********************************************************************* localhost : ok=62 changed=5 unreachable=0 failed=0 skipped=26 rescued=0 ignored=0 + cp /mnt/tinypilot-installer/tmp/tmp.wIn4MneeL5.yml /home/tinypilot/settings.yml + chown tinypilot:tinypilot /home/tinypilot/settings.yml + chmod 0644 /home/tinypilot/settings.yml + clean_up + rm -rf /mnt/tinypilot-installer/tmp/tmp.wIn4MneeL5.yml + clean_up + sudo umount --lazy /mnt/tinypilot-installer + sudo rm -rf /opt/tinypilot-updater /mnt/tinypilot-installer 2023-09-02 00:34:35.284 __main__ INFO Update completed successfully 2023-09-02 00:34:35.285 update.result_store INFO Writing result file to /home/tinypilot/logs/latest-update-result.json 2023-09-02 00:34:35.286 update.target_version INFO Clearing target version file /home/tinypilot/target-version uStreamer configuration ==> /opt/ustreamer-launcher/configs.d/000-defaults.yml <== --- ustreamer_encoder: hw ustreamer_format: jpeg ustreamer_h264_sink: tinypilot::ustreamer::h264 ustreamer_h264_sink_mode: 777 ustreamer_h264_sink_rm: true ustreamer_interface: 127.0.0.1 ustreamer_persistent: true ustreamer_port: 8001 ustreamer_resolution: 1920x1080 ==> /opt/ustreamer-launcher/configs.d/100-tinypilot.yml <== ustreamer_encoder: hw ustreamer_format: jpeg ustreamer_h264_bitrate: 17150 ustreamer_persistent: true ustreamer_port: 8001 ustreamer_resolution: 1920x1080 uStreamer logs -- Journal begins at Sat 2023-09-02 00:51:38 BST, ends at Sat 2023-09-02 01:10:14 BST. -- Sep 02 00:51:42 tinypilot systemd[1]: Started uStreamer - Lightweight, optimized video encoder. Sep 02 00:51:44 tinypilot launch[533]: + exec /opt/ustreamer/ustreamer --host 127.0.0.1 --port 8001 --encoder hw --format jpeg --resolution 1920x1080 --persistent --h264-sink tinypilot::ustreamer::h264 --h264-sink-mode 777 --h264-sink-rm --h264-bitrate 17150 Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.337 main] -- Starting PiKVM uStreamer 5.38 ... Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.337 main] -- Using internal blank placeholder Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.337 main] -- Using H264-sink: tinypilot::ustreamer::h264 Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.338 main] -- Listening HTTP on [127.0.0.1]:8001 Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.338 http] -- Starting HTTP eventloop ... Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.338 stream] -- Using V4L2 device: /dev/video0 Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.338 stream] -- Using desired FPS: 0 Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.338 stream] -- H264: Initializing encoder ... Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.348 stream] -- H264: Configuring encoder: DMA=0 ... Sep 02 00:51:44 tinypilot launch[533]: ================================================================================ Sep 02 00:51:44 tinypilot launch[533]: -- ERROR [10.366 stream] -- Can't access device: No such file or directory Sep 02 00:51:44 tinypilot launch[533]: -- INFO [10.366 stream] -- Waiting for the device access ... Sep 02 00:51:52 tinypilot launch[533]: -- INFO [18.001 http] -- HTTP: NEW client (now=1): [192.168.68.10]:59790, id=98ee04b088b3bce2 Sep 02 00:51:55 tinypilot launch[533]: -- INFO [21.503 stream] -- H264: Requested keyframe by a sink client Sep 02 00:51:55 tinypilot launch[533]: -- INFO [21.542 http] -- HTTP: DEL client (now=0): [192.168.68.10]:59790, id=98ee04b088b3bce2, Resource temporarily unavailable (reading,eof) Sep 02 00:51:57 tinypilot launch[533]: -- INFO [23.539 stream] -- H264: Requested keyframe by a sink client Sep 02 00:53:40 tinypilot launch[533]: -- INFO [111.823 http] -- HTTP: NEW client (now=1): [192.168.68.10]:56964, id=6a238382454d7a23 Sep 02 00:53:43 tinypilot launch[533]: -- INFO [114.890 stream] -- H264: Requested keyframe by a sink client Sep 02 00:53:43 tinypilot launch[533]: -- INFO [114.921 http] -- HTTP: DEL client (now=0): [192.168.68.10]:56964, id=6a238382454d7a23, Resource temporarily unavailable (reading,eof) Sep 02 00:53:45 tinypilot launch[533]: -- INFO [116.919 stream] -- H264: Requested keyframe by a sink client nginx logs -- Journal begins at Sat 2023-09-02 00:51:38 BST, ends at Sat 2023-09-02 01:10:14 BST. -- Sep 02 00:51:42 tinypilot systemd[1]: Starting A high performance web server and a reverse proxy server... Sep 02 00:51:43 tinypilot systemd[1]: Started A high performance web server and a reverse proxy server. 2023/09/02 00:34:05 [alert] 1483#1483: *3 open socket #19 left in connection 5 2023/09/02 00:34:05 [alert] 1483#1483: *17 open socket #22 left in connection 8 2023/09/02 00:34:05 [alert] 1483#1483: *12 open socket #21 left in connection 9 2023/09/02 00:34:05 [alert] 1483#1483: *16 open socket #20 left in connection 10 2023/09/02 00:34:05 [alert] 1483#1483: aborting 2023/09/02 00:34:24 [notice] 5654#5654: signal process started 2023/09/02 00:39:55 [error] 5655#5655: *225 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.68.10, server: tinypilot, request: "HEAD /stream HTTP/2.0", upstream: "http://127.0.0.1:8001/stream", host: "tinypilot.local", referrer: "https://tinypilot.local/" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/webrtc-video.js HTTP/2.0" 200 6806 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/controllers.js HTTP/2.0" 200 18721 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/events.js HTTP/2.0" 200 1890 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/poll.js HTTP/2.0" 200 1958 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/updatelogs.js HTTP/2.0" 200 861 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/wake-on-lan.js HTTP/2.0" 200 551 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/logs.js HTTP/2.0" 200 1484 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/settings.js HTTP/2.0" 200 1900 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/clipboard.js HTTP/2.0" 200 889 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/mouse.js HTTP/2.0" 200 8492 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /third-party/fonts/fonts.css HTTP/2.0" 200 1812 "https://tinypilot.local/css/style.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /css/button.css HTTP/2.0" 200 1976 "https://tinypilot.local/css/style.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /css/cursors.css HTTP/2.0" 200 618 "https://tinypilot.local/css/style.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /third-party/fonts/overpass-light.woff2 HTTP/2.0" 200 26568 "https://tinypilot.local/third-party/fonts/fonts.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /third-party/fonts/overpass-mono-light.woff2 HTTP/2.0" 200 50112 "https://tinypilot.local/third-party/fonts/fonts.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /third-party/fonts/overpass-semibold.woff2 HTTP/2.0" 200 25032 "https://tinypilot.local/third-party/fonts/fonts.css" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/keycodes.js HTTP/2.0" 200 3205 "https://tinypilot.local/js/app.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/keyboardstate.js HTTP/2.0" 200 3164 "https://tinypilot.local/js/app.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/keystrokes.js HTTP/2.0" 200 362 "https://tinypilot.local/js/app.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/paste.js HTTP/2.0" 200 2096 "https://tinypilot.local/js/app.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /js/overlays.js HTTP/2.0" 200 495 "https://tinypilot.local/js/app.js" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /css/icons.css HTTP/2.0" 200 841 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /css/toggle.css HTTP/2.0" 200 1005 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /socket.io/?EIO=4&transport=polling&t=OfJAgqf HTTP/2.0" 200 96 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "POST /socket.io/?EIO=4&transport=polling&t=OfJAgsV&sid=3Ef5tzNPFzDFeYDzAAAD HTTP/2.0" 200 2 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /socket.io/?EIO=4&transport=polling&t=OfJAgsW&sid=3Ef5tzNPFzDFeYDzAAAD HTTP/2.0" 200 32 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /favicon.ico HTTP/2.0" 200 1213 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /favicon-32x32.png HTTP/2.0" 200 833 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:40 +0100] "GET /socket.io/?EIO=4&transport=polling&t=OfJAgsk&sid=3Ef5tzNPFzDFeYDzAAAD HTTP/2.0" 200 1 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-" 192.168.68.10 - - [02/Sep/2023:00:53:43 +0100] "GET /stream?advance_headers=1 HTTP/2.0" 200 69727 "https://tinypilot.local/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36" "-"