Here is a step by step guide on how I set up Hauppauge’s WinTV-SoloHD usb On Debian 11.
1. Identifying the firmware that the tuner needs. Do this after device is plugged in:
sudo dmesg
36.588466] si2168 9-0064: firmware: failed to load dvb-demod-si2168-b40-01.fw (-2)
[ 36.588471] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
[ 36.588473] si2168 9-0064: Direct firmware load for dvb-demod-si2168-b40-01.fw failed with error -2
[ 36.588476] si2168 9-0064: firmware file ‘dvb-demod-si2168-b40-01.fw’ not found
[ 36.699450] si2157 10-0060: found a ‘Silicon Labs Si2157-A30 ROM 0x50’
[ 36.699468] si2157 10-0060: firmware: failed to load dvb-tuner-si2157-a30-01.fw (-2)
[ 36.699472] si2157 10-0060: Can’t continue without a firmware.
2. Locate suitable firmwares. Suitable ones were found from Elec Github.
Download:
https://github.com/OpenELEC/dvb-firmware/blob/master/firmware/dvb-demod-si2168-b40-01.fw
https://github.com/CoreELEC/dvb-firmware/blob/master/firmware/dvb-tuner-si2157-a30-01.fw
3. Copy firmwares to correct locations:
sudo cp ./Downloads/dvb-demod-si2168-b40-01.fw /lib/firmware/dvb-demod-si2168-b40-01.fw
sudo cp ./Downloads/dvb-tuner-si2157-a30-01.fw /lib/firmware/dvb-tuner-si2157-a30-01.fw
Unplug and plug the usb tuner back to computer again. See if dmesg errors disappear.

4. If you chose to install kaffeine and tune your channels with it, you are good to go. We go one step forward and do things the hard way.
5. Install w-scan and scan for frequencies:
sudo apt install w-scan -y
Using cable scan here with Finland as a country:
w_scan -fc -c FI > channels.conf

6. Begin installing the vdr stuff:
sudo apt install vdr vdr-plugin-xineliboutput xineliboutput-sxfe -y
7. Install vdr-live plugin:
sudo apt install vdr-plugin-live -y
8. Install vdr server plugin:
sudo apt-get install vdr-plugin-streamdev-server -y
9.Copy channels.conf to vdr:
sudo cp channels.conf /var/lib/vdr/channels.conf
10. Open vdr config and customize things if needed: sudo nano /etc/vdr/plugins/streamdevhosts.conf
11. Start vdr service:
sudo service vdr start
12. Verify vdr status:
sudo service vdr status
If needed, get port from the status command – do this right after starting the vdr.
Port is usually something like: 37890.
13. Optional: Navigate to: http://127.0.0.1:3000/
From there you can list your channels and download playlists etc.

14. Viewing the TV:
Go to: http://127.0.0.1:8008/
Default credentials are:
user: admin
pass: live

From Vdr-Live we can list channels.

But when we try to start viewing something on the browser, we get this, regardless of the browser:

This is due to plugin deprecation – a needed plugin seems to have gone obsolete on Linux. A quick fix to this is: sudo apt-get install vlc -y and opening the network stream from there. We can use the address that Vdr-Live gives us to view a specific channel of our choice.