?

Log in

No account? Create an account

"TV"

« previous entry | next entry »
Feb. 6th, 2007 | 01:40 am

It was kind of impressive watching TV, when I knew that the TV was going into the back of a computer with (currently) no moving parts, getting digitized and sent over to the file server in the front room, and then back into my room onto my higher performance desktop.

The computer with the TV encoder in it is booting completely over the network (using NFS root).

Also if getting a single system MythTV system setup had problems getting it to run over the network was even more "fun". It took me a while to figure out how to configure the secondary (slave) backend. One of the important details is that when you clone using debootstrap, you really need to change the name of the new system for mythtv. If multiple systems in a mythtv network have the same name, they'll try looking for encoder cards that are over in the other system--this makes the mythtv backend die, and is frowned upon.

Once I figured that out, I then learned that they really mean it when you need to go through and just run the mythtv-setup program on the client. You need to do it (which when the client is going to be a headless box in a corner means either setting X up on it, or running mythtv-setup over an ssh tunnel.

Still to do, I need to figure out why the client isn't automatically mounting the nfs filesystems. (needed for myth since it needs to find the database connection file). It'd also be nice to set up kerberos and/or LDAP so I can cut down on the systems and passwords I need to remember. (Not to mention NFS4 looks to be more secure than NFS4)
Tags: ,

Link | Leave a comment | Share

Comments {2}

prof_reed

Questions

from: prof_reed
date: Feb. 6th, 2007 03:40 pm (UTC)
Link

So what file system did you use on the backend? Did you go with the favorite XFS or did you use something else? Your diskless computer is booting over the network or is it booting off a live cd? If its booting over the network is that something supported in the bios or is that a network card thing? And where is it getting the client software, does that come over the network too or is that stored somewhere internally in the client computer? What sort of bandwith are you working with 100mb or do you have something faster? What format are you using for the video and what encoder card are you using?

I'm really interested in you you've done all this. My partner complains about the noise of the machine we have in the living room (which has 3 hd) and if I could emulate you that would be cool.

p.s. what are the specs on the client & server your using.

Reply | Thread

Diane Trout

Re: Questions

from: alienghic
date: Feb. 6th, 2007 07:04 pm (UTC)
Link

So what file system did you use on the backend? Did you go with the favorite XFS or did you use something else?

I'm using JFS, according to JFS and XFS handled large files reasonably well. It was just that JFS had a lower CPU utilization. My first mythtv server was an early 866Mhz VIA C3 chip.

Your diskless computer is booting over the network or is it booting off a live cd? If its booting over the network is that something supported in the bios or is that a network card thing?

Booting off a live CD would be a moving part. :)

Most of the motherboards that I've been using that have ethernet built into the motherboard support something called PXE Boot. (Before the on motherboard network boot was standard, it was fairly common to find support for it on ethernet cards).

If you have your DHCP server appropriately configured it can tell client machines where on the network to grab a boot loader from. (From a tftp file server)

Even without going through the extra work for getting a full diskless setup working getting network boot is useful for serving up diagnostic tools like memtest86+ or installer images.

Once the system has a boot loader you can feed it a linux kernel and tell that to load the root filesystem over NFS.

For example...

In my /var/lib/tftpboot/pxelinux.cfg/default file I have:

DISPLAY boot.txt
DEFAULT linux-2.6.18-486

LABEL memtest
  kernel memtest86+.bin

LABEL linux-2.6.18-486
  kernel vmlinuz-2.6.18-3-486
  append vga=normal initrd=initrd.img-2.6.18-3-486 root=/dev/nfs nfsroot=192.168.34.5:/ghic/rachel/client ip=dhcp --

PROMPT 1
TIMEOUT 0


The magic bits root=/dev/nfs tells the kernel to use nfs for the filesystem, and the nfsroot= part specifies which server.

Though you can also get little IDE compact flash readers to boot locally with no moving parts. (Though then you need to make sure that the loaded OS doesn't constantly write to the filesystem as flash memory has a limited number of write cycles before it dies.)

What sort of bandwith are you working with 100mb or do you have something faster?

This setup was using gigabit ethernet, though there's only one CAT5 cable connecting the living room and my bedroom so the data was running over it both directions.

What format are you using for the video and what encoder card are you using?

I'm using a hauppage PVR-350 which encodes things to MPEG2. It's roughly 2.2 GB/hr, and after doing the math, I think that's about 5.24 megabit per second. I think it's possible to do one MPEG2 video stream over 802.11b (11 MB/s), but if you do too much that'll have trouble. However 100 MB ethernet could carry several streams without much problem.

p.s. what are the specs on the client & server your using.

The test I ran was with a Via VT-310DP as the file server, and I've variously used a VIA EIPA EN12000EN as the encoding client.

I've run the whole mess off either the 866Mhz VIA C3 board, or even the VIA M6000 600 MHz. (Both of those boards are fanless.) That worked because the hauppage card has a hardware MPEG2 encoder, and so the system mostly just had to handle the updating the database and writing the file to disk.

I also tend to use quieter than usual components. http://silentpcreview.com can have some useful information.

I also have bought a number of parts from logicsupply.com.

Although mini-itx.com has a more thorough site, they're located in england.

Reply | Parent | Thread