Troubleshooting help

andymyth@gmail.com
tyrstag !at! gmail.com

Return to main site

So, you've followed the instructions and are still having problems? Not to worry. Below I have compiled some useful tricks which you can use to attempt to figure out what is going wrong. I will add to these as I come across new ones. Also, if you have any which you would like to add, feel free to shoot me an email with suggestions. For ease of use, the table below shows the colors used to highlight information that you will need to enter as command line input, receive as command line output, or enter into a configuration or shell file. This will hopefully make it easier to distinguish between what different commands do.

Command line input .
Command line output .
Entry for a file .



Basic troubleshooting tips for everyone:
  • Did you get the right config file for your cable/satellite box talked about in Step 2?
  • Did you copy the contents of the cable/satellite config file to your /etc/lircd.conf file?
  • Do you have any typos in your /etc/rc.d/rc.local or /etc/modprobe.conf files?
  • Is your modprobe.conf file set to use the right COM port for the IR Blaster?
  • Did you change the REMOTE_NAME as discussed in Step 4?
  • Did you make your /usr/local/bin/change_chan.sh script executable as discussed in Step 5?
  • Did you reboot? (I'm really not kidding about this)
  • Is your IR Blaster over the IR eye on your cable satellite box? If you are unsure where the IR eye on your cable/satellite box is, aim a flashlight at the front of the box. You should see the cable/satellite box's IR receiver eye in it.



    If you have 2 or more PVR-x50 cards (one or more of which uses the PVR-x50 IR receiver) with an IR-Blaster; or if you in any way are using MORE than 2 devices needing to be controlled by LIRC, see THIS POST. The problem is that any card which has it's own native IR Receiver will load another instance of the device for each card present, even if only one IR Receiver is being used. Thus, if you have 3 PVR-250 cards installed, only one of which is using an IR Receiver, LIRC will still attempt to load an IR Receiver device for each one of the cards. Compound this will adding a serial IR Blaster, and LIRC will try to load 4 devices. This is really not a big deal, except by default LIRC is set to only control 2 devices. In order to get around this limitation, you are going to have to actually compile LIRC. Pete and I have gone through great pains to get this working for us and make the instructions for doing this usable, so hopefully you'll find it useful. You'll have to install the source for your kernel. Instructions on how to do this are also presented. Hopefully at some point either atrpms.net will change this, or I will figure out how to make a usable RPM for it. Until then though, it looks like you'll be stuck compiling.

    Installing Kernel Source and compiling LIRC for more than 2 devices



    Testing to see if anything is being emitted from your IR transmitter:
    There are two ways to do this. If you are building your own IR transmitter, solder a small LED to it instead of your IR Blaster. This will allow you to actually see if anything is being transmitted, as the LED should kind of flicker.

    For those who either don't want to solder on an LED, or who bought an IR Blaster and don't want to risk ruining it, there is a second method. If you have a digital camera, aim it at the IR Transmitter, and watch on the camera's little LCD screen to see live action. The only way this works is by looking on the LCD screen of the camera; the view finder will not work. You *should* be able to see whether or not the IR Blaster is transmitting by running the change_chan.sh script. You can try this with a normal remote by aiming its IR transmitter at the camera and pushing buttons on it while looking at the camera's LCD. If you see lights coming from your IR Blaster, you know it is working, but you probably just have the wrong config. If you don't see lights, it doesn't necessarily mean it's not working, but could indicate a setup problem (my camera never picked up light from my IR Blaster, though it would pick up light from all my other remotes). Many people have reported success in using this method.



    Channel changing on your cable/satellite boxes is spotty, and frequently misses:
    Oddly, the Tivo Forums report that some cable boxes (Scientific Atlanta in particular) work better when the IR Blaster isn't directly over the IR receiver eye on the cable box. See this post for more information.

    Also, you may be getting interference from other sources of light, especially fluorescent bulbs. To help prevent this, you can cover the IR Blaster with aluminum foil. ONLY COVER THE SIDES OF THE IR BLASTER AND THE PART FACING AWAY FROM THE CABLE BOX. If you put foil between the IR Blaster and the cable box's IR Receiver, it will block the signals from getting through. An added bonus to covering the IR Blaster with foil is that it keeps your remote control from interfering with channel changing operations. I have a bad habit of trying to adjust the volume right after I change channels. Since the cable box takes a couple seconds to change, this causes dropped digits. With the aluminum foil, I haven't had this happen once.



    I can't find my codes to control my cable box:
    The Tivo Forums can also give you an idea of what LIRC config file will work with your cable/satellite box. See which models of your brand of cable box can all be controlled by the same signaling protocol, then attempt to find a config file on the LIRC remotes site for one of those other models if yours is not available.

    When all else fails, you can use the irrecord module that comes with LIRC. Using irrecord requires that you have a remote that can currently control your cable/satellite box, as this is what irrecord will use to learn the signals. Honestly, I have messed with irrecord very little. However, it doesn't appear to be too difficult. I would do it in a dark room (light can interfere with your IR Receiver's ability to properly grab the IR signals), and sit within 2 feet of your IR Receiver. To use irrecord, open a command prompt, su to your root user, and type the following:

    # /sbin/fuser /dev/lirc

    You'll get a message that looks similar to the following as output:

    /dev/lirc: 2561

    The number 2561 could be any number. It is just whatever process ID happens to be using the /dev/lirc device. You will need to kill that process. To do so, type:

    # kill 2561

    Your /dev/lirc device is now freed up. You now need to launch irrecord. To do so, type the following:

    # irrecord /home/mythtv/remoterec.conf

    The /home/mythtv/remoterec.conf file is what will be generated from the output of your remote control. You can put this wherever you'd like while you're recording it. Follow the onscreen prompts. You'll first have to hold down a single key on your remote for a LONG time. You'll see a series of dots running accross the command prompt while you do so. After that's done, you'll have to enter in the name for each key, hit enter, and IMMEDIATELY hit press the key on the remote. So, to enter the "Stop" key on the remote, you'd type "MENU" (without the quotes), press enter on the keyboard, then immediately aim your remote at your IR Receiver and hit the menu button on your remote. Repeat this process for any key on the remote that you will need your IR Blaster to send to your cable/satellite box (all the number keys, the chan+, chan-, select and direction arrows are good ones to have).

    When you're done with all the remote keys you want to record, press enter (without assigning a name to a key). It will then ask you to hit a key on your remote over and over again very quickly to test for a toggle switch. I have been unable to get this to work at all. Give it a go. If after 2 or so minutes of trying there is no response from the program, you can just hit Ctrl+C on the keyboard to end the program. At this point, your file should be generated. Put its contents into your /etc/lircd.conf file as Step 2 explains, and then follow the guide and test it. You may need to redo it several times before it gets your keys reliably. I'd keep a copy of the file from each time you record it, and notice the differences within them. This should help you discover which keys are being reliably picked up (they'll be the same time after time) and which ones aren't.

    As I said, I have messed with irrecord very little. You can find more information on this on the LIRC documentation page, the LIRC mailing list archives, or the MythTV mailing list archives.



    Error saying something like "irsend: could not connect to socket." when running change_chan.sh script:
    This error seems to occur whenever your IR Blaster is not on the COM port you specified for it. Even if you are absolutely certain your IR Blaster is on a particular COM port, try changing it to a different one, rebooting, and seeing if that resolves it. Instructions for this can be found in Step 3.



    If you want to make sure that 2 instances of LIRC are loaded:
    You might want to check this, especially if you're getting messages about certain devices not being found. If you followed my setup and named things as I did, you should see 5 devices listed when you run this command:

    # ls -l /dev/lirc*

    Here's what I got for output:

    crw------- 1 root root 61, 1 Jan 29 17:01 /dev/lirc
    crw------- 1 root root 61, 0 Jan 29 17:01 /dev/lirc0
    crw------- 1 root root 61, 1 Jan 29 17:01 /dev/lirc1
    srw-rw-rw- 1 root root 0 Jan 29 17:01 /dev/lircd
    srw-rw-rw- 1 root root 0 Jan 29 17:42 /dev/lircd1

    /dev/lircd and /dev/lircd1 represent your two devices.



    You need to force the creation of a socket:
    If you are ABSOLUTELY POSITIVE that LIRC and the modules you need are loading correctly, but a socket is just not being created, you can run the following command:

    # mknod /dev/lirc1 c 61 1

    The "61" and "1" correspond to the major and minor numbers in your modules.conf file for whatever particular module you are creating a socket for. A reboot will wipe this setting clean, so if you find it fixes your problem, be sure to add the command to your /etc/rc.d/rc.local file so it will be applied any time you reboot.



    If you want to see what drivers were built into your LIRC module version:
    Run the command below. You will see a message saying "Driver '?' not supported," followed by a list of supported drivers.

    # /usr/sbin/lircd --driver=?

    This should return a pretty substantial listing of what all drivers are built in.



    Your IR Blaster can change channels through the command line, but MythTV won't run the script
    Here's what happens: You make your change_chan.sh script, and run it through the command line. When you do it, the script changes the channels. However, when you load it into MythTV's "External Channel Change Command" in mythtvsetup, nothing happens. Myth just acts like it's not even there.

    Well, there's good news and bad news on this. The good news is it means your LIRC is working and the modules are all properly loading. The bad news is that I'm still not completely sure of the cause of this issue, or how to address it. Even more oddly is it seems to happen to people using DISH Network almost exclusively. Could just be a coincidence...

    Anyway, there are a number of steps which could fix the problem. Please, if you have this issue, and either one of the steps below or one of your own creation solves this problem, e-mail me and let me know.

    1) Make sure that mythtvsetup is properly pointed towards your script. Your script should be in the /usr/local/bin directory (check to see that it is there). After that, make sure you properly typed in the path in mythtvsetup. It should be:

    /usr/local/bin/change_chan.sh

    2) In mythtvsetup, there is a channel editor there. Make sure that either channel frequency or channel number is loaded for each channel. Others have reported issues of this in the MythTV mailing list archives. See here, here and here.

    3) It's possible the source ID for your card's input and channel are out of whack for some reason. See this post on how to fix this.

    4) See what happens when your run the change_chan.sh script from the command line as both root, and your non-root mythtv user. If one can change it but not the other, there is a permissions issue that you need to address. Perhaps the directory where you have the change_chan.sh script is set for root only?

    5) Try creating an alternate script and loading it into mythtvsetup's "External Channel Change command." The idea of doing this is to actually see whether or not MythTV is even attempting to call the script. I'd make a script in my /usr/local/bin directory called test_script.sh and put this in it:

    #!/bin/sh
    date >> ~/test_script_output.log

    Make sure you run "chmod 755" on this new script you've created to make it executable. Point MythTV's external channel change command towards this script. THEN REBOOT. After that, load up the front end and go to "Watch TV." Attempt to do a few channel changes. Exit the frontend, and open up the log that should have been created from your new channel changing script. It will be in your home directory, and it's called "test_script_output.log". If it's there, open it, and you will see a timestamp that should have been issued every time you did a channel change. If the log is not there, then MythTV is NOT calling your script. This could be a permissions issue, but is likely indicative of a bigger problem with MythTV. I currently have no suggestion on how to resolve this, other than reinstalling MythTV or rebuilding your MythBox from scratch. If you figure it out, please e-mail me your solution.

    6) Check your logs (/var/log/messages and /var/log/messages/mythtv/mythbackend.log) for a message that looks similar to the one below:

    2005-01-31 19:24:20 Channel::Open(): Can't open: /dev/video0
    /dev/video0: No such file or directory
    Couldn't find input: Composite 4 on card

    It might say "Tuner0" or "SVideo0", all depending on what input you're using. If you have this message, MythTV thinks it can't access your card for some reason. I am not sure what the cause or solution to this is. Again e-mail me or the MythTV list and we'll try to help you through it.

    Return to main site



    Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'eggshell'@'localhost' (using password: NO) in /home/eggshell/public_html/lirc/trouble/index.php on line 419

    Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/eggshell/public_html/lirc/trouble/index.php on line 419

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'eggshell'@'localhost' (using password: NO) in /home/eggshell/public_html/lirc/trouble/index.php on line 422

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/eggshell/public_html/lirc/trouble/index.php on line 422

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/eggshell/public_html/lirc/trouble/index.php on line 423

    Warning: mysql_query() [function.mysql-query]: Access denied for user 'eggshell'@'localhost' (using password: NO) in /home/eggshell/public_html/lirc/trouble/index.php on line 452

    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/eggshell/public_html/lirc/trouble/index.php on line 452

    Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/eggshell/public_html/lirc/trouble/index.php on line 453
    Number of unique hits to www.lircsetup.com since Feb 20, 2005: 0
    Number of hits to this page since Feb 20, 2005: 0

    L10 Web Stats Reporter 3.15 LevelTen Hit Counter - Free PHP Web Analytics Script
    LevelTen dallas web development firm - website design, flash, graphics & marketing


    Updated 02/26/2005