LinHES Forums
http://forum.linhes.org/

HOWTO: R6 and XBMC
http://forum.linhes.org/viewtopic.php?f=11&t=19863
Page 3 of 4

Author:  nharris [ Thu Dec 10, 2009 8:06 am ]
Post subject: 

If you are running with the testing repos, I have pushed a new xbmc-svn package. You might want to do a pacman -Syu to try it out.

Author:  ceenvee703 [ Thu Dec 10, 2009 4:34 pm ]
Post subject: 

RacerX wrote:
I have not seen this error before on R6 01.00, it works fine for me. Could you try this?

Code:
dbus-launch xbmc


I updated to the latest svn package, same crash, same series of errors. I then tried dbus-launch xbmc. It crashed too, the GLX and "Linux distribution" errors are still there but the dbus error went away.

Before it gives me the crash report, and not in the crash report, are a bunch of lines that say "Xlib: extension "Generic Event Extension" missin gon display ":0.0" and then a line just before the segfault that says "sh: /usr/bin/lsb_release: No such file or directory"

Author:  RacerX [ Thu Dec 10, 2009 6:06 pm ]
Post subject: 

Hmm

When I launch Xbmc I get the message

Code:
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
Xlib:  extension "Generic Event Exension" missing on display ":0.0.
sh: /usr/bin/lsb_release: No such file or directory
sh: /usr/bin/lsb_release: No such file or directory
sh: /usr/bin/lsb_release: No such file or directory


and then Xbmc starts up normally. Is this when it Segfaults for you?

Check out your XBMC log...

Code:
su
find -name xbmc.log

This should lead to
Code:
./home/mythtv/.xmbc/temp/xbmc.log
./root/.xbmc/temp/xbmc.log


What graphics card do you have?

Author:  ceenvee703 [ Thu Dec 10, 2009 6:25 pm ]
Post subject: 

Thanks for helping with this, RacerX.

I get one of those lsb_release errors, not three, and then it segfaults.

When I do a "find -name xbmc.log" as root in root's home directory, it finds nothing. When I do it as mythtv user, or if I do it as root in /home/mythtv/, it finds only "./.xbmc/temp/xbmc.log" That log has the same errors as the crashlog.

I have a GeForce 8400GS, latest nVidia drivers posted in testing.

Just realized I have been running it as mythtv user... maybe I'll try as root for grins.

Author:  graysky [ Wed Dec 16, 2009 4:28 pm ]
Post subject: 

iscraigh wrote:
I changed the video button in mythtv to launch xbmc for watching movies. I think XBMC has a much better way of displaying movies and its grabber seems to get almost all of my files correct. I then exit xbmc and myth is still running, I may play with the above script.


Which remote are you using? I know how to make a menu item in the mythtv xml to launch xbmc but I can't seem to find a keymap.xml for my remote which is the one that comes with the PVR-250 known as the "gray remote."

Author:  iscraigh [ Wed Dec 16, 2009 10:45 pm ]
Post subject: 

I actually use one of those cheap mce remotes that act like a keyboard, I then program the appropriate buttons on my logitech remote to operate xbmc, I also adjusted the keymap and had to disable my r-ctrl r-alt and r-shift because the cheap remote sends a lot of combination keypresses. It is more responsive than lirc though.

Do you have a remote.xml file I think that is the one for remote controls, not 100% sure though.

Craig

Author:  Too Many Secrets [ Mon Jan 11, 2010 7:05 pm ]
Post subject: 

This is really cool! Thx for adding this to pacman.

how do I get the theme from http://code.google.com/p/mythbox/ to be used on xbmc?

oops, figured it out. interesting

Author:  nharris [ Tue Jan 12, 2010 7:23 am ]
Post subject: 

XBMC 9.11 Camelot is now the in the testing repo as the default xbmc install. If you are running xbmc-svn, you may want to uninstall it and then install the xbmc package.

Code:
pacman -R xbmc-svn
pacman -Syu
pacman -S xbmc

Enjoy!

Author:  Too Many Secrets [ Tue Jan 12, 2010 6:18 pm ]
Post subject: 

Tried the above new install and cant find xbmc in /usr/bin Pacman didn't complain. Did I bork something?

OK, found it... could have been easier.

Code:
/opt/xbmc/share/xbmc/xbmc.bin

Author:  nharris [ Wed Jan 13, 2010 7:11 am ]
Post subject: 

Good catch. I need to change the prefix to /usr. PKGBUILDs are just so easy (usually they just work) one gets sloppy checking all the details.

Author:  graysky [ Wed Jan 13, 2010 2:17 pm ]
Post subject: 

This official Arch packages do this as well while the svn package in the AUR uses the standard prefix. I don't know why...

Author:  Too Many Secrets [ Mon Jan 25, 2010 11:27 pm ]
Post subject: 

Has anyone gotten the below script to work? I couldn't get it to restart the mythfrontend. Been working on a simpler script, but cant get that to work either. Anyone have a working script that will switch from myth to xbmc and then back, with a single remote button push?

RacerX wrote:
Graysky

So far I have not yet found answer about how share xml data with txt. However, I did come across this script which gets at the broader thought between XBMC and Mythfrontend (ie sharing the remote).


http://code.google.com/p/yatvgrabber/wiki/XbmcMythtvRemote

Code:
Details

    * add this to ~/.lircrc

      include ~/.lirc/irexec

    * create or add/modify this file ~/.lirc/irexec

      begin
           prog = irexec
           button = LiveTV
           config = ~/scripts/appswitch.pl
      end

    * create this script file ~/scripts/appswitch.pl and make it executable

      #!/usr/bin/perl -w
      ###############################################################################################################################
      ## Name: appswitch.pl
      ##
      ## Purpose: Executed by irexec this script will cycle between mythtv and xbmc using a single button.
      ##     
      ## (C)opyright 2008 Arksoft.
      ##                                                                                                 
      ## Author: Arkay
      ##
      ## Ver 1.0: 4-08-2008.  Initial version.
      ##
      ###############################################################################################################################
      # Require and Use Clauses.
      ###############################################################################################################################

      use strict;                             #Keeps code neat.
      use Getopt::Std;                        #Getopt module for option preprocessing.
      use vars qw/ $opt_d $opt_h /;           #Option Processing vars.
      use POSIX qw(strftime);                 #Time routine we need.

      ###############################################################################################################################
      # Prototype definitions
      ###############################################################################################################################

      sub logmsg(@);          #Message logger so we can track what's been going on.
      sub process_opts();     #Option processing.. Nothing exiting for this script.
      sub do_command($);      #Execute a shell command for lazy perl programmers :)
      sub check_proc($);      #Check if a process is running.
      sub startproc($);

      ###############################################################################################################################
      # Constant Definitions.
      ###############################################################################################################################

      my ($TRUE) = 1;
      my ($FALSE) = 0;

      ###############################################################################################################################
      # Global vars, paths, commands to call.
      ###############################################################################################################################

      my ($LOG) = "~/scripts/appswitch.log";          #Log location.
      my ($LOGSIZE) = 1024;                           #Maximum log size in kbytes, self pruning.
      my ($DEBUG) = $FALSE;                           #Debugging default is off.
      my ($BASENAME) = $0;                            #How was the program called?

      my ($MYTHTV)="/usr/bin/mythfrontend";           #Process name to start
      my ($XBMC)="/usr/share/xbmc/xbmc.bin -fs";      #Process name to start
      my ($KMYTHTV)="mythfrontend.real";              #Process name to use with killall
      my ($KXBMC)="xbmc.bin";                         #Process name to use with killall
      my ($KMPLAYER)="mplayer";                       #Also kill any external players
      my ($KILLALL)="/usr/bin/killall";               #kill command.
      my ($AUDIOHACK)="/usr/bin/iecset audio on";     #Shitty Alsa hack with intel HDA

      ###############################################################################################################################
      # The Mainline.
      ###############################################################################################################################
      MAIN:
      {
              my ($command);
              process_opts();

              logmsg "$BASENAME started : PID($$)";

              my ($myth)=check_proc($MYTHTV);
              my ($xbmc)=check_proc($XBMC);

              SWITCH:
              {
                      if (($myth == $TRUE ) && ($xbmc == $TRUE))
                      {
                              logmsg "Killing $XBMC and $MYTHTV";
                              $command="$KILLALL $KMYTHTV"; do_command($command);
                              $command="$KILLALL $KMPLAYER"; do_command($command);
                              $command="$KILLALL $KXBMC"; do_command($command);
                              sleep(2);

                              $myth=check_proc($MYTHTV);
                              if ($myth == $TRUE)
                              {
                                      logmsg "Killing $MYTHTV (forced)";
                                      $command="$KILLALL -9 $KMYTHTV"; do_command($command);
                                      $command="$KILLALL -9 $KMPLAYER"; do_command($command);
                              }

                              $xbmc=check_proc($XBMC);
                              if ($xbmc == $TRUE)
                              {
                                      logmsg "Killing $XBMC (forced)";
                                      $command="$KILLALL -9 $KXBMC"; do_command($command);
                              }
                              do_command($AUDIOHACK);
                              startproc("export XBMC_PLATFORM_MODE=1 ; $XBMC");
                              last SWITCH;
                      }
                                     
                      if ($myth == $TRUE)
                      {
                              logmsg "Killing $MYTHTV";
                              $command="$KILLALL $KMYTHTV"; do_command($command);
                              $command="$KILLALL $KMPLAYER"; do_command($command);
                              sleep(2);
                              $myth=check_proc($MYTHTV);
                              if ($myth == $TRUE)
                              {
                                      logmsg "Killing $MYTHTV (forced)";
                                      $command="$KILLALL -9 $KMYTHTV"; do_command($command);
                                      $command="$KILLALL -9 $KMPLAYER"; do_command($command);
                              }
                              do_command($AUDIOHACK);
                              startproc("export XBMC_PLATFORM_MODE=1 ; $XBMC");
                              last SWITCH;
                      }

                      if ($xbmc)
                      {
                              logmsg "Killing $XBMC";
                              $command="$KILLALL $KXBMC"; do_command($command);
                              sleep(2);
                              $xbmc=check_proc($XBMC);
                              if ($xbmc == $TRUE)
                              {
                                      logmsg "Killing $XBMC (forced)";
                                      $command="$KILLALL -9 $KXBMC"; do_command($command);
                              }
                              do_command($AUDIOHACK);
                              startproc($MYTHTV);
                              last SWITCH;
                      }
                      do_command($AUDIOHACK);
                      startproc("export XBMC_PLATFORM_MODE=1 ; $XBMC");
              }

              logmsg "$BASENAME Completed.";
      }

      ###############################################################################################################################
      # startproc()
      # Execute a given command.
      ###############################################################################################################################
      sub startproc($)
      {
              my ($proc)=@_;
              logmsg "Starting $proc";
              exec("export DISPLAY=:0; $proc &");
      }

      ###############################################################################################################################
      # check_proc($)
      # Check if processes are running that should stop shutdown from occuring.
      ###############################################################################################################################
      sub check_proc($)
      {
              my ($proc)=@_;
              my (@output);
              my ($command);
              my ($count)=0;
              my ($running)=$FALSE;

              logmsg "Checking for active process $proc.";

              $command="ps -ef | grep "$proc" | grep -v grep |wc -l";       
              @output=do_command($command);

              if (@output)
              {
                      $count=$output[0];
                      chomp ($count);
              }

              if ($count > 0)
              {
                      logmsg "Found active process : $proc ($count running).";
                      $running=$TRUE;
              }
              return($running);
      }

      ###############################################################################################################################
      # logmsg
      # Little routine to write to the log file.
      # Rotates around $LOGSIZE bytes.
      ###############################################################################################################################
      sub logmsg(@)
      {
              my ($string)=@_;
              my $time=scalar localtime;
              my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks);
              my (@lines,$line);

              ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks)=stat("$LOG");

              if (defined($size))
              {
                      $size=$size/1024;                               #size in kbyte

                      if ($size >= $LOGSIZE)
                      {
                              unlink ("$LOG.old") if (-e("$LOG.old"));
                              rename ($LOG,"$LOG.old");
                      }
              }

              print "$time : $string\n" if ($DEBUG==$TRUE);

              if (open (LOG,">>$LOG"))
              {
                      if ($string =~ /\n/)
                      {
                              @lines=split(/\n/,$string);
                              foreach $line (@lines)
                              {
                                      print LOG "$time : $line\n";
                              }
                      }
                      else
                      {
                                      print LOG "$time : $string\n";
                      }
                      close (LOG);
              }
              else
              {
                      print "Unable to open LOG $LOG : $!";
              }
      }

      ###############################################################################################################################
      # process_opts()
      # Set Global option flags dependant on command line input.
      ###############################################################################################################################
      sub process_opts()
      {
              getopts('dh');

              $DEBUG=$TRUE if ($opt_d);       
              exit(usage(1)) if ($opt_h);
      }

      ###############################################################################################################################
      # usage()
      # Output Relevant Usage strings if incorrect opts are given.
      ###############################################################################################################################
      sub usage()
      {
              my($ucode)=@_;

              if ($ucode == 1)
              {
                      print "Usage: $BASENAME [-dh]\n";
                      return(0);
              }
      }

      ###############################################################################################################################
      # sub do_command($)
      # use system call to execute command. Returns output of command in array.
      ###############################################################################################################################
      sub do_command($)
      {
          my ($command)=@_;
          my (@output);
          my ($exit_value)=0;

          logmsg "Executing $command" if ($DEBUG == $TRUE);

          @output=`$command`;

          $exit_value = $? >> 8;

          if ($exit_value != 0)
          {
              logmsg "Error executing $command : $!";
          }
          return(@output);
      }


XBMC UI is :wink:

Author:  djb61230 [ Fri Feb 26, 2010 5:48 pm ]
Post subject: 

Just wanted to verify with you guys if you are having deinterlacing issues with XMBC. I installed from testing and was playing around with XMBC - it is really nice but when I play 1080i (CBS) the interlacing artifacts are terrible.

Googling around it seems that the deinterlacing with VDPAU isn't very good or even there. I assume that is what I'm seeing.

My question is if the devs here (Nathan?) were keeping an eye on the XBMC development to fix this. I think I read somewhere that people are working on it.

Also I wanted to ask if there is any interest in having a Boxee build in testing. I checked into it a bit and I guess getting it to compile on a non-ubuntu system is a bit of a challenge. Here is an Arch wiki page that discusses building it:

http://wiki.archlinux.org/index.php/Boxee-source

Author:  nharris [ Sat Feb 27, 2010 3:23 pm ]
Post subject: 

Boxee is great. But so are the dependencies.

http://aur.archlinux.org/packages.php?ID=24206

I have not tried interlaced content with XBMC. My movies are progressive and I don't use XBMC for TV playback. However, I can't see how VDPAU deinterlacing would not work, since it worked with mplayer before MythTV.

Author:  tankgirl [ Sun May 16, 2010 8:12 am ]
Post subject: 

I'm not sure if there's a howto for MythBox, so if you already know this, please ignore my message.

For newbies like me:
http://mythbox.googlecode.com/hg/README
If you're at step 5:
open /etc/my.cnf and look for this line

skip-networking
Please comment out skip-networking like this:
# skip-networking

reboot your knoppmyth system and follow the README.

Ofcourse you can do this before you start reading the readme :P

Page 3 of 4 All times are UTC - 6 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/