I knew nothing about linux 2 years ago and started with installing Debian on my surface go 2. This explains why I couldn’t get the web cam to work to this day.
I’m not sure what do you mean by firmware blob but Ive done the following:
Added non-free to the sources file.
Installed Surface-linux lib.
There is a guide in surface-linux library which requires compiling something with CMAKE. I’m not comfortable at the moment to do it since I don’t have the time to fix it if something went wrong.
I couldn’t find a good touch gui for debian so ill give ubuntu a shot.
In the non-free repo, there should be something like firmware-broadcom, firmware-amd, firmware-intel, etc. Those are binary blobs, closed source firmware (supplied by the manufacturer) that is loaded in the device in order to make it work with the linux kernel. See the make and model od the device via lspci or lsusb (depends on how the device is connected to the PC) and see the make and model. If it's, let's say, Broadcom, install the Broadcom firmware package and restart the rig.
Regarding cmake, you could use BTRFS to revert everything back to the way it was, just make a restore point before doing make install.