Let me elaborate a bit. It might be long-winded, but bear with me...
Hardware support in Linux is generally very good, but not from vendors, especially from those selling cheap TV-sticks :) Instead suport if provided by all those enthusiasts that write drivers and reverse-engineer hardware as a hobby.
Support for most TV sticks consist of two things: 1. The driver that is in the Linux kernel or loaded from a file. 2. The actual tuner firmware code. Most of the time, that firmware is not loaded permanently into the stick, but rather loaded by the (windows) software that accompanies the stick.
That FW is copyrighted and thus cannot be shipped with linux.
So, if we take that PCTV tripleStick (292e) that I have. That stick is based on a Silicon Labs Si2168 chip. The linux driver is si2168.c (http://lxr.free-electrons.com/source/drivers/media/dvb-frontends/si2168.c). No need to compile, shipped with Linux. That driver downloads a firmware image when loaded. That firmware image is something you need to download, say from Antti's blog, ie dvb-demod-si2168-02.fw. You put that file in /lib/firmware.
To make things more complicated, there are several versions of that file, ie:
-rw-r--r-- 1 root root 2728 Oct 28 20:27 /lib/firmware/dvb-demod-si2168-02.fw
-rw-r--r-- 1 root root 28656 Apr 13 22:50 /lib/firmware/dvb-demod-si2168-a20-01.fw
-rw-r--r-- 1 root root 17576 Apr 13 22:50 /lib/firmware/dvb-demod-si2168-a30-01.fw
-rw-r--r-- 1 root root 6919 Apr 10 08:31 /lib/firmware/dvb-demod-si2168-b40-01.fw
For various revisions of the chipset. The actual driver will pick and download the right one:
tvburk:~ # dmesg|grep 2168
[ 8.550497] si2168 13-0064: Silicon Labs Si2168 successfully attached
[ 8.559942] usb 3-4: DVB: registering adapter 2 frontend 0 (Silicon Labs Si2168)...
[ 16.739810] si2168 13-0064: found a 'Silicon Labs Si2168-B40'
[ 16.748646] si2168 13-0064: downloading firmware from file 'dvb-demod-si2168-b40-01.fw'
[ 16.950927] si2168 13-0064: firmware version: 4.0.11
.
https://www.linuxtv.org/wiki/index.php/DVB-T_PCI_Cards
So, basically. You need to know the chipset. If it is suported, then it is usually just a case of putting the firmware file in /lib/firmware.
This is just an example, to describe how it works. A good resource is the LinuxTV Wiki
The sticks i have, have si2168, mn88473 and RTL2832.
w_scan is a good tool to see the details:
w_scan -fc -cFI
w_scan version 20141122 (compiled for DVB API 5.10)
using settings for FINLAND
DVB cable
DVB-C FI
scan type CABLE, channellist 8
output format vdr-2.0
WARNING: could not guess your codepage. Falling back to 'UTF-8'
output charset 'UTF-8', use -C <charset> to override
Info: using DVB adapter auto detection.
/dev/dvb/adapter0/frontend0 -> "Realtek RTL2832 (DVB-T)" doesnt support CABLE -> SEARCH NEXT ONE.
/dev/dvb/adapter0/frontend1 -> CABLE "Panasonic MN88473": very good :-))
Hope this helps.