Recently in Computers Category

Upgrading MythTV to run on Fedora 7 with kernel 2.6.22

Vote 0 Votes

If you use MythTV you probably are aware by now that Zap2It labs has stopped providing free listing data as of 2007-09-01. There is an alternative though--schedulesdirect; a for fee service that is a drop in replacement for Zap2It labs ... except it costs $5.00/mo and you have to upgrade MythTV to 0.20.2

I was running MythTV 0.20 on FC4, it worked pretty well, excepting the occasional crash. I was planning on just upgrading to the new version of MythTV and leaving the OS at the current version. That is, that was the plan until I found out that atrpms.net no longer maintains packages for FC4. So I decided if I was going to have to compile source might as well update everything.

That's when the adventure began. It turns out that things have changed a lot since FC4; especially with the IVTV driver (the driver that is used for the PVR-350 capture card I use). The driver has been integrated into the kernel as of 2.6.22. This is a good thing as it means the drivers have become much more stable but the documentation is still pretty lousy. Here's the outline of what I've had to do to get my box back and running... hopefully it will save you sometime:

So what exactly didn't work when I upgraded:


  • The video capture card was not automagically detected like I thought it should.

  • Lots of problems getting MythTV to use the PVR-350 framebuffer for display... this required some code changes

  • LiRC does not start properly (this is not a new problem... I also ran into on FC4 also)

How I fixed it all

I usually follow Jarod Wilson's "Fedora Mythtvology" guide when installing mythtv. The current version as of September 2007 is for Fedora 6. For the most part this will work fine for Fedora 7 as well. There's just a few quircks you have to be aware of due to the 2.6.22 kernel and ivtv.

IVTV was integrated into the kernel as of 2.6.22 (so is ALSA, so you can skip the sound portion of the tutorial). When you get to the ivtv step do the following:

yum -y install ivtv ivtv-kmdl-$KVER ivtv-firmware

Next add the following 3 lines to /etc/modprobe.conf

alias char-major-81 videodev
alias char-major-81-0 ivtv
install ivtv /sbin/modprobe --ignore-install ivtv; /sbin/modprobe ivtv-fb

That should do it on the ivtv, on your next reboot the /dev/video0 device should be working.

Next, you will need to install the X-Driver. Since Fedora 7 uses X11 release 7 you will need a new x driver available here.

Next install the xorg-server modules with:

yum -y install xorg-server

Now compile, like so:

cd ivtvdev directory
./configure --prefix=/usr
make
make install

Next edit the xorg.conf file in /etc/X11 like jarod describes, just change the driver name from ivtvdev to ivtv.
Now when you reboot X should load up on the framebuffer.

Now that you should be able to get video and load X on the framebuffer let's fix mythtv so it can show video on the framebuffer (in my experiance this looks much better than just using a video card). You have to patch the sources to include the controls for the new ivtv-fb commands as documented in 3486.

Your options include simply building trunk which depending on the day, you never know exactly what you are going to get. Or you could back port the patch for 0.20.2. Fortunately I have already done that for you. You can download the SRPM here. This is basically a patched version of MythTV-0.20.2-165 from atrpms.net

You should be up and running by now after one more reboot. Just setup mythtv to use the PVR-350 output device and your set.

NOTE: If lircd does not start up properly on boot you might need to modify the /etc/init.d/lircd script to try and reload the lirc_i2c module if it failed: Include this after the "start() {" line

if [ `/sbin/lsmod | grep lirc` != ""]; then
echo -n $"Reloading lirc_i2c: "
/sbin/modprobe lirc_i2c
RETVAL=$?
echo
fi



My new T60p

Vote 0 Votes

UPDATE
I have received the replacement T60p from Buy.com, it has the LG screen, NMB keyboard, and Intel wireless card. The LG screen is noticeably better than the samsung screen.. the colors are more vibrant, the horizontal lines that the showed up on the upper part of the screen on the samsung are not there on the LG, and there is less light leakage. While the LG screen is far better than the samsung it is still somewhat sparkly/grainy (oh, well I guess this is just the state of current widescreen technology).

Also it seems that even though the Atheros card, which was in the original laptop, is supposed to be better than the Intel ABG card, which is in the new one, my new machine does not have the wireless problems that the other one had. Hurray!
--------



New Computer

Vote 0 Votes

I know it has been quite sometime since my last post. If there's anyone out there still regularly checking this blog.. sorry.

Anyway I have been in the market for a new computer. My old thinkpad finally bit the dust last november (at least the screen did) so I have been limping along with a crappy toshiba for the last 6 months. I was waiting for the laptops that featured Santa Rosa to come out but around the middle of april I decided that Santa Rosa wasn't worth waiting for and started seriously shopping for a new laptop.

I began the search thinking I would not purchase another thinkpad as I was somewhat leary about them since they were sold to Lenovo. The major other computer I was looking at was a MacBook Pro. Well long story short I ended up back in the thinkpad's arms and settled on a Thinkpad T60.

I ordered onsale at lenovo.com and expected it to take several weeks. It took just about 1/2 a month to get here, arriving on May 2nd. I opened it up and immediately started hacking away at it... it was great! I was very happy with my purchase. Up until this point I had been only using it with AC power. Well this is where my problems began. The machine would turn itself off every 2 or 3 minutes when it wasn't on AC (yes, the battery had been charged for a full 24 hours and was showing 100%). I thought upgrading the BIOS might fix this, it didn't. The problem progressed to the screen not turning on at all. I called Lenovo and asked to return the machine. They were friendly and issued an RMA for the old machine and helped me get a new order in (with slightly upgraded specs) for a replacement. They also assured me that I was on their critical list seeing as I had already been waiting 2 weeks+ for my laptop.

That was back at the beginning of may. It is now almost the end of may and still no laptop. Oh well, it will get here when it gets here, I'm getting impatient though. On the upside lenovo has issued me a 10% discount in addition to my already discounted machine for having to wait so long. All in all I am getting this thing for about 50% less than what it usually costs!

Read the extended entry to see the specs of the latpop. I'll post an update with how i like the computer after I receive it.



Learning to debug problems

Vote 0 Votes

I am a computer programmer and as a result I have to be pretty good at tracking down problems in things and successfully debugging them. When debugging it's imperative that a concrete methodology is applied. Here are some tips for debugging (these can apply to more than just computer programs!)

1) Assume the problem lies in something you have changed.
I find a good first assumption that you created the problem if you are debugging something you have written. It's not likely that the operating system or the tools that have been used by many other people have the most obvious flaws. It's much more common for errors to be in your newly developed code. It's also much easier to find flaws in code you wrote than in the millions of lines of code the comprise the tools programmers use every day.

2) Start simple and work your way up from there.
It's an uncertain world and there could be any number of things wrong when you are debugging a problem but everyone has to start somewhere and it's the simplest things that give us the most progress.

3) Debugging is always a process of elimination
My third rule of thumb is that debugging is never readily obvious. You always have to start with an assumption, make a hypothesis and prove it right or wrong. Then repeat until you actually find the problem.

These are simple rules but they will take you far down the path of debugging and it's amazing how many people I know that don't apply them!



Visually navigating information with Grokker

Vote 0 Votes

My roommate told me about a new search service calle Grokker that allows you to visually browse the information. I didn't quite understand what he meant when he was telling me about it but I checked it out and it's actually really cool. It's basically a search engine that automatically categorizes information in groups and allows you to visually navigate the "map." I could see something like this being really useful for research. It's always interesting to see new ways that people are visualizing data. I believe over the next 10 years visualization will be some of the biggest challenges that we will face in the computing and scientific communities.

Try it out at: www.grokker.com

Make sure you click on the map tab when the search results come up.



University of San Diego

Vote 0 Votes

Today I took a quick trip out to San Diego to meet some guys we work with at the university.  The first part of the day was mostly finances, etc ... not necessarily my cup of tea.  But then later on the day we got to take a look at some of te things they are doing and it was really cool.  First they showed us a display wall that could show images in steroe and could be controlled by movement when you were some special glasses.  The applcation they showed us was exploring protiens, you could walk around and view te protien from different angles, it was pretty neat.  The thing that I enjoyed most though was a demo by a fellow, John, he showed us some GIS stuff which I really enjoy and he had some pretty neat work ups of fly bys in real time over the earth ... it was like Google Earth on steroids.



Django and Christian Resources

Vote 0 Votes

FOr a long time I have wanted to create a website that provided functionality similar to the Logos software, a package that is basically an incredibly extensive Christian library.  A friend of mine gave me the idea of calling it Red Letters, a reference to the red lettered text in the bible that is supposed to refer to the words of Christ.  I've had the idea for a long time and haven't really done much with it beyond a few mockup sites.  Over the weekend I got interested again and looked over the mockups, decided they all sucked and started a new one.  I don't know if it's going to happen but it sounds like a good chance to check out the Django web framework which seems really nice.  I'm not sure how well suited it is to the problem though as most of the site will probably store the content as ThML files (an xml format for marking-up religious text) and there is no builtin support for XML, although since it's just python I should be able to add it easily.  We'll see, hopefully something comes out of all this.



Distributed X Server and Gigapixel images

Vote 0 Votes

Things have been very interesting at work lately.  I've gotten S.A.G.E (Scalable Adaptive Graphics Display) to a place where it is working reasonably well.  It's pretty cool but I am still interested in something that allows me to have a distributed X client.  I found a program today that does just that: Xdmx.  I haven't had an opportunity to try it out yet but hopefully I'll get a chance tomorrow.  If it works it could make my life a lot simpler because ANY application would be able to run on the display without modification.  To use the display with Xdmx all one would have to do is set their DISPLAY environment variable to the Xdmx display.  This is very simple and since it's the standard people already know how to interact with it.  There is still a bandwidth problem but I don't know how you would get around that unless your application is aware of the multi-display ability of the wall and programs to take advantage of it.  There appears to be extensions to support this in Xdmx and it also looks like there are a few other libraries out there that make using the Xdmx extensions easier.  I'm very excited to try it out to say the least.

In other news today a friend showed me Max Lyon's website, he has some amazing hi-res (some gigapixel) images that he created by stitching together many shots from his Canon 60D.  Check out his website, I think you'll be impressed ... I was.  Website: http://www.tawbaware.com/maxlyons/ 



Auto-complete JComboBox

Vote 0 Votes

A common feature a user has come to expect from JComboBox's is autocompletion.  I don't know who started this but I think it was popularized by web browsers in the address bar.  Swing does not provide auto-complete functionality by default; but a quick search on google reveals many people have come up with solutions.  I found this tutorial: http://www.orbital-computer.de/JComboBox/ which I like quite a bit and the code is in the public domain so anyone is free to use it however you want.



Principles of good software design 1

Vote 0 Votes

There are several open source projects that I keep tabs on because I enjoy the services they provide.  Recently one of the projects had several issues registered concerning timeouts with MySQL 4.0 and 5.0, the response from the developers was this is not a bug in our software, just increase the timeouts in the mysql server.  This is a bad solution for a number of reasons but mainly it is a bad software design decision.  Software should be designed to be as robust, stable, and usable as possible.  It is not hard to add a simple check if a connection is open and reopen if it has timedout.  When designing software we should follow a couple of simple principles where ever possible:

1) If something can be solved in software don't make the user deal with it.  Only involve the user unless it is absolutely necessary (ie, need some form of input or something of that sort)

2) If your software relies on a 3rd party package, don't expect the 3rd party package to work correctly, adjust for mistakes in your software as appropriate.

These developers that wanted the user to adjust timeout values broke both these rules.