Current Happenings

Cardoe wrote this mid-afternoon:

It seems I tend to blog in bursts and then ignore my blog for a while. So in keeping up with that tradition, I’ll try to blog a little bit about what I’ve been working on.

Firstly, I’ve finally taken the plunge and officially joined the base-system herd. For a very long time, I’ve hung around the shadows of base-system so now I’ve finally joined up officially.

For a while I’ve had an issue with regard to MythTV support and the subversion.eclass. Basically we needed svn switch support and a decent revision reporting method. I finally got tired of waiting for the bugs about this to get fixed and started to do the work myself. Turns out zlin had some changes from the KDE herd that he wanted to push into the subversion.eclass as well. We ended up putting our heads together and cleaning up the eclass of a few problematic bits of code as well as provided the additional necessary features.

After that I have been able to get some work done on MythTV 0.21 so you should see some beta quality ebuilds in the tree for the upcoming 0.21 release. There’s still a few USE flag combinations that need to be tweaked and testing of USE flag combinations. As always, help is appreciated but all patches are referred to upstream.  But also remember this code is beta quality so make sure you back up (the official MythTV documentation for backing up your database isn’t the greatest, you can see my updated instructions here) your MythTV database.

Tinkering with MythTV I discovered that Gentoo’s XvMC support is quite lacking in formality. I figured the best solution for Gentoo would be to always use libXvMCW, which is a wrapper for the various XvMC implementations. Then configure libXvMCW to use the proper implementation. This is where app-admin/eselect-xvmc comes into play, its designed to assist users with configuring XvMC on their system. Once it’s 100% tested, I will be adding it as a PDEPEND to x11-libs/libXvMC and all applications using XvMC will just dep on x11-libs/libXvMC and link to libXvMCW. For anyone wondering, x11-libs/libXvMC provides libXvMCW.

Lastly, I also ended up writing an eselect module for fontconfig. Currently, media-libs/fontconfig provides a bunch of configuration files in /etc/fonts/conf.avail/ and requires users to symlink them to /etc/fonts/conf.d/ if they’d like to use them. I got frustrated with trying to setup each box I had to how I wanted it and so I wrote an eselect module which should hopefully make configuration easier for everyone. You should be able to find it at app-admin/eselect-fontconfig and it should be pulled in by default if you have fontconfig on your system.

Struggling with Set Top Boxes

Cardoe wrote this in the wee hours:

Currently I’m a Cox Cable subscriber and have their digital cable package. This means that over QAM256 I can get ABC HD (WCJB), CBS HD (WGFL), and Fox HD (WOGX). The other junk I get over QAM are about 100 advertisement channels for PPV or encrypted. This makes my pcHDTV 5500 card not really worth it. The only choice I have is to use the FCC mandated Firewire (ieee1394) output from my digital cable box. Well at first Cox gave me a Scientific Atlantic Explorer 8300, which is a HD DVR box but they disabled the DVR functionality. I couldn’t get anything over the firewire and searching around the common MythTV places, I couldn’t find anyone who did. So I returned the box and in return was hoping to get a Scientific Atlantic 3250, which is known to work and is fairly well supported in MythTV. No such luck, I was given a Scientific Atlantic 4250. I still can’t get any data over firewire from the box, other people I know with SA3250s in my area are able to successfully pull the same channels I am testing. It’s quite frustrating.

At the same time I’ve noticed that Firewire support for STBs really sucks. Each one appears to have it’s own custom channel changer and the code for each is just a copy and paste of a previous one with hacks. All the vendor and model IDs are hardcoded into each app and most of the apps don’t handle everything they need to. i.e. reseting the bus when it’s needed. This has resulted in a lot of wrapper scripts and “this works for me!” stuff going on. It’s really a mess. What I’m wondering is why no one has created a 1394.ids setup similar to  pciutils and usb-utils. That should be the first thing. Then next a generic control app similar to what FreeBSD has done with fwcontrol. On Linux you have to use several apps from several different libraries and even then you don’t get 100% of the functionality. It would also be nice to integrate this into HAL since the HAL spec does define Firewire support. It looks like the new firewire stack will be a step in the right direction but more work is still needed there.

MythTV packaging changes

Cardoe wrote this in the early afternoon:

First a little background on how we package MythTV in Gentoo. The -fixes branch is where Gentoo’s 0.20.1_p##### series of ebuilds come from. Basically mythtv-0.20.1_p13783 means MythTV 0.20.1 + all fixes and patches from 0.20.1 to svn revision 13783 from the -fixes branch. You will however notices that a lot more issues get fixed in trunk, which is Gentoo’s 0.21_pre##### series of ebuilds. A lot of these issues do get backported to -fixes after some time, generally with users begging for the fixes to be backported since most developers use the trunk versions.

Well the issue arose a few weeks ago when the MythTV upstream guys started to revise their default themes and add some additional icons to the -fixes branch. This causes a problem because of how we currently package MythTV, essentially I just svn up and do a svn diff -r 0.20.1:HEAD >mythtv.patch and that file ends up in SRC_URI and is downloaded and automatically applied on top of the tarball. This way users only have to download a few kilobytes of a bzipped patch and keep the base tarball on their system. However, with the binary changes, there is no easy way to create a diff or a changeset, so that leaves us with two options. Create a whole new tarball every single time, or download from svn directly.  The tarball every single time involves a little bit of work for me and a lot of downloading for the end user. If I update MythTV every week or every other week, that means about 40mb of downloads everytime. On the other hand, relying on svn means that we’re extending the build time depends but saving on bandwidth. (Yes, there is a third option which is create another tarball of all the binary changes plus the patchset, which is a headache and I’ve done it before for mytharchive and I have no interest in doing that).

Since MythTV upstream constantly tells users “are you at the latest svn? if not upgrade to the latest!”, it seems like they are confident in the svn infrastructure and recommend that to be used so I’ve gone the route of svn. This way the entire tree will only be checked out on everyone’s systems once and only the minor changes will be downloaded each time. This should conserve bandwidth and also ease maintenance  requirements which will provide for more frequent updates which seems to be what everyone wants. It’s unfortunate that MythTV does not have better release engineering so that we could avoid this, but unfortunately we’re stuck in between a rock and a hard place on this one.

In closing, it is correct that MythTV beginning with 0.20.1_p14146 depends on subversion.

New Myth Box

Cardoe wrote this in the wee hours:

Well this coming month I’m giving a presentation of MythTV at the local LUG, GatorLUG, meeting on June 21st. Since I haven’t had a working MythTV box for a few months and I’m the Gentoo MythTV maintainer, I figured now is a good time to build a new box. The issue has been I use a PPC box for my MythTV box and PPC doesn’t support TV out. I’ve recently purchased a new TV and it has PC and DVI inputs so it’s no longer an issue. However ivtv driver versions greater then 0.4.2 no longer work on PPC for me an several others. Hans doesn’t have an idea why but I have a feeling that it’s an endian-ness issue but I haven’t had a chance to dig into the code.

So far I’ve bought an Ahanix MCE601B case, eVGA Nvidia 7600GS passive cooled video card, an AMD Athlon64 3000+ AM2 Socket processor, and a MSI K9N SLI Platinum motherboard. Now I just need a SATA HD and some RAM and I’ll be all set. I will be putting my PVR-500 and PVR-250 into this box.

Hardware Laying About

Cardoe wrote this in the wee hours:

Hoping that someone might have some hardware laying about that I could aquire cheaply to help me hack on MythTV. Currently I have a Genesi hardware based PPC with a GeForce2 in it (with no TV out and no XvMC) and my x86 system that had a GeForce3 with TVout but the card decided it was time to kick the bucket so now I have an old old Trident card with less then 1mb on it so there’s no chance of getting MythTV to run on it. I was wondering if anyone had an ATI Radeon 9200-ish (or better like a 9500) for the PPC board or possilby a GeForce4 MX or something like that for the x86 system.

I’m in the US (specifically Florida) so I’ll have to take into consideration the cost of shipping.

Modded Xbox & SourceForge sucking

Cardoe wrote this in the early afternoon:

So this week I took the plunge once I canceled my Xbox Live service and bought a modchip for my Xbox. I installed a X-Lite modchip and use the X-Chip EvoX BIOS along with Xbox Media Center and I’ve tried to install XBMC for MythTV. XBMCMythTV is a add-on written in python. I would love to try it and contribute some code back but SourceForge currently sucks.

I only got the Xbox modchip to install Linux and MythTV on the Xbox but leave functionality to play Xbox games intact. The reason for this was that I currently can’t get my PPC box to output anything to TV-out but even if I did I’d probably need to get a new card like an ATI Radeon 9550 but I’m too broke to afford it now.

Now I was going to install GentooX MCE (since I didn’t want to compile everything on) on my Xbox and contribute to getting Gentoo to work better on the Xbox but I found out I needed at least 20gb free which seemed a bit excessive. I only have the original Xbox HD in there which is an 8gb (I have the Xbox 1.0) and you need a seperate partition for Linux that has to be above the 8gb mark so that ruled out Linux
So I’m trying to use XBMCMythTV but like I said SourceForge sucks because something is wrong with their CVS server. XBMCMythTV for 0.19 is only available in CVS. I followed the basic instructions:

cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbmcmythtv login

cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/xbmcmythtv co -P xbmcmythtv

But it doesn’t grab all the code. Just random files are missing so it won’t work currently. I keep running “cvs up -dP” but it hasn’t fixed it. Re-checking out the sources doesn’t fix it either. No idea what’s going on.

MythTV 0.19

Cardoe wrote this in the wee hours:

Thanks to everyone that tested out the SVN snapshots building up to the 0.19 release, you guys helped work out some potential bugs with the release. I’d just like to single kormoc out for all of his hard work testing each 0.19 SVN snapshot and helping me work through some issues with them.

Anew plugins is now available for MythTV. It is called MythFlix, which is an in MythTV manager for your NetFlix queue.

A new utility app called mythwelcome is now included. mythwelcome displays a basic screen for when mythfrontend is not running, for example if your system boots to record a show. Also, mythlcdserver which should make it easier to make MythTV work with your LCD screens.
The major changes in this release are:

  • LiveTV rewritten to support saving buffered content while watching
  • Signal Monitoring for DVB and pcHDTV recorders
  • Ending times may be changed while recordings are in progress
  • Playgroups allow for default playback options on recordings
  • Channel changes can be made across tuners without changing tuners manually first
  • New popup keyboard simplifies setup using remote
  • Preview schedule changes when making adjustments to recording schedules
  • Added ability to control MythFrontend through a telnet socket
  • Closed captioning support on PVR-250/350 (but not 150/500) cards, DVB subtitles, and other cards supporting VBI information.
  • New theme (MythCenter), new plugin (MythFlix), and new contributed programs (mythlcdserver, mythwelcome)
  • Signficantly overhauled MythWeb, please read the README for details and installation instructions
  • Added a basic internal DVD player, removing the need to use Xine or Mplayer

New Theme, media-tv herd & MythTV

Cardoe wrote this around lunchtime:

Well my blog has gotten a face lift. I went out and was looking at all sorts of themes and finally picked one I liked. It still needs to be tweaked a little bit to my liking but it’s a pretty nice theme. It’s much better then being lame and going with the default.

On the media-tv herd front, I went through and wrangled a lot of our bugs and trimmed the list to about half today. A lot of new package requests were assigned to maintainer-wanted. I know some people might be disappointed but I only joined the media-tv herd to take care of mythtv and then everyone in the herd left. I don’t have the hardware or the time to babysit all the other packages. I’ve been encouraging others to take over the packages one by one. So for those of you that want to become devs, here’s a call for you. You can pick up media-tv packages and use that as your way in.

MythTV front, well I’m preparing a release from the 0-18-fixes branch, but it appears unmaintained. There need to be a bunch of patches applied to it but haven’t been. So I’m taking the latest revision of 0-18-fixes, which is revision number 7882 and applying 5 patches to it and packing it up as 0.18.2_pre7882 and we’ll have that available in Portage shortly. There will also be a spot release of mythplugins and myththemes. They will be versions slightly differently, basically whatever their last revision # is.

MythTV & IVTV

Cardoe wrote this mid-afternoon:

Well Gentoo officially has a version of IVTV from the 0.3.x branch. We’ve released the 0.3.8 driver to ~x86 and hopefully ~amd64 will follow shortly. Soon as we can get the necessary patches for PPC, we’ll have it marked ~ppc.

My previous post details the issues I’ve having with my PPC machine and why I can’t work on IVTV on it along with MythTV. Which is what’s going to be the primary purpose of that box.

I’ve been working on some MythTV snapshots that include dependency updates so that they work with Modular X. Also, this includes some of the changes for the upcoming 0.19 series.

If anyone’s interested in any of these snapshots, which I can’t promise won’t toast your database, let me know and I’ll post them here.

A box appeared at my door

Cardoe wrote this terribly early in the morning:

I got a package yesterday from FedEx and cracked it opened and found some fun toys from Genesi & Pegasos care of Gentoo Developer Pieter Van den Abeele.

This equipment is to work on ivtv and the related media-tv stuffs and keeping it up to par. However, since I’m a poor Gentoo developer (read: college student who barely makes enough to pay bills) I’m too broke currently to buy RAM, a PSU and a case for the equipment. So it might take a bit to get it up and running (read: Google AdSense ads go directly to getting this box up). I will be offering accounts to any developers that need access to PPC hardware. Now what hardware is this you ask?

Well, it’s a Pegasos Dual PPC board, is what it says. But here’s a picture…

Pegasos MB

It came with the following processor, labeled on the other side as GX744.

GX744 Processor

And last but not least, a new ivtv card. Pieter said it’s a PVR-150. But looking into it further it turns out its a PVR-150 Low Profile, neat. :) Now I’ll be able to work on ivtv 0.3.x into Portage.

PVR-150LP