Linux media player settop box and IP router project
It's the time to retire my old linux router (10 years old P166 64Mb PC:-)
The router/firewall connects broadband internet (cable modem) to my home network
(3 Windows PCs and laptop). It runs WEB/FTP/SSH/Mail servers as well. Later I installed
Asterisk PBX server on it to provide inhouse telephone service.
Second piece of hardware to retire - Apex AD-1500 DVD player. The player plays
almost everything (DVD, Video CD, SVCD, CVD, Audio CD, MP3 CD) but can't play
AVI/DivX and other media formats. I don't like to watch movies on the computer
monitor. At home, movies are best watched on a TV.
So, the idea is simple, to combine both devices into single small size box suitable
to be placed in the living room. The hardware requirements are:
- Low power consumption (the box is 24/7/365 on!).
- Quiet.
- Videocard with TV-out.
- CPU must be powerfull enough to play different video formats.
- DVD/CD drive for DVD/CD-based media playback.
- HDD should be big enough to store AVI/DivX files.
- IR receiver to control the box with a remote control.
It's not so easy to satisfy to all these requirements... Most of videocards with
TV-out on the market are powerfull video accelerators which are consuming power
like a refrigirator and their coolers sound like a jet:-) Small PC cases are
sometimes too small to fit DVD drive or require a costly low-profile DVD drive.
Some mini-cases have no built-in PSU, but I want the box to be all in one.
After a week of research I finally found what I need.
Motherboard
VIA M10000 mini-ITX MB with VIA Nehemiah 1Gz CPU. The CPU is powerfull
enough to play all media formats, the graphics chipset has MPEG hardware
decoder, the board has TV-out connectors (composite and S-video), analog and
SPDIF audio outputs. The board also offers great connectivity choices:
2 RS-232 ports, 100Mb ethernet, 4 USB2.0 and 2 firewire ports!
Case
Mini-ITX case with 120WA PSU built in. The hole right to USB connectors
is the IR receiver window.
|
|
Additional hardware
The total cost of the hardware (with 256M DDR stick) is less than $400 including shipping.
Software
Hmm... That's the most tricky part and is still under construction:-) The main
idea is to build plug and play configuration and to avoid the use of X window
system, I see no reason to run X on a DVD player:-) The box has neither keyboard
nor mouse attached to it.
- OS. Gentoo Linux running
epia 2.4.24 kernel
with supermount feature enabled.
- Framebuffer. I'm using DirectFB project cle266
framebuffer driver with the following changes:
- I compiled the driver using original VIA via_tv3.h
header file. It provides standard TV signal timings and has no line drops like
directfb's one.
- The following patch adds TVfilter=N
command line parameter support to viafb driver to control chipset's deflicker feature.
The possible values
are: 0 - deflicker disabled, 1 - 1:1:1 filter, 2 - 1:2:1 filter. The default
value is 2 (like in original VIA driver).
- Media player. I'm using the CVS version of fbxine player from
Xine project with the following patches:
- Plug'n'play. Just insert a CD/DVD and watch. The software autodetects the
type of the disc inserted and calls fbxine with the apropriate parameters.
The steps are:
- Start the software from inittab:
c1:12345:respawn:/sbin/agetty -n -l /home/media/tvmenu.sh 38400 tty1 linux
tvmenu.sh:
#!/bin/sh
exec su - media -c /usr/local/bin/cdde
fstab:
#CD/DVD ROM
none /mnt/cdrom supermount fs=iso9660:udf,dev=/dev/cdrom,--,ro 0 0
- cdde is a patched Eric Lathrop's
media detector software and is controlled by this
configuration file.
Update.
Unichrome team made a great work
developing driver and MPEG2 decoder support for X. So... I switched to X Window.
I created a new gentoo ebuild
for Xorg-6.8.0 based on unichrome-r27 and libviaXvMC-0.13.0.
Feel free to contact me if you have any questions or suggestions,
Sergey Okhapkin.