AVerMedia AVerTV DVB-T 777 (A16AR)
PREFACE
The Avermedia 777 is a budget pci DVB-T Card. You can get one for about 65 euros.
You must know that Avermedia777 features a Philips saa7134 and Zarlink MT352 demodulator. Acording to the documentation, the avermedia 777 is the card=85 for the saa7134
For make this card work, you need at last a vanilla kernel 2.6.17rc3. First we will see how to configure our kernel for the avermedia 777:
1 - KERNEL CONFIGURATION
DEVICE DRIVERS -> I2C ->
select:
[*] I2C Support [*] I2C Device Interface
DEVICE DRIVERS -> I2C -> I2C Algorithms
[*] I2C bit-banging interfaces
DEVICE DRIVERS -> MULTIMEDIA DEVICES ->
select:
[*] Video For Linux
DEVICE DRIVERS -> MULTIMEDIA DEVICES -> VIDEO FOR LINUX ->
select ONLY these that are marked with the asterisk:
[*] Philips SAA7134 support [*] Philips SAA7134 DMA audio support [*] DVB/ATSC Support for saa7134 based TV cards [ ] Build all supported frontends for saa7134 based TV cards [*] Zarlink MT352 DVB-T Support [ ] Philips TDA10045H/TDA10046H DVB-T Support [ ] NXT2002/NXT2004 ATSC Support
DEVICE DRIVERS -> MULTIMEDIA DEVICES -> DIGITAL VIDEO BROADCASTING DEVICES ->
select:
[*] DVB for linux [*] DVB Core support
You must select these components in the kernel configuration if you want your avermedia777 to work. You can compile-in kernel (marked as asterisk) or as Modules (typing M). Some people may think that if they compile in-kernel these components, in particular the saa7134, they won't be able to specify parameters. That's wrong.
And we are done with kernel configuration. Now compile and install.
Note A: If you compiled these options into the kernel (marked with asterisk) you must use some kernel parameters for choosing the correct Dvb-t card:
(taken from grub.conf) kernel ro i2c-scan=1 saa7134.card=85
Note B: If you compiled these options as modules (marked with capital M) don't forget the make modules and make modules_install. Then, you must load the module like this:
modprobe saa7134 card=85
2 - Software
After reboot we're done. Check /var/log/dmesg and see if kernel said something about our card, i am sure it did.
The first problem i encountered is the device node using udev. Most modern linux distros use udev, so let's check if we have /dev/dvb/adapter0/ populated. If not, we need to create the device manually. I found this script in the avermedia official page, in the section of the previous model (avermedia dvb-t 771). After running it, devices are successfully created and we can continue scanning our channels.
If you don't have /dev/dvb/adapter0/frontend0 and friends, you nedd to run this script. Copy and paste it
#!/bin/sh # Create device nodes for the Linux DVB API with DVB_API_VERSION 2. # The devices created are suitable for most current PC DVB cards, # i.e. cards having one frontend, one demux and optionally one MPEG decoder. # The script creates devices for four cards by default. # if [ -e /dev/.devfsd ]; then echo "It seems you are using devfs. Good!" exit 0 fi # # get rid of old DVB API devices; do it twice for good measure... rm -rf /dev/ost rm -rf /dev/ost rm -rf /dev/dvb rm -rf /dev/dvb # mkdir /dev/dvb chmod 755 /dev/dvb for i in `seq 0 3`; do echo "Creating DVB devices in /dev/dvb/adapter$i" mkdir /dev/dvb/adapter$i chmod 755 /dev/dvb/adapter$i mknod -m 0660 /dev/dvb/adapter$i/video0 c 212 `expr 64 \* $i + 0` mknod -m 0660 /dev/dvb/adapter$i/audio0 c 212 `expr 64 \* $i + 1` mknod -m 0660 /dev/dvb/adapter$i/frontend0 c 212 `expr 64 \* $i + 3` mknod -m 0660 /dev/dvb/adapter$i/demux0 c 212 `expr 64 \* $i + 4` mknod -m 0660 /dev/dvb/adapter$i/dvr0 c 212 `expr 64 \* $i + 5` mknod -m 0660 /dev/dvb/adapter$i/ca0 c 212 `expr 64 \* $i + 6` mknod -m 0660 /dev/dvb/adapter$i/net0 c 212 `expr 64 \* $i + 7` mknod -m 0660 /dev/dvb/adapter$i/osd0 c 212 `expr 64 \* $i + 8` chown root.video /dev/dvb/adapter$i/* done