TBS tuner ? The wrong tuner card for Linux!

Since 6 months I bought a new satellite dish, which point to Astra so I can improve my Deutsch :). I used an old Pinnacle card as a receiver, but this old card doesn’t support dvb-s2. On the same machine I have two other cards:

  • TerraTec Cinergy T PCIe dual
  • Technisat Skystar2 PCI DVB-S

Recently some German channels (Das Erste HD, Arte HD,  ZDF HD,…) started to transmit in HD using the dvbs2 standard, so I decided to buy a new card. the requirements where very simple:

  • low profile, so if I decide to buy a new case I can choose a smaller one
  • support for dvb-s2
  • compatible with linux, without too much pain (based on my experience on linux there is always some pain)
  • remote not needed, in fact for me a new remote is simply a new trash
  • not too expensive, in fact i replace an already working card

After googling around for a while I found the card that looked good for my needs, and reading the instructions the driver seems really simple to install, my choice was the TBS6922. A few days later the card is delivered and in a few minutes the card gets installed. I follow strictly the build instructions and surprise surprise… the card works, but my TerraTec Cinergy T PCIe dual doesn’t work anymore. I lost a whole day trying to make everything work and at the end I also upgraded my HTPC station to the unstable release of Ubuntu 13.04 getting each hour more and more angry, and with kernel 3.8.?? the driver doesn’t build anymore.

What the people in TBS call driver is in fact a the whole kernel module for video, including the base video, video_buf, video_dvb and all other video/card drivers from an old version of linux! Yes! Your system gets downgraded, in fact if you install the TBS driver all your kernel modules in kernel/drivers/video get downgraded to an older version and you will never ever know which older version it is. So you will experiment things not working, bugs out-coming, compatibility issues and all you can thing about when you install old (obsolete) things on newer system with recent hardware.

What TBS developer should do is simply inform better on their site that they make their hardware working on linux by potentially braking the functionality of other hardware. Technically the approach approach should  be a dkms module like nvidia or others.

I’m still waiting from the TBS people a solution to my issue, perhaps I will receive an answer only after the  TerraTec Cinergy T PCIe dual has become obsolete…hope someone on the internet will help. If you have some hint please write me 🙂

eCryptfs/ext4 issue

Some days ago, playing with some kernel modules I broke the suspend subsystem of my laptop, so a hard reset is needed each time I try to suspend my laptop. Nothing too bad, but with ext4 this could lead to filesystem corruption, and in deed this happend.

Looking at the dmesg log i saw thios two errors repeated many times:

[  761.247262] Valid eCryptfs headers not found in file header region or xattr region, inode 1179676
[  761.247265] Either the lower file is not in a valid eCryptfs format, or the key could not be retrieved. Plaintext passthrough mode is not enabled; returning -EIO

Googling arround I found a possible bug with a possible solution, the bug seems to be related to 0 size files, so I tried the suggested command by my own:

find . -xdev -size 0c -exec ls ‘{}’ \; | wc -l

The command generated some permission issues, some files had root permisisons so first I had to corret this problems, with a chown:

Some days ago, playing with some kernel modules I broke the suspend subsystem of my laptop, so a hard reset is needed each time I try to suspend my laptop. Nothing too bad, but with ext4 this could lead to filesystem corruption, and in deed this happend.

Looking at the dmesg log i saw thios two errors repeated many times:

[  761.247262] Valid eCryptfs headers not found in file header region or xattr region, inode 1179676
[  761.247265] Either the lower file is not in a valid eCryptfs format, or the key could not be retrieved. Plaintext passthrough mode is not enabled; returning -EIO

Googling arround I found a possible bug with a possible solution, the bug seems to be related to 0 size files, so I tried the suggested command by my own:

find . -xdev -size 0c -exec ls ‘{}’ \; | wc -l

The command generated some permission issues, some files had root permisisons so first I had to corret this problems, with a chown:

sudo chown luigi.luigi /home/luigi -R

And this command generated some  errors:

chown: cambiamento del proprietario di “/home/luigi/.cache/zeitgeist/daemon.log”: Errore di input/output
chown: cambiamento del proprietario di “/home/luigi/.cache/desktop-couch/desktop-couchdb.stderr.1”: Errore di input/output
chown: cambiamento del proprietario di “/home/luigi/.cache/desktop-couch/desktop-couchdb.stdout.1”: Errore di input/output
chown: cambiamento del proprietario di “/home/luigi/.cache/desktop-couch/desktop-couchdb.log.1”: Errore di input/output
chown: cambiamento del proprietario di “/home/luigi/.cache/desktop-couch/desktop-couchdb.pid”: Errore di input/output
chown: cambiamento del proprietario di “/home/luigi/.thunderbird/4bj3pb97.default/global-messages-db.sqlite-journal”: Errore di input/output

Looking at the dmesg I found out that each time I tried to read one on these file I got an error. Searching for 0 size files leads me to more than 700 files, but the error isn’t so spread to be reconducted to 700 files.

These files have in deed 0 byte size and deleting only these files solved the issue. So don’t follow the reported soluting for bug #372014 because you will delete many files which doesn’t need to be deleted.

You don’t need to search for 0 size files but, for files which has been corrupted by ext4 and cannot be decrypted, the only way to find this files is to open them in any way. (cat or chown or anything else)

 

 

 

Using new imon devinput with lirc

I don’t know exacly untile when but the imon lcd support has been merged  into the linux kernel using devinput.

This means that if you want to use the lirc_imon driver you need to blacklist the imon driver shipped with the kernel. You just need to add the following lines in the /etc/modprobe.d/blacklist.conf file:

blacklist rc_imon_pad

blacklist imon

After this you can proceed followingone of the lirc guides related to imon you find on the web.

But if you want to use the new devinput module, which in fact make thinks easier, you just leave the modules as they are and just edit the Hardware.conf file (/etc/lirc/hardware.conf):

# /etc/lirc/hardware.conf
#
#Chosen Remote Control
REMOTE=”Linux input layer (/dev/input/eventX)”
REMOTE_MODULES=””
REMOTE_DRIVER=”devinput”
REMOTE_DEVICE=”/dev/input/by-id/usb-15c2_0038-event-if00″
REMOTE_SOCKET=””
REMOTE_LIRCD_CONF=”devinput/lircd.conf.devinput”
REMOTE_LIRCD_ARGS=””

#Enable lircd
START_LIRCD=”true”

And in the lirc configuration file /etc/lirc/lircd.conf you should put this line:

#Configuration for the Linux input layer (/dev/input/eventX) remote:
include “/usr/share/lirc/remotes/devinput/lircd.conf.devinput”

This work good on my ubutu 11.10, perhaps you need to adjust some paths if your distro is different.

PLS NOTE Done this way the knob on my antec fusion doesn’t work neigther the blue key on the remote. The kno generates events on a different device: /dev/input/by-id/usb-15c2_0038-event-mouse

So you have to chain two distinct lirc servers togethere:

/usr/sbin/lircd –pidfile=/var/run/lirc/lircd1.pid –output=/var/run/lirc/lircd1 –driver=devinput –device=/dev/input/by-id/usb-15c2_0038-event-mouse –listen/usr/sbin/lircd –output=/var/run/lirc/lircd –driver=devinput –device=/dev/input/by-id/usb-15c2_0038-event-if00 –connect=localhost 8765

This way you find events of both devices on the socket /var/run/lirc/lircd.

Due to a driver bug, which i will investigate, the knob gets temporarly disabled if you press some particular key. For example if you press the yellow tv button the kno will not work anymore, until you press a number button of the remote.

To make the two instances of lirc to startup at boot time i added an upstart script /etc/init/htpc-lirc.conf:

description    “HTPC lirc daemon”

start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]

script
mkdir /var/run/lirc -p
/usr/sbin/lircd –pidfile=/var/run/lirc/lircd1.pid –output=/var/run/lirc/lircd1 –driver=devinput –device=/dev/input/by-id/usb-15c2_0038-event-mouse –listen
/usr/sbin/lircd –output=/var/run/lirc/lircd –driver=devinput –device=/dev/input/by-id/usb-15c2_0038-event-if00 –connect=localhost:8765
end script

Finally link it init.d

ln -s /lib/init/upstart-job /etc/init.d/htpc-lirc

 

 

 

WP to LinkedIn Auto Publish Powered By : XYZScripts.com