Difference between revisions of "Minimyth Howto"

From MythTV Official Wiki
Jump to: navigation, search
 
(Added lot more detail, corrected errors over multiple FE/MAC addresses etc)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
MiniMyth[http://linpvr.org/minimyth] is a Frontend for Mythtv. It is a Diskless Linux System built for the VIA-EPIA-M Motherboards.
+
== Minimyth - PXE NetworkBoot Example==
  
This HOW-TO is for installing Minimyth on a Fedora Core system.
+
Minimyth is a light linux distribution for Mythfrontend. This is an example of a typical setup utilising the main features including network boot. The backend in this example is a Mythdora Box.
  
=Setting up DHCP=
+
It loads the distro across the network into memory. There is no HDD or any other storage device.
MiniMyth boots off the DHCP server.  
 
Here is the head of my /etc/dhcpd.conf file
 
  
 +
For links and other guides try [[Minimyth]]
 +
 +
==Example==
 +
 +
====Network Topology====
 +
 +
+----------------------+        +-----------------------+
 +
|MythTv Backend Server |        |tv1                    |
 +
|IP : 192.168.1.90    |  +-----|192.168.1.91          |
 +
|Static IP            |  |    |Runs : Minimyth        |
 +
|Runs : MythBackend,  |---+    |MAC : 00:40:63:EF:7E:D2|
 +
|      dhcpd,        |  |    +-----------------------+
 +
|      tftp, samba    |  |    +-----------------------+
 +
+----------------------+  +-----|tvConserv              |
 +
                                  |192.168.1.92          |
 +
                                  |Runs : Minimyth        |
 +
                                  |MAC : 48:5B:39:95:16:B5|
 +
                                  +-----------------------+
 +
 +
 +
====Get the MAC Address of your frontend====
 +
You will need to enter setup on the BIOS and disable usual boot methods (ie CDROM, HDD) etc and track down the setting to enable network boot.<BR>
 +
 +
One this is done, fire up your box and you will see it will show up its MAC address as it looks for a DHCP server.<BR>
 +
 +
It will fail as we have not got everything setup yet, but write down the MAC address as we are going to need it later. The MAC address is prefixed '01-', in some cases below the '01-' is needed, for DHCPD server strip off the '01-'
 +
 +
====DHCPD Server====
 +
 +
To install a dhcpd server on your backend
 +
# yum install dhcpd
 +
 +
The create the config file /etc/dhcp/dhcpd.conf
 +
#Basic dhcpd.conf
 +
 +
# option definitions common to all supported networks...
 +
option domain-name "mydomain.com";
 +
default-lease-time 600;
 +
get-lease-hostnames true;
 +
max-lease-time 7200;
 +
authoritative;
 +
log-facility local7;
 +
allow booting;
 
  allow bootp;
 
  allow bootp;
  allow booting;
+
  option domain-name-servers 192.168.1.1, 158.152.1.58;
default-lease-time 10800;
 
max-lease-time 28800;
 
option subnet-mask 255.255.255.0;
 
option broadcast-address 192.168.1.255;
 
 
  option routers 192.168.1.1;
 
  option routers 192.168.1.1;
  option domain-name-servers 192.168.1.1;
+
  option ntp-servers 0.fedora.pool.ntp.org, 1.fedora.pool.ntp.org, 2.fedora.pool.ntp.org;
  option domain-name "<Domain-Name>";
+
# leasable addresses
  ddns-update-style ad-hoc;
+
subnet 192.168.1.0 netmask 255.255.255.0 {
option ip-forwarding off;
+
        range 192.168.1.220 192.168.1.250; }
  option nntp-server time.nist.gov;
+
  host tv1 {
 +
        hardware ethernet 00:40:63:EF:7E:D2;
 +
        fixed-address 192.168.1.91;
 +
        next-server 192.168.1.90;
 +
        filename "PXEClient/pxelinux.0";
 +
        option host-name "tv1"; }
 +
  host tvConserv {
 +
        hardware ethernet 48:5B:39:95:16:B5;
 +
        fixed-address 192.168.1.92;
 +
        next-server 192.168.1.90;
 +
        filename "PXEClient/pxelinux.0";
 +
        option host-name "tvConserv"; }
 +
 
 +
Enable the service
 +
  #chkconfig --levels 2345 dhcpd on
 
   
 
   
  subnet 192.168.1.0 netmask 255.255.255.0 {
+
NOTE : The hostname is important as the directory structure will look for the config files per that hostname
    range 192.168.1.50 192.168.1.30;
+
 
 +
====tftp Server====
 +
 
 +
To install tftp (Trivial File Transfer Protocol)
 +
  # yum install tftp-server
 +
 
 +
Tftp uses the Xinetd service (ie provides the service on demand)
 +
Most installs will automatically create the xinetd.d files, but we need to ammend them
 +
to provide write access to the server. (Ie the flags -c -v -s)
 +
 
 +
# default: off
 +
# description: The tftp server serves files using the trivial file transfer \
 +
# protocol. The tftp protocol is often used to boot diskless \
 +
# workstations, download configuration files to network-aware printers, \
 +
# and to start the installation process for some operating systems.
 +
service tftp
 +
{
 +
        disable = no
 +
        socket_type = dgram
 +
        protocol = udp
 +
        wait = yes
 +
        user = root
 +
        server = /usr/sbin/in.tftpd
 +
        server_args = -c -v -s /tftpboot
 +
        per_source = 11
 +
        cps = 100 2
 +
        flags = IPv4
 
  }
 
  }
  
Then you need to add this next part in order for Minimyth to find the backend server and boot off of it's tftp service.
+
====Samba Server for file access====
 +
In this example we need to access the backend file storage system. On the server in the example MythBackend folders are in the folder /storage.
 +
 
 +
To export this as a share in the samba server we need to add the following to the end of /etc/samba/smb.conf
 +
[storage]
 +
        comment = MythTV Data Storage
 +
        path = /storage
 +
        writable = yes
 +
        create mask = 0660
 +
        force create mode = 0660
 +
        force directory mode = 777
 +
        directory mask = 0777
 +
 
 +
Ensure the samba server is set to start on boot
 +
#chkconfig --levels 2345 smbd on
 +
 
 +
Note in the minimyth.conf file below, how this is accessed.
  
group {
+
====Directory Structure and Base Files====
  next-server <tftp-Server-IP-Address>;
 
  filename "PXEClient/pxelinux.0";
 
  host <Clients-Host-Name> {
 
    hardware ethernet <Clients-Mac-Address>;
 
    fixed-address <Clients-Future-IP-Address> ;
 
  }
 
}
 
  
=tftp server=
+
Create a directory structure as follows
After you have dhcp setup you will need to install and setup your tftp server. via yum install tftp-server.i386
+
#mkdir /tftpboot
  yum -y install tftp-server.i386
+
  #mkdir /tftpboot/PXEClient
Yum installs tftp-server but dose not start it. Edit /etc/xinetd.d/tftp
+
#mkdir /tftpboot/PXEClient/conf/tv1
  vim /etc/xinetd.d/tftp
+
  #mkdir /tftpboot/PXEClient/conf/tvConserv
Change "disable" from "yes" to "no" and save the file.
+
#mkdir /tftpboot/PXEClient/conf-rw
To start the tftp-server restart the xinetd service.
+
  #mkdir /tftpboot/PXEClient/pxelinux.cfg
  /sbin/service xinetd restart
 
  
=PXELinux=
+
You will then need to populate with some basic files (adjust downloads accordingly)
 +
Minimyth for i686 (Note VIA processors now are also i686 NOT c7)
 +
#cd /tftpboot/PXEClient
 +
#wget http://www.minimyth.org/download/test/latest-0.23/ram-minimyth-0.23.1-73b12.tar.bz2
 +
#tar -xjf ram-minimyth-0.23.1-73b12.tar.bz
 +
 +
====PXELinux Loader====
 +
For all Distros
 +
#cd /tftpboot/PXEClient
 +
#mkdir temp
 +
#cd temp
 +
#wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.02.tar.gz
 +
#gunzip syslinux-4.02.tar.gz
 +
#tar -xvf syslinux-4.02.tar
 +
#cd syslinux-4.02/core/
 +
#cp pxelinux.0 /tftpboot/PXEClient/
 +
#cd /tftpboot/PXEClient
 +
#chmod +x pxelinux.0
 +
#rm -rf temp
 +
 
 +
Some distros such as Fedora
 
pxelinux.0 file is provided by syslinux.i386 installed via yum
 
pxelinux.0 file is provided by syslinux.i386 installed via yum
  yum -y install syslinux.i386
+
  #yum -y install syslinux.i386
  
 
yum will dump the file in /usr/lib/syslinux/pxelinux.0 so you will have to copy it to you tftpboot dir
 
yum will dump the file in /usr/lib/syslinux/pxelinux.0 so you will have to copy it to you tftpboot dir
  cp /usr/lib/syslinux/pxelinux.0 /tftpboot/PXEClient/
+
  #cp /usr/lib/syslinux/pxelinux.0 /tftpboot/PXEClient/
  
Yum will make the /tftpboot directory for you. Inside that you will need to create a new directory called PXEClient, (as you set this directory name in the DHCP setup step) all your MiniMyth files will be put in this directory.
+
====PXELinux Config Files====
 +
You can create a PXELinux loader for each MAC address, or a generic one called 'default' for all machines. Good if all your machines are same architecture and using same ram-minimyth file. In this example we will create one per MAC address even though they are the same.
  
PXEClient requires a config file. create the directory pxelinux.cfg inside /tftpboot/PXEClient.
+
#cd /tftpboot/PXEClient/pxelinux.cfg
In order for any system to boot via PXE
+
 
+
Create a file 01-00-40-63-ef-7e-d2
=Install MiniMyth=
+
DEFAULT minimyth-ram
You don't actually install MiniMyth but just download it and put the current file in the current directory's. Now I know that sounds dumb, but the client will install the files you just need to provided them for it.
+
LABEL minimyth-ram
 +
        KERNEL ram-minimyth-0.23.1-73b12/kernel
 +
        APPEND ro root=/dev/ram0 ramdisk_size=96000 initrd=ram-minimyth-0.23.1-73b12/rootfs
  
==Download MiniMyth==
+
And one called 01-48-5b-39-95-16-b5 (which in this case is the same contents)
First download the latest release of MiniMyth from [http://linpvr.org/minimyth/download/stable/latest/ Download Site], you wont to download the ram-minimyth-<version-number>.tar.bz2 to /tftpboot/PXEClient/
+
DEFAULT minimyth-ram
 +
LABEL minimyth-ram
 +
        KERNEL ram-minimyth-0.23.1-73b12/kernel
 +
        APPEND ro root=/dev/ram0 ramdisk_size=96000 initrd=ram-minimyth-0.23.1-73b12/rootfs
  
''The current version will change so the link will brake''
+
The last things you need now are minimyth config files. These all go under the applicable /tftpboot/PXEClient/conf/frontend_hostname/
cd /tftpboot/PXEClient/
+
  - minimyth.conf //Main Configuration file
  wget http://linpvr.org/minimyth/download/stable/latest/ram-minimyth-version.tar.bz2
+
- lircd.conf    //Lirc read file for the remote
 +
- lircrc.mythtv //How to translate that remote for Mythtv
 +
- lircrc.xine  //How to translate that remote for Xine
 +
- lircrc.vlc etc etc
  
Now un-tar the file
+
Example minimyth.conf below.
tar -xjf ram-minimyth-''version''.tar.bz2
 
That will create a directory named ram-minimyth-''version''.  you will need to copy the kernel and rootfs files and put them in the PXEClient directory.
 
cd /tftpboot/PXEClient/
 
cp ram-minimyth-''version''/kernel ./
 
cp ram-minimyth-''version''/rootfs ./
 
  
==Configure MiniMyth==
+
====Permissions Cleanup====
MiniMyth will need a "conf" directory, and inside that directory you will need ether a "default" directory or a directory that is named off the mac address of you minimyth [[NIC]]
 
  
==MiniMyth Conf File==
+
#chown -R nobody /tftpboot/PXEClient
See MiniMyth's main site for more info on the minimyth.conf file[http://linpvr.org/minimyth/document-minimyth_conf.shtml]
+
#chgrp -R nobody /tftpboot/PXEClient
 +
#chmod 777 /tftpboot/PXEClient/conf-rw
  
==MiniMyth Themes==
+
====minimyth.conf====
 +
This is the "magical" part about Minimyth and its immense strength. You create a file called minimyth.conf that each frontend picks up and configures Myth to suit that machine. The magical part is, when you upgrade your minimyth for fixes, you do not have to re-setup like a standard box. The new minimyth will pull in the minimyth.conf, setup xorg, video profiles and so on.
  
=Directory Structure=
+
Here is a typical minimyth.conf (for Openchrome Via CLE266 with TV out and homebrew LIRC receiver on Com Port 1)
  /tftpboot/PXEClient/
+
################################################################################
  +-kernel
+
# minimyth.conf
  +-pxelinux.0
+
#
  +-rootfs
+
# The required MiniMyth configuration file.
  +-pxelinux.cfg/
+
#
  +---[[default_minimyth|default]]
+
# For information on this file, see either
  +-conf/default/
+
# <http://minimyth.org/document.shtml>
  +----[[lircd.conf_minimyth|lircd.conf]]
+
# or
  +----[[lircrc_minimyth|lircrc]]
+
  # <http://{minimyth}/document.shtml>,
  +----[[minimyth.conf]]
+
# where '{minimyth}' is the IPv4 address or hostname of your MiniMyth system.
  +----themes
+
################################################################################
 +
################################################################################
 +
  # The following line will fetch and include a file named 'minimyth-common.conf'
 +
  # from the MiniMyth read-only configuration directory. If you have multiple
 +
# MiniMyth systems with common configuration, then you can include this line
 +
# in each 'minimyth.conf' file and put the common configuration in the file
 +
  # 'default/minimyth-common.conf'.
 +
################################################################################
 +
  #mm_minimyth_conf_include minimyth-common.conf
 +
################################################################################
 +
# MiniMyth configuration variables.
 +
#
 +
# MM_MINIMYTH_UPDATE_URL
 +
# MM_MINIMYTH_BOOT_URL
 +
# MM_MINIMYTH_FETCH_MINIMYTH_PM
 +
################################################################################
 +
#MM_MINIMYTH_BOOT_URL='http://tftp.home/minimyth/'
 +
################################################################################
 +
# DHCP overrides configuration variables.
 +
#
 +
# MM_DHCP_ADDRESS
 +
# MM_DHCP_BROADCAST
 +
# MM_DHCP_SUBNET_MASK
 +
# MM_DHCP_ROUTERS
 +
# MM_DHCP_HOST_NAME
 +
# MM_DHCP_DOMAIN_NAME
 +
# MM_DHCP_DOMAIN_NAME_SERVERS
 +
# MM_DHCP_NTP_SERVERS
 +
# MM_DHCP_LOG_SERVERS
 +
# MM_DHCP_TCODE
 +
################################################################################
 +
MM_DHCP_TCODE='Europe/London'
 +
MM_DHCP_DOMAIN_NAME='mydomain.com'
 +
################################################################################
 +
# Security configuration variables.
 +
#
 +
# MM_SECURITY_ENABLED
 +
# MM_SECURITY_USER_MINIMYTH_UID
 +
# MM_SECURITY_USER_MINIMYTH_GID
 +
# MM_SECURITY_FETCH_CREDENTIALS_CIFS
 +
# MM_SECURITY_FETCH_CA_BUNDLE_CRT
 +
################################################################################
 +
#MM_SECURITY_ENABLED='yes'
 +
#MM_SECURITY_FETCH_CREDENTIALS_CIFS='yes'
 +
#MM_SECURITY_FETCH_CA_BUNDLE_CRT='yes'
 +
################################################################################
 +
# Firmware configuration variables.
 +
#
 +
# MM_FIRMWARE_FILE_LIST
 +
################################################################################
 +
################################################################################
 +
# ACPI configuration variables.
 +
#
 +
# MM_ACPI_EVENT_BUTTON_POWER
 +
# MM_ACPI_VIDEO_FLAGS
 +
################################################################################
 +
################################################################################
 +
# CPU configuration variables.
 +
#
 +
# MM_CPU_FREQUENCY_GOVERNOR
 +
# MM_CPU_FETCH_MICROCODE_DAT
 +
################################################################################
 +
#MM_CPU_FREQUENCY_GOVERNOR='userspace'
 +
################################################################################
 +
# Audio configuration variables.
 +
#
 +
# MM_AUDIO_TYPE
 +
# MM_AUDIO_CARD_NUMBER
 +
# MM_AUDIO_DEVICE_NUMBER
 +
# MM_AUDIO_GAIN
 +
# MM_AUDIO_FETCH_ASOUND_CONF
 +
# MM_AUDIO_FETCH_ASOUND_STATE
 +
################################################################################
 +
#MM_AUDIO_TYPE='digital'
 +
################################################################################
 +
# Video configuration variables.
 +
#
 +
# MM_VIDEO_ASPECT_RATIO
 +
# MM_VIDEO_DECODER
 +
# MM_VIDEO_DEINTERLACER
 +
# MM_VIDEO_FONT_SCALE
 +
# MM_VIDEO_PLAYBACK_PROFILE
 +
# MM_VIDEO_RESIZE_ENABLED
 +
################################################################################
 +
MM_VIDEO_ASPECT_RATIO='16:9'
 +
MM_VIDEO_DEINTERLACER='auto'
 +
MM_VIDEO_DECODER='xvmc-vld'
 +
MM_VIDEO_PLAYBACK_PROFILE='epia'
 +
################################################################################
 +
# X configuration variables.
 +
#
 +
# MM_X_ENABLED
 +
# MM_X_DRIVER
 +
# MM_X_RESTART_ON_SLEEP_ENABLED
 +
# MM_X_WM_ENABLED
 +
# MM_X_VNC_ENABLED
 +
# MM_X_SCREENSAVER
 +
# MM_X_SCREENSAVER_TIMEOUT
 +
# MM_X_SCREENSAVER_HACK
 +
# MM_X_MYTH_PROGRAM
 +
# MM_X_OUTPUT_HDMI
 +
# MM_X_OUTPUT_DVI
 +
# MM_X_OUTPUT_VGA
 +
# MM_X_OUTPUT_TV
 +
# MM_X_TV_TYPE
 +
# MM_X_TV_OUTPUT
 +
# MM_X_TV_OVERSCAN
 +
# MM_X_SYNC
 +
# MM_X_REFRESH
 +
# MM_X_RESOLUTION
 +
# MM_X_MODELINE
 +
# MM_X_MODE
 +
# MM_X_MODELINE_0
 +
# MM_X_MODELINE_1
 +
# MM_X_MODELINE_2
 +
# MM_X_MODE_0
 +
# MM_X_MODE_1
 +
# MM_X_MODE_2
 +
# MM_X_HACK_HIDE_BLUE_LINE_ENABLED
 +
# MM_X_FETCH_XINITRC
 +
# MM_X_FETCH_XMODMAPRC
 +
# MM_X_FETCH_XORG_CONF
 +
################################################################################
 +
MM_X_DRIVER='openchome'
 +
MM_X_MODE='848x480Over'
 +
MM_X_VNC_ENABLED='yes'
 +
MM_X_OUTPUT_VGA='auto'
 +
MM_X_OUTPUT_TV='auto'
 +
MM_X_TV_TYPE='PAL'
 +
MM_X_TV_OUTPUT='Composite'
 +
################################################################################
 +
# Font configuration variables.
 +
#
 +
# MM_FONT_FILE_TTF_ADD
 +
# MM_FONT_FILE_TTF_DELETE
 +
################################################################################
 +
################################################################################
 +
# Myth master backend communication configuration variables.
 +
#
 +
# MM_MASTER_SERVER
 +
# MM_MASTER_DBUSERNAME
 +
# MM_MASTER_DBPASSWORD
 +
# MM_MASTER_DBNAME
 +
# MM_MASTER_WOL_ENABLED
 +
# MM_MASTER_WOL_MAC
 +
# MM_MASTER_WOLSQLRECONNECTWAITTIME
 +
# MM_MASTER_WOLSQLCONNECTRETRY
 +
# MM_MASTER_WOLSQLCOMMAND
 +
# MM_MASTER_WOL_ADDITIONAL_DELAY
 +
################################################################################
 +
MM_MASTER_SERVER='192.168.1.90'
 +
################################################################################
 +
# Myth plugin configuration variables.
 +
#
 +
# MM_PLUGIN_INFORMATION_CENTER_ENABLED
 +
# MM_PLUGIN_OPTICAL_DISK_ENABLED
 +
# MM_PLUGIN_BROWSER_ENABLED
 +
# MM_PLUGIN_DVD_ENABLED
 +
# MM_PLUGIN_GALLERY_ENABLED
 +
# MM_PLUGIN_GAME_ENABLED
 +
# MM_PLUGIN_MUSIC_ENABLED
 +
# MM_PLUGIN_NEWS_ENABLED
 +
# MM_PLUGIN_PHONE_ENABLED
 +
# MM_PLUGIN_STREAM_ENABLED
 +
# MM_PLUGIN_VIDEO_ENABLED
 +
# MM_PLUGIN_WEATHER_ENABLED
 +
# MM_PLUGIN_ZONEMINDER_ENABLED
 +
################################################################################
 +
MM_PLUGIN_OPTICAL_DISK_ENABLED='yes'
 +
MM_PLUGIN_BROWSER_ENABLED='no'
 +
MM_PLUGIN_GALLERY_ENABLED='yes'
 +
MM_PLUGIN_GAME_ENABLED='no' 
 +
MM_PLUGIN_MUSIC_ENABLED='no' 
 +
MM_PLUGIN_NEWS_ENABLED='yes' 
 +
MM_PLUGIN_PHONE_ENABLED='no' 
 +
MM_PLUGIN_STREAM_ENABLED='no'
 +
MM_PLUGIN_VIDEO_ENABLED='yes'
 +
MM_PLUGIN_WEATHER_ENABLED='yes'
 +
MM_PLUGIN_ZONEMINDER_ENABLED='no'
 +
################################################################################
 +
# Extras directory configuration variables.
 +
#
 +
# MM_EXTRAS_URL
 +
################################################################################
 +
################################################################################
 +
# CODECs directory configuration variables.
 +
#
 +
# MM_CODECS_URL
 +
################################################################################
 +
MM_CODECS_URL="auto"
 +
################################################################################
 +
# Adobe Flash Player configuration variables.
 +
#
 +
# MM_FLASH_URL
 +
################################################################################
 +
################################################################################
 +
# Hulu Desktop configuration variables.
 +
#
 +
# MM_HULU_URL
 +
# MM_HULU_REMOTE
 +
# MM_HULU_STORE_HULUDESKTOP_DATA
 +
################################################################################
 +
################################################################################
 +
# Theme configuration variables.
 +
#
 +
# MM_THEME_NAME
 +
# MM_THEMEOSD_NAME
 +
# MM_THEME_URL
 +
# MM_THEMEOSD_URL
 +
# MM_THEMECACHE_URL
 +
# MM_THEME_FILE_MENU_ADD
 +
################################################################################
 +
#MM_THEMEOSD_NAME='Titivillus-OSD'
 +
#MM_THEME_NAME='MythCenter-wide'
 +
#MM_THEMEOSD_NAME='Retro-OSD'
 +
MM_THEME_NAME='metallurgy'
 +
#MM_THEME_NAME='Arclight'
 +
#MM_THEME_NAME='metallurgy'
 +
  MM_THEMEOSD_NAME='BlackCurves-OSD'
 +
MM_THEME_URL='auto'
 +
MM_THEMEOSD_URL='auto'
 +
MM_THEMECACHE_URL='auto'
 +
################################################################################
 +
# Remote media directory configuration variables.
 +
#
 +
# MM_MEDIA_TV_MOUNTPOINT
 +
# MM_MEDIA_TV_URL
 +
# MM_MEDIA_GALLERY_MOUNTPOINT
 +
# MM_MEDIA_GALLERY_URL
 +
# MM_MEDIA_GAME_MOUNTPOINT
 +
# MM_MEDIA_GAME_URL
 +
# MM_MEDIA_MUSIC_MOUNTPOINT
 +
# MM_MEDIA_MUSIC_URL
 +
# MM_MEDIA_VIDEO_MOUNTPOINT
 +
# MM_MEDIA_VIDEO_URL
 +
# MM_MEDIA_DVD_RIP_MOUNTPOINT
 +
# MM_MEDIA_DVD_RIP_URL
 +
# MM_MEDIA_GENERIC_LIST
 +
################################################################################
 +
#MM_MEDIA_GALLERY_URL="cifs://${MM_TFTP_SERVER}/pictures?credentials=/etc/cifs/credentials_cifs"
 +
#MM_MEDIA_GAME_URL="cifs://${MM_TFTP_SERVER}/games?credentials=/etc/cifs/credentials_cifs"
 +
#MM_MEDIA_MUSIC_URL="cifs://${MM_TFTP_SERVER}/music?credentials=/etc/cifs/credentials_cifs"
 +
#MM_MEDIA_VIDEO_URL="cifs://${MM_TFTP_SERVER}/videos?credentials=/etc/cifs/credentials_cifs"
 +
#MM_MEDIA_DVD_RIP_URL="nfs://${MM_TFTP_SERVER}/home/public/minimyth/themecache"
 +
MM_MEDIA_GALLERY_URL="nfs://mythtv:mythtv@192.168.1.90/storage/pictures"
 +
MM_MEDIA_VIDEO_URL="cifs://mythtv:mythtv@192.168.1.90/storage/videos"
 +
MM_MEDIA_DVD_RIP_URL="cifs://mythtv:mythtv@192.168.1.90/storage/temp"
 +
################################################################################
 +
# Game configuration variables.
 +
#
 +
# MM_GAME_SAVE_ENABLED
 +
# MM_GAME_SAVE_LIST
 +
# MM_GAME_BIOS_ROOT
 +
# MM_GAME_GAME_ROOT
 +
################################################################################
 +
################################################################################
 +
# Bluetooth configuration variables.
 +
#
 +
# MM_BLUETOOTH_DEVICE_LIST
 +
################################################################################
 +
################################################################################
 +
# Wii remote control configuration variables.
 +
#
 +
# MM_WIIMOTE_ADDRESS_0
 +
# MM_WIIMOTE_ADDRESS_1
 +
# MM_WIIMOTE_ADDRESS_2
 +
# MM_WIIMOTE_ADDRESS_3
 +
################################################################################
 +
################################################################################
 +
# LIRC configuration variables.
 +
#
 +
# MM_LIRC_AUTO_ENABLED
 +
# MM_LIRC_DEVICE_BLACKLIST
 +
# MM_LIRC_DRIVER
 +
# MM_LIRC_DEVICE
 +
# MM_LIRC_KERNEL_MODULE
 +
# MM_LIRC_KERNEL_MODULE_OPTIONS
 +
# MM_LIRC_IREXEC_ENABLED
 +
# MM_LIRC_IRXEVENT_ENABLED
 +
# MM_LIRC_IRXKEYS_ENABLED
 +
# MM_LIRC_SLEEP_ENABLED
 +
# MM_LIRC_WAKEUP_ENABLED
 +
# MM_LIRC_FETCH_LIRCD_CONF
 +
# MM_LIRC_FETCH_LIRCMD_CONF
 +
# MM_LIRC_FETCH_LIRCRC
 +
# MM_LIRC_FETCH_LIRCRC_MINIMYTH
 +
# MM_LIRC_FETCH_LIRCRC_MYTHTV
 +
# MM_LIRC_FETCH_LIRCRC_MPLAYER
 +
# MM_LIRC_FETCH_LIRCRC_VLC
 +
# MM_LIRC_FETCH_LIRCRC_XINE
 +
################################################################################
 +
MM_LIRC_DRIVER='lirc_serial'
 +
#MM_LIRC_DEVICE='/dev/lirc0'
 +
MM_LIRC_KERNEL_MODULE='lirc_serial'
 +
MM_LIRC_KERNEL_MODULE_OPTIONS='irq=4 io=0x3f8'
 +
MM_LIRC_FETCH_LIRCD_CONF='yes'
 +
#MM_LIRC_FETCH_LIRCRC='yes'
 +
MM_LIRC_FETCH_LIRCRC_MYTHTV='yes'
 +
MM_LIRC_FETCH_LIRCRC_VLC='yes'
 +
MM_LIRC_FETCH_LIRCRC_XINE='yes'
 +
################################################################################
 +
# LCDPROC configuration variables.
 +
#
 +
# MM_LCDPROC_DRIVER
 +
# MM_LCDPROC_DEVICE
 +
# MM_LCDPROC_KERNEL_MODULE
 +
# MM_LCDPROC_KERNEL_MODULE_OPTIONS
 +
# MM_LCDPROC_FETCH_LCDD_CONF
 +
################################################################################
 +
################################################################################
 +
# External equipment control configuration variables.
 +
#
 +
# MM_EXTERNAL_POWER_OFF
 +
# MM_EXTERNAL_POWER_ON
 +
# MM_EXTERNAL_VOLUME_DOWN
 +
# MM_EXTERNAL_VOLUME_UP
 +
# MM_EXTERNAL_VOLUME_MUTE
 +
# MM_EXTERNAL_AQUOS_ENABLED
 +
# MM_EXTERNAL_AQUOS_DEVICE
 +
# MM_EXTERNAL_AQUOS_PORT
 +
# MM_EXTERNAL_AQUOS_POWER_ENABLED
 +
# MM_EXTERNAL_AQUOS_VOLUME_ENABLED
 +
# MM_EXTERNAL_AQUOS_INPUT
 +
################################################################################
 +
#MM_EXTERNAL_POWER_OFF='
 +
# /usr/bin/irsend <television> KEY_POWEROFF ;
 +
# /usr/bin/irsend <receiver> KEY_POWEROFF'
 +
#MM_EXTERNAL_POWER_ON='
 +
# /usr/bin/irsend <television> KEY_POWERON ;
 +
# /usr/bin/irsend <receiver> KEY_POWERON'
 +
#MM_EXTERNAL_VOLUME_DOWN='
 +
# /usr/bin/irsend <receiver> KEY_VOLUMEDOWN'
 +
#MM_EXTERNAL_VOLUME_UP='
 +
# /usr/bin/irsend <receiver> KEY_VOLUMEUP'
 +
#MM_EXTERNAL_VOLUME_MUTE='
 +
# /usr/bin/irsend <receiver> KEY_MUTE'
 +
################################################################################
 +
# SSH server configuration variables.
 +
#
 +
# MM_SSH_SERVER_ENABLED
 +
################################################################################
 +
#MM_SSH_SERVER_ENABLED='yes'
 +
################################################################################
 +
# Cron configuration variables.
 +
#
 +
# MM_CRON_FETCH_CRONTAB
 +
################################################################################
 +
################################################################################
 +
# Slave backend configuration variables.
 +
#
 +
# MM_BACKEND_ENABLED
 +
# MM_BACKEND_DEBUG_LEVEL
 +
################################################################################
 +
################################################################################
 +
# MiniMyth direct Myth database configuration variables.
 +
#
 +
# MM_MYTHDB_JUMPPOINTS_{key}
 +
# MM_MYTHDB_KEYBINDINGS_{key}
 +
# MM_MYTHDB_SETTINGS_{key}
 +
################################################################################
 +
#MM_MYTHDB_JUMPPOINTS_MythGallery='MythGallery~Alt+G'
 +
#MM_MYTHDB_JUMPPOINTS_Play_music='Play music~Alt+M'
 +
#MM_MYTHDB_JUMPPOINTS_MythStream='MythStream~Alt+S'
 +
#MM_MYTHDB_JUMPPOINTS_TV_Recording_Playback='TV Recording Playback~Alt+T'
 +
#MM_MYTHDB_JUMPPOINTS_MythVideo='MythVideo~Alt+V'
 +
#MM_MYTHDB_KEYBINDINGS_Music_FFWD='Music~FFWD~)'
 +
#MM_MYTHDB_KEYBINDINGS_Music_RWND='Music~RWND~('
 +
#MM_MYTHDB_KEYBINDINGS_Stream_FULLSCREEN='Stream~FULLSCREEN~W'
 +
#MM_MYTHDB_KEYBINDINGS_TV_Playback_SEEKFFWD='TV Playback~SEEKFFWD~),Right'
 +
#MM_MYTHDB_KEYBINDINGS_TV_Playback_SEEKRWND='TV Playback~SEEKRWND~(,Left'
 +
#MM_MYTHDB_SETTINGS_GalleryMoviePlayerCmd='GalleryMoviePlayerCmd~xine -pfhq --no-splash --loop=loop'
 +
#MM_MYTHDB_SETTINGS_VCDPlayerCommand='VCDPlayerCommand~xine -pfhq --no-splash  --loop=loop vcd://'
 +
#MM_MYTHDB_SETTINGS_VideoDefaultPlayer='VideoDefaultPlayer~xine -pfhq --no-splash --loop=loop'

Latest revision as of 16:58, 29 August 2010

Minimyth - PXE NetworkBoot Example

Minimyth is a light linux distribution for Mythfrontend. This is an example of a typical setup utilising the main features including network boot. The backend in this example is a Mythdora Box.

It loads the distro across the network into memory. There is no HDD or any other storage device.

For links and other guides try Minimyth

Example

Network Topology

+----------------------+         +-----------------------+
|MythTv Backend Server |         |tv1                    |
|IP : 192.168.1.90     |   +-----|192.168.1.91           |
|Static IP             |   |     |Runs : Minimyth        |
|Runs : MythBackend,   |---+     |MAC : 00:40:63:EF:7E:D2|
|       dhcpd,         |   |     +-----------------------+
|       tftp, samba    |   |     +-----------------------+
+----------------------+   +-----|tvConserv              |
                                 |192.168.1.92           |
                                 |Runs : Minimyth        |
                                 |MAC : 48:5B:39:95:16:B5|
                                 +-----------------------+


Get the MAC Address of your frontend

You will need to enter setup on the BIOS and disable usual boot methods (ie CDROM, HDD) etc and track down the setting to enable network boot.

One this is done, fire up your box and you will see it will show up its MAC address as it looks for a DHCP server.

It will fail as we have not got everything setup yet, but write down the MAC address as we are going to need it later. The MAC address is prefixed '01-', in some cases below the '01-' is needed, for DHCPD server strip off the '01-'

DHCPD Server

To install a dhcpd server on your backend

# yum install dhcpd

The create the config file /etc/dhcp/dhcpd.conf

#Basic dhcpd.conf 

# option definitions common to all supported networks...
option domain-name "mydomain.com";
default-lease-time 600;
get-lease-hostnames true;
max-lease-time 7200;
authoritative;
log-facility local7;
allow booting;
allow bootp;
option domain-name-servers 192.168.1.1, 158.152.1.58;
option routers 192.168.1.1;
option ntp-servers 0.fedora.pool.ntp.org, 1.fedora.pool.ntp.org, 2.fedora.pool.ntp.org;
# leasable addresses
subnet 192.168.1.0 netmask 255.255.255.0 {
       range 192.168.1.220 192.168.1.250; }
host tv1 {
       hardware ethernet 00:40:63:EF:7E:D2;
       fixed-address 192.168.1.91;
       next-server 192.168.1.90;
       filename "PXEClient/pxelinux.0";
       option host-name "tv1"; } 
host tvConserv {
       hardware ethernet 48:5B:39:95:16:B5;
       fixed-address 192.168.1.92;
       next-server 192.168.1.90;
       filename "PXEClient/pxelinux.0";
       option host-name "tvConserv"; }

Enable the service

#chkconfig --levels 2345 dhcpd on

NOTE : The hostname is important as the directory structure will look for the config files per that hostname

tftp Server

To install tftp (Trivial File Transfer Protocol)

# yum install tftp-server

Tftp uses the Xinetd service (ie provides the service on demand) Most installs will automatically create the xinetd.d files, but we need to ammend them to provide write access to the server. (Ie the flags -c -v -s)

# default: off
# description: The tftp server serves files using the trivial file transfer \
#	protocol.  The tftp protocol is often used to boot diskless \
#	workstations, download configuration files to network-aware printers, \
#	and to start the installation process for some operating systems.
service tftp
{  
       disable	= no
       socket_type		= dgram
       protocol		= udp
       wait			= yes
       user			= root
       server			= /usr/sbin/in.tftpd
       server_args		= -c -v -s /tftpboot
       per_source		= 11
       cps			= 100 2
       flags			= IPv4
}

Samba Server for file access

In this example we need to access the backend file storage system. On the server in the example MythBackend folders are in the folder /storage.

To export this as a share in the samba server we need to add the following to the end of /etc/samba/smb.conf

[storage] 
       comment = MythTV Data Storage
       path = /storage
       writable = yes
       create mask = 0660
       force create mode = 0660
       force directory mode = 777
       directory mask = 0777

Ensure the samba server is set to start on boot

#chkconfig --levels 2345 smbd on

Note in the minimyth.conf file below, how this is accessed.

Directory Structure and Base Files

Create a directory structure as follows

#mkdir /tftpboot
#mkdir /tftpboot/PXEClient
#mkdir /tftpboot/PXEClient/conf/tv1
#mkdir /tftpboot/PXEClient/conf/tvConserv
#mkdir /tftpboot/PXEClient/conf-rw
#mkdir /tftpboot/PXEClient/pxelinux.cfg

You will then need to populate with some basic files (adjust downloads accordingly) Minimyth for i686 (Note VIA processors now are also i686 NOT c7)

#cd /tftpboot/PXEClient
#wget http://www.minimyth.org/download/test/latest-0.23/ram-minimyth-0.23.1-73b12.tar.bz2
#tar -xjf ram-minimyth-0.23.1-73b12.tar.bz

PXELinux Loader

For all Distros

#cd /tftpboot/PXEClient 
#mkdir temp
#cd temp
#wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.02.tar.gz
#gunzip syslinux-4.02.tar.gz
#tar -xvf syslinux-4.02.tar
#cd syslinux-4.02/core/
#cp pxelinux.0 /tftpboot/PXEClient/
#cd /tftpboot/PXEClient
#chmod +x pxelinux.0
#rm -rf temp

Some distros such as Fedora pxelinux.0 file is provided by syslinux.i386 installed via yum

#yum -y install syslinux.i386

yum will dump the file in /usr/lib/syslinux/pxelinux.0 so you will have to copy it to you tftpboot dir

#cp /usr/lib/syslinux/pxelinux.0 /tftpboot/PXEClient/

PXELinux Config Files

You can create a PXELinux loader for each MAC address, or a generic one called 'default' for all machines. Good if all your machines are same architecture and using same ram-minimyth file. In this example we will create one per MAC address even though they are the same.

#cd /tftpboot/PXEClient/pxelinux.cfg

Create a file 01-00-40-63-ef-7e-d2

DEFAULT minimyth-ram
LABEL minimyth-ram
       KERNEL ram-minimyth-0.23.1-73b12/kernel
       APPEND ro root=/dev/ram0 ramdisk_size=96000 initrd=ram-minimyth-0.23.1-73b12/rootfs

And one called 01-48-5b-39-95-16-b5 (which in this case is the same contents)

DEFAULT minimyth-ram
LABEL minimyth-ram
       KERNEL ram-minimyth-0.23.1-73b12/kernel
       APPEND ro root=/dev/ram0 ramdisk_size=96000 initrd=ram-minimyth-0.23.1-73b12/rootfs

The last things you need now are minimyth config files. These all go under the applicable /tftpboot/PXEClient/conf/frontend_hostname/

- minimyth.conf //Main Configuration file
- lircd.conf    //Lirc read file for the remote
- lircrc.mythtv //How to translate that remote for Mythtv
- lircrc.xine   //How to translate that remote for Xine
- lircrc.vlc etc etc

Example minimyth.conf below.

Permissions Cleanup

#chown -R nobody /tftpboot/PXEClient
#chgrp -R nobody /tftpboot/PXEClient
#chmod 777 /tftpboot/PXEClient/conf-rw 

minimyth.conf

This is the "magical" part about Minimyth and its immense strength. You create a file called minimyth.conf that each frontend picks up and configures Myth to suit that machine. The magical part is, when you upgrade your minimyth for fixes, you do not have to re-setup like a standard box. The new minimyth will pull in the minimyth.conf, setup xorg, video profiles and so on.

Here is a typical minimyth.conf (for Openchrome Via CLE266 with TV out and homebrew LIRC receiver on Com Port 1)

################################################################################
# minimyth.conf
#
# The required MiniMyth configuration file.
#
# For information on this file, see either
# <http://minimyth.org/document.shtml>
# or
# <http://{minimyth}/document.shtml>,
# where '{minimyth}' is the IPv4 address or hostname of your MiniMyth system.
################################################################################ 
################################################################################
# The following line will fetch and include a file named 'minimyth-common.conf'
# from the MiniMyth read-only configuration directory. If you have multiple
# MiniMyth systems with common configuration, then you can include this line
# in each 'minimyth.conf' file and put the common configuration in the file
# 'default/minimyth-common.conf'.
################################################################################
#mm_minimyth_conf_include minimyth-common.conf 
################################################################################
# MiniMyth configuration variables.
#
# MM_MINIMYTH_UPDATE_URL
# MM_MINIMYTH_BOOT_URL
# MM_MINIMYTH_FETCH_MINIMYTH_PM
################################################################################
#MM_MINIMYTH_BOOT_URL='http://tftp.home/minimyth/' 
################################################################################
# DHCP overrides configuration variables.
#
# MM_DHCP_ADDRESS
# MM_DHCP_BROADCAST
# MM_DHCP_SUBNET_MASK
# MM_DHCP_ROUTERS
# MM_DHCP_HOST_NAME
# MM_DHCP_DOMAIN_NAME
# MM_DHCP_DOMAIN_NAME_SERVERS
# MM_DHCP_NTP_SERVERS
# MM_DHCP_LOG_SERVERS
# MM_DHCP_TCODE
################################################################################
MM_DHCP_TCODE='Europe/London'
MM_DHCP_DOMAIN_NAME='mydomain.com' 
################################################################################
# Security configuration variables.
#
# MM_SECURITY_ENABLED
# MM_SECURITY_USER_MINIMYTH_UID
# MM_SECURITY_USER_MINIMYTH_GID
# MM_SECURITY_FETCH_CREDENTIALS_CIFS
# MM_SECURITY_FETCH_CA_BUNDLE_CRT
################################################################################
#MM_SECURITY_ENABLED='yes'
#MM_SECURITY_FETCH_CREDENTIALS_CIFS='yes'
#MM_SECURITY_FETCH_CA_BUNDLE_CRT='yes'
################################################################################
# Firmware configuration variables.
#
# MM_FIRMWARE_FILE_LIST
################################################################################ 
################################################################################
# ACPI configuration variables.
#
# MM_ACPI_EVENT_BUTTON_POWER
# MM_ACPI_VIDEO_FLAGS
################################################################################
################################################################################
# CPU configuration variables.
#
# MM_CPU_FREQUENCY_GOVERNOR
# MM_CPU_FETCH_MICROCODE_DAT
################################################################################
#MM_CPU_FREQUENCY_GOVERNOR='userspace'
################################################################################
# Audio configuration variables.
#
# MM_AUDIO_TYPE
# MM_AUDIO_CARD_NUMBER
# MM_AUDIO_DEVICE_NUMBER
# MM_AUDIO_GAIN
# MM_AUDIO_FETCH_ASOUND_CONF
# MM_AUDIO_FETCH_ASOUND_STATE
################################################################################
#MM_AUDIO_TYPE='digital'
################################################################################
# Video configuration variables.
#
# MM_VIDEO_ASPECT_RATIO
# MM_VIDEO_DECODER
# MM_VIDEO_DEINTERLACER
# MM_VIDEO_FONT_SCALE
# MM_VIDEO_PLAYBACK_PROFILE
# MM_VIDEO_RESIZE_ENABLED
################################################################################
MM_VIDEO_ASPECT_RATIO='16:9'
MM_VIDEO_DEINTERLACER='auto'
MM_VIDEO_DECODER='xvmc-vld'
MM_VIDEO_PLAYBACK_PROFILE='epia' 
################################################################################
# X configuration variables.
#
# MM_X_ENABLED
# MM_X_DRIVER
# MM_X_RESTART_ON_SLEEP_ENABLED
# MM_X_WM_ENABLED
# MM_X_VNC_ENABLED
# MM_X_SCREENSAVER
# MM_X_SCREENSAVER_TIMEOUT
# MM_X_SCREENSAVER_HACK
# MM_X_MYTH_PROGRAM
# MM_X_OUTPUT_HDMI
# MM_X_OUTPUT_DVI
# MM_X_OUTPUT_VGA
# MM_X_OUTPUT_TV
# MM_X_TV_TYPE
# MM_X_TV_OUTPUT
# MM_X_TV_OVERSCAN
# MM_X_SYNC
# MM_X_REFRESH
# MM_X_RESOLUTION
# MM_X_MODELINE
# MM_X_MODE
# MM_X_MODELINE_0
# MM_X_MODELINE_1
# MM_X_MODELINE_2
# MM_X_MODE_0
# MM_X_MODE_1
# MM_X_MODE_2
# MM_X_HACK_HIDE_BLUE_LINE_ENABLED
# MM_X_FETCH_XINITRC
# MM_X_FETCH_XMODMAPRC
# MM_X_FETCH_XORG_CONF
################################################################################
MM_X_DRIVER='openchome'
MM_X_MODE='848x480Over'
MM_X_VNC_ENABLED='yes' 
MM_X_OUTPUT_VGA='auto'
MM_X_OUTPUT_TV='auto'
MM_X_TV_TYPE='PAL'
MM_X_TV_OUTPUT='Composite' 
################################################################################
# Font configuration variables.
#
# MM_FONT_FILE_TTF_ADD
# MM_FONT_FILE_TTF_DELETE
################################################################################ 
################################################################################
# Myth master backend communication configuration variables.
#
# MM_MASTER_SERVER
# MM_MASTER_DBUSERNAME
# MM_MASTER_DBPASSWORD
# MM_MASTER_DBNAME
# MM_MASTER_WOL_ENABLED
# MM_MASTER_WOL_MAC
# MM_MASTER_WOLSQLRECONNECTWAITTIME
# MM_MASTER_WOLSQLCONNECTRETRY
# MM_MASTER_WOLSQLCOMMAND
# MM_MASTER_WOL_ADDITIONAL_DELAY
################################################################################
MM_MASTER_SERVER='192.168.1.90'
################################################################################
# Myth plugin configuration variables.
#
# MM_PLUGIN_INFORMATION_CENTER_ENABLED
# MM_PLUGIN_OPTICAL_DISK_ENABLED
# MM_PLUGIN_BROWSER_ENABLED
# MM_PLUGIN_DVD_ENABLED
# MM_PLUGIN_GALLERY_ENABLED
# MM_PLUGIN_GAME_ENABLED
# MM_PLUGIN_MUSIC_ENABLED
# MM_PLUGIN_NEWS_ENABLED
# MM_PLUGIN_PHONE_ENABLED
# MM_PLUGIN_STREAM_ENABLED
# MM_PLUGIN_VIDEO_ENABLED
# MM_PLUGIN_WEATHER_ENABLED
# MM_PLUGIN_ZONEMINDER_ENABLED
################################################################################
MM_PLUGIN_OPTICAL_DISK_ENABLED='yes'
MM_PLUGIN_BROWSER_ENABLED='no'
MM_PLUGIN_GALLERY_ENABLED='yes'
MM_PLUGIN_GAME_ENABLED='no'   
MM_PLUGIN_MUSIC_ENABLED='no'  
MM_PLUGIN_NEWS_ENABLED='yes'   
MM_PLUGIN_PHONE_ENABLED='no'  
MM_PLUGIN_STREAM_ENABLED='no' 
MM_PLUGIN_VIDEO_ENABLED='yes' 
MM_PLUGIN_WEATHER_ENABLED='yes'
MM_PLUGIN_ZONEMINDER_ENABLED='no'
################################################################################
# Extras directory configuration variables.
#
# MM_EXTRAS_URL
################################################################################ 
################################################################################
# CODECs directory configuration variables.
#
# MM_CODECS_URL
################################################################################
MM_CODECS_URL="auto" 
################################################################################
# Adobe Flash Player configuration variables.
#
# MM_FLASH_URL
################################################################################
################################################################################
# Hulu Desktop configuration variables.
#
# MM_HULU_URL
# MM_HULU_REMOTE
# MM_HULU_STORE_HULUDESKTOP_DATA
################################################################################
################################################################################
# Theme configuration variables.
#
# MM_THEME_NAME
# MM_THEMEOSD_NAME
# MM_THEME_URL
# MM_THEMEOSD_URL
# MM_THEMECACHE_URL
# MM_THEME_FILE_MENU_ADD
################################################################################
#MM_THEMEOSD_NAME='Titivillus-OSD'
#MM_THEME_NAME='MythCenter-wide'
#MM_THEMEOSD_NAME='Retro-OSD' 
MM_THEME_NAME='metallurgy'
#MM_THEME_NAME='Arclight' 
#MM_THEME_NAME='metallurgy'
MM_THEMEOSD_NAME='BlackCurves-OSD'
MM_THEME_URL='auto'
MM_THEMEOSD_URL='auto'
MM_THEMECACHE_URL='auto'
################################################################################
# Remote media directory configuration variables.
#
# MM_MEDIA_TV_MOUNTPOINT
# MM_MEDIA_TV_URL
# MM_MEDIA_GALLERY_MOUNTPOINT
# MM_MEDIA_GALLERY_URL
# MM_MEDIA_GAME_MOUNTPOINT
# MM_MEDIA_GAME_URL
# MM_MEDIA_MUSIC_MOUNTPOINT
# MM_MEDIA_MUSIC_URL
# MM_MEDIA_VIDEO_MOUNTPOINT
# MM_MEDIA_VIDEO_URL
# MM_MEDIA_DVD_RIP_MOUNTPOINT
# MM_MEDIA_DVD_RIP_URL
# MM_MEDIA_GENERIC_LIST
################################################################################
#MM_MEDIA_GALLERY_URL="cifs://${MM_TFTP_SERVER}/pictures?credentials=/etc/cifs/credentials_cifs"
#MM_MEDIA_GAME_URL="cifs://${MM_TFTP_SERVER}/games?credentials=/etc/cifs/credentials_cifs"
#MM_MEDIA_MUSIC_URL="cifs://${MM_TFTP_SERVER}/music?credentials=/etc/cifs/credentials_cifs"
#MM_MEDIA_VIDEO_URL="cifs://${MM_TFTP_SERVER}/videos?credentials=/etc/cifs/credentials_cifs"
#MM_MEDIA_DVD_RIP_URL="nfs://${MM_TFTP_SERVER}/home/public/minimyth/themecache"
MM_MEDIA_GALLERY_URL="nfs://mythtv:mythtv@192.168.1.90/storage/pictures"
MM_MEDIA_VIDEO_URL="cifs://mythtv:mythtv@192.168.1.90/storage/videos"
MM_MEDIA_DVD_RIP_URL="cifs://mythtv:mythtv@192.168.1.90/storage/temp"
################################################################################
# Game configuration variables.
#
# MM_GAME_SAVE_ENABLED
# MM_GAME_SAVE_LIST
# MM_GAME_BIOS_ROOT
# MM_GAME_GAME_ROOT
################################################################################ 
################################################################################
# Bluetooth configuration variables.
#
# MM_BLUETOOTH_DEVICE_LIST
################################################################################ 
################################################################################
# Wii remote control configuration variables.
#
# MM_WIIMOTE_ADDRESS_0
# MM_WIIMOTE_ADDRESS_1
# MM_WIIMOTE_ADDRESS_2
# MM_WIIMOTE_ADDRESS_3
################################################################################ 
################################################################################
# LIRC configuration variables.
#
# MM_LIRC_AUTO_ENABLED
# MM_LIRC_DEVICE_BLACKLIST
# MM_LIRC_DRIVER
# MM_LIRC_DEVICE
# MM_LIRC_KERNEL_MODULE
# MM_LIRC_KERNEL_MODULE_OPTIONS
# MM_LIRC_IREXEC_ENABLED
# MM_LIRC_IRXEVENT_ENABLED
# MM_LIRC_IRXKEYS_ENABLED
# MM_LIRC_SLEEP_ENABLED
# MM_LIRC_WAKEUP_ENABLED
# MM_LIRC_FETCH_LIRCD_CONF
# MM_LIRC_FETCH_LIRCMD_CONF
# MM_LIRC_FETCH_LIRCRC
# MM_LIRC_FETCH_LIRCRC_MINIMYTH
# MM_LIRC_FETCH_LIRCRC_MYTHTV
# MM_LIRC_FETCH_LIRCRC_MPLAYER
# MM_LIRC_FETCH_LIRCRC_VLC
# MM_LIRC_FETCH_LIRCRC_XINE
################################################################################
MM_LIRC_DRIVER='lirc_serial'
#MM_LIRC_DEVICE='/dev/lirc0'
MM_LIRC_KERNEL_MODULE='lirc_serial'
MM_LIRC_KERNEL_MODULE_OPTIONS='irq=4 io=0x3f8'
MM_LIRC_FETCH_LIRCD_CONF='yes'
#MM_LIRC_FETCH_LIRCRC='yes'
MM_LIRC_FETCH_LIRCRC_MYTHTV='yes'
MM_LIRC_FETCH_LIRCRC_VLC='yes'
MM_LIRC_FETCH_LIRCRC_XINE='yes' 
################################################################################
# LCDPROC configuration variables.
#
# MM_LCDPROC_DRIVER
# MM_LCDPROC_DEVICE
# MM_LCDPROC_KERNEL_MODULE
# MM_LCDPROC_KERNEL_MODULE_OPTIONS
# MM_LCDPROC_FETCH_LCDD_CONF
################################################################################ 
################################################################################
# External equipment control configuration variables.
#
# MM_EXTERNAL_POWER_OFF
# MM_EXTERNAL_POWER_ON
# MM_EXTERNAL_VOLUME_DOWN
# MM_EXTERNAL_VOLUME_UP
# MM_EXTERNAL_VOLUME_MUTE
# MM_EXTERNAL_AQUOS_ENABLED
# MM_EXTERNAL_AQUOS_DEVICE
# MM_EXTERNAL_AQUOS_PORT
# MM_EXTERNAL_AQUOS_POWER_ENABLED
# MM_EXTERNAL_AQUOS_VOLUME_ENABLED
# MM_EXTERNAL_AQUOS_INPUT
################################################################################
#MM_EXTERNAL_POWER_OFF='
#	/usr/bin/irsend <television> KEY_POWEROFF ;
#	/usr/bin/irsend <receiver> KEY_POWEROFF'
#MM_EXTERNAL_POWER_ON='
#	/usr/bin/irsend <television> KEY_POWERON ;
#	/usr/bin/irsend <receiver> KEY_POWERON'
#MM_EXTERNAL_VOLUME_DOWN='
#	/usr/bin/irsend <receiver> KEY_VOLUMEDOWN'
#MM_EXTERNAL_VOLUME_UP='
#	/usr/bin/irsend <receiver> KEY_VOLUMEUP'
#MM_EXTERNAL_VOLUME_MUTE='
#	/usr/bin/irsend <receiver> KEY_MUTE'
################################################################################
# SSH server configuration variables.
#
# MM_SSH_SERVER_ENABLED
################################################################################
#MM_SSH_SERVER_ENABLED='yes'
################################################################################
# Cron configuration variables.
#
# MM_CRON_FETCH_CRONTAB
################################################################################
################################################################################
# Slave backend configuration variables.
#
# MM_BACKEND_ENABLED
# MM_BACKEND_DEBUG_LEVEL
################################################################################
################################################################################
# MiniMyth direct Myth database configuration variables.
#
# MM_MYTHDB_JUMPPOINTS_{key}
# MM_MYTHDB_KEYBINDINGS_{key}
# MM_MYTHDB_SETTINGS_{key}
################################################################################
#MM_MYTHDB_JUMPPOINTS_MythGallery='MythGallery~Alt+G'
#MM_MYTHDB_JUMPPOINTS_Play_music='Play music~Alt+M'
#MM_MYTHDB_JUMPPOINTS_MythStream='MythStream~Alt+S'
#MM_MYTHDB_JUMPPOINTS_TV_Recording_Playback='TV Recording Playback~Alt+T'
#MM_MYTHDB_JUMPPOINTS_MythVideo='MythVideo~Alt+V'
#MM_MYTHDB_KEYBINDINGS_Music_FFWD='Music~FFWD~)'
#MM_MYTHDB_KEYBINDINGS_Music_RWND='Music~RWND~('
#MM_MYTHDB_KEYBINDINGS_Stream_FULLSCREEN='Stream~FULLSCREEN~W'
#MM_MYTHDB_KEYBINDINGS_TV_Playback_SEEKFFWD='TV Playback~SEEKFFWD~),Right'
#MM_MYTHDB_KEYBINDINGS_TV_Playback_SEEKRWND='TV Playback~SEEKRWND~(,Left'
#MM_MYTHDB_SETTINGS_GalleryMoviePlayerCmd='GalleryMoviePlayerCmd~xine -pfhq --no-splash --loop=loop'
#MM_MYTHDB_SETTINGS_VCDPlayerCommand='VCDPlayerCommand~xine -pfhq --no-splash  --loop=loop vcd://'
#MM_MYTHDB_SETTINGS_VideoDefaultPlayer='VideoDefaultPlayer~xine -pfhq --no-splash --loop=loop'