Tales From The Geek Side

The geeky musings of Greg Rowe.

Archive for October, 2006

VIA Rhine PXE boot driver fix

October 31st, 2006 by greg

If you PXE boot a machine that uses the via-rhine driver in Linux you will find that you can boot it only once. After that first boot you have to physically remove power to the box to restore the network controller to the proper state. Well, at least that is the behavior I see with my VIA M10000 board.

As a workaround I commented out the following line in via-rhine.c on or around line 1969

iowrite8(ioread8(ioaddr + StickyHW) | 0x03, ioaddr + StickyHW);

Ahh, once again my Myth frontend reboots!

Category: Code, Geek, MythTV | No Comments »

VIA M10000 don’t disable glx!

October 31st, 2006 by greg

For some reason or another I disabled glx from my xorg.conf for my mythfrontend. When I did that dri stopped working and so did XvMC. I thought xorg was out of sync with my kernel so I built a new kernel but that wasn’t the real problem. At least now I have a custom kernel that’s nice and lean. Now, hopefully, I have enough horsepower to display some scaled down HDTV!

Category: Geek, MythTV | No Comments »

Updating my systems for MythTV 0.20

October 29th, 2006 by greg

I recently took the time to update most of my computer systems. First I installed a new kernel on my Shuttle SD11G5 which is my desktop machine. It’s a silent machine that uses a pentium M. That went well once I figured out that I had to include vm86 for X to work properly with the integrated i915GM graphics card. This is my desktop machine and I sometimes use it as a frontend. Currently if I try to watch HD content with 2.6.18 it will crash the entire computer. Something isn’t quite right with the LinearAlloc option for the i810 driver for xorg.

Updating the backend:
Next I updated my backend machine. My backend machine is a file server as well as the machine that runs Myth backend. I have a PVR150 card that I’ve been using for quite some time with Myth 0.18. I also have an HD3000 card that I’ve had for longer than the PVR150 that I haven’t been using. I didn’t use the HD card because I couldn’t get a lock on local stations because my antenna was oriented towards another city. It’s a long story but I reoriented the antenna because there is no longer any reason to have it pointed towards the other city. Once I did that I no longer had ghosting issues in the UHF band and I found (eventually) that the HD card locks perfectly on all of the local digital broadcasts. Myth reports generally 80% or more signal strength but I’m getting ahead of myself.

Building 2.6.17:
The first thing I updated was the kernel. I read on the MythTV wiki that the ivtv drivers (for the PVR150) don’t work with 2.6.18 so I downloaded 2.6.17. Configuration was fairly easy but I made a couple of mistakes along the way. Even through the ivtv drivers are not part of the kernel they use some encoder modules that are part of the standard kernel. The HD3000 card on the other hand uses modules that are all found in the kernel. The options I built my kernel with are:

Device Drivers:
Multimedia Devices:
<m> Video For Linux
<*> Enable Video For Linux API 1 compatible layer
Video Capture Devices:
<m> Conexant 2388x (bt878 successor) support
<m> DVB/ATSC support for cx2388x based TV cards
[*]     Build all supported frontends for cx2388x based TV cards
Encoders and Decoders:
<m> Wolfson Microelectronics WM8775 audio ADC with input mixer
<m>  Conexant cx2584x audio /video decoders

Building ivtv:
The next step was to compile ivtv. This was made incredibly easy by the wonder program in Debian called module-assistant. The ivtv source code is a package in the absolutely fantastic debian-multimedia repository. If you setup a MythTV system I fully believe there is no easier way than using their packages. In another post I’ll describe the setup of my diskless VIA mini-itx M10000 frontend system that uses hardware mpeg2 decoding and how the debian-multimedia project makes that a piece of cake. To use their packages add the following to /etc/apt/sources.list:

deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main

Once you’ve done that building and installing the ivtv drivers is a piece of menu-driven cake. Just run `module-assistant`. The UI steps you through everything and besides choosing what you want to build there really isn’t anything that you have to do. The program does it all for you.

Installing firmware files:
You’ll need the ivtv firmware files. Since I already had a much older version of ivtv on my system I didn’t have anything to do in this step. The firmware files I have in /usr/lib/hotplug/firmware for ivtv are:

v4l-cx2341x-dec.fw
v4l-cx2341x-enc.fw
v4l-cx2341x-init.mpg
v4l-cx25840.fw

Then, just add ivtv to /etc/modules and you are all set.

Next I had to get firmware for my HD3000 card. There is a script that comes with 2.6.17 for downloading the correct firmware file. You’ll need a different firmware file depending on what your HD source is. For me, I grab the HD streams that are broadcast over the air (8-VSB I think the encoding is called). The script is in Documentation/dvb/get_dvb_firmware. For the HD3000 card I ran it with the following:

$ perl get_dvb_firmware or51132-vsb

This gave me a file, “dvb-fe-or51132-vsb.fw”, which I moved to /usr/lib/hotplug/firmware. Finally, I added cx88 and cx88-blackbird to /etc/modules and I was done.

The rest of the upgrade process was incredibly simple because of debian-multimedia.org. I literally did an `apt-get dist-upgrade` and everything I needed was updated, MythTV 0.20 being the most important. It was upgraded from 0.18 to 0.20 with only one issue. Myth somehow lost the record times for a number of my recordings. I consider myself luck that I didn’t have any other issues. I can easily live with lost dates.

I did need to reconfigure the backend to use the HD3000 card and the PVR150. Since I am now loading both cards the ivtv card gets /dev/video1 instead of /dev/video0. But anyhow, setting up the backend for these cards was not too bad. Only the channel setup for the PVR150 was confusing.

Reconfiguring the backend:
I ran `mythtv-steup` (side note: why is the setup program for a server based app a GUI app? I really think this should be curses based. Remote administration of this is a nightmare and it need not be that way) and removed the existing capture cards and channel sources. I went to labs.zap2it.com and created two channel lineups. I’m very grateful that Zap2It provides this channel listing service for free. One channel listing is for digital broadcasts and the other for analog. You’ll want to make two because, while you can tune analog stations on the HD3000 card it is considered by Myth to be a seperate input source on the card. Just trust me, it’s much more convenient to have two channel sources.

When you add the HD3000 capture card select “DVB DTV capture card (3.x).” Myth will show you your card type at the “Frontend ID:” label. Next, choose the “Analog Options” button and make sure you select the correct V4L video device! Initially mine showed the device for the PVR150 card and things won’t work right if it is setup that way. Also be sure to select “Television” as the default input.

Next, I added the PVR150 card as a MPEG-2 encoder card. Once the correct video device is selected Myth prints the model number in the GUI. For this card be sure to select “Tuner1″ as the default input device.

The next step is assigning channels to the inputs. You do need to setup the channel sources but that is very easy to do. To assign channels select “Input Connections.” You’ll see the DVB card (HD3000) listed with a number of items below it. You can record analog TV with the card but it is software only and the tuning quality is horrible compared to my PVR150 card. After playing around with it I took it out of the setup. Setting up the channels for the DVB card isn’t exactly straight forward. You must select your digital “video source.” I don’t know why they call it a video source. To me it’s a “channel group.” Anyhow once you do that you MUST hit the scan for channels button. This is only required for DVB cards. It is optional for analog cards but do not choose this for analog cards and you will be annoyed at what it does with your channels if you do. Once the scan is complete, and it takes some time, then press the “fetch channels from listings source” button. There finally the HD card is read to go! Remember you can assign the analog channels to the analog input device for the HD card but I had poor results with it.

The last step was to assign the channels to the PVR150 device. Simply select the video source you created at labs.zap2it.com for your analog stations and then press the “fetch channels from listings source.” DO NOT SCAN FOR CHANNELS. You become frustrated at what this will do to your channels.

Category: Geek, MythTV | No Comments »

Tcl-Dox 0.5 released

October 17th, 2006 by greg

Based on feedback from a few users I’ve released a new version of Tcl-Dox. Changes and fixes include:

  • Correct handling of end-of-line on UNIX and Windows now.
  • Vastly improved documentation including examples
  • Corrected errors in the README file
  • Corrected errors in the example Doxyfile
  • Corrected build warnings (fixing a potential issue on 64 bit machines)

Thank you to the users who wrote with suggestions, questions, and feedback.

Category: Code, Geek | 2 Comments »

Ahhh, dri on my SD11G5

October 16th, 2006 by greg

I have a Shuttle SD11G5 silent PC that I’ve been using for at least 8 months now. I run it diskless and use Debian “unstable.” I recently played a DVD and performance was horrible. I read through /var/log/Xorg.0.log and found that DRI wasn’t working. I had a new (ish) version of xorg and my kernel modules were out of date. So I downloaded the latest kernel, built it, and X would not start.

The i810 driver for Xorg was complaining about “unknown type(0xffffffff)” and aborting. I tried multiple different kernel versions and each one failed. Last night a new version of 915resolution was released in the unstable branch for debian. 915resolution is a hack that allows you to use a native resolution for an LCD monitor instead of haveing xorg use a virtual resolution. The new release contains an “auto” mode that chooses a mode for you. I decided to try the new auto mode. When my test kernels booted the automode would fail giving an error about “vm86.” Luckily I remembered that vm86 is a kernel option that is used for things like dosemu to work correctly. If you use an i810 or i915 (and related) you must have vm86 built. Xorg fails without this.

It took a while but now I have DRI goodness once again.

So, to you i915 users out there be sure to compile use intel-agp, agpgart, drm, and i915 kernel drivers. And be absolutely certain to build vm86! I ought to email the i810 xorg developers to recommend a change to the log message and/or documentation to help other people that end up in my situation.

Category: Geek, Tips | No Comments »

Intel 915GM troubles

October 8th, 2006 by greg

I own a shuttle SD11G5 silent PC. It has a Pentium-M chip and uses the Intel 915GM and ICH6 chipsets. I recently noticed that DRI wasn’t working (it’s amazing what you learn when you read log files). DRI was being disabled by the version of xorg that I was running because the kernel dri module wasn’t new enough. I decided to upgrade my kernel to fix the problem.

I’ve been using 2.6.15 with a little PCI ID hack to get my sound card working. I decided to try a late version of 2.6.17 as that was the latest at the time. With that kernel the i810 driver for xorg barfs with the error:

(EE) I810(0): unknown type(0xffffffff)=0xff

I haven’t yet looked at the source to figure out exactly what this is all about. I did try 2.6.18 today as well as a late 2.6.16 for good measure. Both have the same issue for me and xorg will NOT start. With 2.6.15 X starts but without DRI.

Category: Geek | No Comments »

Evolution

October 7th, 2006 by greg

I’ve never been completely satisfied with an email client. The one I liked the best was Eudora version 3-dot-something. Since then I’ve used many other versions of Eudora (light). When I switched to Linux I couldn’t use Eudora anymore so I switched to Netscape Mail. That was quite bad. Eventually I started doing colo and hosting my own domain. When away from my desktop I was using pine. Eventually I migrated to mutt and have been using it ever since. I ended up abandoning using two email clients and used mutt exclusively. That way I had just one address book. There is no decent remote address book protocol. LDAP is too complex for this sort of task and isn’t fun to write to. Most LDAP servers are configured not to allow clients to write to them either.

Anyhow I decided to try out some new email clients. I’ve been toying with Thunderbird and Evolution. So far I like Evolution a little better mostly because it feels faster to me. In an effort to immerse myself in Evolution I tried to use it at work on Windows. I got it to run thanks for the MSI package that has been made for it. I could not get it to work with Exchange though. It worked with exchange when used from Linux but not from Windows. When I tried to authenticate it didn’t generate any network activity. I spent far longer than I should have playing with it and abandoned using it with Exchange.

Next I tried to use the calendaring aspect of it. I’m a long time user of Sunbird and use webdav over SSL with Basic Auth to keep a remote calendar. I tried to get Evolution to read the calendar I have on my server but I failed. I also tried this from Linux and I couldn’t get it to work. I haven’t given up yet but I do need to do some looking.

If I can get remote calendaring to work I’ll probably switch over to evolution completely.

Category: Geek | No Comments »