Linux suspend issues

It’s been quite a lot of time that mi HTPC remained turned on, when I tried to suspend the system I had plenty of issues.

First issue is that dvb didn’t resume correctly generating a lot of “m88ds3103 0-0069: i2c wr failed=-6″ errors.” after resume and DVB not working at all. For a HTPC it’s a big issue since the main purpose of the HTPC is view dvb content. It seemed I just needed to remove the m88ds3103 module and insert it again after suspend. Sadly the module showed three usages

htpc@htpc:~$ lsmod |grep m88
m88ds3103 32768 3 cx23885

Removing the cx23885 module still show 2 usages without any clear indication of what is going on:

htpc@htpc:~$ lsmod |grep m88
m88ds3103 32768 2

No way to remove the module. After various tentative I identified the module that kept m88ds3103 busy, it’s the smipcie module, so to remove the m88ds3103 module I first need to remove the smipcie module. From my point of view this should be considered a defect either in the lsmod or in the module itself, since no dependency module is identified.

the second issue is related to the HTPC waking up just after suspending. Again after some researches I found the the HTPC wakes up on any kind on USB UHC event, this means constantly. I found no way to disable this as configuration. So I created my own hook for the suspend, it just disables wake up on USB/UHC before going to sleep executing echo “UHC1” > /proc/acpi/wakeup for all the peripherals.

With this two patches the suspend works smoothly, it just take a while to stop mythtv-backend, but otherwise no issues.

The script is named /usr/lib/pm-utils/sleed.d/50htpc to be put in the folder /usr/lib/pm-utils/sleed.d/

This is the code:

. "${PM_FUNCTIONS}"
suspend_htpc()
{
    service mythtv-status stop
    service mythtv-backend stop
    rmmod cx23885
    rmmod smipcie
    rmmod m88ds3103
     devices="UHC1 UHC2 USB3 UHC4 USB5 UHC6 UHC7"
    for device in ${devices}; do
            if grep -qw ^$device.*enabled /proc/acpi/wakeup; then
                    sudo sh -c "echo $device > /proc/acpi/wakeup"
            fi
    done
}
resume_htpc()
{
   modprobe m88ds3103
   modprobe smipcie
   modprobe cx23885
   service mythtv-backend start
   service mythtv-status start
}
case "$1" in
 hibernate|suspend)
 suspend_htpc
 ;;
 thaw|resume)
 resume_htpc
 ;;
 *) exit $NA
 ;;
 esac

Service menu LG 37LF65

Ogni volta mi dimentico la procedura.

Premere 5 sec il bottone ‘menu’ in alto compare la dicitura RGB (che non c’entra nulla con il service menu). Digitare ripetutamente ‘0’.

 

TBS driver new try

Sometime I try to make the fuc…. TDB 6022 card working on linux without making the other card out of work.

Yesterday I tried to build the TBS saa716x driver against the newest linux media, after patching a little bit everything compiles fine the remote works but the TBS6922 frontend which is already compiled in the TBS distribution generates a kernel oops.

Today I tried the other way, I entirely removed the CX23885 from the TBS tree and replace it with the one found in the latest media_build tree. The result was worst, I couldn’t even build the driver because the media_tree used by TBS developers is really tooooooo old. Kernel_version.h reports version

#define V4L2_VERSION 196608

which corresponds to a very very very very old media_tree linux-media-2011-05-31.tar.bz2

So for me by now no way to make the new cards using CX23885 working with the TBS 6922 card, so the brand new TBS6922 card remains off.

I’m still hoping to get and answer from TBS developers….

 

Enable/disable jounal on running ext root partition

Some times ago, trying to reach better performances on my SDD, I followed the wrong suggestion to disable the journal. This solution isn’t really good because I had some data loss and at almost each reboot the system got in fsck.

Yesterday I decided to go back and restore the journal. Each guide I found online was related to non root fs or to boot in maintenance mode. The only thing you need is a ro mountetd fs and usually you fine on internet this command line:

sudo mount -r -o remount /

Which is not enought and you get a busy error message.

The way to go around this issue is to force the remount, so if you want to enable journal:

sudo mount -f -r -o remount /dev/sda6

sudo tune2fs -O has_journal /dev/sda6

Or disable it:

sudo mount -f -r -o remount /dev/sda6

sudo tune2fs -O has_journal /dev/sda6

 

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 🙂

WP to LinkedIn Auto Publish Powered By : XYZScripts.com