TinyPilot Pro log dump
https://tinypilotkvm.com
Timestamp: 2023-11-28T23:36:11+00:00

Software versions
TinyPilot version: 2.6.1
uStreamer version: 5.38

System information
OS version: Linux tinypilot 5.15.84-v7l+ #1613 SMP Thu Jan 5 12:01:26 GMT 2023 armv7l GNU/Linux
Kernel architecture: armv7l
Userland architecture: armhf (32-bit)
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
Network interfaces:
  eth0 (up)
  lo (unknown)
  wlan0 (down)
Mouse jiggler: disabled
CPU Temperature: 47.2'C
CPU throttled since boot: no

Voltage issues: no

TinyPilot settings.yml
ustreamer_quality: 100

TinyPilot configuration
[Unit]
Description=TinyPilot - RPi-based virtual KVM
BindsTo=nginx.service
After=syslog.target network.target nginx.service
StartLimitIntervalSec=0

[Service]
Type=simple
User=tinypilot
WorkingDirectory=/opt/tinypilot
ExecStart=/opt/tinypilot/venv/bin/python app/main.py
Environment=APP_SETTINGS_FILE=/home/tinypilot/app_settings.cfg
Restart=always

[Install]
WantedBy=multi-user.target

TinyPilot logs
-- Journal begins at Tue 2023-11-28 23:26:57 GMT, ends at Tue 2023-11-28 23:36:11 GMT. --
Nov 28 23:27:03 tinypilot systemd[1]: Started TinyPilot - RPi-based virtual KVM.
Nov 28 23:27:07 tinypilot python[612]: 2023-11-28 23:27:07.840 __main__        INFO Starting app
Nov 28 23:27:24 tinypilot python[612]: 2023-11-28 23:27:24.482 db.store        INFO Loading database migrations from /opt/tinypilot/app/db/migrations/*.sql
Nov 28 23:27:24 tinypilot python[612]: 2023-11-28 23:27:24.490 db.store        INFO Read 7 database migrations from disk
Nov 28 23:27:24 tinypilot python[612]: 2023-11-28 23:27:24.622 socket_api      INFO Client PcX3mOF1fBHybZL5AAAB connected
Nov 28 23:27:25 tinypilot python[612]: 2023-11-28 23:27:25.091 socket_api      INFO Client he4t_920J6yOH2w8AAAE connected
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
Nov 28 23:28:00 tinypilot python[612]: 2023-11-28 23:28:00.889 local_system    INFO Retrieving local system's kernel version
Nov 28 23:28:00 tinypilot python[612]: 2023-11-28 23:28:00.913 local_system    INFO Retrieved local system's kernel version as 5.15.84-v7l+
Nov 28 23:28:00 tinypilot python[612]: 2023-11-28 23:28:00.914 local_system    INFO Retrieving local system's distribution name
Nov 28 23:28:01 tinypilot python[612]: 2023-11-28 23:28:01.221 local_system    INFO Retrieved local system's distribution name as Raspbian
Nov 28 23:28:01 tinypilot python[612]: 2023-11-28 23:28:01.222 local_system    INFO Retrieving local system's distribution version
Nov 28 23:28:01 tinypilot python[612]: 2023-11-28 23:28:01.387 local_system    INFO Retrieved local system's distribution version as 11
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.433 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.452 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:03 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:03 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:03 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:03 tinypilot python[612]:     file.write(version)
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.479 update_logs     INFO Running read-update-log
Nov 28 23:28:03 tinypilot sudo[830]: tinypilot : PWD=/opt/tinypilot ; USER=root ; COMMAND=/opt/tinypilot-privileged/scripts/read-update-log
Nov 28 23:28:03 tinypilot sudo[830]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=110)
Nov 28 23:28:03 tinypilot sudo[830]: pam_unix(sudo:session): session closed for user root
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.784 update_logs     INFO read-update-log completed successfully
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.849 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.851 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:03 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:03 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:03 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:03 tinypilot python[612]:     file.write(version)
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.915 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:03 tinypilot python[612]: 2023-11-28 23:28:03.916 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:03 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:03 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:03 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:03 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:03 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:03 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:03 tinypilot python[612]:     file.write(version)
Nov 28 23:28:03 tinypilot python[612]: OSError: [Errno 28] No space left on device
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
Nov 28 23:28:37 tinypilot python[612]: 2023-11-28 23:28:37.966 local_system    INFO Retrieving local system's kernel version
Nov 28 23:28:37 tinypilot python[612]: 2023-11-28 23:28:37.991 local_system    INFO Retrieved local system's kernel version as 5.15.84-v7l+
Nov 28 23:28:37 tinypilot python[612]: 2023-11-28 23:28:37.992 local_system    INFO Retrieving local system's distribution name
Nov 28 23:28:38 tinypilot python[612]: 2023-11-28 23:28:38.189 local_system    INFO Retrieved local system's distribution name as Raspbian
Nov 28 23:28:38 tinypilot python[612]: 2023-11-28 23:28:38.191 local_system    INFO Retrieving local system's distribution version
Nov 28 23:28:38 tinypilot python[612]: 2023-11-28 23:28:38.356 local_system    INFO Retrieved local system's distribution version as 11
Nov 28 23:28:39 tinypilot python[612]: 2023-11-28 23:28:39.981 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:39 tinypilot python[612]: 2023-11-28 23:28:39.983 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:39 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:39 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:39 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:39 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:39 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:39 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:39 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:39 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:39 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:39 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:39 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:39 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:39 tinypilot python[612]:     file.write(version)
Nov 28 23:28:39 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.060 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.063 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:40 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:40 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:40 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:40 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:40 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:40 tinypilot python[612]:     file.write(version)
Nov 28 23:28:40 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.148 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.149 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:28:40 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:28:40 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:28:40 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:28:40 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:28:40 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:28:40 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:28:40 tinypilot python[612]:     file.write(version)
Nov 28 23:28:40 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.164 update_logs     INFO Running read-update-log
Nov 28 23:28:40 tinypilot sudo[847]: tinypilot : PWD=/opt/tinypilot ; USER=root ; COMMAND=/opt/tinypilot-privileged/scripts/read-update-log
Nov 28 23:28:40 tinypilot sudo[847]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=110)
Nov 28 23:28:40 tinypilot sudo[847]: pam_unix(sudo:session): session closed for user root
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.254 update_logs     INFO read-update-log completed successfully
Nov 28 23:28:40 tinypilot python[612]: 2023-11-28 23:28:40.476 socket_api      INFO Client PcX3mOF1fBHybZL5AAAB disconnected
[SENSITIVE DATA REDACTED]
Nov 28 23:33:06 tinypilot python[612]: 2023-11-28 23:33:06.919 local_system    INFO Retrieving local system's kernel version
Nov 28 23:33:06 tinypilot python[612]: 2023-11-28 23:33:06.942 local_system    INFO Retrieved local system's kernel version as 5.15.84-v7l+
Nov 28 23:33:06 tinypilot python[612]: 2023-11-28 23:33:06.945 local_system    INFO Retrieving local system's distribution name
Nov 28 23:33:07 tinypilot python[612]: 2023-11-28 23:33:07.128 local_system    INFO Retrieved local system's distribution name as Raspbian
Nov 28 23:33:07 tinypilot python[612]: 2023-11-28 23:33:07.129 local_system    INFO Retrieving local system's distribution version
Nov 28 23:33:07 tinypilot python[612]: 2023-11-28 23:33:07.276 local_system    INFO Retrieved local system's distribution version as 11
[SENSITIVE DATA REDACTED]
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.090 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.092 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:33:35 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:33:35 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:33:35 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:33:35 tinypilot python[612]:     file.write(version)
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.186 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.189 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:33:35 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:33:35 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:33:35 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:33:35 tinypilot python[612]:     file.write(version)
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.271 update.target_version INFO Writing target version 2.6.2 to file /home/tinypilot/target-version
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.272 __main__        ERROR [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: During handling of the above exception, another exception occurred:
Nov 28 23:33:35 tinypilot python[612]: Traceback (most recent call last):
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1484, in full_dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     rv = self.dispatch_request()
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/venv/lib/python3.9/site-packages/flask/app.py", line 1469, in dispatch_request
Nov 28 23:33:35 tinypilot python[612]:     return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/api.py", line 549, in update_put
Nov 28 23:33:35 tinypilot python[612]:     update.launcher.start_async(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/launcher.py", line 40, in start_async
Nov 28 23:33:35 tinypilot python[612]:     update.target_version.declare(target_version)
Nov 28 23:33:35 tinypilot python[612]:   File "/opt/tinypilot/app/update/target_version.py", line 24, in declare
Nov 28 23:33:35 tinypilot python[612]:     file.write(version)
Nov 28 23:33:35 tinypilot python[612]: OSError: [Errno 28] No space left on device
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.288 update_logs     INFO Running read-update-log
Nov 28 23:33:35 tinypilot sudo[865]: tinypilot : PWD=/opt/tinypilot ; USER=root ; COMMAND=/opt/tinypilot-privileged/scripts/read-update-log
Nov 28 23:33:35 tinypilot sudo[865]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=110)
Nov 28 23:33:35 tinypilot sudo[865]: pam_unix(sudo:session): session closed for user root
Nov 28 23:33:35 tinypilot python[612]: 2023-11-28 23:33:35.387 update_logs     INFO read-update-log completed successfully
[SENSITIVE DATA REDACTED]
[SENSITIVE DATA REDACTED]
Nov 28 23:36:11 tinypilot sudo[872]: tinypilot : PWD=/opt/tinypilot ; USER=root ; COMMAND=/opt/tinypilot-privileged/scripts/collect-debug-logs -q
Nov 28 23:36:11 tinypilot sudo[872]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=110)

TinyPilot update logs
ok: [localhost]
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] ****
ok: [localhost]
TASK [ansible-role-ustreamer : enable TC358743-audio overlay in /boot/config.txt] ***
ok: [localhost]
TASK [ansible-role-ustreamer : set GPU memory to 256MB in /boot/config.txt] ****
ok: [localhost]
TASK [ansible-role-ustreamer : check for a boot cmdline file] ******************
ok: [localhost]
TASK [ansible-role-ustreamer : read /boot/cmdline.txt] *************************
ok: [localhost]
TASK [ansible-role-ustreamer : decode command-line string] *********************
ok: [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] ****************************
ok: [localhost]
TASK [ansible-role-ustreamer : copy TC358743 EDID file] ************************
changed: [localhost]
TASK [ansible-role-ustreamer : install TC358743 initializer service] ***********
ok: [localhost]
TASK [ansible-role-ustreamer : use custom settings for TC358743 chip for any facts not already defined] ***
ok: [localhost]
TASK [ansible-role-ustreamer : remove TC358743 initializer service file] *******
skipping: [localhost]
TASK [ansible-role-ustreamer : disable TC358743 overlay in /boot/config.txt] ***
skipping: [localhost]
TASK [ansible-role-ustreamer : disable TC358743-audio overlay in /boot/config.txt] ***
skipping: [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)
skipping: [localhost] => (item=ustreamer_resolution)
skipping: [localhost] => (item=ustreamer_desired_fps)
ok: [localhost] => (item=ustreamer_workers)
skipping: [localhost] => (item=ustreamer_quality)
skipping: [localhost] => (item=ustreamer_brightness)
ok: [localhost] => (item=ustreamer_persistent)
ok: [localhost] => (item=ustreamer_use_dv_timings)
ok: [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_drop_same_frames": "30",
        "ustreamer_encoder": "m2m-image",
        "ustreamer_format": "uyvy",
        "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_use_dv_timings": true,
        "ustreamer_workers": "3"
    }
}
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=69   changed=6    unreachable=0    failed=0    skipped=19   rescued=0    ignored=0
+ cp /mnt/tinypilot-installer/tmp/tmp.cEdnCoPzjh.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.cEdnCoPzjh.yml
+ clean_up
+ sudo umount --lazy /mnt/tinypilot-installer
+ sudo rm -rf /opt/tinypilot-updater /mnt/tinypilot-installer

uStreamer configuration
==> /opt/ustreamer-launcher/configs.d/000-defaults.yml <==
# Settings for TC358743 HDMI to CSI-2 bridge, which are included on the
# TinyPilot Voyager series of devices.
---
ustreamer_encoder: m2m-image
ustreamer_format: uyvy
ustreamer_use_dv_timings: true
ustreamer_workers: "3"
ustreamer_drop_same_frames: "30"

==> /opt/ustreamer-launcher/configs.d/100-tinypilot.yml <==
ustreamer_quality: 100

uStreamer logs
-- Journal begins at Tue 2023-11-28 23:26:57 GMT, ends at Tue 2023-11-28 23:36:11 GMT. --
Nov 28 23:27:02 tinypilot systemd[1]: Started uStreamer - Lightweight, optimized video encoder.
Nov 28 23:27:04 tinypilot launch[569]: + exec /opt/ustreamer/ustreamer --port 48001 --persistent --h264-sink tinypilot::ustreamer::h264 --h264-sink-mode 777 --h264-sink-rm --encoder m2m-image --format uyvy --workers 3 --quality 100 --drop-same-frames 30 --dv-timings
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985      main] -- Starting PiKVM uStreamer 5.38 ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985      main] -- Using internal blank placeholder
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985      main] -- Using H264-sink: tinypilot::ustreamer::h264
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985      main] -- Listening HTTP on [127.0.0.1]:48001
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985    stream] -- Using V4L2 device: /dev/video0
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.985    stream] -- Using desired FPS: 0
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.986      http] -- Starting HTTP eventloop ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [12.986    stream] -- H264: Initializing encoder ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.016    stream] -- H264: Configuring encoder: DMA=0 ...
Nov 28 23:27:04 tinypilot launch[569]: ================================================================================
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.034    stream] -- Device fd=10 opened
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.034    stream] -- Using input channel: 0
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.041    stream] -- Got new DV-timings: 1920x1080p30.00, pixclk=79872960, vsync=22, hsync=496
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.078    stream] -- Using resolution: 1920x1080
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.078    stream] -- Using format: UYVY
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.078    stream] -- Querying HW FPS changing is not supported
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.078    stream] -- Using IO method: MMAP
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.088    stream] -- Requested 5 device buffers, got 5
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- Capturing started
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- JPEG-0: Initializing encoder ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- JPEG-1: Initializing encoder ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- JPEG-2: Initializing encoder ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- Using JPEG quality: 100%
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- Creating pool JPEG with 3 workers ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.095    stream] -- Capturing ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.117    stream] -- H264: Configuring encoder: DMA=1 ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.117      jw-0] -- JPEG-0: Configuring encoder: DMA=0 ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.157      jw-1] -- JPEG-1: Configuring encoder: DMA=0 ...
Nov 28 23:27:04 tinypilot launch[569]: -- INFO  [13.188      jw-2] -- JPEG-2: Configuring encoder: DMA=0 ...
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.538    stream] -- Got V4L2 event
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.539    stream] -- Got V4L2_EVENT_SOURCE_CHANGE: source changed
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.539    stream] -- Destroying workers pool JPEG ...
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.574    stream] -- Capturing stopped
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.578    stream] -- Device fd=10 closed
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.578    stream] -- Changed video frame to BLANK
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.582    stream] -- H264: Configuring encoder: DMA=0 ...
Nov 28 23:27:05 tinypilot launch[569]: ================================================================================
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.602    stream] -- Device fd=10 opened
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.603    stream] -- Using input channel: 0
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.609    stream] -- Got new DV-timings: 1920x1080p30.00, pixclk=79872960, vsync=22, hsync=496
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.629    stream] -- Using resolution: 1920x1080
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.629    stream] -- Using format: UYVY
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.629    stream] -- Querying HW FPS changing is not supported
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.629    stream] -- Using IO method: MMAP
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.640    stream] -- Requested 5 device buffers, got 5
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.647    stream] -- Capturing started
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.647    stream] -- Using JPEG quality: 100%
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.647    stream] -- Creating pool JPEG with 3 workers ...
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.647    stream] -- Capturing ...
Nov 28 23:27:05 tinypilot launch[569]: -- INFO  [13.651    stream] -- H264: Configuring encoder: DMA=1 ...
Nov 28 23:27:25 tinypilot launch[569]: -- INFO  [33.352      http] -- HTTP: NEW client (now=1): [192.168.50.120]:41316, id=155ce6ccddd2d188

nginx logs
-- Journal begins at Tue 2023-11-28 23:26:57 GMT, ends at Tue 2023-11-28 23:36:11 GMT. --
Nov 28 23:27:02 tinypilot systemd[1]: Starting A high performance web server and a reverse proxy server...
Nov 28 23:27:03 tinypilot systemd[1]: Started A high performance web server and a reverse proxy server.