You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our Ansible role for uStreamer is slow and complicated, so we're going to reimplement it as a Debian package.
Considerations
The highest priority item is compiling the uStreamer binary ahead of time rather than on the user's device.
Compiling on device adds IIRC 20s per install
We want to compile both an AMD64 and ARMv7 binary
The AMD64 is so that we can test everything in CI
ARMv7 is for actual TinyPilot devices
We should be able to combine concepts from janus-debian and picoshare to compile for both architectures
In the Ansible role, we only compile using the WITH_JANUS compilation option in some cases, but it's fine if our Debian package always has that option set.
In general, our Debian package is optimized for TinyPilot and is not aimed at general-purpose usage.
If it's easy to preserve the compile from source code paths in Ansible, we should do that, but only if it's really easy.
We seem to be the only consumers of the uStreamer Ansible role, so there's no sense in maintaining code nobody's using.
If it would be easier to combine our ansible-role-ustreamer repo and the Debian package repo into a single repo, I'm open to doing that.
This would prevent a situation where we have to keep making parallel changes in both ansible-role-ustreamer and ustreamer-debian repos.
We can also consider pulling everything into the core tinypilot / tinypilot-pro repos.
I just want to avoid having multiple live copies of the Ansible code.
We need to decide whether it makes sense to manage the TC358743 EDID as part of the TinyPilot Debian package, the uStreamer Debian package, or somewhere else.
The uStreamer package should work for users on TC358743 systems (like the Voyager series) and HDMI to USB dongles (Hobbyist kit, DIY users).
Structure
We're going to move from the Ansible implementation to the Debian package incrementally, as we're doing with the TinyPilot Ansible role.
We'll start by having the Ansible role install our Debian package instead of compiling uStreamer from source. And then we'll just keep moving more logic from Ansible to Debian incrementally.
We should structure the work in milestones so that at the end of the milestone, we have a usable chunk of work that puts us in a better position than we were at the start of the milestone.
Team
@jdeanwallace will be project architect and advise the project based on his experience converting the TinyPilot Ansible role to Debian.
I don't think we can use it because we need the WITH_JANUS compilation option
Deliverable
Create a mega-ticket with a list of milestones and tasks for each milestone. Hold off on creating issues for each task until the plan has been reviewed.
I don't think we can use it because we need the WITH_JANUS compilation option
Agreed. The uStreamer binary gets built with no extra make flags, which we need. Besides, uStreamer Debian packages aren't up to date, even the unstable suite only has version 4.9-1.
We need to decide whether it makes sense to manage the TC358743 EDID as part of the TinyPilot Debian package, the uStreamer Debian package, or somewhere else.
uStreamer can now load a custom EDID before it starts, so it might make sense to keep the EDID in the uStreamer Debian package. See https://github.com/pikvm/ustreamer#edid
I've added #2 with my proposed list of MEGA-TICKET tasks. Should I request a review from you or Jan?
I'll review.
uStreamer can now load a custom EDID before it starts, so it might make sense to keep the EDID in the uStreamer Debian package. See https://github.com/pikvm/ustreamer#edid
Overview
Our Ansible role for uStreamer is slow and complicated, so we're going to reimplement it as a Debian package.
Considerations
WITH_JANUS
compilation option in some cases, but it's fine if our Debian package always has that option set.Structure
We're going to move from the Ansible implementation to the Debian package incrementally, as we're doing with the TinyPilot Ansible role.
We'll start by having the Ansible role install our Debian package instead of compiling uStreamer from source. And then we'll just keep moving more logic from Ansible to Debian incrementally.
We should structure the work in milestones so that at the end of the milestone, we have a usable chunk of work that puts us in a better position than we were at the start of the milestone.
Team
Prior work
WITH_JANUS
compilation optionDeliverable
Create a mega-ticket with a list of milestones and tasks for each milestone. Hold off on creating issues for each task until the plan has been reviewed.
References
The text was updated successfully, but these errors were encountered: