Closed mtlynch closed 1 year ago
⏳ @db39 please review this Pull Request
⏳ @jdeanwallace please review this Pull Request
Adding @jdeanwallace as well, so whoever can review it first.
It would be good if we can get this stack merged in so that it can be part of the 2.6.1 release.
@mtlynch - I'm currently reviewing this. I'm just doing some live device tests.
In my first live device test, there was an issue with the EDID not loading. I didn't expect the changes in this PR to have an impact on the EDID tasks, so it was a little odd. In my repeat test, there were no issues, so I'm just documenting the failure here.
On a fresh install of RaspberryPi OS Bullseye 32-bit I ran:
if ! grep --silent '^dtoverlay=tc358743$' /boot/config.txt; then
echo 'dtoverlay=tc358743' | sudo tee --append /boot/config.txt
fi
Then I ran your bundle install command:
curl \
--silent \
--show-error \
--location \
https://raw.githubusercontent.com/tiny-pilot/tinypilot/master/scripts/install-bundle | \
sudo bash -s -- \
https://output.circle-artifacts.com/output/job/e70104a2-0f1f-43b7-abe9-098d6eac2799/artifacts/0/bundler/dist/tinypilot-community-20230831T0151Z-1.9.0-87+de1916a.tgz
And received this error:
RUNNING HANDLER [ansible-role-ustreamer : load TC358743 EDID file] *************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to start service load-tc358743-edid: Job for load-tc358743-edid.service failed because the control process exited with error code.\nSee \"systemctl status load-tc358743-edid.service\" and \"journalctl -xe\" for details.\n"}
...ignoring
RUNNING HANDLER [ansible-role-ustreamer : configure TC358743 EDID loader to run at boot] ***
changed: [localhost]
RUNNING HANDLER [ansible-role-ustreamer : restart Janus] ***********************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=16 changed=8 unreachable=0 failed=0 skipped=0 rescued=0 ignored=1
+ clean_up
+ umount --lazy /mnt/tinypilot-installer
+ rm -rf /opt/tinypilot-updater /mnt/tinypilot-installer
And the output from sudo systemctl status load-tc358743-edid.service
:
● load-tc358743-edid.service - Load EDID for TC358743 HDMI capture chip.
Loaded: loaded (/lib/systemd/system/load-tc358743-edid.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2023-08-31 15:38:29 BST; 2min 0s ago
Process: 4370 ExecStart=v4l2-ctl --set-edid=file=/home/ustreamer/edids/tc358743-edid.hex --fix-edid-checksums (code=exited, status=1/FAILURE)
Main PID: 4370 (code=exited, status=1/FAILURE)
CPU: 6ms
Aug 31 15:38:29 raspberrypi systemd[1]: load-tc358743-edid.service: Scheduled restart job, restart counter is at 21.
Aug 31 15:38:29 raspberrypi systemd[1]: Stopped Load EDID for TC358743 HDMI capture chip..
Aug 31 15:38:29 raspberrypi systemd[1]: load-tc358743-edid.service: Start request repeated too quickly.
Aug 31 15:38:29 raspberrypi systemd[1]: load-tc358743-edid.service: Failed with result 'exit-code'.
Aug 31 15:38:29 raspberrypi systemd[1]: Failed to start Load EDID for TC358743 HDMI capture chip..
Then on my second test (same fresh OS install and process) loading the EDID worked as expected:
RUNNING HANDLER [ansible-role-ustreamer : load TC358743 EDID file] ************************************************************************************************************************************************
changed: [localhost]
In my first live device test, there was an issue with the EDID not loading. I didn't expect the changes in this PR to have an impact on the EDID tasks, so it was a little odd. In my repeat test, there were no issues, so I'm just documenting the failure here.
Thanks for checking! That's expected behavior.
IIRC it's failing because the TC358743 module hasn't loaded. I think we probably should have just installed it as a service and not tried to restart it and we would have avoided the error, but the issue should go away for good in #1604.
Resolves #1599
As part of our ongoing work to get rid of Ansible in our install process, this change implements the Janus Debian package install in the bundle install script rather than in Ansible.
This is also a functional change in that we're no longer adding the whole debian-backports repo as an apt-get source. Instead, we're including the specific Janus
.deb
file we want in TinyPilot's install bundle.Manual tests
For expediency, I tested builds that combined:
1605
1606
1608
For the manual tests, I verified:
In these environments:
Peer tests
To test this bundle (which combines the stack of three PRs mentioned above), run: