Astra-SM is installable on Linux with no problem, you have to download and build it yourself, it doesn't take very long though.
As for TVHeadend, it's a bit more involved because TVHeadend doesn't let services have generic 'data' PIDs like Enigma2 does now (with the c:15xxxx option). I can write a guide but it will take a little bit of time.
For Abertis, I use a small C program, but there's also a little Python3 script that works as part of a pipe -
Python:
import sys
pid = int(sys.argv[1])
packet = sys.stdin.buffer.read(188)
while packet !="":
tspid = ((packet[1] & 0x1f) << 8) | packet[2]
if tspid == pid :
afc = packet[3] & 0x30
if afc == 0x10 :
sys.stdout.flush()
sys.stdout.buffer.write(packet[4:])
elif afc == 0x30 :
sys.stdout.flush()
sys.stdout.buffer.write(packet[packet[4]+5:])
packet = sys.stdin.buffer.read(188)
Save as
abertis.py
I can go through how that then works with TVHeadend, but it will take a little more time to write