#LyX 1.4.2 created this file. For more info see http://www.lyx.org/
\lyxformat 245
\begin_document
\begin_header
\textclass scrartcl
\begin_preamble
\usepackage{makeidx,color}
%begin{latexonly}
\lhead{Section \thesection}
\chead{}
\rhead{User Guide}
\lfoot{Page \thepage}
\cfoot{}
\rfoot{\today}
\usepackage{ifpdf}
\ifpdf
\pdfinfo { /Author (Duncan Webb)
/Title (Freevo From Scratch Configuration Guide)
/Subject (Freevo)
}
\pdfcatalog { /PageMode (/UseNone)
/OpenAction (fitbh)
}
\usepackage[pdftex,colorlinks=true]{hyperref}
\else
\usepackage[ps2pdf]{hyperref}
\fi
%end{latexonly}
\usepackage{html}
\usepackage{hthtml}
\begin{htmlonly}
\newcommand{\vref}[1]{\ref{#1}}
\newcommand{\htmldivID}[2]{\HTMLcode[ID="#1"]{DIV}{#2}}
\end{htmlonly}
\newcommand{\locator}[2]{\latexhtml{\href{#2}{#1}}{\htlink{#1}{#2}}}
\end_preamble
\language english
\inputencoding auto
\fontscheme pslatex
\graphics default
\float_placement htp
\paperfontsize 12
\spacing single
\papersize a4paper
\use_geometry false
\use_amsmath 1
\cite_engine basic
\use_bibtopic false
\paperorientation portrait
\secnumdepth 3
\tocdepth 3
\paragraph_separation skip
\defskip medskip
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle fancy
\tracking_changes false
\output_changes false
\end_header
\begin_body
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
begin{rawhtml}
\backslash
end{rawhtml}
\end_layout
\end_inset
\end_layout
\begin_layout Title
Freevo From Scratch
\newline
Configuration Guide
\end_layout
\begin_layout Author
Duncan Webb
\end_layout
\begin_layout Abstract
This document describes the steps that are required to build a Personal
Video Recorder (PVR) from scratch.
The goal of this project is to build a PVR that can be used by people with
hearing difficulties so that subtitles are recorded along with the television
programs.
When a program is played back the recorded subtitles are displayed along
with the program.
The from scratch in the title means that all the software used to build
this system is royality free and has been built from source code.
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
begin{rawhtml}
\backslash
end{rawhtml}
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
%begin{latexonly}
\end_layout
\begin_layout Standard
\backslash
lhead{Contents}
\end_layout
\begin_layout Standard
\backslash
newpage
\end_layout
\begin_layout Standard
\backslash
tableofcontents{}
\end_layout
\begin_layout Standard
\backslash
newpage
\end_layout
\begin_layout Standard
\backslash
lhead{Section
\backslash
thesection}
\end_layout
\begin_layout Standard
%end{latexonly}
\end_layout
\end_inset
\end_layout
\begin_layout Section
Introduction
\end_layout
\begin_layout Standard
PVR from scratch is a project to build a Personal Video Recorder (PVR) using
open source software and easily obtainable hardware.
The hardware is build from personal computer components, the operating
system is Linux and the PVR software is Python programs.
Python in a scripting language that runs on various platforms including
Microsoft Window, Mac OsX and Linux.
\end_layout
\begin_layout Section
Hardware
\end_layout
\begin_layout Standard
The hardware that has been selected has to meet several criteria.
It must be small and attractive enough to resemble a set-top box, The following
list details the requirements:
\end_layout
\begin_layout Itemize
All components have Linux drivers
\end_layout
\begin_layout Itemize
Small as possible
\end_layout
\begin_layout Itemize
Quiet as possible
\end_layout
\begin_layout Itemize
Intel of AMD64 processor
\end_layout
\begin_layout Itemize
2 PCI slots or 1 PCI slot + wifi adapter
\end_layout
\begin_layout Itemize
Audio Optical Output
\end_layout
\begin_layout Itemize
Built in Graphics Card
\end_layout
\begin_layout Itemize
Serial ATA drives
\end_layout
\begin_layout Standard
The system chosen is a barebones system from Shuttle, the system components
were selected for quality and a reasonable price.
Cheaper component could have been used and it may have been possible to
save 10% of the total cost.
The hardware components are:
\end_layout
\begin_layout typewriter
\begin_inset ERT
status open
\begin_layout Standard
{
\backslash
fontsize{7}{10pt}
\backslash
normalfont
\backslash
ttfamily{}Shuttle XPC SB83G5M, Intel 915G, Socket LGA775, Media Center
\end_layout
\begin_layout Standard
Shuttle PN18, XPC Wireless LAN Adapter, 802.11g
\end_layout
\begin_layout Standard
Intel Pentium 4 511 2.8 GHz BOX, 1MB, 533MHz FSB, LGA775
\end_layout
\begin_layout Standard
Kingston KHX3200AK2/1G, 1024MB als 2x512MB DDR400 Kit, CL2
\end_layout
\begin_layout Standard
Samsung HD300LJ, T133, 7200rpm, 8MB, 300GB, SATA-II
\end_layout
\begin_layout Standard
Plextor PX-750A, 16x DVD±RW Writer, grau+schwarz, Retail
\end_layout
\begin_layout Standard
Hauppauge WinTV PVR-350, Personal Video Recording
\end_layout
\begin_layout Standard
}
\end_layout
\end_inset
\end_layout
\begin_layout Subsection
Linux Kernel Patches and Drivers
\end_layout
\begin_layout Standard
The kernel used is
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{linux-2.6.15.7}{http://www.kernel.org/pub/linux/kernel/v2.6/}
\end_layout
\end_inset
with the
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{bootsplash-3.1.6-2.6.15.diff}{ftp://ftp.openbios.org/pub/bootsplash/kernel/}
\end_layout
\end_inset
patch.
Maybe more recent kernels also support bootsplash.
\end_layout
\begin_layout Subsubsection
Shuttle PN18, XPC Wireless LAN Adapter
\end_layout
\begin_layout Standard
The Shuttle PN18, XPC Wireless LAN Adapter is a USB device and used the
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{ZyDAS ZD1211 802.11b/g}{http://zd1211.ath.cx/}
\end_layout
\end_inset
driver.
This driver can be downloaded from
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{zd1211.ath.cx}{http://zd1211.ath.cx/download/}
\end_layout
\end_inset
.
And there are several user manuals available, on of the best is available
from
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{safecom.cn}{http://safecom.cn/code/product/WLAN/SWMULZ-5400/manual/SWMULZ-
5400-Linux-UserGuide.pdf}
\end_layout
\end_inset
.
This WLAN adapter is now part of kernel 2.6.18.
\end_layout
\begin_layout Subsubsection
Hauppauge WinTV PVR-350
\end_layout
\begin_layout Standard
Hauppauge WinTV PVR-350 is a PCI device using the
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{IVTV Driver}{http://ivtvdriver.org/index.php/Main_Page}
\end_layout
\end_inset
.
This card has both an mpeg encoder and decoder and a TV-out device.
The driver is reasonable stable and should be in the kernel sometime soon.
\end_layout
\begin_layout Subsection
Assembly
\end_layout
\begin_layout Standard
It took several hours to assemble the system, a barebones system is more
fiddly to assemble than a standard PC.
The manuals supplied by Shuttle are good quality and clearly written.
Once the system was built, connected to a monitor, keyboard, mouse and
a power cable.
A Knoppix 5.0.1 bootable CD was placed in the DVD drive and the system was
powered up, it worked first time.
\end_layout
\begin_layout Standard
The assemble of the system went quite smoothly.
The installation of the wireless LAN adapter was a bit awkward.
The CPU was easy enough, the cooling fan that was supplied with the procesor
was not required.
The memory as installed with a snap.
The S-ATA hard disk was installed into the drive holder; S-ATA drives are
much easier to connect than standard IDE drives.
The DVD drive needed some accurate positioning to ensure that the eject
button aligned with the door button.
One cable that was not supplied is an audio cable to connect the DVD drive
to the motherboard.
The WinTV card was installed in the PCI slot.
The connector that opens the drive door need to be changed to the 1.8mm
riser.
\end_layout
\begin_layout Standard
Here are the PCI ids for the system:
\end_layout
\begin_layout typewriter
\begin_inset ERT
status open
\begin_layout Standard
{
\backslash
fontsize{7}{10pt}
\backslash
normalfont
\backslash
ttfamily{}00:00.0 Host bridge: Intel Corporation 915G/P/GV/GL/PL/910GL Express
Memory Controller Hub (rev 04)
\end_layout
\begin_layout Standard
00:02.0 VGA compatible controller: Intel Corporation 82915G-/GV-/910GL Express
Chipset Family Graphics Controller (rev 04)
\end_layout
\begin_layout Standard
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
USB UHCI #1 (rev 03)
\end_layout
\begin_layout Standard
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
USB UHCI #2 (rev 03)
\end_layout
\begin_layout Standard
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
USB UHCI #3 (rev 03)
\end_layout
\begin_layout Standard
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
USB UHCI #4 (rev 03)
\end_layout
\begin_layout Standard
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family)
USB2 EHCI Controller (rev 03)
\end_layout
\begin_layout Standard
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
\end_layout
\begin_layout Standard
00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW
(ICH6 Family) AC'97 Audio Controller (rev 03)
\end_layout
\begin_layout Standard
00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface
Bridge (rev 03)
\end_layout
\begin_layout Standard
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM-/FR-/FW-/FRW (ICH6 Family)
IDE Controller (rev 03)
\end_layout
\begin_layout Standard
00:1f.2 IDE interface: Intel Corporation 82801FR/FRW (ICH6R/ICH6RW) SATA
Controller (rev 03)
\end_layout
\begin_layout Standard
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus
Controller (rev 03)
\end_layout
\begin_layout Standard
01:09.0 Multimedia video controller: Internext Compression Inc iTVC15 MPEG-2
Encoder (rev 01)
\end_layout
\begin_layout Standard
01:0a.0 FireWire (IEEE 1394): VIA Technologies, Inc.
IEEE 1394 Host Controller (rev 80)
\end_layout
\begin_layout Standard
01:0b.0 Ethernet controller: Marvell Technology Group Ltd.
88E8001 Gigabit Ethernet Controller (rev 13)
\end_layout
\begin_layout Standard
}
\end_layout
\end_inset
\end_layout
\begin_layout Section
Freevo Configuration
\end_layout
\begin_layout Standard
The following sections are extracted directly from the /etc/freevo/local_conf.py
configuration file.
\end_layout
\begin_layout LyX-Code
# local_conf.py
\end_layout
\begin_layout LyX-Code
# see /usr/share/freevo/freevo_config.py for defaults
\end_layout
\begin_layout LyX-Code
# see /etc/freevo/freevo.conf for programs and devices
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
CONFIG_VERSION = 5.15
\end_layout
\begin_layout LyX-Code
LOCALE = 'utf8'
\end_layout
\begin_layout Subsection
Audio settings
\end_layout
\begin_layout Standard
These are a list of settings for the audio
\end_layout
\begin_layout LyX-Code
#AUDIO_DEVICE = '/dev/dsp'
\end_layout
\begin_layout LyX-Code
MAJOR_AUDIO_CTRL = 'VOL'
\end_layout
\begin_layout LyX-Code
CONTROL_ALL_AUDIO = 1
\end_layout
\begin_layout LyX-Code
DEFAULT_VOLUME = 70
\end_layout
\begin_layout LyX-Code
TV_IN_VOLUME = 80
\end_layout
\begin_layout LyX-Code
VCR_IN_VOLUME = 60
\end_layout
\begin_layout LyX-Code
RADIO_IN_VOLUME = 85
\end_layout
\begin_layout Subsection
System settings
\end_layout
\begin_layout Standard
The following are system settings
\end_layout
\begin_layout LyX-Code
START_FULLSCREEN_X = 1
\end_layout
\begin_layout LyX-Code
ENABLE_SHUTDOWN_SYS = 1
\end_layout
\begin_layout LyX-Code
CONFIRM_SHUTDOWN = 1
\end_layout
\begin_layout LyX-Code
SHUTDOWN_SYS_CMD = '/usr/local/bin/shutdownfreevo grub 2 yes'
\end_layout
\begin_layout LyX-Code
CACHE_IMAGES = 1
\end_layout
\begin_layout LyX-Code
UMASK = 002
\end_layout
\begin_layout LyX-Code
ROM_DRIVES = [ ('/mnt/dvd', '/dev/dvd', 'DVD') ]
\end_layout
\begin_layout LyX-Code
ROM_SPEED = 8
\end_layout
\begin_layout Subsection
event settings
\end_layout
\begin_layout Standard
Here are some event, which have been added or changed from the defaults.
The user guide has a complete list of events.
\end_layout
\begin_layout LyX-Code
EVENTS['menu']['REC'] = Event(MENU_CALL_ITEM_ACTION, arg='queue_a_track')
\end_layout
\begin_layout LyX-Code
EVENTS['menu']['YELLOW'] = Event(MENU_CALL_ITEM_ACTION, arg='close_playlist')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['ENTER'] = Event(VIDEO_MANUAL_SEEK)
\end_layout
\begin_layout LyX-Code
EVENTS['video']['REPLAY'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek -60')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['SKIP'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek +60')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['PLAY'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='speed_set 1.0')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['FFWD'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='speed_mult
2.0')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['REW'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing seek
-30')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['LANG'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='switch_audio')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['SUBTITLE'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='vobsub_lang')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['CH+'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='sub_pos -1')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['CH-'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='sub_pos +1')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['GREEN'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='audio_delay
+0.05')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['YELLOW'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='audio_delay
-0.10')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['GUIDE'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='screenshot')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['LEFT'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing seek
-0.1')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['RIGHT'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing frame_step
+1.0')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['UP'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing seek
+0.5')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['DOWN'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing seek
-0.5')
\end_layout
\begin_layout LyX-Code
EVENTS['video']['SELECT'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='pausing edl_mark'
)
\end_layout
\begin_layout Standard
adding this code to local_conf.py prints out all the events:
\end_layout
\begin_layout LyX-Code
for (k,v) in EVENTS.items():
\end_layout
\begin_layout LyX-Code
print '==========='
\end_layout
\begin_layout LyX-Code
print '%s' % (k)
\end_layout
\begin_layout LyX-Code
print '-----------'
\end_layout
\begin_layout LyX-Code
for (k2,v2) in v.items():
\end_layout
\begin_layout LyX-Code
if v2.handler != None:
\end_layout
\begin_layout LyX-Code
print ' "%s" %s "%s" %s:%s' % (k2, v2.name, v2.arg, v2.context,
v2.handler)
\end_layout
\begin_layout LyX-Code
elif v2.context != None:
\end_layout
\begin_layout LyX-Code
print ' "%s" %s "%s" %s' % (k2, v2.name, v2.arg, v2.context)
\end_layout
\begin_layout LyX-Code
elif v2.arg != None:
\end_layout
\begin_layout LyX-Code
print ' "%s" %s "%s"' % (k2, v2.name, v2.arg)
\end_layout
\begin_layout LyX-Code
else:
\end_layout
\begin_layout LyX-Code
print ' "%s" %s' % (k2, v2.name)
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout Subsection
Plugins and settings
\end_layout
\begin_layout Standard
The settings in the following sections are determine the defaults and the
extra features that can be enabled in freevo.
\end_layout
\begin_layout Subsubsection
idlebar plugin settings
\end_layout
\begin_layout Standard
The following settings determine which idlebar programs are active.
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar')
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar.tv', level = 20)
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar.cdstatus', level = 20)
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar.holidays', level = 20)
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar.clock', level = 50, args='%a %d %H:%M')
\end_layout
\begin_layout LyX-Code
plugin.activate('idlebar.wakeup', level = 20)
\end_layout
\begin_layout Subsubsection
wakeup plugin settings
\end_layout
\begin_layout Standard
The wakeup server settings determine how long after the machine is idle
to turn it off.
The machine will wake up again before the next program or at 09:00 each
day.
\end_layout
\begin_layout LyX-Code
WAKEUP_SERVER_UID = 0
\end_layout
\begin_layout LyX-Code
WAKEUP_SERVER_GID = 0
\end_layout
\begin_layout LyX-Code
WAKEUP_SERVER_HOST = '127.0.0.1'
\end_layout
\begin_layout LyX-Code
WAKEUP_SERVER_PORT = 18002
\end_layout
\begin_layout LyX-Code
WAKEUP_CONFIGFILE = '/etc/nvram-wakeup.conf'
\end_layout
\begin_layout LyX-Code
WAKEUP_SHUTDOWN_DELAY = 2
\end_layout
\begin_layout LyX-Code
WAKEUP_SHUTDOWN_TIME = 20
\end_layout
\begin_layout LyX-Code
WAKEUP_REBOOT_TIME = 10
\end_layout
\begin_layout LyX-Code
WAKEUP_AT_FALLBACK = [
\end_layout
\begin_layout LyX-Code
'RelativeDateTime(days=0, hour=9,minute=0,second=0)',
\end_layout
\begin_layout LyX-Code
'RelativeDateTime(days=1, hour=9,minute=0,second=0)',
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
plugin.activate('wakeupclient')
\end_layout
\begin_layout Subsubsection
weather plugin settings
\end_layout
\begin_layout Standard
The weather plugin setting for Zurich
\end_layout
\begin_layout LyX-Code
PLUGIN_WEATHER_LOCATIONS = [ ('SZXX0033', 1) ]
\end_layout
\begin_layout LyX-Code
plugin.activate('weather', level = 45)
\end_layout
\begin_layout Subsubsection
audio plugin settings
\end_layout
\begin_layout Standard
The following are some settings for the audio plugins
\end_layout
\begin_layout LyX-Code
plugin.activate('audio.playlist', args = ('/freevo/playlists','Playlist %m:%d'))
\end_layout
\begin_layout LyX-Code
AUDIO_BACKUP_DIR = '/freevo/music'
\end_layout
\begin_layout LyX-Code
CD_RIP_PN_PREF = '%(artist)s/%(album)s/%(track)s - %(song)s'
\end_layout
\begin_layout LyX-Code
CD_RIP_LAME_OPTS = '--vbr-new -b 192 -h'
\end_layout
\begin_layout LyX-Code
plugin.activate('audio.cdbackup')
\end_layout
\begin_layout LyX-Code
# using ~/.amazonkey for coversearch
\end_layout
\begin_layout LyX-Code
plugin.activate('audio.coversearch')
\end_layout
\begin_layout Subsubsection
video plugin settings
\end_layout
\begin_layout Standard
Enable the dvdimage plugin that allows iso images to be viewed.
\end_layout
\begin_layout LyX-Code
plugin.activate('video.dvdimage')
\end_layout
\begin_layout Subsubsection
radio plugin settings
\end_layout
\begin_layout Standard
The following are the radio settings, using the PVR-350 card requireds some
changes in the audio radio player.
\end_layout
\begin_layout LyX-Code
plugin.activate('audio.radioplayer')
\end_layout
\begin_layout LyX-Code
plugin.activate('audio.radio')
\end_layout
\begin_layout LyX-Code
RADIO_CMD = '/usr/bin/ivtv-radio -d /dev/radio0 -i /dev/video24'
\end_layout
\begin_layout LyX-Code
RADIO_STATIONS = [
\end_layout
\begin_layout LyX-Code
(u'DRS 1', '94.80'),
\end_layout
\begin_layout LyX-Code
(u'DRS 2', '95.60'),
\end_layout
\begin_layout LyX-Code
(u'DRS 3', '97.40'),
\end_layout
\begin_layout LyX-Code
(u'VIRUS', '104.30'),
\end_layout
\begin_layout LyX-Code
(u'Radio Rumantsch', '96.00'),
\end_layout
\begin_layout LyX-Code
(u'DRS Musigwälle', '106.40'),
\end_layout
\begin_layout LyX-Code
(u'Radio Swiss Classic', '106.90'),
\end_layout
\begin_layout LyX-Code
(u'Radio Swiss Pop', '107.30'),
\end_layout
\begin_layout LyX-Code
(u'Radio Swiss Jazz', '96.30'),
\end_layout
\begin_layout LyX-Code
(u'Radio 24', '102.90'),
\end_layout
\begin_layout LyX-Code
(u'Energy Zürich', '101.10'),
\end_layout
\begin_layout LyX-Code
(u'Radio Zürisee', '90.20'),
\end_layout
\begin_layout LyX-Code
(u'Radio LoRa', '88.10'),
\end_layout
\begin_layout LyX-Code
(u'Radio Sunshine', '106.10'),
\end_layout
\begin_layout LyX-Code
(u'Radio Argovia', '103.90'),
\end_layout
\begin_layout LyX-Code
(u'Radio Top (Reg.
Winterthur)', '105.40'),
\end_layout
\begin_layout LyX-Code
(u'Radio Tropic', '98.70'),
\end_layout
\begin_layout LyX-Code
(u'Radio Eviva', '92.80'),
\end_layout
\begin_layout LyX-Code
(u'RSR 1 (La première)', '97.70'),
\end_layout
\begin_layout LyX-Code
(u'RSR 2 (Espace 2)', '98.30'),
\end_layout
\begin_layout LyX-Code
(u'RSR 3 (Couleur 3)', '99.00'),
\end_layout
\begin_layout LyX-Code
(u'France Culture', '101.90'),
\end_layout
\begin_layout LyX-Code
(u'France Inter', '100.70'),
\end_layout
\begin_layout LyX-Code
(u'France Musique', '99.40'),
\end_layout
\begin_layout LyX-Code
(u'RSI 1 (Rete 1)', '96.80'),
\end_layout
\begin_layout LyX-Code
(u'Österreich 1', '91.40'),
\end_layout
\begin_layout LyX-Code
(u'Österreich 2', '92.10'),
\end_layout
\begin_layout LyX-Code
(u'RSI 2 (Rete 2)', '93.50'),
\end_layout
\begin_layout LyX-Code
(u'SWR 1 BW', '88.50'),
\end_layout
\begin_layout LyX-Code
(u'SWR 2 BW', '89.00'),
\end_layout
\begin_layout LyX-Code
(u'SWR 3', '89.50'),
\end_layout
\begin_layout LyX-Code
(u'SWR 4 BW', '87.80'),
\end_layout
\begin_layout LyX-Code
(u'Bayern 1', '93.10'),
\end_layout
\begin_layout LyX-Code
(u'RSI 3 (Rete 3)', '92.40'),
\end_layout
\begin_layout LyX-Code
(u'Bayern 3', '93.80'),
\end_layout
\begin_layout LyX-Code
(u'Bayern 4 Klassik', '94.20'),
\end_layout
\begin_layout LyX-Code
(u'Deutschlandfunk', '89.80'),
\end_layout
\begin_layout LyX-Code
(u'Radio Monte Carlo Swiss', '95.10'),
\end_layout
\begin_layout LyX-Code
(u'Radio 105 Network', '105.10'),
\end_layout
\begin_layout LyX-Code
(u'Life Channel', '107.60'),
\end_layout
\begin_layout LyX-Code
(u'Voice of America', '91.00'),
\end_layout
\begin_layout LyX-Code
(u'BBC World Service', '90.70'),
\end_layout
\begin_layout LyX-Code
(u'Klassik Radio', '103.30'),
\end_layout
\begin_layout LyX-Code
(u'Swiss Music Radio', '104.60')
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout Subsubsection
Headlines plugin settings
\end_layout
\begin_layout Standard
These are for the headline rss feeds.
\end_layout
\begin_layout LyX-Code
plugin.activate('headlines', level = 40)
\end_layout
\begin_layout LyX-Code
HEADLINES_LOCATIONS = [
\end_layout
\begin_layout LyX-Code
(u'BBC Front Page', 'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/front_page/
rss.xml'),
\end_layout
\begin_layout LyX-Code
(u'BBC World', 'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/world/rss.xml'),
\end_layout
\begin_layout LyX-Code
(u'BBC Technology', 'http://newsrss.bbc.co.uk/rss/newsonline_uk_edition/technology/
rss.xml'),
\end_layout
\begin_layout LyX-Code
(u'ZDNet Linux', 'http://feeds.zdnet.co.uk/rss/0,39026141,10000004c,00.htm'),
\end_layout
\begin_layout LyX-Code
(u'Tagesschau','http://www.tagesschau.de/newsticker.rdf'),
\end_layout
\begin_layout LyX-Code
(u'Spiegel Online','http://www.spiegel.de/schlagzeilen/rss/0,5291,,00.xml'),
\end_layout
\begin_layout LyX-Code
(u'Faz.net','http://www.faz.net/s/Rub/Tpl~Epartner~SRss_.xml'),
\end_layout
\begin_layout LyX-Code
(u'Netzeitung.de','http://www.netzeitung.de/export/news/rss/titelseite.xml'),
\end_layout
\begin_layout LyX-Code
(u'Stern.de','http://www.stern.de/standard/rss.php?channel = all'),
\end_layout
\begin_layout LyX-Code
(u'Pressedienst, News, Analysen zu Inet-Marketing + Suchmaschinen','http://www.ma
rketingman.de/rss.php'),
\end_layout
\begin_layout LyX-Code
(u'Geo.de','http://www.geo.de/rss/GEO/index.xml'),
\end_layout
\begin_layout LyX-Code
(u'TheGeek.de - Coding, Culture and Arts','http://www.thegeek.de/blog/rss2.php'),
\end_layout
\begin_layout LyX-Code
(u'Heise News','http://www.heise.de/newsticker/heise.rdf'),
\end_layout
\begin_layout LyX-Code
(u'Heise Security','http://www.heise.de/security/news/news.rdf'),
\end_layout
\begin_layout LyX-Code
(u'Heise Mobil','http://www.heise.de/mobil/newsticker/heise.rdf'),
\end_layout
\begin_layout LyX-Code
(u'Pro-Linux','http://www.pl-forum.de/backend/pro-linux.rdf'),
\end_layout
\begin_layout LyX-Code
(u'Telepolis','http://www.heise.de/tp/news-xl.rdf'),
\end_layout
\begin_layout LyX-Code
(u'php-homepage.de','http://www.php-homepage.de/backend/rss/1.0/'),
\end_layout
\begin_layout LyX-Code
(u'Polarluft - Neue Webseiten und Online-Artikel zum Thema Computer und
Internet','http://www.polarluft.de/all.rss')
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout Subsubsection
Other plugin settings
\end_layout
\begin_layout Standard
Here are some other plugins.
\end_layout
\begin_layout LyX-Code
plugin.activate('shoppingcart')
\end_layout
\begin_layout LyX-Code
plugin.activate('usb')
\end_layout
\begin_layout LyX-Code
for t in ('video', 'audio', 'image'):
\end_layout
\begin_layout LyX-Code
plugin.activate('usbstorage', type=t, args=('Drive USB', '/media/usbdrive1')
)
\end_layout
\begin_layout LyX-Code
plugin.activate('fxditem.Mimetype')
\end_layout
\begin_layout LyX-Code
plugin.activate('playlist.Mimetype')
\end_layout
\begin_layout LyX-Code
plugin.activate('vfd')
\end_layout
\begin_layout LyX-Code
plugin.activate('df')
\end_layout
\begin_layout LyX-Code
plugin.activate('directory.Dirwatcher')
\end_layout
\begin_layout LyX-Code
# Lets use vbi2srt to grab the subtitles
\end_layout
\begin_layout LyX-Code
plugin.remove('tv.generic_record')
\end_layout
\begin_layout LyX-Code
plugin_record = plugin.activate('tv.vbi2srt_record')
\end_layout
\begin_layout Subsection
directory settings
\begin_inset LatexCommand \label{sub:directory-settings}
\end_inset
\end_layout
\begin_layout Standard
The following is a set of defaults for the directories and the sub-directories.
\end_layout
\begin_layout LyX-Code
OVERLAY_DIR = '/var/freevo/overlay'
\end_layout
\begin_layout LyX-Code
DIRECTORY_REVERSE_SORT = 1
\end_layout
\begin_layout LyX-Code
DIRECTORY_SMART_SORT = 1
\end_layout
\begin_layout LyX-Code
DIRECTORY_AUTOPLAY_SINGLE_ITEM = 1
\end_layout
\begin_layout LyX-Code
DIRECTORY_FORCE_SKIN_LAYOUT = -1
\end_layout
\begin_layout LyX-Code
DIRECTORY_USE_MEDIAID_TAG_NAMES = 1
\end_layout
\begin_layout LyX-Code
#a = artist, n = tracknumber, t = title, y = year, f = filename
\end_layout
\begin_layout LyX-Code
DIRECTORY_AUDIO_FORMAT_STRING = '%(t)s'
\end_layout
\begin_layout LyX-Code
DIRECTORY_CREATE_PLAYLIST = [ 'audio', 'image' ]
\end_layout
\begin_layout LyX-Code
DIRECTORY_ADD_PLAYLIST_FILES = [ 'audio', 'image' ]
\end_layout
\begin_layout LyX-Code
DIRECTORY_AUTOPLAY_ITEMS = [ 'audio', 'image' ]
\end_layout
\begin_layout LyX-Code
DIRECTORY_ADD_RANDOM_PLAYLIST = [ 'audio' ]
\end_layout
\begin_layout LyX-Code
DIRECTORY_AUTOPLAY_ITEMS = [ ]
\end_layout
\begin_layout Subsection
video settings
\end_layout
\begin_layout Standard
The following determine which video files are played by which player.
(TODO check if xine is better a DVDs than player)
\end_layout
\begin_layout LyX-Code
VIDEO_MPLAYER_SUFFIX = [
\end_layout
\begin_layout LyX-Code
'avi', 'mpg', 'mpeg', 'wmv', 'bin', 'rm',
\end_layout
\begin_layout LyX-Code
'divx', 'ogm', 'vob', 'asf', 'm2v', 'm2p',
\end_layout
\begin_layout LyX-Code
'mp4', 'viv', 'nuv', 'mov', 'iso', 'img',
\end_layout
\begin_layout LyX-Code
'nsv', 'mkv', 'ts'
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
VIDEO_XINE_SUFFIX = [
\end_layout
\begin_layout LyX-Code
'avi', 'mpg', 'mpeg', 'rm', 'divx', 'ogm',
\end_layout
\begin_layout LyX-Code
'asf', 'm2v', 'm2p', 'mp4', 'mov', 'cue',
\end_layout
\begin_layout LyX-Code
'ts', 'iso', 'vob'
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
VIDEO_ITEMS = [
\end_layout
\begin_layout LyX-Code
('TV', '/freevo/tv'),
\end_layout
\begin_layout LyX-Code
('Movies', '/freevo/movies'),
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
VIDEO_SHOW_DATA_DIR = '/freevo/tv'
\end_layout
\begin_layout Subsection
audio settings
\end_layout
\begin_layout Standard
The following are settings for the location of music and if these directories
contain music videos.
\end_layout
\begin_layout LyX-Code
AUDIO_ITEMS = [
\end_layout
\begin_layout LyX-Code
('Music Collection', '/freevo/music'),
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
AUDIO_COVER_REGEXP = 'front|-f'
\end_layout
\begin_layout LyX-Code
AUDIO_PREFERED_PLAYER = 'mplayer'
\end_layout
\begin_layout LyX-Code
AUDIO_SHOW_VIDEOFILES = True
\end_layout
\begin_layout Subsection
image settings
\end_layout
\begin_layout Standard
The following set up the location of images and how the images are blended
together.
\end_layout
\begin_layout LyX-Code
IMAGE_ITEMS = [
\end_layout
\begin_layout LyX-Code
('Image Collection', '/freevo/images'),
\end_layout
\begin_layout LyX-Code
('Slide Shows', '/freevo/slides'),
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout LyX-Code
IMAGEVIEWER_BLEND_MODE = 0
\end_layout
\begin_layout LyX-Code
IMAGEVIEWER_DURATION = 6
\end_layout
\begin_layout Subsection
game settings
\end_layout
\begin_layout Standard
No games have been installed.
\end_layout
\begin_layout LyX-Code
GAMES_ITEMS = None
\end_layout
\begin_layout Subsection
on screen display settings
\end_layout
\begin_layout Standard
The following are the settings for the on screen display.
The overscan settings have been adjusted so that the menu appears on the
TV.
\end_layout
\begin_layout LyX-Code
OSD_DEFAULT_FONTNAME = 'Vera.ttf'
\end_layout
\begin_layout LyX-Code
OSD_DEFAULT_FONTSIZE = 18
\end_layout
\begin_layout LyX-Code
OSD_EXTRA_FONT_PATH = [ '/usr/share/fonts/truetype/' ]
\end_layout
\begin_layout LyX-Code
OSD_FONT_ALIASES = { 'Arial_Bold.ttf' : 'VeraBd.ttf' }
\end_layout
\begin_layout LyX-Code
OSD_OVERSCAN_X = 40
\end_layout
\begin_layout LyX-Code
OSD_OVERSCAN_Y = 40
\end_layout
\begin_layout Subsection
mplayer settings
\end_layout
\begin_layout Standard
The following are some settings for mplayer.
(TODO the edl stuff doesn't seem to work when mplayer is running as a slave,
need to check this)
\end_layout
\begin_layout LyX-Code
MPLAYER_VO_DEV = CONF.display
\end_layout
\begin_layout LyX-Code
#MPLAYER_AO_DEV = 'alsa:device=plug=digital'
\end_layout
\begin_layout LyX-Code
MPLAYER_AO_DEV = 'alsa'
\end_layout
\begin_layout LyX-Code
MPLAYER_ARGS_DEF = (('-autosync 100 -osd-duration 2000 -menu -nolirc -autoq
100 -screenw %s '
\end_layout
\begin_layout LyX-Code
+ '-screenh %s -fs -subpos 92 -vf screenshot') % (CONF.width, CONF.height))
\end_layout
\begin_layout LyX-Code
DVD_LANG_PREF = None
\end_layout
\begin_layout LyX-Code
DVD_SUBTITLE_PREF = None
\end_layout
\begin_layout LyX-Code
MPLAYER_NICE = -10
\end_layout
\begin_layout LyX-Code
MPLAYER_ARGS = {
\end_layout
\begin_layout LyX-Code
'dvd' : '-cache 8192',
\end_layout
\begin_layout LyX-Code
'vcd' : '-cache 4096',
\end_layout
\begin_layout LyX-Code
'cd' : '-cache 1024 -cdda speed = 2',
\end_layout
\begin_layout LyX-Code
'tv' : '-nocache ',
\end_layout
\begin_layout LyX-Code
'ivtv' : '-cache 8192',
\end_layout
\begin_layout LyX-Code
'mpeg' : '-cache 8192 -subfont-text-scale 4 -utf8 -edl /tmp/mpeg.edl',
\end_layout
\begin_layout LyX-Code
'avi' : '-cache 5000 -subfont-text-scale 4 -utf8 -idx -edl /tmp/avi.edl',
\end_layout
\begin_layout LyX-Code
'rm' : '-cache 5000 -forceidx',
\end_layout
\begin_layout LyX-Code
'rmvb' : '-cache 5000 -forceidx',
\end_layout
\begin_layout LyX-Code
'webcam' : 'tv:// -tv driver = v4l:width=640:height=480:device=/dev/video1',
\end_layout
\begin_layout LyX-Code
'default': '-cache 4096 -subfont-text-scale 4 -utf8 -edl /tmp/default.edl'
\end_layout
\begin_layout LyX-Code
}
\end_layout
\begin_layout Subsection
xine settings
\end_layout
\begin_layout LyX-Code
XINE_VO_DEV = 'xv'
\end_layout
\begin_layout LyX-Code
XINE_COMMAND = '%s --hide-gui -pq -g -B --geometry %sx%s+0+0 --no-splash'
% (CONF.xine, CONF.width, CONF.height)
\end_layout
\begin_layout LyX-Code
XINE_AO_DEV = 'alsa'
\end_layout
\begin_layout Subsection
tv settings
\end_layout
\begin_layout Standard
The following are some settings to the tv card.
(TODO check if all are used)
\end_layout
\begin_layout LyX-Code
TV_LOGOS = '/var/freevo/logos'
\end_layout
\begin_layout LyX-Code
TV_RECORD_DIR = '/freevo/record'
\end_layout
\begin_layout LyX-Code
TV_DRIVER = 'v4l2'
\end_layout
\begin_layout LyX-Code
TV_DEVICE = '/dev/video0'
\end_layout
\begin_layout LyX-Code
TV_INPUT = 4
\end_layout
\begin_layout LyX-Code
TV_DRIVER_2 = 'v4l2'
\end_layout
\begin_layout LyX-Code
TV_DEVICE_2 = '/dev/video1'
\end_layout
\begin_layout LyX-Code
TV_INPUT_2 = 0
\end_layout
\begin_layout LyX-Code
TV_OPTS = '-vop pp=ci'
\end_layout
\begin_layout LyX-Code
TV_SETTINGS = '%s television %s %s' % (CONF.tv, CONF.chanlist, TV_DEVICE)
\end_layout
\begin_layout LyX-Code
TV_DATEFORMAT = '%e-%b'
\end_layout
\begin_layout LyX-Code
TV_TIMEFORMAT = '%H:%M'
\end_layout
\begin_layout LyX-Code
TV_DATETIMEFORMAT = '%A %d %b %I:%M %p'
\end_layout
\begin_layout LyX-Code
TV_RECORDFILE_MASK = '%%Y%%m%%d_%%H%%M %(progname)s - %(title)s'
\end_layout
\begin_layout LyX-Code
TV_RECORD_SCHEDULE = '/var/freevo/record_schedule.xml'
\end_layout
\begin_layout LyX-Code
TV_RECORD_SERVER_UID = 0
\end_layout
\begin_layout LyX-Code
TV_RECORD_SERVER_GID = 100
\end_layout
\begin_layout LyX-Code
TV_RECORD_PADDING = 3 * 60
\end_layout
\begin_layout LyX-Code
TIMESHIFT_BUFFER_SIZE = 128
\end_layout
\begin_layout LyX-Code
TIMESHIFT_ENCODE_CMD = 'mp1e -m3 -c%s -p%s -r14,100' % (TV_SETTINGS.split()[3],
AUDIO_INPUT_DEVICE)
\end_layout
\begin_layout LyX-Code
TIMESHIFT_BUFFER = '%s/timeshift.mpeg' % FREEVO_CACHEDIR
\end_layout
\begin_layout LyX-Code
VCR_AUDIO = (
\end_layout
\begin_layout LyX-Code
#':alsa:adevice=hw.0,0' +
\end_layout
\begin_layout LyX-Code
':alsa' +
\end_layout
\begin_layout LyX-Code
':amode = 1' +
\end_layout
\begin_layout LyX-Code
':audiorate = 32000' +
\end_layout
\begin_layout LyX-Code
':buffersize = 64')
\end_layout
\begin_layout LyX-Code
TV_VIEW_SIZE = (720, 576)
\end_layout
\begin_layout LyX-Code
TV_REC_SIZE = (640, 480)
\end_layout
\begin_layout LyX-Code
TV_VIEW_OUTFMT = 'yuy2'
\end_layout
\begin_layout LyX-Code
TV_REC_OUTFMT = 'yuy2'
\end_layout
\begin_layout LyX-Code
VCR_CMD = (CONF.mencoder + ' ' +
\end_layout
\begin_layout LyX-Code
'tv:// ' +
\end_layout
\begin_layout LyX-Code
'-tv driver = %s:input=%d' % (TV_DRIVER, TV_INPUT) +
\end_layout
\begin_layout LyX-Code
':norm = %s' % CONF.tv +
\end_layout
\begin_layout LyX-Code
':channel = %(channel)s' +
\end_layout
\begin_layout LyX-Code
':chanlist = %s' % CONF.chanlist +
\end_layout
\begin_layout LyX-Code
':width = %d:height=%d' % (TV_REC_SIZE[0], TV_REC_SIZE[1]) +
\end_layout
\begin_layout LyX-Code
':outfmt = %s' % TV_REC_OUTFMT +
\end_layout
\begin_layout LyX-Code
':device = %s' % TV_DEVICE +
\end_layout
\begin_layout LyX-Code
VCR_AUDIO +
\end_layout
\begin_layout LyX-Code
' -ovc lavc -lavcopts ' +
\end_layout
\begin_layout LyX-Code
'vcodec = mpeg4' +
\end_layout
\begin_layout LyX-Code
':vbitrate = 1200:' +
\end_layout
\begin_layout LyX-Code
'keyint = 30 ' +
\end_layout
\begin_layout LyX-Code
'-oac mp3lame -lameopts ' +
\end_layout
\begin_layout LyX-Code
'br = 128:cbr:mode=3 ' +
\end_layout
\begin_layout LyX-Code
'-ffourcc divx ' +
\end_layout
\begin_layout LyX-Code
'-endpos %(seconds)s ' +
\end_layout
\begin_layout LyX-Code
'-o %(filename)s')
\end_layout
\begin_layout Subsubsection
ivtv driver settings
\end_layout
\begin_layout Standard
The following settings control the mpeg format that is generated by the
PVR-350 card.
\end_layout
\begin_layout LyX-Code
TV_IVTV_OPTIONS = {
\end_layout
\begin_layout LyX-Code
'input' : 4,
\end_layout
\begin_layout LyX-Code
'resolution' : '720x576',
\end_layout
\begin_layout LyX-Code
'aspect' : 2,
\end_layout
\begin_layout LyX-Code
'audio_bitmask' : 0xE9,
\end_layout
\begin_layout LyX-Code
'bframes' : 3,
\end_layout
\begin_layout LyX-Code
'bitrate_mode' : 0,
\end_layout
\begin_layout LyX-Code
'bitrate' : 8000000,
\end_layout
\begin_layout LyX-Code
'bitrate_peak' : 9600000,
\end_layout
\begin_layout LyX-Code
'dnr_mode' : 3,
\end_layout
\begin_layout LyX-Code
'dnr_spatial' : 0,
\end_layout
\begin_layout LyX-Code
'dnr_temporal' : 0,
\end_layout
\begin_layout LyX-Code
'dnr_type' : 0,
\end_layout
\begin_layout LyX-Code
'framerate' : 0,
\end_layout
\begin_layout LyX-Code
'framespergop' : 12,
\end_layout
\begin_layout LyX-Code
'gop_closure' : 1,
\end_layout
\begin_layout LyX-Code
'pulldown' : 0,
\end_layout
\begin_layout LyX-Code
'stream_type' : 14,
\end_layout
\begin_layout LyX-Code
}
\end_layout
\begin_layout Subsubsection
video groups
\end_layout
\begin_layout LyX-Code
VIDEO_GROUPS = [
\end_layout
\begin_layout LyX-Code
VideoGroup(vdev = '/dev/video0',
\end_layout
\begin_layout LyX-Code
adev = '/dev/adsp',
\end_layout
\begin_layout LyX-Code
input_type = 'tuner',
\end_layout
\begin_layout LyX-Code
input_num = 4,
\end_layout
\begin_layout LyX-Code
tuner_norm = CONF.tv,
\end_layout
\begin_layout LyX-Code
tuner_chanlist = CONF.chanlist,
\end_layout
\begin_layout LyX-Code
desc = 'PVR-350 Video Group',
\end_layout
\begin_layout LyX-Code
group_type = 'ivtv',
\end_layout
\begin_layout LyX-Code
recordable = True),
\end_layout
\begin_layout LyX-Code
VideoGroup(vdev = '/dev/video1',
\end_layout
\begin_layout LyX-Code
adev = None,
\end_layout
\begin_layout LyX-Code
input_type = 'webcam',
\end_layout
\begin_layout LyX-Code
desc = 'Logitech Quickcam',
\end_layout
\begin_layout LyX-Code
group_type = 'webcam1',
\end_layout
\begin_layout LyX-Code
recordable = False),
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout Subsubsection
tv channels
\begin_inset LatexCommand \label{sub:tv-channels}
\end_inset
\end_layout
\begin_layout Standard
The following is a list of channels in Zürich.
There are upto six fields, the first is the xmltv grabber's channel id,
the second is the name of the channel, the third is the frequency identifier
(see section
\begin_inset LatexCommand \vref{sub:tv-frequencies}
\end_inset
), the next the time codes which determine when a channel is active, the
fifth is the video group number and the last is the page number for subtitles.
\end_layout
\begin_layout LyX-Code
TV_CHANNELS = [
\end_layout
\begin_layout LyX-Code
('bbcprime.com', u'BBC Prime', 'K32', '', '0', '881'),
\end_layout
\begin_layout LyX-Code
('cnn.com', u'CNN Int.', 'S13'),
\end_layout
\begin_layout LyX-Code
('kika.de', u'KiKa', 'K21', ('1234567','0600','2059')),
\end_layout
\begin_layout LyX-Code
('arte.de', u'Arte', 'K21', ('1234567','2100','2359'),
\end_layout
\begin_layout LyX-Code
('1234567',u'0000','0559'), 0, 150),
\end_layout
\begin_layout LyX-Code
('C1.sfdrs.ch', u'SF 1', 'K05', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('C2.sfdrs.ch', u'SF 2', 'K10', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('sfi.sfdrs.ch', u'SFinfo', 'K35'),
\end_layout
\begin_layout LyX-Code
('C138.bluewin.ch', u'3+', 'S15'),
\end_layout
\begin_layout LyX-Code
('bloomberg.com', u'Bloomberg', 'S23'),
\end_layout
\begin_layout LyX-Code
('eurosport.de', u'Eurosport', 'S17'),
\end_layout
\begin_layout LyX-Code
('C1.orf.at', u'ORF 1', 'S05', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('C2.orf.at', u'ORF 2', 'K34', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('C3sat.de', u'3sat', 'S10', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('sat1.ch', u'SAT 1', 'S19', '', '0'),
\end_layout
\begin_layout LyX-Code
('ard.de', u'ARD', 'K09', '', '0', '150'),
\end_layout
\begin_layout LyX-Code
('kabel1.de', u'kabel eins', 'S04', '', '0', '149'),
\end_layout
\begin_layout LyX-Code
('C3.br-online.de', u'Bayern 3', 'K29', '', '0', '150'),
\end_layout
\begin_layout LyX-Code
('prosieben.ch', u'PRO 7', 'K27', '', '0', '149'),
\end_layout
\begin_layout LyX-Code
('vox.de', u'VOX', 'K30', '', '0'),
\end_layout
\begin_layout LyX-Code
('rtl.ch', u'RTL', 'K06', '', '0'),
\end_layout
\begin_layout LyX-Code
('rtl2.de', u'RTL 2', 'K22'),
\end_layout
\begin_layout LyX-Code
('super-rtl.de', u'Super RTL', 'S26'),
\end_layout
\begin_layout LyX-Code
('wdr.de', u'WDR', 'S31', '', '0', '150'),
\end_layout
\begin_layout LyX-Code
('zdf.de', u'ZDF', 'K11', '', '0', '777'),
\end_layout
\begin_layout LyX-Code
('dsf.com', u'DSF', 'K24', '', '0'),
\end_layout
\begin_layout LyX-Code
('n-tv.de', u'n-tv', 'K28', '', '0'),
\end_layout
\begin_layout LyX-Code
('toponline.ch', u'Tele Züri', 'S09', '', '0'),
\end_layout
\begin_layout LyX-Code
('swr.de', u'Südwest Fernsehen BW', 'S14', '', '0'),
\end_layout
\begin_layout LyX-Code
('startv.ch', u'Star TV', 'S07', '', '0'),
\end_layout
\begin_layout LyX-Code
('u1tv.ch', u'U1 TV STATION', 'S33', '', '0'),
\end_layout
\begin_layout LyX-Code
('mtv.co.uk', u'MTV', 'S20', '', '0'),
\end_layout
\begin_layout LyX-Code
('vivatv.ch', u'VIVA', 'S24', '', '0'),
\end_layout
\begin_layout LyX-Code
('hse24.de', u'HSE24', 'S11', '', '0'),
\end_layout
\begin_layout LyX-Code
('tf1.fr', u'TF 1', 'S12', '', '0'),
\end_layout
\begin_layout LyX-Code
('france2.fr', u'France 2', 'S28', '', '0'),
\end_layout
\begin_layout LyX-Code
('C1.tsr.ch', u'TSR 1', 'K07', '', '0'),
\end_layout
\begin_layout LyX-Code
('C2.tsr.ch', u'TSR 2', 'K37', '', '0'),
\end_layout
\begin_layout LyX-Code
('tv5.org', u'TV5 Monde', 'K31', '', '0'),
\end_layout
\begin_layout LyX-Code
('raiuno.rai.it', u'RAI UNO', 'S08', '', '0'),
\end_layout
\begin_layout LyX-Code
('C1.rtsi.ch', u'TSI 1', 'K08', '', '0'),
\end_layout
\begin_layout LyX-Code
('C2.rtsi.ch', u'TSI 2', 'S18', '', '0'),
\end_layout
\begin_layout LyX-Code
('canale5.it', u'Canale 5', 'K25', '', '0'),
\end_layout
\begin_layout LyX-Code
('tve.es', u'TVE Int.', 'K12', '', 0, '0', '888'),
\end_layout
\begin_layout LyX-Code
('telem1.ch', u'Tele M1**', 'S06', '', '0'),
\end_layout
\begin_layout LyX-Code
('webcam', u'WebCam', '0', '', '1'),
\end_layout
\begin_layout LyX-Code
]
\end_layout
\begin_layout Subsubsection
tv frequencies
\begin_inset LatexCommand \label{sub:tv-frequencies}
\end_inset
\end_layout
\begin_layout Standard
The following is a frequency table for channels in Zürich.
\end_layout
\begin_layout LyX-Code
FREQUENCY_TABLE = {
\end_layout
\begin_layout LyX-Code
'K32' : 559250,
\end_layout
\begin_layout LyX-Code
'S13' : 246250,
\end_layout
\begin_layout LyX-Code
'K34' : 575250,
\end_layout
\begin_layout LyX-Code
'K21' : 471250,
\end_layout
\begin_layout LyX-Code
'K05' : 175500,
\end_layout
\begin_layout LyX-Code
'K10' : 211000,
\end_layout
\begin_layout LyX-Code
'K35' : 583250,
\end_layout
\begin_layout LyX-Code
'S23' : 319250,
\end_layout
\begin_layout LyX-Code
'S17' : 274500,
\end_layout
\begin_layout LyX-Code
'S05' : 133250,
\end_layout
\begin_layout LyX-Code
'S15' : 260350,
\end_layout
\begin_layout LyX-Code
'S10' : 168500,
\end_layout
\begin_layout LyX-Code
'S27' : 351250,
\end_layout
\begin_layout LyX-Code
'S19' : 288500,
\end_layout
\begin_layout LyX-Code
'K09' : 203750,
\end_layout
\begin_layout LyX-Code
'S04' : 126250,
\end_layout
\begin_layout LyX-Code
'K29' : 535250,
\end_layout
\begin_layout LyX-Code
'K27' : 519250,
\end_layout
\begin_layout LyX-Code
'K30' : 543250,
\end_layout
\begin_layout LyX-Code
'K06' : 182750,
\end_layout
\begin_layout LyX-Code
'K22' : 479250,
\end_layout
\begin_layout LyX-Code
'S26' : 343250,
\end_layout
\begin_layout LyX-Code
'S31' : 383250,
\end_layout
\begin_layout LyX-Code
'K11' : 218000,
\end_layout
\begin_layout LyX-Code
'K24' : 495250,
\end_layout
\begin_layout LyX-Code
'K31' : 551250,
\end_layout
\begin_layout LyX-Code
'K28' : 527250,
\end_layout
\begin_layout LyX-Code
'S09' : 161500,
\end_layout
\begin_layout LyX-Code
'S14' : 253250,
\end_layout
\begin_layout LyX-Code
'S07' : 147250,
\end_layout
\begin_layout LyX-Code
'S33' : 399250,
\end_layout
\begin_layout LyX-Code
'S20' : 295750,
\end_layout
\begin_layout LyX-Code
'S24' : 327250,
\end_layout
\begin_layout LyX-Code
'S11' : 232000,
\end_layout
\begin_layout LyX-Code
'S12' : 239250,
\end_layout
\begin_layout LyX-Code
'S28' : 359250,
\end_layout
\begin_layout LyX-Code
'K07' : 189750,
\end_layout
\begin_layout LyX-Code
'K37' : 599250,
\end_layout
\begin_layout LyX-Code
'K25' : 503250,
\end_layout
\begin_layout LyX-Code
'S08' : 154500,
\end_layout
\begin_layout LyX-Code
'K08' : 196750,
\end_layout
\begin_layout LyX-Code
'S18' : 281500,
\end_layout
\begin_layout LyX-Code
'K12' : 225000,
\end_layout
\begin_layout LyX-Code
'S16' : 267500,
\end_layout
\begin_layout LyX-Code
'S06' : 140250,
\end_layout
\begin_layout LyX-Code
}
\end_layout
\begin_layout Subsection
xmltv settings
\end_layout
\begin_layout Standard
The xmltv grabber is failing as the process takes so long that the connection
breaks and breaks the grab.
\end_layout
\begin_layout LyX-Code
XMLTV_FILE = '/var/freevo/TV.xml'
\end_layout
\begin_layout LyX-Code
XMLTV_GRABBER = 'tv_grab_ch'
\end_layout
\begin_layout LyX-Code
XMLTV_SORT = 'tv_sort'
\end_layout
\begin_layout LyX-Code
XMLTV_DAYS = 15
\end_layout
\begin_layout Subsection
remote control
\end_layout
\begin_layout Standard
The remote control helper doesn't seem to work
\end_layout
\begin_layout LyX-Code
ENABLE_NETWORK_REMOTE = 1
\end_layout
\begin_layout LyX-Code
REMOTE_CONTROL_HOST = '127.0.0.1'
\end_layout
\begin_layout LyX-Code
REMOTE_CONTROL_PORT = 16310
\end_layout
\begin_layout Subsection
web browser settings
\end_layout
\begin_layout Standard
The following settings enable port 80 on the web server, the user is and
password are both freevo.
\end_layout
\begin_layout LyX-Code
WWW_PORT = 80
\end_layout
\begin_layout LyX-Code
WWW_USERS = { 'freevo' : 'freevo' }
\end_layout
\begin_layout Subsection
debug settings
\end_layout
\begin_layout Standard
The following settings control the debug messages in the logs
\end_layout
\begin_layout LyX-Code
# Debugging settings
\end_layout
\begin_layout LyX-Code
WAKEUP_DEBUG = 0
\end_layout
\begin_layout LyX-Code
CHILDAPP_DEBUG = 1
\end_layout
\begin_layout LyX-Code
MPLAYER_DEBUG = 1
\end_layout
\begin_layout LyX-Code
TIME_DEBUG = 0
\end_layout
\begin_layout LyX-Code
DEBUG = 0
\end_layout
\begin_layout Section
System Configuration
\end_layout
\begin_layout Standard
/etc/fstab needs /dev/dvd
\end_layout
\begin_layout Standard
MPlayer fonts
\end_layout
\begin_layout Standard
copied elf
\end_layout
\begin_layout Standard
Configuration of Freevo
\end_layout
\begin_layout Standard
modprobe snd_mixer_oss
\end_layout
\begin_layout Standard
copied files from elf:/etc/freevo/
\end_layout
\begin_layout Standard
copied elf:/freevo/TV.xml
\end_layout
\begin_layout Standard
mkdir /var/log/freevo
\end_layout
\begin_layout Standard
mkdir /mnt/dvd
\end_layout
\begin_layout Standard
the freevo record server has been set to run as freevo:freevo
\end_layout
\begin_layout Standard
/var/cache/freevo /var/log/freevo needed user and group by freevo:freevo
\end_layout
\begin_layout Standard
the group sticky bit also needed setting
\end_layout
\begin_layout Standard
the user freevo needed adding to the group video.
\end_layout
\begin_layout Section
Startup Scripts
\end_layout
\begin_layout Standard
When the machine is booted serveral processes need to be started.
\end_layout
\begin_layout Standard
The addition of the bootsplash screen meant that the rc files needed changing.
\end_layout
\begin_layout Section
Software Operating System
\end_layout
\begin_layout Standard
The base operating system is Linux From Scratch 6.1.1.
Using Linux From Scratch as a Linux distribution is a difficult way to
install Linux but has a number of advantages over using a distribution
such as RedHat, Debian, SuSE or Gentoo.
First, the packages are build from the sources this means that they can
be compiled specifically for the hardware.
Secondly, only that packages that are required are installed, meaning that
there is more disk space available for recorded programs or other media
data.
Thirdly, the system is very stable and robust.
\end_layout
\begin_layout Standard
Gentoo is a second choice for a source build and in many ways it is better
than Linux From Scratch, the main reason for not using Gentoo is because
some of the automatic upgrades break the system and it can take quite a
while to figure out what the problem is.
Once the system has been built and is stable there is no reason to upgrade
the packages.
Linux From Scratch is therefore the chosen system.
\end_layout
\begin_layout Subsection
Building Linux From Scratch 6.1.1
\end_layout
\begin_layout Standard
The computer is first booted with a Linux From Scratch LiveCD 6.1.1-4.
This is the most reliable way to build the tools section of the LFS book.
Once the tools section has been built then the system can be booted with
a Knoppix CD which allows connection from another PC to the FFS computer.
\end_layout
\begin_layout Subsubsection
Partitioning
\end_layout
\begin_layout Standard
The hard disk is partitioned into two primary partitions
\newline
/dev/sda1 swap
\newline
/dev/sda2
ext3
\end_layout
\begin_layout Standard
The computer was booted from a LFS LiveCD 6.1.1-4.
The disk /dev/sda was partitioned into two partitions the fist partition
is a Linux swap partition and the second partition is a Linux ext3 partition.
The system was then rebooted so that Knoppix discovered the partitions
and set up the /dev/sda2 partition so that it could be mounted.
\end_layout
\begin_layout Standard
The partition was mounted and the environment variable LFS was changed to
/media/sda2.
\end_layout
\begin_layout Standard
The LFS book was then followed verbatim.
\end_layout
\begin_layout Subsubsection
Chapter 6 Ncurses-5.5
\end_layout
\begin_layout Standard
The standard Ncurses package is 5.4 this has been replaced by 5.5 as this
version has wide character support.
\end_layout
\begin_layout Subsubsection
Chapter 6 Grub 0.97
\end_layout
\begin_layout Standard
The standard Grub package is 0.97 but boot once support is required for nvram_wak
eup so this package has been replaced with 0.95 plus patches (from IPCOP).
\end_layout
\begin_layout Subsection
Building the LFS System
\end_layout
\begin_layout Standard
Before entering this section it is now possible to reboot with the Knoppix
CD, this allows the sshd to run and so the rest of the set-up can be achieved
by pasting the commands from the book.
\end_layout
\begin_layout Subsubsection
GCC-3.4.3
\end_layout
\begin_layout Standard
The checks performed in the testing phase had more errors than expected.
Using make bootstrap instead of make reduced the errors, which are reported
when trying to use precompiled headers.
These errors may not be important as few, if any, packages depend on precompile
d headers.
\end_layout
\begin_layout Subsection
Configuring the LFS System
\end_layout
\begin_layout Subsubsection
Kernel
\end_layout
\begin_layout Standard
This is always the tricky part to get right.
\end_layout
\begin_layout Standard
As the system does not have a processor with either hyperthreading or a
dual core the kernel has been configured for No SMP.
\end_layout
\begin_layout Subsubsection
Network
\end_layout
\begin_layout Standard
There are three possible network devices in the hardware.
A Marvell ethernet controller, a Shuttle USB wireless LAN controller and
a FireWire port that can be configured as a network controller.
For installation of the system the ethernet controller is configured using
DHCP client to assign the IP address.
For normal usage, the wireless LAN controller is used.
\end_layout
\begin_layout Subsubsection
Boot Scripts
\end_layout
\begin_layout Standard
When a boot script fails it halts the system, this is not a desired behaviour
so the scripts are modified to remove the line that prints the failure
message and pauses the system.
print_error_msg in the functions script is edited to remove the lines after
boot_mesg_flush.
\end_layout
\begin_layout Subsubsection
NTP Date
\end_layout
\begin_layout Standard
/etc/ntp.conf needs changing to point to a real time server
\end_layout
\begin_layout Section
Software Required Packages
\end_layout
\begin_layout Standard
Beyond Linux From Scratch development is used for most of the packages.
Most of the chapter 3 is installed except for
\begin_inset Quotes eld
\end_inset
Automate Mounting of File Systems
\begin_inset Quotes erd
\end_inset
and
\begin_inset Quotes eld
\end_inset
Configuring for Network Filesystems
\begin_inset Quotes erd
\end_inset
.
\end_layout
\begin_layout Standard
Unless otherwise stated the pacakges are build with the following CFLAGS
and CXXFLAGS:
\newline
-O3 -march=pentium4 -mtune=pentium4 -pipe
\end_layout
\begin_layout Standard
dhcpcd-2.0.5 is required to receive an ip address from a dhcp server.
\end_layout
\begin_layout Standard
OpenSSH-4.1p1 is installed in order to be able to login to the system remotely.
\newline
Ope
nSSL-0.9.8b is required by openssh.
\end_layout
\begin_layout Standard
wget-1.10.2 is required to be able to download packages.
\end_layout
\begin_layout Standard
gpm-1.20.1 is a tools for the mouse on the console.
\end_layout
\begin_layout LyX-Code
# Begin /etc/sysconfig/mouse
\end_layout
\begin_layout LyX-Code
MDEVICE="/dev/mouse"
\end_layout
\begin_layout LyX-Code
PROTOCOL="imps2"
\end_layout
\begin_layout LyX-Code
GPMOPTS="-l
\backslash
"a-zA-Z0-9_.:~
\backslash
300-
\backslash
326
\backslash
330-
\backslash
366
\backslash
370-
\backslash
377
\backslash
""
\end_layout
\begin_layout LyX-Code
# End /etc/sysconfig/mouse
\end_layout
\begin_layout Standard
pciutils-2.1.11 is a useful tools to check what devices are on the PCI bus
\newline
which-2.1
6 is reqired by pciutils.
\end_layout
\begin_layout Standard
zd1211-driver-r80 is a required driver for the Shuttle PN18 USB WLAN controller.
\end_layout
\begin_layout Standard
wireless_tools.28 is required to configure the wlan interface.
The interface came up correctly first time without these wireless tools.
\end_layout
\begin_layout Standard
ivtv-0.4.6 driver is required for kernel 2.6.15 and below.
The firmware need to be installed in /lib/firmware.
\newline
ivtv-0.7.0 driver is required
for kernel 2.6.17.
\end_layout
\begin_layout Standard
xorg-6.9.0 is required for freevo to display on the TV.
\newline
ivtv_xdriver_0.10.6 is
the xserver for the ivtv framebufffer.
\newline
libpng-1.2.8 is required by xorg-6.9.0
\newline
fontconf
ig-2.3.2 is required by xorg-6.9.0
\newline
freetype-2.1.10 is required for fontconfig-2.3.2
\end_layout
\begin_layout Standard
host.def
\end_layout
\begin_layout LyX-Code
/* Begin Xorg host.def file */
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* System Related Information.
If you read and configure only one
\end_layout
\begin_layout LyX-Code
* section then it should be this one.
The Intel architecture defaults
\end_layout
\begin_layout LyX-Code
* are set for a i686 and higher.
Axp is for the Alpha architecture
\end_layout
\begin_layout LyX-Code
* and Ppc is for the Power PC.
AMD64 is for the Opteron processor.
\end_layout
\begin_layout LyX-Code
* Note that there have been reports that the Ppc optimization line
\end_layout
\begin_layout LyX-Code
* causes segmentation faults during build.
If that happens, try
\end_layout
\begin_layout LyX-Code
* building without the DefaultGcc2PpcOpt line.
***********/
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2i386Opt -O2 -fno-strength-reduce
\backslash
-fno-strict-aliasing -march=i686 */
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 -march=athlon64 */
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce -fno-strict-aliasing
*/
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
#define HasFreetype2 YES
\end_layout
\begin_layout LyX-Code
#define HasFontconfig YES
\end_layout
\begin_layout LyX-Code
#define HasExpat YES
\end_layout
\begin_layout LyX-Code
#define HasLibpng YES
\end_layout
\begin_layout LyX-Code
#define HasZlib YES
\end_layout
\begin_layout LyX-Code
#define HaveLib64 NO
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/*
\end_layout
\begin_layout LyX-Code
* Which drivers to build.
When building a static server, each of
\end_layout
\begin_layout LyX-Code
* these will be included in it.
When building the loadable server
\end_layout
\begin_layout LyX-Code
* each of these modules will be built.
\end_layout
\begin_layout LyX-Code
*
\end_layout
\begin_layout LyX-Code
#define XF86CardDrivers mga glint nv tga s3virge sis rendition
\backslash
\end_layout
\begin_layout LyX-Code
neomagic i740 tdfx savage
\backslash
\end_layout
\begin_layout LyX-Code
cirrus vmware tseng trident chips apm
\backslash
\end_layout
\begin_layout LyX-Code
GlideDriver fbdev i128
\backslash
\end_layout
\begin_layout LyX-Code
ati DevelDrivers ark
\backslash
\end_layout
\begin_layout LyX-Code
cyrix siliconmotion vesa vga
\backslash
\end_layout
\begin_layout LyX-Code
XF86OSCardDrivers XF86ExtraCardDrivers
\end_layout
\begin_layout LyX-Code
#define XF86CardDrivers vesa
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define XF86ExtraCardDrivers ivtv
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/*
\end_layout
\begin_layout LyX-Code
* Select the XInput devices you want by uncommenting this.
\end_layout
\begin_layout LyX-Code
* #define XInputDrivers mouse keyboard acecad calcomp citron
\backslash
\end_layout
\begin_layout LyX-Code
digitaledge dmc dynapro elographics
\backslash
\end_layout
\begin_layout LyX-Code
microtouch mutouch penmount spaceorb
\backslash
\end_layout
\begin_layout LyX-Code
summa wacom void magictouch aiptek
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* Most installs will only need this */
\end_layout
\begin_layout LyX-Code
#define XInputDrivers mouse keyboard
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* Disable building Xprint server and clients until we get them figured
\end_layout
\begin_layout LyX-Code
* out but build Xprint libraries to allow precompiled binaries such as
\end_layout
\begin_layout LyX-Code
* Acrobat Reader to run.
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
#define XprtServer NO
\end_layout
\begin_layout LyX-Code
#define BuildXprintClients NO
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* Uncomment the following define if you would prefer to install X into
\end_layout
\begin_layout LyX-Code
* /usr or change it to any other location that you prefer.
\end_layout
\begin_layout LyX-Code
* The GL related defines disable compatibility symlinks (the links are
not needed
\end_layout
\begin_layout LyX-Code
* when X is installed in /usr).
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define ProjectRoot /usr
\end_layout
\begin_layout LyX-Code
#define LinkGLToUsrInclude NO
\end_layout
\begin_layout LyX-Code
#define LinkGLToUsrLib NO
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* Uncomment the following define if you would prefer to install the
\end_layout
\begin_layout LyX-Code
* fonts into /usr/share/fonts, a directory that is fontconfigs default
\end_layout
\begin_layout LyX-Code
* font search path.
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define FontDir /usr/share/fonts
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* Upcomment the following define if you would like the DirectFB XServer
\end_layout
\begin_layout LyX-Code
#define XDirectFBServer YES
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout LyX-Code
/* End Xorg host.def file *//* Begin Xorg host.def file */
\end_layout
\begin_layout LyX-Code
/* System Related Information.
If you read and configure only one
\end_layout
\begin_layout LyX-Code
* section then it should be this one.
The Intel architecture defaults
\end_layout
\begin_layout LyX-Code
* are set for a i686 and higher.
Axp is for the Alpha architecture
\end_layout
\begin_layout LyX-Code
* and Ppc is for the Power PC.
AMD64 is for the Opteron processor.
\end_layout
\begin_layout LyX-Code
* Note that there have been reports that the Ppc optimization line
\end_layout
\begin_layout LyX-Code
* causes segmentation faults during build.
If that happens, try
\end_layout
\begin_layout LyX-Code
* building without the DefaultGcc2PpcOpt line.
***********/
\end_layout
\begin_layout LyX-Code
#define DefaultGcc2i386Opt -O2 -fno-strength-reduce
\backslash
\end_layout
\begin_layout LyX-Code
-fno-strict-aliasing -march=pentium4 -fPIC
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 */
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2PpcOpt -O2 -mcpu=750 -march=athlon64 */
\end_layout
\begin_layout LyX-Code
/* #define DefaultGcc2AMD64Opt -O2 -fno-strength-reduce -fno-strict-aliasing
*/
\end_layout
\begin_layout LyX-Code
#define HasFreetype2 YES
\end_layout
\begin_layout LyX-Code
#define HasFontconfig YES
\end_layout
\begin_layout LyX-Code
#define HasExpat YES
\end_layout
\begin_layout LyX-Code
#define HasLibpng YES
\end_layout
\begin_layout LyX-Code
#define HasZlib YES
\end_layout
\begin_layout LyX-Code
#define HaveLib64 NO
\end_layout
\begin_layout LyX-Code
/*
\end_layout
\begin_layout LyX-Code
* Which drivers to build.
When building a static server, each of
\end_layout
\begin_layout LyX-Code
* these will be included in it.
When building the loadable server
\end_layout
\begin_layout LyX-Code
* each of these modules will be built.
\end_layout
\begin_layout LyX-Code
*
\end_layout
\begin_layout LyX-Code
#define XF86CardDrivers mga glint nv tga s3virge sis rendition
\backslash
\end_layout
\begin_layout LyX-Code
neomagic i740 tdfx savage
\backslash
\end_layout
\begin_layout LyX-Code
cirrus vmware tseng trident chips apm
\backslash
\end_layout
\begin_layout LyX-Code
GlideDriver fbdev i128
\backslash
\end_layout
\begin_layout LyX-Code
ati DevelDrivers ark
\backslash
\end_layout
\begin_layout LyX-Code
cyrix siliconmotion vesa vga
\backslash
\end_layout
\begin_layout LyX-Code
XF86OSCardDrivers XF86ExtraCardDrivers
\end_layout
\begin_layout LyX-Code
#define XF86CardDrivers vesa
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define XF86ExtraCardDrivers ivtv
\end_layout
\begin_layout LyX-Code
/*
\end_layout
\begin_layout LyX-Code
* Select the XInput devices you want by uncommenting this.
\end_layout
\begin_layout LyX-Code
*
\end_layout
\begin_layout LyX-Code
#define XInputDrivers mouse keyboard acecad calcomp citron
\backslash
\end_layout
\begin_layout LyX-Code
digitaledge dmc dynapro elographics
\backslash
\end_layout
\begin_layout LyX-Code
microtouch mutouch penmount spaceorb
\backslash
\end_layout
\begin_layout LyX-Code
summa wacom void magictouch aiptek
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
/* Most installs will only need this */
\end_layout
\begin_layout LyX-Code
#define XInputDrivers mouse keyboard
\end_layout
\begin_layout LyX-Code
/* Disable building Xprint server and clients until we get them figured
\end_layout
\begin_layout LyX-Code
* out but build Xprint libraries to allow precompiled binaries such as
\end_layout
\begin_layout LyX-Code
* Acrobat Reader to run.
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define XprtServer NO
\end_layout
\begin_layout LyX-Code
#define BuildXprintClients NO
\end_layout
\begin_layout LyX-Code
#define BuildXterm YES
\end_layout
\begin_layout LyX-Code
/* Uncomment the following define if you would prefer to install X into
\end_layout
\begin_layout LyX-Code
* /usr or change it to any other location that you prefer.
\end_layout
\begin_layout LyX-Code
* The GL related defines disable compatibility symlinks (the links are
not needed
\end_layout
\begin_layout LyX-Code
* when X is installed in /usr).
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define ProjectRoot /usr
\end_layout
\begin_layout LyX-Code
#define LinkGLToUsrInclude NO
\end_layout
\begin_layout LyX-Code
#define LinkGLToUsrLib NO
\end_layout
\begin_layout LyX-Code
/* Uncomment the following define if you would prefer to install the
\end_layout
\begin_layout LyX-Code
* fonts into /usr/share/fonts, a directory that is fontconfigs default
\end_layout
\begin_layout LyX-Code
* font search path.
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
#define FontDir /usr/share/fonts
\end_layout
\begin_layout LyX-Code
/* Upcomment the following define if you would like the DirectFB XServer
\end_layout
\begin_layout LyX-Code
#define XDirectFBServer YES
\end_layout
\begin_layout LyX-Code
*/
\end_layout
\begin_layout LyX-Code
/* End Xorg host.def file */
\end_layout
\begin_layout Standard
The following patch needs to be applied to the ivtv-xdriver to allow it
to compile
\end_layout
\begin_layout LyX-Code
--- ivtvhw.c.orig 2006-07-07 15:21:37.000000000 +0200
\end_layout
\begin_layout LyX-Code
+++ ivtvhw.c 2006-07-07 15:22:44.000000000 +0200
\end_layout
\begin_layout LyX-Code
@@ -15,7 +15,8 @@
\end_layout
\begin_layout LyX-Code
#include "fbpriv.h"
\end_layout
\begin_layout LyX-Code
-#include "asm/page.h" /* #define for PAGE_* */
\end_layout
\begin_layout LyX-Code
+#include "bits/types.h" /* #define for PAGE_* */
\end_layout
\begin_layout LyX-Code
+#include "sys/user.h" /* #define for PAGE_* */
\end_layout
\begin_layout LyX-Code
#include "globals.h"
\end_layout
\begin_layout LyX-Code
#define DPMS_SERVER
\end_layout
\begin_layout LyX-Code
#include "extensions/dpms.h"
\end_layout
\begin_layout Standard
python-2.4.3 is required for freevo
\end_layout
\begin_layout Standard
tk8.4.13 is required for tkinker in python-2.4.3 (also requires xorg-6.9.0)
\end_layout
\begin_layout Standard
tcl8.4.13 is required for tk8.4.13
\end_layout
\begin_layout Standard
usbutils-0.72 is required to see the usb devices on the usb bus.
\end_layout
\begin_layout Standard
libusb-0.1.12 is required for usbutils-0.72 and pysub-0.3.3
\end_layout
\begin_layout Standard
pkg-config-0.20 is required for libusb
\end_layout
\begin_layout Standard
nasm-0.98.39 is optional for sdl-
\end_layout
\begin_layout Standard
alsa-lib-1.0.11.tar.bz2
\end_layout
\begin_layout Standard
alsa-plugins-1.0.11
\end_layout
\begin_layout Standard
alsa-utils-1.0.11
\end_layout
\begin_layout Standard
alsa-oss-1.0.11
\end_layout
\begin_layout Standard
also-tools-1.0.11 and alsa-firmware-1.0.11 are not build as the intel sound
card does not use these tools
\end_layout
\begin_layout Standard
ntp-4.2.2p2 is required to keep the clock in sync
\end_layout
\begin_layout Standard
SDL-1.2.11 is reqired for pygame
\end_layout
\begin_layout Standard
libjpeg-6b is required for SDL_image-1.2.5
\end_layout
\begin_layout Standard
tiff-3.8.2 is required for SDL_image-1.2.5
\end_layout
\begin_layout Standard
popt-1.10.4 is optional for samba-3.0.23
\end_layout
\begin_layout Standard
samba-3.0.23 is required to allow Windows machines to connect and maniplate
files.
\end_layout
\begin_layout Standard
vixie-cron-4.1 is required to run overnight batch processes
\end_layout
\begin_layout Standard
lcms-1.15 is required by libmng-1.0.9
\end_layout
\begin_layout Standard
libmng-1.0.9 is required by bootsplash-3.0.7
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{cdparanoia-III-9.8}{http://www.xiph.org/paranoia/index.html}
\end_layout
\end_inset
is required by audio.cdbackup plugin
\end_layout
\begin_layout Standard
vorbis-tools-1.1.1 is required by audio.cdbackup plugin
\end_layout
\begin_layout Standard
libvorbis-1.1.2 is required by vorbis-tools-1.1.1
\end_layout
\begin_layout Standard
libogg-1.1.3 is required by libvorbis-1.1.2
\end_layout
\begin_layout Standard
curl-7.15.3 is required by vorbis-tools-1.1.1
\end_layout
\begin_layout Standard
libao-0.8.6 is required by vorbis-tools-1.1.1
\end_layout
\begin_layout Standard
flac-1.1.2 is required by vorbis-tools-1.1.1
\end_layout
\begin_layout Standard
speex-1.0.5 is required by vorbis-tools-1.1.1
\end_layout
\begin_layout Standard
lame-3.96.1 is required by audio.cdbackup plugin
\end_layout
\begin_layout Standard
id3lib-3.8.3 not required
\end_layout
\begin_layout Standard
xmms-1.2.10 is required by audio.fxmms plugin
\end_layout
\begin_layout Standard
gtk+-1.2.10 is required by xmms-1.2.10
\end_layout
\begin_layout Standard
glib-1.2.10 is required by gtk+-1.2.10
\end_layout
\begin_layout Standard
libmikmod-3.1.11 is required by xmms-1.2.10
\end_layout
\begin_layout Standard
cairo-1.0.4 is required by pango-1.12.3, gtk+-2.8.19
\end_layout
\begin_layout Standard
glib-2.10.3 is required by pango-1.12.3,
\end_layout
\begin_layout Standard
pango-1.12.3 is required by gtk+-2.8.19
\end_layout
\begin_layout Standard
atk-1.11.4 is required by gtk+-2.8.19
\end_layout
\begin_layout Standard
gtk+-2.8.19 is required by gimp-2.2.12
\end_layout
\begin_layout Standard
XML-Parser-2.34 is required by gimp-2.2.12
\end_layout
\begin_layout Standard
gimp-print-4.2.7 is required by gimp-2.2.12
\end_layout
\begin_layout Standard
imagemagick-6.2.8-0 is useful for gimp-2.2.12
\end_layout
\begin_layout Standard
libmad-0.15.1b is recommended for cdrdao-1.2.1
\end_layout
\begin_layout Standard
screen-4.0.2 is useful when the network link goes down
\end_layout
\begin_layout Standard
cdrtools-2.01
\end_layout
\begin_layout Standard
cdrdao-1.2.1
\end_layout
\begin_layout Standard
udftools-1.0.0b3
\end_layout
\begin_layout Standard
dvd+rw-tools-6.1
\end_layout
\begin_layout Standard
unzip-5.52 is useful when to extract zip files
\end_layout
\begin_layout Section
Freevo Packages
\end_layout
\begin_layout Standard
Stuff that in not included in Beyond Linux From Scratch or Linux From Scratch
\end_layout
\begin_layout Standard
lirc-0.8.0 is required for the Hauppauge PVR-350 remote.
\end_layout
\begin_layout Standard
pygame-1.7.1 is required by freevo-1.5.4
\end_layout
\begin_layout Standard
SDL_ttf-2.0.8 is required by pygame-1.7.1
\end_layout
\begin_layout Standard
SDL_image-1.2.5 is required by pygame-1.7.1
\end_layout
\begin_layout Standard
SDL_mixer-1.2.7 is required by pygame-1.7.1
\end_layout
\begin_layout Standard
smpeg-0.4.4 is required by SDL_mixer-1.2.7 pygame-1.7.1
\end_layout
\begin_layout Standard
Numeric-24.2 is required by pygame-1.7.1
\end_layout
\begin_layout Standard
aumix-2.8 is required by freevo-1.5.4
\end_layout
\begin_layout Standard
libexif-0.6.13 is required by freevo-1.5.4
\end_layout
\begin_layout Standard
libdvdcss-1.2.9 is required by freevo-1.5.4 and libdvdread-0.9.6
\end_layout
\begin_layout Standard
libdvdread-0.9.6 is required by freevo-1.5.4 and lsdvd-0.16
\end_layout
\begin_layout Standard
lsdvd-0.16 is required by freevo-1.5.4
\newline
lsdvd-0.16 requires a patch to compile
against libdvdread-0.9.6
\end_layout
\begin_layout Standard
This program was a problem to build with gcc 3.4.3 because the program will
not link with gcc, using g++ resolved this problem.
\end_layout
\begin_layout Standard
setvfd is required to drive the Shuttle Versatile Front-Panel Display (VFD)
\end_layout
\begin_layout Standard
pyusb-0.3.3 is required for setvfd
\end_layout
\begin_layout Standard
vbiutil-0.1.4
\end_layout
\begin_layout Standard
vbishow-0.1.11
\end_layout
\begin_layout Standard
vbi2srt-0.1.9 is required to record programs with subtitles for freevo-1.5.4
\end_layout
\begin_layout Standard
v4ltest-0.1.2
\end_layout
\begin_layout Standard
Twisted-2.4.0 is required for the Web interface.
\end_layout
\begin_layout Standard
The following packages are provided by Twisted-2.4.0:
\newline
TwistedWeb-0.6.0
\newline
TwistedCore-2.4.0
\newline
ZopeInterface-3.1.0c1
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{mmpython-0.4.9}{http://sourceforge.net/project/showfiles.php?group_id=75590}
\end_layout
\end_inset
is required by freevo-1.5.4
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{Imaging-1.1.5}{http://www.pythonware.com/products/pil/}
\end_layout
\end_inset
is required by mmpython-0.4.9
\end_layout
\begin_layout Standard
PyXML-0.8.4 is required by mmpython-0.4.9
\end_layout
\begin_layout Standard
pylirc-0.0.5 is required to interface with remote control
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{sqllite-2.8.16}{http://www.sqlite.org/}
\end_layout
\end_inset
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{pysqlite-1.0.1}{http://initd.org/tracker/pysqlite}
\end_layout
\end_inset
is required by freevo cache
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{mplayer}{http://www.mplayerhq.hu}
\end_layout
\end_inset
mplayer is required by freevo-1.5.4 to play the media
\end_layout
\begin_layout Standard
acpid-1.0.4
\end_layout
\begin_layout Standard
lm_sensors-2.10.0 is required to monitor temperatures
\end_layout
\begin_layout Standard
sysfsutils-2.0.0 is required by lm_sensors-2.10.0
\end_layout
\begin_layout Standard
rrdtool-1.2.13 is required by lm_sensors-2.10.0
\end_layout
\begin_layout Standard
libart_lgpl-2.3.17 is required by rrdtool-1.2.13
\end_layout
\begin_layout Standard
newt-0.51.6 is required by alsaconf (not really needed)
\end_layout
\begin_layout Standard
slang-2.0.6 is required by newt-0.51.6
\end_layout
\begin_layout Standard
ssmtp-2.61 is required to send mail messages for failures and vixie-cron-4.1
\end_layout
\begin_layout Standard
bootsplash-3.0.7 allows a pretty boot screen
\end_layout
\begin_layout Standard
bootsplash-3.1.6-2.6.15.diff is required to use a boot slpash screen (kernel
patch)
\end_layout
\begin_layout Standard
eject-2.1.0 is required to eject a CD or DVD
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{fbset-2.1}{http://users.telenet.be/geertu/Linux/fbdev/}
\end_layout
\end_inset
is required to set the framebuffer mode
\end_layout
\begin_layout Standard
gdk-pixbuf-0.22.0 is required for xosd-2.2.12
\end_layout
\begin_layout Standard
xosd-2.2.12 is required for pyosd-0.2.14
\end_layout
\begin_layout Standard
pyosd-0.2.14 is required for plugin tiny_xosd
\end_layout
\begin_layout Standard
\begin_inset ERT
status collapsed
\begin_layout Standard
\backslash
locator{aumix-2.8}{http://jpj.net/~trevor/aumix/aumix-2.8.tar.bz2}
\end_layout
\end_inset
is required for plugin mixer
\end_layout
\begin_layout Standard
freevo-weather-mediaportal-iconset-0.1
\end_layout
\begin_layout Standard
Freevo-Weather-0.8
\end_layout
\begin_layout Standard
freevo-mediaportal-theme-0.1
\end_layout
\begin_layout Standard
freevo-dilbert-plugin-0.1
\end_layout
\begin_layout Standard
freevo-audio-albumtree-0.5.1
\end_layout
\begin_layout Standard
freevo-hddtemp-plugin-0.6
\end_layout
\begin_layout Section
Freevo Patches
\end_layout
\begin_layout Section
ToDo
\end_layout
\begin_layout Standard
User configuration needs to be simplified
\end_layout
\begin_layout Section*
\start_of_appendix
Appendix A Hardware
\end_layout
\begin_layout Standard
Contains a detailed list of hardware components and their descriptions.
\end_layout
\begin_layout Section*
Appendix B Operating System Build Details
\end_layout
\begin_layout Standard
Contains a detailed list of build instructions that differ from the standard
LinuxFromScratch or Beyond LinuxFromScratch build.
\end_layout
\begin_layout Section*
Appendix C Software Packages Build Details
\end_layout
\begin_layout Standard
Contains a detailed list of build instructions for packages that are not
included in LinuxFromScratch or Beyond LinuxFromScratch.
\end_layout
\begin_layout typewriter
\begin_inset ERT
status collapsed
\begin_layout Standard
{
\backslash
footnotesize{}
\end_layout
\begin_layout Standard
}
\end_layout
\end_inset
\begin_inset ERT
status collapsed
\begin_layout Standard
{
\backslash
fontsize{7}{10pt}
\backslash
normalfont
\backslash
ttfamily{}
\end_layout
\begin_layout Standard
}
\end_layout
\end_inset
\end_layout
\end_body
\end_document