Add External Repos

Hello @catley,
Welcome to the forum!

Since the repo’s are required by the host system and rpm-ostree they would need to be layered packages. BTW, it isn’t bad practice to layer packages. It is in fact precisely why rpm-ostree was used for the packaging system on Silverblue. If you truly want to eliminate layering you would need to go strictly with Ostree (which is a part of rpm-ostree). So on to how to enable and use third party repos on Silverblue. You have to use the ostree command as a sudoer.

sudo ostree remote add <nameofrepo> https://pkg.surfacelinux.com/fedora/linux-surface.repo

will add the repo to your system, and it should then be easy for you to layer your drivers using rpm-ostree. Of course replace ‘nameofrepo’ with the name you want to call the repo. The command for rpm-ostree (once the repo is enabled) is …

rpm-ostree install <packagename>

Note you do not have to use sudo with rpm-ostree.
It is also worth running the following command prior to the install of the driver and after enabling the new repo …

rpm-ostree cleanup -m

This will ensure the metadata for rpm-ostree is up to date before you try to install the driver.
And one final note, you should precede the entire exercise with

rpm-ostree update

to ensure your tree is up to date prior to starting. You will likely need to systemctl reboot in between various commands such as the update command if it results in changes and creates a new commit, and definitely for the package install command. You shouldn’t need to reboot after adding the repo or cleaning up the metadata.