#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