Friday, June 17, 2005

MediaMVP and DVB-T cards

I've been playing with a Hauppauge MediaMVP briefly as a MythTV frontend using mvpmc. It works great but doesn't yet have all of the functionality offered by mythfrontend. I'm only using this for test purposes at the moment but plan on getting a w/s LCD TV for the spare bedroom...

I've gradually shifted all of the backend services off of my shuttle and onto the GX150. This migration is now complete:
  • Shuttle: living-room frontend and slave backend (NTL)
  • GX150: Master backend (will be Freeview)

I'm still researching DVB-T cards but am beginning to narrow it down. I'm currently considering:

  • Avermedia AverTV 771
  • Hauppauge Nova-T
  • KWORLD V-Stream Xpert DTV - DVB-T
The Avermedia is my favourite as it has a good samsung frontend, good sensitivity, is reasonably priced at ~£70 and even has an svideo input. However, Linux users seem to be few and far between despite it having support in the latest v4l code. There appear to be a lot of Nova-T users but there are 3 different flavours of the card and I've read about numerous problems. I've heard good things(TM) about the kworld card but it's not widely available in the UK.

It's never easy is it? What do you have working?

Thursday, June 09, 2005

Phase #2 progress

Looking back at what I wanted for phase #2:

Heat & Noise
I've mostly achieved this. I didn't replace the fan but managed to quieten it down considerably using active PWM fan-control. It no-longer bothers me. However, the seek-noise of the Barracuda v8 was driving me mad and instead of trying various magic tricks inside the shuttle, I just moved it elsewhere and am mounting it up va NFS. This works great. NFSv3 over 100Mbit provides plenty enough bandwidth to manage LiveTV and a few frontends simultaneously.

I enabled CPU frequency management and tried undervolting but since I had to reset my BIOS recently, I left the CPU voltage alone.

DVD playback
Hmm. I tried using the latest ivtvdev X driver (0.10.1) with a 0.3.5-series ivtv driver with mixed results. Xv was working but I still couldn't get smooth playback on the 350. I also saw general video stability problems, ie. the PVR350 would lock-up after tens-of-minutes of activity.

Unfortunately, I didn't have time to look deeper into the issues and had to resort to the regular ivtv 0.2 driver.

I still don't have DVD playback (or ripped DVD playback or anything other than mpeg2) working but I'm planning on building a VGA->RGB converter and using the ATI VGA output. I now have the necessary components and am leaving my options open on this one...

RGB->svideo converter
Installed this yesterday. The NTL feed certainly looks a little cleaner but I'll need some time to appreciate the difference. While I was at it, I decided to normalise the colour saturation from the PVR350. It has been too strong since day-one and I've reset it to 45 (23400 in the db) for all channels. The default was 63 (32768 in the db).

Supply RGB input to my TV
As far as I'm aware, the PVR350 won't do direct RGB output, despite the chip supporting it. However, I now have the svideo output looking nice and clean. The bundled Hauppauge SCART lead produced nasty artifacts on YUV reds (composite was fine) but the other bundled breakout lead (female svideo, composite and LR audio) provided a good svideo signal. I could feed this into the front ports on my TV but I needed a passive svideo/SCART convertor to feed it into one of the back SCART inputs. I now have this and the PVR350's svideo output looks very nice.

Digital audio out
Not yet working. I spent a while trying to get this up and running and I'm now a little confused. The alsa page states that analogue audio works fine on the IXP150 (it does) with no mention of the S/PDIF. However, the driver itself has a lot of references to the IEC958. There were no errors when trying to use it, I just couldn't hear anything through my amp regardless of mixer settings.

I need to do some more testing and use a 48KHz sample. I also noticed that the atiixp driver has an option for 'S/PDIF over ac-link' (default) or S/PDIF direct. I need to try the later.

4:3/16:9 anamorphic switching
Did some tests with VBI wss signals using the regular 0.2 ivtv driver and actually had my TV sensing and responding to widescreen signals, however it was very unreliable and enabling VBI caused blocking artifacts to appear on the video.

Also did some minor testing with 0.3.5 driver but still couldn't get it to work. I think I must be doing something wrong as this looks like it should work.

Master and Servant

I'm now moving toward a new setup.

The idea is to have the Shuttle as a frontend and slave backend (fed by NTL through a PVR350) with a new master backend in the loft getting a Freeview DVB-T feed.

I'm currently missing a DVB-T card, a suitable aerial and network and power feeds in my loft but I do have the new master backend - a 1GHz PIII Dell GX150.

On my way toward this, I've moved the seek-noisy 200Gb Seagate Barracuda v8 out of the shuttle into the new backend, replacing it temporarily with a 60Gb Hitachi. I eventually plan to either lose the disk entirely and net-boot or use a very quiet, low-capacity 2.5" drive in the shuttle..

The Shuttle is still acting as master for now, managing and hosting the MySQL database. However, the video filestore is hosted via NFS from the GX150. I'll probably leave it like that until I have the DVB-T card and move all master functionality to the GX150.

Thursday, June 02, 2005

PWM fan control and power management on the st62k

I was about to order a replacement fan for my Shuttle when I stumbled upon pwmconfig. It's part of the lm_sensors pack and is used to discover PWM (pulse-width-modulation I guess) controllable fans on your system.

It found that fan1 (the only connected fan) was controlled by PWM and manageable via the lm_sensors /sys interface.

It writes a config for fancontrol which can be used to manage the fan with greater flexibility than the BIOS. It can switch the fan off completely and/or run it as low as 1000RPM by monitoring one of the 3 onboard temp sensors (RS300, CPU, system). It's a shell script and could be easily changed to support the ACPI thermal zone (/proc/acpi/thermal_zone/THRM/temperature) or perhaps even the smartd temp reading from your disk...

Here's what I have in /etc/fancontrol:
NB. This is for information only. Do not use this unless you know exactly what you're doing and don't hold me responsible for melting your shuttle or burning your house down!
INTERVAL=10
FCFANS= 1-0228/pwm1=1-0228/fan1_input
MINSTART= 1-0228/pwm1=10
MINSTOP= 1-0228/pwm1=2
# system temp control
FCTEMPS= 1-0228/pwm1=1-0228/temp3_input
MINTEMP= 1-0228/pwm1=42
MAXTEMP= 1-0228/pwm1=60
My fan is now spinning at 1360RPM most of the time and down to 1040RPM on occasions. These speeds are much quieter than the 1900RPM ultra-low setting used by the smart setting in the BIOS.

I combined this with p4-clockmod cpufreq management using cpudynd and my box now runs at 1.26GHz most of the time, only ramping up to 2.53GHz when there's something to do...

Finally, I tried undervolting the CPU in the BIOS. This worked great for a few days but then I suddenly (and alarmingly) found that my shuttle wouldn't boot. The fan would come on but there was no display and I couldn't even power it off without killing the power at the wall-socket! I don't know if this had anything to do with the undervolting but the only way I could get any life from my box was to clear the CMOS and reset the BIOS. I've left the CPU voltage at default for now...