Add External Repos

Hey everyone,

I’m new to this forum, want to say Hello! :tada: I’m also new to Fedora but wanted to try Silverblue as it sounds INCREDIBLE.

Wanted to ask how you add external repos in Silverblue, I know adding them in the package layer is bad practice, however it’s for the linux-surface driver for my Surface Book 2, I did try and do it in a container but obviously this did not work, yet I still tried… ha.

The code repo is: https://github.com/linux-surface/linux-surface/
The code snippet I’m trying to ‘convert’ for Silverblue is:

sudo dnf config-manager
–add-repo=https://pkg.surfacelinux.com/fedora/linux-surface.repo

Has any one got any ideas?

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.

Thank you @jakfrost that’s much appreciated. Unforunately I can’t use Silverblue on my Surface book 2 as it’s something to do with the kernel needing to be called “Kernel” so the surface kernel doesn’t work on it.
As shown here: https://github.com/linux-surface/linux-surface/issues/130
And another github issue on rpm-ostree also: https://github.com/coreos/rpm-ostree/issues/1947

I think that there is a minor workaround as the guy in the last link said that he did it, but I’m unable to find out what he did as I’m still new to Fedora and linux in general, though willing to learn! :slight_smile:

You’re welcome, sorry it didn’t result in SB being installed on your Surface Pro.

It looks as if the PR was issued for the fix and it is waiting on the OK for Test stage. Keep an eye on rawhide and the F33SB beta release for it to pop up as it should get mention in release notes. Anyway, now you know how to enable 3rd party repo’s on SB, woo hoo!

1 Like